Professional Documents
Culture Documents
Os Eloadas Diak
Os Eloadas Diak
4 5
6 7
8 9
Bevezetés Operációs rendszerek jellemzése Bevezetés Operációs rendszerek jellemzése
• Processzusok (folyamatok) az alapvető aktı́v alkotóelemek • Nagyszámı́tógépes (mainframe) operációs rendszerek: Nagy I/O
• Processzus (proc): végrehajtás alatt lévő program kapacitás, Sok job végrehajtása, Batch, tranzakciók feldolgozása. Pl:
• Processzus létrejön (programbetöltés, végrehajtás indı́tása, ...), létezik OS/390, UNIX, Linux
(”fut”), majd megszűnik (exit) • Szerver operációs rendszerek: sok user, kozösen használt hw és sw
• Egyidejűleg több processzus létezik: A processzor (CPU) idejét meg erőforrások. Pl. Solaris, FreeBSD, Linux, Windows Server 200x
kell osztani az egyidejűleg létező procok között: időosztás (time • Többprocesszoros operációs rendszerek, Pl. Windows, Linux
sharing) • PC-s operációs rendszerek, Pl. Linux, FreeBSD, Windows
• Az erőforrások centralizált kezelése: Az erőforrásokat a processzusok • Handheld operációs rendszerek: PDA. Pl. Symbian OS, Palm OS
(kérésükre) az OS-től kapják
• Beágyazott operációs rendszerek: Tv, hűtő. Pl. QNX, VxWorks
• Esemény-vezérelt
• Érzékelő csomópontos operációs rendszerek: Tűz érzékelő. Pl:
1 esemény
2 megszakı́tás TinyOS
3 esemény feldolgozása • Real-time operációs rendszerek: Hard, soft. Ipari robotok, digitális
4 esemény kiszolgálása multimédia eszközök.
5 visszatérés a megszakı́tás helyére • Smart card operációs rendszerek: Java SmartCard
10 11
12 13
18 19
20 21
Bevezetés Az operációs rendszerek története Bevezetés Az operációs rendszerek története
22 23
26 27
Bevezetés Rendszerhı́vások Bevezetés Rendszerhı́vások
28 29
30 31
32 33
Bevezetés Az OS struktúrája Bevezetés Az OS struktúrája
36 37
38 39
Bevezetés Az OS struktúrája
40
Processzusok 2
Bevezetés
• A CPU minden időpillanatban csak egy programot futtat
• Egyik program végrehajtásáról a másik program végrehajtására
vált
PROCESSZUSOK I. • Párhuzamosság illúzióját kelti a felhasználóban
• Látszatpárhuzamosság
• Nem keverjük össze a többprocesszoros rendszerek valódi
Bevezetés hardverpárhuzamosságával
Processzusok • Többszörös párhuzamos tevékenységek követése nehéz
Szálak • Szekvenciális processzusok
• Fogalmi modell
Processzusok 3 Processzusok 4
Processzusmodell Processzusmodell
• Számítógépen futtatható szoftver
• Szekvenciális processzusok sorozata
• Processzusok
• Az operációs rendszer is
• Processzus
• Végrehajtás alatt álló program
• Utasításszámláló
• Regiszterek
• Változók aktuális értéke
Processzusok 5 Processzusok 6
Processzusmodell Processzusok
• A processzusok nem állandó sebességgel haladnak a • Egyetlen vezérlési szállal
végrehajtásban előre rendelkezik
• Erőforrás birtokló egység
• Még akkor sem, ha újrafuttatjuk azokat
• Kizárólagosan
• Nem szabad belső időzítési feltételeket rakni • Osztottan
• Pl. üres ciklusok • Címtartománnyal rendelkezik
• Speciális utasításokat kell használni • Saját memória
• Osztott memória
• A processzusok nagy részét nem befolyásolja
• Végrehajtási állapota van
• a CPU multiprogramozása
• Utasítás számláló
• Processzusok relatív sebessége • Regiszterek
• Veremmemóriája van
• Saját
• Jogosultságokkal rendelkezik
• Adathozzáférési jogok
Processzusok 7 Processzusok 8
Oda-vissza kapcsolgatás
Processzusállapotok
Kontextus csere
• Több egyidejűleg létező processzus • Futó
• Egyetlen CPU • Éppen használja a CPU-t
Processzusok 9 Processzusok 10
Processzusállapotok Processzusállapotok
• Egyes processzusok olyan programokat futtatnak,
5
Terminális amelyek a felhasználó által begépelt parancsokat hajtják
végre
• Más processzusok a rendszer részei
1. Processzus blokkolódik input miatt • Fájlkiszolgáló felé érkező igények kiszolgálása
2. Az ütemező egy másik processzust • A processzusok blokkolódnak
választ ki
3. Az ütemező ezt a processzust • Amikor valaminek a bekövetkezésére várnak
választja ki • Amikor az adott esemény bekövetkezik
4. Az input elérhetővé válik
• A blokkolódás feloldódik
Iniciális
Ábra forrása: Tanenbaum könyv
Processzusok 11 Processzusok 12
Processzusok 15 Processzusok 16
Processzusok 17 Processzusok 18
Processzusok 21 Processzusok 22
Processzusok 23 Processzusok 24
Processzusok 27 Processzusok 28
Szálak Szálak
• Processzusok egymással összefüggő erőforrások egy • A processzusok rendelkeznek végrehajtási szállal
csoportosítása • A szál
• Utasításszámláló
• Címtartománya tartalmazza
• Melyik utasítás végrehajtása következik
• A programkódját
• Regiszterek
• Adatait • Aktuális munkaváltozókat tárolnak
• Erőforrásait • Verem
• Megnyitott fájlok • Végrehajtás eseményeit rögzítik
• Gyerekprocesszusok • Egy-egy keret minden meghívott eljáráshoz
• Függőben lévő ébresztések • A szálat egy processzuson belül kell végrehajtani
• Szignálkezelők
• Statisztikai információk
• A szál és annak processzusa külön fogalmak
• Processzus erőforrás csoportosítása
• Egyszerűbben kezelhetők ilyen formában ezek az
• Szálak azok az egyedek, amelyeket a CPU-n végrehajtása
információk ütemeznek
Processzusok 29 Processzusok 30
Szálak Szálak
• Ugyanazon a processzuson belül • Többszörös szálak használata
• Több végrehajtás kezdeményezése • Web böngésző
• Egymástól nagy mértékben függetlenek • Sok kép letöltése egyetlen egy kapcsolat felépítésével
• Külön álló szállak indítása az adott kapcsolat felhasználásával
a képek letöltésére
• Web szerver
Szálak Szálak
• Ugyanazon a címtartományon lévő több szál esetén • Bizonyos esetekben az OS nem vesz tudomást a
• A processzustáblázatban nem processzus, hanem szálként szálakról
értendő információk • A felhasználó hatáskörében vannak egészen
• Pl. a szál kiválaszthatja azt másik szálat a blokkolódásakor,
Processzushoz tartozó elemek Szálhoz tarozó elemek
amelyiknek átadhatja a vezérlést
Címtartomány Utasításszámláló
• Feltéve, hogy a tmax időt még nem használta el teljesen
Globális változók Regiszterek
• Megvalósítások szálkezelésekre
Megnyitott fájlok Verem
• POSIX P-szálak
Gyerekprocesszusok Állapot • Mach C-szálak
Függőben lévő ébresztők
Szignálok és szignálkezelők
Elszámolási funkciók
Processzusok 33 Processzusok 34
Szálak Szálak
• Felhasználói területen található szál-csomag • Más esetekben az OS nyilvántartja a processzusok
• A kernel nem tud semmit róluk szálait
• Egy szálú processzusként kezeli • Szál blokkolódáskor az OS választja ki a következő szálat
• Megvalósítható olyan operációs rendszeren is, amely nem • Ugyanabból vagy egy másik processzusból
támogatja a szálakat • Egy globális száltáblázatban tartja
• Könyvtárként van megvalósítva nyílván a szálhoz tartozó információkat
• Ugyan az az általános struktúra jellemző rájuk • Kernel hívásokkal jönnek létre az új szálak,
• Saját privát száltáblázattal rendelkezik a megszűntetésük is kernel hívásokon
mindegyik processzus keresztül történik
• Analóg a kernel processzus táblával (PCB)
• Csak a szál tulajdonságokat tartja nyílván
Tanenbaum, Modern Operating Systems 3 e, (c) Tanenbaum, Modern Operating Systems 3 e, (c)
2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Processzusok 35 Processzusok 36
Szálak Szálak
• Sor probléma merül fel
• A két megoldás teljesítményben különböznek
• Szülőprocesszushoz tartozó szálakat létrehozzuk-e a gyerekprocesszusoknál
• A szálak közötti váltás sokkal gyorsabb, ha felhasználói szinten is?
történik • Ha a szülő- és a gyerekprocesszus is több szállal rendelkezik
• Mi történik, ha az egyik blokkolódik?
• Amikor teljes egészében felhasználói szinten kezeljük a szálakat • Szálak közös adatszerkezeten való osztozásakor
• Egy szál blokkolásakor a teljes processzus blokkolódik • Egyik szál lezár egy fájlt, de még a másik olvasná azt
• Kevés memória esetén memória foglalás
• Hybrid megvalósítások • Szálváltás után mi történik?
• Hibajelzés
• Globális változók használata
• Szálakban lévő rendszerhívások felülírják az előző értékeket
• Szignálok
• Egy része szál specifikus másik nem
• Nyomon kell követni a riasztásokat, akkor amikor az OS nem tud a szálakról
• Veremkezelés
• Veremtúlcsordulás esetén verem méretének megnövelése
• Több szál több verem
• Amennyiben a kernel nem tud a vermekről, akkor ki fogja azokat megnövelni?
Szálak
• Felbukkanó szálak (pop-up)
• Elosztott rendszereknél igen hasznosak a szálak használata.
• Bejövő üzenet új szál kreálását eredményezi,
• Feldolgozza az üzenetet.
• Előnyök
• Teljesen újak
• Nincsenek regiszterek, amiket helyre kell állítani az üzenet feldolgozáshoz
• Gyorsan létrehozhatóak
• Lecsökkenthető az üzenet beérkezése és az adott válasz közötti idő
• Fejlettebb tervezési technikák esetén
• Milyen processzusban fusson?
• Ha a rendszer támogatja a kernel szintű szálakat
• Könnyebb és gyorsabb
• Könnyebben eléri a kernel táblázatokat
• B/K eszközöket
• Kernel szintű szállal nagyobb kárt tudunk okozni
• Amennyiben hosszú ideig fut és nem lehet megszakítani, akkor elveszhetnek
bejövő adatok
Processzusok 2
Processzusok kommunikációja
• A processzusoknak szükségük vannak a kommunikációra
• Pl. parancsértelmező csővezeték
• Előnyös, ha ez nem magszakításokkal történik
Processzusok 3 Processzusok 4
Processzusok 5 Processzusok 6
Processzusok 9 Processzusok 10
• Minden processzus letiltja • Egy felhasználói program • Szofveres megoldás • A probléma ugyanaz, mint a
letiltja a megszakításokat háttérkatalógusnál
az összes megszakítást a • Mi van akkor, ha nem engedélyezi
• Egyetlen osztott zárolási
• Megkerülhetjük a
kritikus szekcióba lépés azokat újból?! változó problémát?
után • Több processzoros rendszernél • Kezdeti értéke 0 • Először kiolvassuk
• Újraengedélyezi, mielőtt
• Csak az adott CPU-ra vonatkozik • Kritikus szekcióba lépés előtt • Aztán mielőtt írnánk bele
a megszakítás tiltása • Újra ellenőrizzük
elhagyja azt • Teszteli ezt a változót
• A kernel leszokta tiltani a • Nem jó
• Ha az értéke 0,
• Nem fordulhat elő megszakításokat • A verseny akkor fog
• Akkor 1-re állítja és bekövetkezni, miután a
óramegszakítás • Változók és listák frissítésekor
• Belép a kritikus szekciójába második processzus azután
• CPU nem fog másik • Az operációs rendszereknél • Ha az értéke 1 módosítja a változót, amikor az
processzusra váltani megengedett ez a technika első processzus befejezte az
• Addig várakozik, amíg újraellenőrzést
• Problem solved?! értéke 0 nem lesz
Processzusok 11 Processzusok 12
Processzusok 15 Processzusok 16
Processzusok 17 Processzusok 18
• Vissza a kódhoz!!!
Gyártó-fogyasztó probléma megvalósítása végzetes versenyhelyzettel
Ábra forrása: Tanenbaum könyv
Processzusok 19 Processzusok 20
Processzusok 21 Processzusok 22
Szemaforok Szemaforok
• E.W. Dijkstra • Az oszthatatlan megvalósítás nélkülözhetetlen
• Egész változókban számoljuk az ébresztéseket • up és down rendszerhívások
• Új változó típus bevezetése
• Az OS letiltja a megszakításokat
• Szemafor
• a szemaforok ellenőrzésének és frissítésének
• 0, ha nincs elmentett ébresztés
• Valamilyen pozitív érték
• a processzus altatásának idejére
• Egy vagy több ébresztés van függőben • Csak néhány utasítás erejéig
• Műveletek • Nem ér sérelem senkit
• down
• Megvizsgálja, hogy a szemafor értéke nagyobb-e, mint 0
• Biztosítja, hogy a végén engedélyezi a megszakításokat
• Ha igen, akkor csökkenti annak értékét és azonnal folytatja munkáját • Több CPU esetén mindegyik szemafort védeni kell egy zárolási
• Ha 0, akkor a processzust elaltatja, mielőtt a down() befejeződne
• A művelet egyetlen oszthatatlan elemi műveletként hajtódik végre változóval
• up • Csak egy CPU vizsgálja a szemafort egy időben
• Növeli a szemafor értékét
• Olyan szemaforon végrehajtva a műveletet, amelyen több processzus aludt, a szemafor • TSL utasítást használva
értéke 0 marad, de eggyel kevesebb processzus fog rajta aludni • Tevékeny várakozás
• Az érték növelése és a processzus felébresztése szintén elemi műveletként hajtódik végre
• Szemafor műveletek csak néhány mikrosec.-et vesznek igénybe
Processzusok 23 Processzusok 24
Szemaforok Szemaforok
• Teli rekeszek számolása
• full
• 0
• Üres rekeszek számolása
• empty
• N – max. helyek száma
• A puffert egyszerre csak
egy processzus érhesse el
• mutex
• 1
• két értéke lehet csak
• 0 vagy 1
• Bináris szemafor
• Kölcsönös kizárás garantált a közös terület eléréséhez
• Mindegyik processzus végrehajt egy down()műveletet mielőtt belép a kritikus szekciójába
• csak egy up() hajtódik végre közvetlenül a kritikus szekció elhagyása után
• Szinkronizáció
• Eseménysorozatok bekövetkezésének biztosítása
• Ez különbözik a kölcsönös kizárástól
Mutex-ek Mutex-ek
• Mutual exclusion • Processzusok vagy szálak esetén
• Kölcsönös kizárás
• Az a szál, amelyik be akar lépni a kritikus szekcióba,
• Nincs szükség az altatások
számlálására először megpróbálja zárolni a megfelelő mutex-et.
• Megvalósítás könnyű és • Ha a mutex nem zárolt, akkor egyből beléphet a kritikus szekcióba
hatékony
• A zárolás automatikusan beállítódik
• Kétféle állapota lehet
• Nem zárolt • Megelőzve azt, hogy másik szál belépjen a kritikus szekcióba
• Zárolt • Ha a mutex már zárolt,
• Egyetlen bit is elegendő lenne
• A hívó szál blokkolódik addig, ameddig a zárolás fel nem oldódik.
• A gyakorlatban egy egész értéket
használnak • Ha több szál is vár ugyanarra a mutex-re
• 0 nem zárolt
• Bármilyen más érték zárolt • Ha feloldódik, akkor csak az egyik szálnak lesz engedélyezve
• Két eljárás folytatódjon és újra zárolja azt
• mutex_lock • Ezek a zárolások nem kötelezőek
• mutex_unlock
• Csak a programozótól függ, hogy helyesen használja-e azokat
Processzusok 27 Processzusok 28
Mutex-ek Mutex-ek
• Néhány Pthreads hívás a mutex-ekre • Másik szinkronizálási
mechanizmus
• Feltételes változók
• Megengedi a szálaknak,
hogy blokkolódjanak,
amennyiben valamilyen
feltétel nem teljesül
• Két módszert gyakran
együtt használjuk
• Zárol egy mutex-et
• Várakozik egy feltételes
változóra, amikor nem
kapja meg azt amire
szüksége van
Processzusok 29 Processzusok 30
Monitorok Monitorok
• Úgy tűnik, hogy a szemaforokkal és mutex-ekkel a • Helyes programok írásának megkönnyítése
processzusok közötti kommunikációt könnyen meg lehet • Brinch Hansen és Hoare
oldani • Magasabb szintű szinkronizációs primitívek használatának javaslata
• A gyártó kódjában két down-t megcserélve • Monitoroknak nevezték el
• A mutex értékét csökkenti először az empty előtt • Monitor
• Ha tároló teljesen tele lenne, akkor a gyártó blokkolódna • Eljárások, változók és adatszerkezetek együttese
• mutex = 0 • Speciális modulba/csomagba vannak összegyűjtve
• A fogyasztó ezután próbálná a tárolót elérni • A processzusok bármikor hívhatják a monitorban lévő eljárásokat
• down végrehajtása a mutex-en • Nem érhetik el a belső adatszerkezeteit
• Szintén blokkolódna • Objektumorientált nyelvekben is használt szabály
• Végtelenségig blokkolt állapotban maradna • Minden időpillanatban csak egy processzus lehet aktív egy monitorban
• Nem folytatódna soha a munka • A monitor eljárásokat másképpen kell kezelni
• Holtpont alakulna ki • Az első néhány utasítás ellenőrzi, hogy van-e már aktív processzus a monitoron
• Ezt később részletesen fogjuk tárgyalni! belül
• Óvatosan kell a szemaforok használatát kezelni • A fordítóprogramtól függ a megvalósítás
Processzusok 31 Processzusok 32
Monitorok Monitorok
• Könnyű módszer a kölcsönös kizárás eléréséhez • Szükség van egy szabályra
• Nem elegendő • Mi történjen a signal után?
• Szükség van olyan módszerre, amellyel egy processzust
blokkolhatunk, ha nem tud tovább haladni • Hoare
• Megoldás állapot változók bevezetése • Az újonnan felébresztett processzust hagyjuk futni
• Nem számlálók • A másikat felfüggesztjük
• Nem gyűjtenek signal-okat későbbi felhasználásra • Brinch Hansen
• Rajtuk végezhető műveletek • A signal-t végrehajtó processzus azonnal lépjen ki a monitorból
• wait
• signal csak az utolsó utasítás lehet
• signal
• Egy monitorban lévő eljárás nem tudd tovább dolgozni • Egyszerűbb és könnyebb is megvalósítani
• Végrehajt egy wait-et egy állapotváltozón • Ha több processzus is vár ugyanarra a változóra
• Ez a hívó processzus blokkolását okozza • Az ütemező által meghatározott fog felébredni a signal hatására
• Megengedi azt is, hogy egy előzőleg a monitorba való belépéstől eltiltott
processzus belépjen a monitorba
• Felébresztheti az alvó processzust egy signal-lal azon az állapotváltozón, amelyre a másik
éppen vár
Processzusok 33 Processzusok 34
Üzenetküldés Üzenetküldés
• Processzusok kommunikációja • Tervezési kérdések az
• Két primitívet használ üzenetküldési rendszereknél
• send(cél, &üzenet) • Hálózatba kötött gépeken futó
• receive(forrás, &üzenet)
processzusok kommunikációja
• Az üzenet elveszhet a hálózaton
• Rendszerhívások • Nyugtázó üzenet visszaküldése
• Hasonlítanak a szemaforokra • Amennyiben a küldő, adott
• Nem monitorok időkorláton belül nem kapja meg a
visszaigazolást, akkor újra küldi az
üzenet
• A válasz nem jutott vissza a feladóhoz?
• Üzenetek azonosítása
• Hitelesítés
• A megfelelő processzus kapja meg az
üzenetet
• Küldő és fogadó ugyanazon a
gépen található
• Teljesítményi problémák
• Lassabb, mint a többi eddigi eszköz
A gyártó-fogyasztó probléma üzenetküldéssel
Processzusok 35 Processzusok 36
Üzenetküldés Üzenetküldés
• Levelesláda • Ideiglenes tárolás
adatszerkezet elhagyása
• Adott számú üzenet • Ha receive előtt send-et
tárolására alkalmas hajtunk végre
• Elküldött, de még fel nem • Küldő blokkolódik, amíg a
dolgozott üzenetek receive végrehajtódik
• A cím paraméterek ilyenkor • Ha a send előtt receive
nem processzusok hajtódik végre
• Levelesládák • Fogadó blokkolódik, amíg a
• Ha tele van a levelesláda send blokkolódik
• A küldő felfüggesztődik • Randevúnak nevezzük ezt
• Üres a levelesláda
a stratégiát
• Könnyebb megvalósítani
• A fogadó
A gyártó-fogyasztó probléma üzenetküldéssel felfüggesztődik???!!! • Kevésbé rugalmas
• Erre nincs utalás a könyvben
Processzusok 37 Processzusok 38
Sorompók Sorompók
• Sorompó primitív
• Könyvtári eljárás
• Fázisokra osztjuk az alkalmazást
• Szabály
• Egyetlen processzus sem mehet tovább a következő fázisra, amíg
az összes processzus nem áll készen
• Sorompó elhelyezése mindegyik fázis végére
• Amikor egy processzus a sorompóhoz ér, akkor addig blokkolódik
ameddig az összes processzus el nem éri a sorompót
• A sorompó az utolsó processzus beérkezése után Sorompó használata:
elengedi a azokat a. Processzusok közelítenek egy sorompóhoz.
b. Egy processzus kivételével mindegyik processzus blokkolódik a sorompónál.
• Nagy mátrix-okon végzett párhuzamos műveletek c. Amikor az utolsó processzus a sorompóhoz ér, mindegyiket tovább engedi
Tanenbaum, Modern Operating Systems 3 e, (c)
2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Processzusok 39 Processzusok 40
Processzusok 41 Processzusok 42
Egy megoldás az étkező filozófusok problémájára II. Egy megoldás az étkező filozófusok problémájára III.
Ábra forrása: Tanenbaum könyv Ábra forrása: Tanenbaum könyv
Processzusok 43 Processzusok 44
Processzusok 45
Klasszikus IPC-problémák
Ütemezés
• Processzusok versengenek a CPU-ért
• Egy CPU áll rendelkezésre
PROCESSZUSOK III.
• Az OS dönti el, hogy melyik kapja meg a CPU-t
• Az ütemező (scheduler) hozza meg a döntést
• Ütemezési algoritmus
Processzusok 3 Processzusok 4
Ütemezés Ütemezés
• Kötegelt rendszereknél mágnesszalagon tárolták a • Processzusok viselkedése • Számítás (CPU) igényes
feladatokat • Váltogatva végzett processzusok
számítások és I/O műveletek • I/O igényes processzusok
• A szalagon következő feladatot futatták
• Tipikus működés
• Egyszerű • CPU dolgozik
• A CPU-k sebességének
• Rendszerhíváshoz ér növekedésével inkább I/O-
• Időosztásos rendszereknél • Pl. fájlt ír vagy olvas igényesek lettek a
• Bonyolultabb • Aztán újra dolgozik processzusok
• A következő B/K tevékenységig
• Több felhasználó várakozik
• Blokkolt állapot
• Lehetnek még kötegelt feladatsorok is
• Az eszköz tevékenységének a
• Háttérfeladatok egyfelhasználós rendszerek esetén befejezését meg kell várni
• Korlátozott számú CPU erőforrás
• Sohasem elég
Processzusok 5 Processzusok 6
Ütemezés Ütemezés
• Mikor ütemezünk? • Időzítő megszakítás • Ütemezési algoritmusok csoportosítása
• Kötegelt
• Amikor a processzus kezelés • Nincsenek felhasználók
befejeződik • Nem megszakítható • Nem megszakítható ütemezési algoritmusok
• Amikor egy processzus • Amíg blokkolódik a • Hosszú időszeletek kombinálása megszakítható ütemezési algoritmusokkal
blokkolódik I/O művelet kiválasztott processzus nem • Csökken a kontextus cserék száma
miatt vagy szemafor miatt futhat • A teljesítmény nő
• Önszántából le nem mond a • Interaktív rendszerek
CPU-ról • Időnkénti megszakítás nélkülözhetetlen
• Új processzus jön létre
• Megszakítható • A CPU nem sajátítható ki
• I/O megszakítás • Előre meghatározott ideig
• Megszakításos ütemezésre van szükség
következik be futhat • Nem együtt működő processzusok
• Vannak ártó szándékúak is
• Időzítő megszakítás • Az időintervallum végén
• Valós idejű
következik be felfüggesztésre kerül
• Nem mindig van szükség megszakításos ütemezésre
• Az ütemező másik
• A processzusok eleve nem futnak sokáig
processzust választ
• Csak a feladatra koncentráló processzusok futnak
Processzusok 7 Processzusok 8
Ütemezés Ütemezés
• Ütemezési algoritmusok céljai • Kötegelt rendszerek • Interaktív rendszerek
• Vannak olyam célok, amelyek elérése mindig kívánatos
• Áteresztő képesség • Válaszidő
• Az összes rendszerre vonatkozó elvek • Időegység alatt végrehajtott • A parancs kiadása és a
• Pártatlanság feladatok száma válasz megérkezése között
• Hasonló processzusok hasonló szolgáltatást kell kapniuk • Maximalizálni kell eltelt idő
• Különböző csoportok kezelése eltérhet • Áthaladási idő • Minimalizálni kell
• Ütemezési elvek betartása • Háttértevékenységeket
• A feladat beküldése és
• A policy-kat be kell tartani befejeződése között eltelt idő „háttérbe kell szorítani”
• Egységes terhelés elosztás • Minimalizálni kell • Arányosság
• Folyamatos kihasználtság • CPU kihasználtság • A felhasználók elvárásainak
• Feladatok összeválogatása való megfelelés
• Nem igazán jó mérőszám
• Processzusok helyes
• Az előző kettő jobb
sorrendjének megválasztása
Processzusok 9 Processzusok 10
Processzusok 11 Processzusok 12
Processzusok 15 Processzusok 16
Háromszintű ütemezés
Processzusok 17 Processzusok 18
Processzusok 21 Processzusok 22
Processzusok 23 Processzusok 24
• Párhuzamos
súlyozott átlaga részét fogja megkapni rendelkező processzust fogja
• Könnyű kiszámítani 𝑎 = 1 2 esetén
futtatni
• 𝑛 processzus, CPU 1 𝑛-ed
processzusoknál nehéz • Új értéket hozzáadjuk a jelenlegi értékhez
• Összeget 2-vel osztjuk részét fogja megkapni
meghatározni, hogy • 1 bittel való jobbra léptetés
melyik a legrövidebb
Processzusok 27 Processzusok 28
• Minden processzus • Több sorsjegy növeli az • A processzusokat eddig • Minden felhasználó kap
sorsjegyet kap esélyét az erőforrás önmagukban tekintettük egy CPU hányadot
• Különböző rendszerbeli odaítélésének • Több felhasználós • Az ütemező figyelembe veszi
erőforrásokhoz • Nagyon jó a válaszidő rendszerek esetén minden a döntéskor
• Pl. CPU • Kooperatív processzusok felhasználó több processzust • Pl. két felhasználó esetén
• Sorsjegyet véletlenszerűen is elindíthat 50-50%
átadhatják egymásnak a
kiválasztjuk sorsjegyeket • Az ütemezéskor • Függetlenül attól, hogy ki
hány processzust indított el
• Az a processzus kapja meg
• Sok problémára kínál figyelembe vehetjük, hogy
az erőforrást, akinél a
sorsjegy van megoldást ki hozta létre a
• Pl. CPU adott arányú processzusokat
elosztása processzusok között
Processzusok 29 Processzusok 30
Processzusok 33 Processzusok 34
Szálütemezés Szálütemezés
• Kernel-szintű szálak • Nagy különbség a felhasználói- és kernel-szintű szálak
között
• Kernel választja ki, hogy
• Teljesítmény
melyik szál fusson • Felhasználó szálak esetén
• Nem veszi figyelembe, • Néhány gépi utasítás a szálváltás
hogy melyik • Blokkolódik a processzus I/O művelet esetén
• Alkalmazás szerinti szálütemezés
processzushoz tartozik a • Ismeri a szálak feladatait
szál • Jobban be tudják hangolni az alkalmazáshoz
tartozó szálakat, mint a kernel
• Néha azért igen
• Kernel szintű szálak esetén
• Teljes kontextus cserére van szükség
• Ezt figyelembe veheti
Lehetséges kernel-szintű • Processzuson belül szálra vált
szálütemezés. 50 msec-es időszelet, • I/O művelet miatt blokkolás esetén
ha a szálak 5msec-ig futnak • Nem blokkolja az egész processzust
Input/Output
Az OS főfeladata
Az eszközök vezérlése
Parancsok kiadása
Megszakítás- és
Operációs Rendszerek
hibakezelés
Könnyű használat
Egységes módszer az
eszközök közötti
kapcsolat biztosítása
Az OS teljes kódjának
jelentős része
Eszközvezérlők Eszközvezérlő
Mechanikus és elektromos összetevők Vezérlőkártya – csatlakozó – kábel
Elektromos komponens Több hasonló eszközt is fel lehet csatolni
Eszközvezérlő ~ adapter Szabványos kapcsolódási felület esetén
Mechanikus komponens maga az eszköz Különböző gyártók eszközei is felcsatolhatóak
Az OS majdnem mindig a vezérlővel foglalkozik
A vezérlő és az eszköz közötti kapcsolódási felület
alacsony szintű
Memórialeképezésű I/O Megszakítások
A vezérlők rendelkeznek néhány regiszterrel A vezérlőregisztereknek egy vagy több állapotbitjük
CPU-val való kapcsolat tartásra használ van
Regiszterekbe való írással utasítja az eszközt Tesztelés – küldés vagy fogadás történik-e
Adat pufferrel is rendelkeznek, melyeket az OS írni és Tevékeny várakozás
CPU-ciklus, ami az állapotbit-et teszteli
olvasni is tud
Készen áll-e az eszköz a feladat végrehajtására
Pl. videó memória
Nagy mennyiségű I/O esetén lehet, hogy hosszú ideig kell
várakozni
Megszakítások
Közli a CPU-val, hogy mikor lehet írni vagy olvasni a
regisztereket
Lemezes egységek
Cı́mzés:
Közvetlen memóriaelérés • CHS (Cylinder, Head, Sector), Sugár, fej
és szög megadásával. Pl. IDE.
Sín címsorában van az a memóriacím , ahová a belső • LBA (Logical Block Address), minden
pufferből kell a következő szót vinni szektornak külön azonosı́tó. Pl. SCSI,
Miért nem egyből a memóriában tárolja a lemezről EIDE. Cilinder, Pálya, Szektor
érkező adatot? Átviteli idők:
A lemezvezérlő ellenőrizheti a hibajavító kódot • Keresési (seek): cilinderek közötti ugrás
Ha hiba van, akkor hibajelzés generálódik és nem történik • Fordulási (rotation): szektorok közötti fordulás
meg az adatátvitel a memóriába • Átviteli (transfer): adatı́rási/olvasási idő
Folytonos adat a lemezről, állandóan a rendszersínhez kell Adatátvitel optimalizálása
fordulnia • Fordulási, átviteli idők adottak
Ha foglalt a memóriasín, akkor a vezérlőnek várakoznia kellene
• Keresési idő befolyásolható az átviteli kérések kiszolgálási
Tárolni kell az adatot
sorrendjének meghatározásával
151
Be- és kivitel Lemezek Be- és kivitel Lemezek
Első kérés - első kiszolgálás (First-Come, First-Served) Liftes algoritmus (elevator algorithm)
152 153
Lemezek kezelése
Szinkron/aszinkron adatátvitel
CPU elindítja a folyamatot, más feladatot lát el a megszakítás
érkezéséig
154
Holtpontok
• Sok olyan erőforrás van
• Egy időben csak egy processzus használhat
• Pl. nyomtató, szalagmeghajtó egység, OS belső táblázatainak bejegyzései
Holtpontok 3 Holtpontok 4
Holtpontok Holtpontok
• Erőforrások fajtái
• Erőforrások
• Megszakítható
• Hardvereszközök • Hiba bekövetkezte nélkül elvehető a processzustól
• Pl. memória
• Információ • Megszakíthatatlan
• Monopol módú
• Felcserélhető erőforrások • Számolási hibát eredményez az elvétele a processzustól
• Az erőforrásnak több egymással példánya van • Általában a holtpontok megszakíthatatlan erőforrásokat foglalnak
magukba
• A kérést bármelyik példány teljesíteni tudja • A lefoglalható erőforrásoknál a potenciális holtpontok megoldhatóak az erőforrások
újra osztásával
• Erőforrás • Az erőforrások használatának esemény szekvenciája
• Ugyanabban az időben • Erőforrás igénylés
csak egy processzus használhat • Erőforrás használat
• Erőforrás elengedése
• Amennyiben az erőforrás nem áll rendelkezésre, akkor az igénylő
processzusnak várakoznia kell
• Blokkolás ébresztés
• Hibaüzenet várakozás újra próbálkozás
Holtpontok 5 Holtpontok 6
Holtpontok Holtpontok
Holtpontok Holtpontok
• Mindegyik processzus
várakozik
• Egyikük sem okozhat olyan
A holtpont formális definíciója: eseményt, ami
felébresztene a halmaz
A processzusok egy halmaza holtpontban van, ha
bármelyik másik elemét
mindegyik halmazbeli processzus olyan eseményre
• Egy szálú processzusokat
várakozik, amelyet csak egy másik, halmazbeli
tételezünk fel és nem
processzus okozhat. keletkezik megszakítás
• Más processzus által
lefoglalt erőforrás
elengedésére várakoznak
Holtpontok 9 Holtpontok 10
Holtpontok Holtpontok
• A holtpont feltételei • A holtpont feltételei (folyt.)
1. Kölcsönös kizárás
• Mindegyik feltételnek teljesülnie kell a holtpont
• Mutual exclusion
• Minden erőforrás vagy hozzá van rendelve egy processzushoz vagy
kialakulásához.
szabad • Kevesebb feltétel teljesülésekor nem alakul ki holtpont
2. Birtoklás és várakozás • Előfordulhatnak más jellegű holtpontok
• Hold and wait
• Ütemezési holtpont
• Erőforrásokat birtokló processzus újabb erőforrásokat kér
3. Nem megszakíthatóság • …
• Non-preemptable
• Egy processzustól erőszakkal nem vehető el az erőforrás
4. Ciklikus várakozás feltétel
• Kettőnél több processzusból álló listában mindegyik processzus olyan
erőforrásra várakozik, amely a listában rákövetkező processzushoz
tartozik. Az utolsó a lista első eleméhez tartozó erőforrásra vár.
Holtpontok 11 Holtpontok 12
Holtpontok Holtpontok
• Négy feltétel irányított gráfokkal való modellezése
• Jelöljük
• Processzust körrel
• Erőforrást négyzettel
• Erőforrás birtoklás
• Nyíl négyzetből körbe
• Erőforrás kérés
• Nyíl körből négyzetbe
birtoklás kérés
Holtpontok 15 Holtpontok 16
Holtpontok 17 Holtpontok 18
Holtpontok 21 Holtpontok 22
C
i 1
ij Aj Ej
Holtpontok 23 Holtpontok 24
Holtpontok 27 Holtpontok 28
• i→A; j→B
• j→A; i→B
• Ha i>j, akkor nem kérheti A j-t
Holtpont nem lehetséges
• Ha i<j, akkor nem kérheti B i-t
A holtpont megelőzési technikák összefoglalása.
• Előfordulhat, hogy lehetetlen találni egy rendezést, ami mindent kielégít
• Proc. tábla, zárolt adatbázis rekord, más absztrakt erőforrások
• A különböző használat és a potenciális erőforrások számozásai olyan nagy lehet
Holtpontok 29 Holtpontok 30
Holtpontok 33 Holtpontok 34
I2 és I6 kereszteződésénél holtpont
A processzus plottert igényel
B-nél van
B processzus printert igényel
A-nál van
Holtpontok 35 Holtpontok 36
Memória kezelés Több tíz vagy néhányszáz giga byte, lassú, olcsó, nem
felejtő
Memóriakezelő
Nyilvántartja a szabad és foglalt memória területeket
Memóriát foglal a proc.-oknak, amikor szükséges
Memóriát szabadít fel, ha már nincs rá szükség
Csere vezérlése a központi memória és a lemez között
Ha kicsi a központi tár
1 2
Kézi számítógép,
3 Nagy számítógépek MS-DOS 4
beágyazott rendszerek
5 6
Relokáció és védelem Relokáció és védelem
Munkák különböző címeken futnak Bázis- és határregiszter
Hol fog kezdődni a program a memóriában
Partíció kezdő címe és a partíció hossza
Egyetlen címtérbe szerkeszti össze a linker a programokat
Memóriacím=bázisregiszter+hivatkozott memóriacím
Relokációs probléma
Címek ellenőrzése a határregiszter segítségével
Program betöltésekor az utasítások módosítása
Melyek a relokálandó címek? → térkép Felhasználói program nem módosíthatja azok értékeit
OS/MTF Egy összeadás és egy összehasonlítás
Multiprogramozás fix számú feladattal
Speciális hardver az összeadásra
2KB-os blokkok
Kevés számítógép használja ezt a modellt
Négybites védelmi kód
A program állapotszó tartalmaz egy négybites kulcsot
Védelmi kód ↔ négy bites kulcs
7 8
Csere Csere
Kötegelt feldolgozású rendszereknél hatékony módszer a
rögzített méretű memória partíciók használata
Időosztásos rendszereknél gyakran nincs elég memória
Felesleges processzusokat a lemezen tároljuk
Dinamikusan kell betölteni a futtatásra
Stratégia
Csere/swap
Teljes egészükben való mozgatása a memória és lemez között
Virtuális memória
Egy része a memóriában marad
Memória változása a processzusok indulásakor és leállásánál
9 10
Csere Csere
Csere lyukakat hoz létre a memóriában a processzusok
mozgatásával
Összeolvasztás = memóriatömörítés
Nagy processzorigény
Processzusok adatszegmensének növekedése
problémát okoz
Dinamikus memória foglalás
Külön memóriarész foglalása, amikor egy proc.-ot
behozunk vagy áthelyezünk
Csak a ténylegesen használt memóriaterületet kell kimásolni
(a) Növekvő adatszegmens (b) növekvő adat- és
11 veremszegmens számára lefoglalt memóriaterület 12
Memóriakezelés bittérképpel Memóriakezelés bittérképpel
Memóriahasználat nyilvántartása Allokációs egység mérete fontos tervezési szempont
Bittérkép, szabadlista Kicsi → bittérkép nagy
Nagy → bittérkép kicsi
Pocséklás az utolsó egységből, ha a proc.-ok mérete nem
pontos többszöröse az allokációs egységnek
k méretű processzusnál
k darab egybefüggő 0 bitet kell keresni
Lassú művelet
15 16
17 18
Lapozás Lapozás
16 bites címek Ha a program egy olyan lapra hivatkozik, ami nincs a
0-64 KB fizikai memóriában
32 KB fizikai memória
Laphiba megszakítás
Lap = virtuális címtér
felosztása Op.rendszer vesz egy lapkeretet
4 KB Kiírja annak a tartalmát
Lapozás Laptáblák
Kettő hatvány méretű Laptábla
lapok Virtuális lapok lapkeretre való leképzését szolgálja
Egy függvény
4 bites lapszám
Argumentuma
16 lap
virtuális lapszám
12 bites offset Eredmény
4096 cím egy lapon belül Lapkeret száma
21 22
23 24
TLB-címfordítási gyorsítótár Szoftveres TLB-kezelés
Hardveres laptábla és TLB
MMU kezeli
Csak akkor kap megszakítást az op.rendszer, ha lap nincs a
memóriában
Szoftveres megoldás
Nagyon kevés utasítással kell megvalósítani a hiba kezelést
A TLB hiba sokszor fordul elő
Stratégiák
Legvalószínűbb lapok meghatározása
Előre látható folyamatok
25 26
27 28
Az optimális lapcserélési
Lapcserélési algoritmusok algoritmusok
Laphiba esetén Egyszerű, de lehetetlen végrehajtani
Lapcsere – melyik lapot válasszuk, amelyik kikerül a Hány utasítás után fogunk hivatkozni az adott lapra?
memóriából A legnagyobb számú lapot kell kiválasztani
Módosított lap, akkor a lapot vissza kell írni a lemezre Program szimulátor
Ritkábban használt lap kiválasztása Nyomon követjük a hivatkozásokat
Jobb teljesítmény Ez csak szimulálás!!!
Ugyanaz a probléma, mint a Csak az adott körülményekre igazak a vizsgálatok
Gyorsítótárak
Webböngésző
29 30
Az NRU lapcserélési algoritmus NRU lapcserélési algoritmus
Minden laphoz két állapotbit kapcsolódik R-M bitek inicializálása 0-val
R bit minden hivatkozáskor 1-re állítódik Időnként nullázzuk az R bitet
Olvasáskor és íráskor is Utóbbi időben nem hivatkozott lapok megkülönböztetése
M bit módosításkor lesz 1 Laphiba esetén az R-M bitek alapján 4 csoportot
Hardveres karbantartás különböztethetünk meg
1-es marad, amíg az op.rendszer vissza nem állítja 0-ra 0. osztály: nem hivatkozott, nem módosított
Szoftveres szimulálás 1. osztály: nem hivatkozott, módosított
Proc. inditásakor az összes laptáblabejegyzését megjelöljük
???
2. osztály: hivatkozott, nem módosított
Nincs bent a memóriában
3. osztály: hivatkozott, módosított
Ha egy lapra hivatkozunk
Laphiba op.rendsz. beállítja az R bitet és megváltoztatja a laptábla Not Recently Used
bejegyzését CSAK_OLVASHATÓ-ra, majd a proc. az adott az utasítástól újra Véletlenszerűen kiválaszt egy lapot
indul
Ha később egy lapra írunk
A legkisebb sorszámú nem üres osztályból
Ezt dobja ki a memóriából
Laphiba op.rendsz. beállítja az M bitet és megváltoztatja a laptábla
bejegyzését ÍRHATÓ_OLVASHATÓ-ra, majd a proc. az adott az utasítástól Egyszerű, közepesen hatékonyan megvalósítható
újra indul
Nem optimális, gyakran megfelelő
31 32
Folytatjuk a keresést
33 34
Hardveres implementáció
64 bit-es számláló
Minden memóriahivatkozásnál automatikusan eggyel nő
35 36
Az LRU lapcserélési algoritmus Az LRU szoftveres szimulációja
Egy n lapkeretes géphez nn-es bináris mátrixot rendelünk. Kevés hardveres támogatottság
Kezdetekben 0-val töltjük fel
Szükség van szoftveres megvalósításra
Amikor k lapkeretre hivatkozunk
k-adik sor csupa 1-es-re állítjuk NFU – Not Frequently Used – nem gyakran használt
k-adik oszlop csupa 0-ra állítjuk algoritmus
A legkisebb bináris értékű sor lesz a legrégebben használt lap Minden laphoz egy szoftveres számláló tartozik
Minden óramegszakításkor a lap R bitjét hozzáadja a
számlálóhoz
Milyen gyakran használják a lapot
37 38
39 40
41 42
A munkahalmaz modell A munkahalmaz modell
Ha a memória túl kicsi ahhoz, hogy befogadja az egész Minden t időpillanatban létezik egy olyan halmaz, amely
minden, a k legújabb hivatkozásokat tartalmazó lapot
munkahalmazt tartalmazza
A processzus sok laphibát okoz → lassabban fut w(k, t) halmaz a munkahalmaz
Minden t időpillanatban létezik egy olyan munkahalmaz, amely a k
Vergődés legújabb hivatkozásokat tartalmazó lapok halmaza
nagy k érték távolabbi múltat reprezentál
Gyakori laphiba egy program esetén A hozzá tartozó lapok száma nem csökkenhet k növekedésével
Munkahalmaz modell w(k, t) monoton nem csökkenő függvénye k-nak
43 44
47 48
Lokális vagy globális helyfoglalás Lokális vagy globális helyfoglalás
Globális algoritmus Ha sok proc. van a memóriában
Ellátunk minden proc.-ot méretarányos számú lappal
A foglalás dinamikusan változik a proc.-ok futásakor Nem lehetséges az A szint alatt tartani laphibák számát
Frissíteni kell Néhány proc.-ot el kell távolítani a memóriából
Laphiba gyakoriság (Page Fault Freq. ) algoritmus
Növelni vagy csökkenteni kell a proc.lap foglalását
Elosztjuk a többi proc. között
Nem mond semmit arról, hogy melyik lapot kell kicserélni laphiba Tartalék laphiba esetére
esetén
Teherelosztás
Melyik proc.-ot vigyük ki?!
Kevés lapkerete van
adni kell neki Csere is szükséges a lapozás mellett
49 50
Lapméret Lapméret
Paraméter Kis lapméret Kis lapméret
Hardver lapméret 512 Véletlenszerűen A program több lapból áll → nagyobb laptábla szükséges
Egy nagy lap átvitele majdnem ugyanannyi ideig tart, mint egy kis
byte kiválasztott kód-, adat-, lapé
1 KB-os lapoknak veremszegmensek nem Átlagos proc. méret s, lapméret p byte,
tekintheti az op.rendsz. foglalnak el egész számú laptáblabejegyzés mérete e byte
2 egymás melletti 512 byte- lapot Egy proc.-hoz s/p lap kell → se/p byte-ot foglal
os lapkeret
Belső töredezettség Elvesztett memória átlagosan p/2 byte
Optimális lapméret Utolsó lapnak átlagosan a Költség = (se/p) + [p/2]
Különböző tényezők fele üres marad
nagy, ha a p lapméret (kicsi) + [nagy]
n db szegmens, p byte-os
p szerinti derivált –se/p2+1/2=0 p=(2se)1/2
egyensúlya lapméret
Nincs optimum Átlagos veszteség Egy tipikus méret 1 KB
np/2 4 KB és 8 KB a legelterjedtebb
51 52
53 54
Szegmentálás Szegmentálás
Szegmensek Szegmentált vagy két dimenziós memóriában
Több, egymástól teljesen független címterek A címek két részből kell állniuk
Szegmens száma és a szegmensen belüli címből
Változó méretű adatszerkezet egyszerű kezelése
Osztott könyvtár
Adatok vagy eljárások megosztása proc.-ok között
Pl. graf. könyvtár
Tiszta lapozásos rendszer esetén
Bonyolult dolog
Szegmentálás szimulálása
55 56
A tiszta szegmentálás
Szegmentálás implementációja – külső töredezettség
57 58
File-rendszerek
Információ tárolás, visszakeresés
A memóriában program csak egy részét tároljuk
Helyfoglalási rendszerek
Operációs rendszerek Banki alkalmazások
Vállalati nyilvántartás
A processzus befejezésekor az információk elvesznek
Több processzusnak egy időben kell ugyanazon
információkhoz hozzáférnie
1 2
File-rendszerek File-rendszerek
Hosszú távú információtárolás követelményei A file-okat az operációs rendszer kezeli - File-rendszer
File-ok szerkezete, elnevezése, hozzáférése, használata,
Biztosítani kell a nagyméretű információ tárolását védelme, megvalósítása
Az információ megmaradjon a processzus befejezése Felhasználó szempontjai
után Hogyan jelenik meg
Mi a file-ok tartalma?
Több proc. egy időben hozzáférjen az információkhoz Hogyan lehet elnevezni a file-okat
Védeni?
Milyen műveleteket végezhetők file-okon?
Mágneslemezen vagy külső tárolón tároljuk az File-rendszer tervezői szempontok
információkat Láncolt lista – bittérkép
Tárolási egység – file Hány szektor van a logikai blokkban?
…
Tartós tárolás
3 4
File-ok File-szerkezet
File-nevek Az operációs rendszer nem foglalkozik mi van a file-
Absztrakciós mechanizmus ban
Tárolás és visszaolvasás Byte sorozat
Objektumok elnevezése és kezelése A jelentést a program adja
Létrehozáskor a processzus nevet ad neki Rögzített hosszúságú rekordok
Eltérőek lehetnek a különböző operációs rendszerek esetén Meghatározott belső struktúra
5 6
File-szerkezet File-típusok
Karakter-specifikus
Bemenet/kimenet
Soros I/O eszközök modellezik
Terminálok, nyomtatók és hálózatok
Block-specifikus
Mágneslemezegységek
Közönséges file-ok
ASCII
Szöveg-sorok
Megjeleníthető, szerkeszthető
Bináris állományok
Nem szöveges (ASCII) állományok
7 8
File-típusok File-elérés
Szekvenciális
A processzusok megadott sorrendben olvassák a file-
okat
Az elsőtől (byte-ok, rekordok) kezdve
Nem tud átlépni egy egységet
Mágnesszalag
Közvetlen elérés
Mágneslemez
Adatbázisok
read, seek
File-attribútumok File-műveletek
Létesítés Hozzátoldás
Információk File létrejöttének bejegyzése Csak a file végéhez lehet
Attribútumok beállítása Pozicionálás
Attribútumok Törlés Aktuális pozíció beállítása
Lemezterület felszabadítása Attribútum lekérdezés
metaadatok Megnyitás Feladatok elvégzéséhez szükséges
Attribútumok beolvasása információk
Néhány lemezcím betöltése Attribútum beállítás
Lezárás Pl. védelmi mód
Belső memória terület felszabadítása Átnevezés
Utolsó blokk kiírása Másolás – törlés ???
Olvasás Zárolás
Adatok betöltése a memóriába aktuális Nem férhet több processzus egyszerre
pozíciótól hozzá
Byte-ok száma, hova File vagy annak egy része
Írás
Aktuális pozíciótól
Adatok felülírása
Ha file végén áll, akkor növekszik a file
mérete
11 12
Könyvtárak Egyszerű könyvtárszerkezet
Könyvtárak – mappák Könyvtárak száma változó lehet
Néha file-ok Egy könyvtár – egy felhasználó
Egyszerű könyvtár-szerkezet Pl. PDA-k
Egy bejegyzés egy file-hoz
Több könyvtár – több felhasználó
File megnyitásakor a rendszer keres a könyvtárban
Kiolvassa a file attribútumait és a lemezcímeket Root directory
Könyvtári bejegyzésből
A könyvtári bejegyzés által mutatott címről
A B C
Eltárolja ezekez az adatokat a memóriába
13
A A B B C C C 14
15 16
17 18
File-ok megvalósítása File-ok megvalósítása
Melyik lemezblokk-ok tartoznak a file-hoz? Láncolt listás helyfoglalás
Folytonos helyfoglalás Lemezblokk-ok láncolt listája
Az első szó a következő blokk-ra mutató pointert tartalmazza
Összefüggő blokkok
A többi rész adatot tárol
Első blokk címe, blokk-ok száma Minden blokk felhasználható
Hatékony olvasás Csak az utolsó blokk belső töredezettsége
Teljes file beolvasható egyetlen művelettel A könyvtár bejegyzéseknél elegendő csak az első blokk címét
Hátrány tárolni
Töredezett lemez
A szekvenciális olvasás egyértelmű
File-ok és lyukak A közvetlen elérés lassú
CD, DVD Nem lesz kettő hatvány a blokk mérete
A mutató tárolása lefoglal néhány byte-ot
Nem változik a file-rendszer
19 20
21 22
23 24
Könyvtárak megvalósítása Könyvtárak megvalósítása
A probléma szorosan kapcsolódik az attribútumok File-ok kapcsolása/link
tárolásához Unix
i-csomópont
Pl. file tulajdonosa, létrehozási dátuma Akárhány könyvtári
bejegyzés mutathat
Lehetőségek ugyanarra az i-csomópontra
Könyvtári bejegyzésben Mező, amely növekszik, ha
új kapcsolat létesül
Fix méretű bejegyzés
Csökken, ha kapcsolatot
i-csomópont törlünk
Csak akkor törlődik, ha 0 az
Bejegyzés rövidebb lehet értéke
Hard link
Csak egy adott file-
rendszeren belül
25 26
31 32
35 36
File-rendszerek megbízhatósága File-rendszerek megbízhatósága
Mentések
A file-rendszer segítheti az információ védelmét
Helyreállítás katasztrófa esetén
A lemezek nem tökéletesek, használat közben is Helyreállítás hiba esetén
39 40
43 44
45 46
Hosszú pozícionálás
49
Pályánkénti pufferolás 50
51 52
Naplózott file-rendszer
LFS takarítófonal/takarító szál
Napló tömörítése
Cirkuláris bejárással régi szegmensek eltávolítása a napló végéről
Cirkuláris puffer
Írást végző szál az elejéhez illeszt szegmenseket
Takarító szál végéről távolítja el a szegmenseket
53