Operációs rendszerek vizsga 2007. június 12. megoldással
Megjegyzés: ez az oldal jelenleg félkész, ha tudsz valamihez hozzáírni, akkor nyugodtan. Érdemes mindenhez forrást is írni (tankönyből, wikipédiából, diasorokból, stb.), hogy akit érdekel, hozzáolvashasson még az itt leírtakhoz.
Hiányzik még:
- nagykérdések 1., 2., 3., 5.
Beugró kérdések
1. Mi az a szorosan csatolt rendszer?
- Ahol több CPU közös óra és közös memória segítségével működik együtt. Általában egyetlen operációs rendszer van, de az bonyolult.
- Megjegyzés: az architektúrákból megtanult "közös erőforrást használnak" definícióra csak fél pontot adtak.
- Könyv 137. oldal
2. Mi az a körülfordulási idő?
- Egy feladat elindításától a befejezéséig eltelt idő. Magában foglalja a ténylegesen munkával töltött időt és a várakozást is.
- Könyv 148. oldal
3. Mi a rövidtávú ütemezés, mikor jár környezetváltással?
- Ha a futó folyamatnak lejár az időszelete (csak preemptívnél), önként lemond a processzorról (együttműködő folyamatok), blokkoló rendszerhívást hajt végre (pl. I/O művelet), egy másik szál futásra kész állapotba kerül (bekövetkezik, amire várt, vagy újonnan elindítanak egy szálat), egy szál prioritása megváltozik, esetleg egy szál processzor-affinitása megváltozik.
- Környezetváltással akkor jár, ha másik szál választódik ki futásra, mint ami eddig futott. Pl. Windows NT alatt, ha a legmagasabb prioritási szinten pontosan egy folyamat van, akkor megtörténhet, hogy ugyanaz a szál fut tovább, és nem történik környezetváltás.
- Wikipédia: rövidtávú ütemező
- Könyv 413. oldal
4. Hogyan működik a test_and_set?
- Visszaadja egy bit értékét, és ha 0 volt, 1-re állítja. Mindezt oszthatatlanul, vagyis ha 0 volt ott, és többen egyszerre hívtak rá test-and-set-et, akkor az egyiké teljesen lefut, 1-be állítja és nullát ad vissza, mielőtt a többi elkezdene futni (így ők mind 1-et fognak visszaadni).
- Wikipédia: Test-and-set
- Könyv 73. oldal
5. Mi az a Translation Lookaside Buffer, fizikai címcsatolásnál mi a szerepe?
- A virtuális címet fizikai címre a laptábla segítségével lehet fordítani; de ez lassú, plusz egy memória-hozzáférést jelent. Ezért a lapkezdőcímek egy részét egy asszociatív cache-ben eltárolják, ez a TLB. Címfordításkor párhuzamosan indul a keresés a laptáblában és a TLB-ben, ha az egyikben megtalálta, akkor kész.
- Wikipédia: Translation lookaside buffer
- Könyv 171. oldal
6. Mi az a vergődés, és hogyan védekezzünk ellene?
- Ha több memóriára lenne szüksége a folyamatoknak, mint amennyi rendelkezésre áll, ezért túl gyakran keletkezik laphiba, és a processzor idejének nagy része haszontalan lapcserékkel telik.
- Védekezni ellene például azzal lehet, ha a laphiba-gyakoriság függvényében az ütemező változtatja a multiprogramozás fokát: ha kevés a memória, folyamatokat függeszt fel, és swappel ki; ha van elég, akkor épp ellenkezőleg.
- Wikipédia: vergődés
- Könyv 182.-186. oldal
7. Egy futó taszkra IT érkezik. Preemptiv OS esetén az interrupt után mindenképpen 'ide' térünk vissza?
- Nem feltétlenül; például a preemptálás maga is úgy működik, hogy egy időzítő a szál quantumjának lejártakor megszakítást generál; ilyenkor értelemszerűen az ütemező általában nem ugyanazt a folyamatot választja ki futásra.
- Wikipédia: időszelet
- Windows ütemezés diasor, 8. dia
8. 32 bites x86-os (windows) esetén mekkora a felhasználói és a rendszer mód címtartomány mérete?
- Alapból 2GB felhasználói módú és 2GB kernel címterület van, ezt a /3GB kapcsolóval 3GB felhasználói és 1GB kernelre lehet módosítani.
- Windows memóriakezelés diasor 5. dia
9. A Windows OS grafikus komponensének mik az előnyei, hátrányai?
- A grafikus komponens kernel módban fut. Emiatt a hibái az egész rendszert magával ránthatják, viszont gyorsabb, mert kevesebb kontextusváltás kell a rajzoláshoz.
- Windows bevezetés diasor 27. dia
10. Soroljon fel UNIX szabványokat!
- POSIX.1 (teljes nevén: POSIX1003.1): C nyelvű szabványos rendszerhívás-interfész
- System V Interface Definition
- X/Open Portability Guide
- Könyv 281. oldal
11. UNIX OS esetén mi történik folyamat kontextus esetén kernel módban?
- Kivételek, rendszerhívások kezelése.
- Könyv 286. oldal
- UNIX folyamatok diasor, 5. dia
12. UNIX alvási prioritásának ütemezését mi végzi?
- Az alvási prioritást is az ütemező határozza meg, az alapján, hogy mire várakozik a folyamat, vagyis miért hajtott végre sleep() rendszerhívást. Kernel módban az ütemező nem veheti el a futási jogot, ezért amíg nem hajt végre sleep() hívást, addig nincs is szükség a prioritásának meghatározására.
- Könyv 295. oldal
Nagy kérdések
1. Hasonlítsa össze a monolitikus és réteges kernel szerkezetet, ismertetve a két kernel típus jellegzetességeit is.
2. Egy rendszerben 3 erőforrásosztály van (A, B, C), az egyes osztályokba rendre 9, 19 és 29 erőforrás tartozik. A rendszerben 6 folyamat verseng az erőforrásokért, a következő foglalással és új igénnyel:
folyamat | új kérés | aktuális foglalás | ||||
A | B | C | A | B | C | |
P1 | 1 | 10 | 4 | 2 | 8 | 2 |
P2 | 3 | 5 | 7 | 2 | 1 | 3 |
P3 | 1 | 1 | 1 | 1 | 1 | 1 |
P4 | 5 | 6 | 3 | 0 | 1 | 0 |
P5 | 6 | 6 | 7 | 2 | 2 | 2 |
P6 | 5 | 8 | 2 | 0 | 1 | 5 |
A rendszer a bankár algoritmust alkalmazza a holtpont elkerülésére. Biztonságos állapotban van-e jelenleg a rendszer? Ha igen, mutassa meg, a folyamatok hogyan tudják befejezni a működésüket, ha nem, hogyan alakulhat ki holtpont.
3. Sorolja fel, hogy a programfejlesztés, illetve futtatás mely fázisaiban történhet a program memóriacímeinek kötése, vagyis a logikai-fizikai cím megfeleltetés. Minősítse az egyes lehetőségeket (a fázisra jellemző tipikus címkonverzió, stb.). Röviden ismertesse a dinamikus logikai-fizikai címleképzés tanult technikáit.
4. Rajzolja le a μC/OS állapotátmeneti diagramját, és értelmezze az egyes állapotokat és átmeneteket.
- Két speciális állapot:
- DORMANT: „szunnyadó”, akkor van ebben az állapotban a taszk, amikor a memóriában ugyan megtalálható, de az ütemezö hatáskörében nincs benne (nem hozták még létre OSTaskCreate(), vagy törölték OSTaskDel()
- ISR: a taszkot megszakította egy interrupt rutin. Ha a rutin mellékhatásaként egy magasabb prioritású taszk válik futásra késszé, akkor a rutin végeztével az kerül a RUNNIG állapotba, és a megszakított taszk pedig a WAITING-be
5. Rajzolja fel vázlatosan, hogy az NFS hálózati fájlrendszer hogyan valósíthetó meg a vnode/vfs UNIX virtuális fájlrendszer segítségével! Magyarázza el az ábrája alapján, hogy egy kliens folyamat milyen lépéseken (interfészeken) át éri el a szerver diszken elhelyezett adatot, és ezzel együtt írja le, hogy miért előnyös a virtuális fájlrendszer alkalmazása!
- Az ábra az NFS-rendszer működését foglalja össze. Láthatjuk, hogy a fájlok elérését kezdeményező kéréseket, rendszerhívásokat az ún. virtuális fájlrendszer (VFS) kezeli. A virtuális fájlrendszer a hagyományos UNIX-fájlrendszert továbbfejlesztő fájlrendszer, ami lehetővé teszi különböző típusú fájlrendszerek kezelését a UNIX-rendszerben.
- A virtuális fájlrendszer, ha lokális fájlt szeretne a kliens folyamat elérni, a kérést a helyi lemezt kezelő UNIX-fájlrendszer (UFS) felé továbbítja, amelyik a fájlt közvetlenül eléri és visszaadja a kért adatokat.
- Ha a folyamat távoli fájlt szeretne elérni, a virtuális fájlrendszer a kérést az NFS-klienshez továbbítja. Az NFS-kliens a hálózaton keresztül eléri a kért fájlt tároló csomóponton működő NFS-szervert. A távoli NFS-szerver az ottani VFS-rendszeren keresztül kérést küld a helyi UNIX-fájlrendszernek (UFS). Az UFS visszaadja a kért adatokat az NFS-szervernek, aki továbbítja azokat a kérést kezdeményező kliens folyamat felé az NFS-kliens, illetve a kliens folyamat csomópontján működő virtuális fájlrendszeren (VFS) keresztül.