34 - Principy a struktury správy souborů a správy paměti
Správa souborů
Fyzický disk
části disku: cylindr, hlava, talíř (platter, disk), stopa, sektor
Zdroj: 4. přednáška IOS z ak. roku 2009/1010 - autor: doc. Vojnar
adresování sektorů
CHS = cylindr, hlava (nejběžnějši 1-6), sektor (typicky 512B)
LBA = lineární bloková adresa (pouze číslo 0 .. N)
rozmístění sektorů na disku:
-
-
primární paměti: RAM, registry, cache
sekundární paměti: disky
terciární paměti: CD, DVD, pásky
parametry disků:
přístupová doba = doba nastavení hlav + rotační zpoždění
rozdílné značení velikosti u prodejců (1000B = 1KiB, ale 1024B=1KB)
nástup SSD disků (Solid State Disk)
založené na flash pamětech ⇒ mechanická odolnost, tichý provoz
rychlejší náběh, náhodný přístup, pomalejší zápis
NAND flash SSD jsou organizovány do stránek (typicky 4KiB) a ty do bloků (typicky 128 stránek, tj. 512KiB)
cluster
Alokační blok (2
n sektorů) - nejmenší jednotka diskového prostoru, se kterou
OS umožňuje pracovat uživatelům
-
přístup na disk:
přenos z/na disk je typicky řízen řadičem disku s využitím technologie přímého přístupu do paměti (DMA)
o ukončení operací či chybách informuje řadič procesor (a na něm bežící jádro
OS) pomocí přerušení
pořadí bloku čtených/zapisovaných na disk ovlivňuje plánovač diskových operací
přicházející požadavky na čtení/zápis jsou ukládány do vyrovnávací paměti a jejich pořadí je případně měněno tak, aby se minimalizovala režie diskových operací
-
Virtuální souborový systém (VFS) - vrstva, která zastřešuje všechny použité souborové systémy (ufs, ext, NTFS, FAT,…) a umožňuje s nimi pracovat jednotným, abstraktním způsobem
Síťové souborové systémy: NFS, …
zabezpečení disků:
ECC = Error Correction Code: k užitečným datům sektoru si ukládá redundantní data, která umožňují opravu
S.M.A.R.T. – Self Monitoring Analysis and Reporting Technology - statistiky
disková pole (RAIDy)
-
následné bloky jsou rozmístěny na různých discích cyklicky za sebou
vysoká výkonnost, žádná redundace, žádná ochrana při pádu jednoho z disků
-
-
-
každý bajt je rozdělen po bitech na více disků, používají se navíc disky s EEC (zabezpečení disků)
chybu na 1 disku lze opravit
-
-
-
obdoba
RAID 4, ale paritní bloky jsou rozdělené na více discích → odpadá přetížení paritního disku
-
-
Logický disk
Žurnálování
Klasický UNIXový systém souboru (FS)
boot block - pro zavedení systému při startu
super block - informace o souborovém systému (typ, velikost, počet i-uzů, volné místo, volné i-bloky, kořenový adresář,…)
tabulka i-uzlů - tabulka s popisy souborů
datové bloky - data souborů a bloky pro nepřímé odkazy
FHS = Filesystem Hierarchy Standard - typická struktura souborů v UNIXu (/bin, /dev, /etc, …)
tři typy souborů
obyčejné soubory
adresáře
speciální soubory:
symbolické odkazy
roury (pojmenované, nepojmenované)
sockety
periferie (blokové, znakové)
adresář - soubor obsahující seznam dvojic - “hard-links” (jméno souboru a číslo uzlu)
mazání souboru - ruší pevný odkaz a snižuje počítadlo odkazu v i-uzlu, dokud je počítadlo nenulové, soubor se nemaže
ACL - Access control list
v UNIXu jsou typicky rozlišena práva pro vlastníka, skupinu a ostatní
UID: číslo identifikující uživatele (root UID = 0)
GID: číslo identifikující skupinu uživatelů
Sticky bit - příznak, který nedovoluje rušit cizí soubory v adresáři, i když mají všichni právo zápisu
propůjčení práv - Vlastník programu muže propujčit svoje práva komukoli, kdo spustí program s nastaveným SUID
Správa paměti
je soubor metod, které operační systém používá při přidělování operační paměti jednotlivým procesům, které jsou spuštěny
může zajišťovat i následné uvolňování paměti, nastavovat ochranu paměti a eventuálně i správu adresace paměti
všechny tyto činnosti v operačním systému zajišťuje modul správy paměti
pro některé z výše uvedených úkolů je nutná hardwarová podpora uvnitř procesoru
rozlišujeme 2 typy adresových prostorů:
logický adresový prostor (LAP) - virtuální adresový prostor
fyzický adresový prostor (FAP) - adresový prostor fyzických adres paměti
pro komunikaci LAP a FAP je nutné překládat logické adresy na fyzické a naopak ⇒ slouží k tomu hardwarová jednotka
MMU (Memory Managment Unit), která dnes bývá součástí procesoru
Zdroj: přednáška IOS č. 7, autor: doc. Vojnar
Přidělování paměti
na místě nejbližší HW se pro přidělování paměti používájí:
spojité bloky
segmenty
stránky
kombinace výše uvedeného
z uživatelského hlediska se přiděluje funkcí malloc a její obdoby v jádře kmalloc, vmalloc, které pracují na principu přidělování bloků na ještě nižší úrovni než klasický malloc.
výrazně se projevuje externí fragmentace paměti (FAP):
přidělováním a uvolňování paměti vznikají různě velké díry (obsazené a neobsazené úseky v paměti, které nemohou být využité, protože se jedná o nespojité volné místo)
problém se zvětšováním přiděleného prostoru
minimalizace pomocí různých strategií alokace paměti
dynamická reorganizace paměti (!velmi nákladné!)
při nedostatku paměti se začnou data ukládat na disk, ale to je velmi pomalé a nákladné
druhý typem je interní fragmentace paměti (ta se sice neprojevuje tak zásadně):
Segmentace paměti
LAP je rozdělen na segmenty ⇒ Ty přiděluje překladač (programátor) jednotlivým úsekům kódu
každý segment má jméno (číslo) a velikost ⇒ logická adresa se proto skládá z čísla (jména) segmentu a posunem v segmentu
segmenty mohou být použity jako jednotka ochrany nebo sdílení paměti
poměrně jednoduchá implementace
Stránkování
Virtualizace paměti
Sdílená paměť
jedna z forem meziprocesové komunikace (IPC): více procesů má namapováno stejné fyzické stránky v LAP
příkladem je výměna dat mezi procesy (programy) běžící současně
velmi rychlí způsob komunikace, ale málo výkonný
Potvrzení
34 |
Celé jméno | OK | !!! |
Jirka Hynek | | |
| 1 | |
Diskuze
„(1000B = 1KiB, ale 1024B=1KB)“
No, ale ono je to přesně naopak :)