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
strucc: unix Holtpont feloldás Nem foglalkozunk vele 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 Hitel igenylo Birtokol Max A 1 6 B 2 5 C 2 4 D 4 7 szabad: 10 biztonságos állapot szabad: 2 biztonságos állapot 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 process \ resource CD printer robot A 1 1 0 B 1 0 0 C 0 1 0 D 1 1 0 Lefoglalt erőforrások szabad eroforr 0 1 2 foglalt eroforraso 6 3 3 osszes eroforras 6 4 5 További kérések 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?