Operációs rendszerek vizsga 2007. június 12. megoldással

A VIK Wikiből
(OpReVizsga2007junius12megoldas szócikkből átirányítva)
Ugrás a navigációhoz Ugrás a kereséshez

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.

Opre taszkallapot.JPG

  • 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!

Opre nfs-vfs.PNG

  • 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.