Operációs rendszerek
10. előadás - Holtpont kezelés, szignálok 2006/2007. II. félév Dr. Török Levente
Links ●
A. Tanenbaum: Op. rendszerek
●
http://www.iit.uni-miskolc.hu/%7Evadasz/GEIAL201/Jegyzet/3rd.pdf
Erőforrás használata ●
Kérése/foglalása
●
Használata
●
Elengedése
Holtpont/Deadlock definiciója Egy csoport processz holtpontban van, akkor ha a csoport minden processze egy olyan erőforrás birtoklására vár, amelyet egy másik a csoporton belüli processz birtokol.
Holtpont feltételei (Coffman 1971) ●
●
●
●
Mutex: minden erőforrás vagy hozzá van rendelve (locked) egy processzhez vagy szabad Birtoklás: egy processz birtokolhat egy erőforrást, majd igényelhet újabbakat Megszakíthatatlanság: egy processz nem vesztheti el az általa birtokolt erőforrást Ciklikusság: kör-körös várakozások alakuljanak ki az erőforrásokon.
Ha valamelyik nem teljesül, nincs holtponti helyzet.
Grafikus ábrázolás ●
Erőforrások: A,B,C,D
●
Processzek: R,S,T,U
Birtoklás
Kérés
Holtpont
Holtpont kialakulása és elkerülése
Holtpont feloldás ●
Nem foglalkozunk a Deadlock-kal
●
Felismerés és helyreállítás
●
Megelőzés (strukturálisan meghiúsítva)
●
Dinamikus megoldás
Holtpont feloldás Nem foglalkozunk vele ●
strucc: unix
●
Valószínűtlen eseménynek tekintjük a helyzetet
Holtpont feloldás: Megelőzés ●
Coffman 1 (mutex) megszüntetése –
●
pl. nyomtató esetén háttér tár használata – DL ott is lehet!
Coffman 2 (birtoklás és továbbhaladás) –
előre meg kell adnia minden processznek, hogy milyen erőforrásokat akar használni: ●
–
●
con: rossz erőforrás kihasználás! a processzek nem tudják előre, hogy mennyi erőforrásra lesz szüksége...
minden újabb lock-olásnál, el kell engedni az összes erőforrást és csak, akkor kapja vissza, ha az igény kielégíthető
Coffman 3 (megszakíthatatlanság) –
no chance
Holtpont feloldás: Megelőzés –
Coffman 4 (ciklikus erőforrás birtoklás) ●
egy proc. egyszerre csak 1 erőforrást birtokolhat. –
●
con: másolás 2 medium között
a processzusok csak egy előre megadott sorrendben igényelhetik az erőforrásokat. – –
pl. 1. nyomt, 2. szallag, 3. lemez, 4. robot con: rossz erőforrás kihasználás, nincs jó sorrend
Holtpont f.: Felismerés, helyreállítás ●
●
ha kör alakulna ki egy kéréskor, megszüntetjük a processzt azokat a processzeket, amelyek hosszú ideig allokálnak erőforrást megszüntetjük (batch rendszerekben újra indítjuk, de a rendszer állapot visszaállítás problémás)
Holtpont feloldás: Dinamikusan ●
Egyetlen erőforrás -> Bankár algoritmus: –
Lényege: ●
●
–
Ha jelen pillanatban ki tudjuk elégíteni valamely processz maximális igényét, akkor biztonságos állapotban vagyunk Ha nem, akkor bizonytalan
Feladat: ●
Megtalálni azt a „pályagörébét”, amelyen biztosítható a biztonságos állapotok átmenetei
Bankár algoritmus (egy erőforrás) ●
Példa Hitel igenylo Birtokol Max A 0 6 B 0 5 C 0 4 D 0 7
Hitel igenylo Birtokol Max A 1 6 B 1 5 C 2 4 D 4 7
szabad: 10 biztonságos állapot
szabad: 2 biztonságos állapot
Hitel igenylo Birtokol Max A 1 6 B 2 5 C 2 4 D 4 7
szabad: 1 bizonytalan állapot
Az algoritmus csak akkor engedélyez átmenetet, ha az mindig biztonságos állapothoz vezet!
Több erőforrás: Dijkstra algoritmus ●
Példa process \ resource CD printer robot A 3 0 1 B 1 1 1 C 1 2 1 D 1 0 0
További kérések
Lefoglalt erőforrások
szabad eroforr 0 foglalt eroforrasok6 osszes eroforrasok6
1 3 4
process \ resource CD printer robot A 1 1 0 B 1 0 0 C 0 1 0 D 1 1 0
2 3 5
1. Kiválasztunk egy processzt. megnezzük, hogy ki lehet-e elégíteni, igényét. 2. Ha igen, akkor odaadjuk és miután befejezte futását az erőforrást visszaadja a rendszernek 3. Teszteljük, hogy az 1. és 2.-es pontokkal létezik-e olyan útvonal, aminek a segítségével a rendszerben az összes processz igénye egymás után kielégíthető.
Problémák ●
●
●
Előre meg kell mondania a processznek, hogy hány erőforrást igényel. Real-time kérdések, a batch-es megoldásokban NINCS, vagy legalább is eddig még nem tudunk tökéletes megoldásról!!!
Ellenőrző kérdések ●
●
●
Milyen lépésekben használunk egy több felhasználós operációs rendszeren egy erőforrást? Mi a holtpont definíciója? Soroljon fel 3 feltételt a Coffman fele 4 feltétel közül, ami a holtpont kialakulásához kell?
●
Milyen holtpont feloldási lehetőségek vannak?
●
Rajzoljon holtpont helyzetet a Tanenbaum jelölési rendszerével.
●
Mi a megszakítás és a kivételek közötti lényeges különbség?
●
Mi a signal-okkal kapcsolatos lépések?
●
HF: Mi a core dump?
●
●
Milyen típusú processz-eknek szokás SIGHUP-ot üzemszerűen (nem processzus elhaláskor) küldeni? Mi a SIGKILL, SIGALARM, SIGUSR1, SIGABORT, SIGFPE?