Ugrás a tartalomhoz

Operációs rendszerek mérnöki megközelítésben

Benyó Balázs, Fék Márk, Kiss István, Kóczy Annamária, Kondorosi Károly, Mészáros Tamás, Román Gyula, Szeberényi Imre, Sziray József

Panem Kiadó

7.5. UNIX

7.5. UNIX

1. Milyen előnyöket biztosít a UNIX-rendszerek réteges belső szervezése?

2. Milyen alapvető fejlesztéseket hajtottak végre a modern UNIX-rendszerek felépítésében?

3. Miért növeli a hatékonyságot UNIX-rendszerekben a szálak használata?

4. Rajzolja fel a UNIX operációs rendszer folyamatainak teljes állapotátmeneti diagramját! Mi a zombie állapot szerepe, mikor kerül egy folyamat ebbe az állapotba és mikor hagyja azt el?

5. Ismertesse a UNIX-rendszerben a folyamatok létrehozásának mechanizmusát! Térjen ki a kernel által elvégzendő feladatokra, és a folyamatok közötti leszármazási hierarchiára!

6. Ismertesse a UNIX-rendszerben a folyamatok leállításának mechanizmusát, a kernel által elvégzett feladatokat, és a folyamat szülőjének küldött jelzés jelentőségét!

7. Mikor tér vissza hibával a UNIX operációs rendszerben a fork rendszerhívás?

  • Ha nincs a központi tárban elegendő szabad tárterület.

  • Ha az operációs rendszer folyamat táblájában (process table) nincs üres hely.

  • Ha a felfüggesztett folyamatok száma átlépett egy a rendszer generálásakor megadott értéket.

8. Mely állítások igazak?

A UNIX operációs rendszerben egy folyamat megszüntekor zombie állapotú marad addig, amíg

  • vannak még élő gyerekei;

  • az általa írt pipe-okat olvasó folyamatok még nem szűntek meg;

  • a szülő – vagy annak halála esetén az init – el nem vette a folyamat visszatérési értékét.

9. Sorolja fel, hogy a UNIX-folyamatok esetén mi tartozik egy folyamat környezetéhez (context)!

10. A következő információk közül jelölje be azokat, amelyeket a UNIX-kernel a folyamatok ún. u-area területén tart.!

  • folyamat prioritása,

  • folyamat futása alatt érvényes aktuális könyvtár,

  • folyamat adatterületének nagysága és címe,

  • folyamat által eddig felhasznált összes CPU-idő,

  • a nyitott állományok aktuális pozíciója,

  • a folyamat zombie állapotú gyermekeinek visszatérési értéke,

  • az aktuálisan végrehajtódó rendszerhívások paraméterei,

  • a folyamat állapota,

  • a folyamat várakozásának (sleep) oka,

  • a folyamat által lekezelt jelzések (signal) kezelésére szolgáló függvények címe.

11. Mit jelent a UNIX operációs rendszerben, ha egy program setuid jogosultsággal rendelkezik?

12. Mire szolgálnak a hitelesítők (kredenciálisok) a UNIX-rendszerben?

13. Mire szolgál a UNIX operációs rendszerben a wait rendszerhívás?

14. Milyen ütemezést valósít meg a UNIX SVR3? (Gondoljon a kernel, user módra.)

15. Mi a különbség a megszakítható és a nem megszakítható alvás közöttt?

16. Mit jelent, hogy a kernel kód reentrens?

17. Miért nem preemtív kernel módban a UNIX ütemezése?

18. A UNIX operációs rendszer futásra kész folyamatai prioritása annál nagyobb,

  • minél kevesebb folyamatot futtat az adott felhasználó;

  • minél kisebb tárterületet használ;

  • minél régebben nem használta a CPU-t.

19. Miért van a UNIX kerneljében a várakozó állapotba átmenetet kiváltó sleep hívás mindig egy while ciklus belsejében?

20. Jelölje be valamennyi olyan eseményt, amikor a UNIX operációs rendszerben biztosan környezetváltás (context switch) történik!

  • Egy futásra kész folyamat olyan jelzést kap, amit nem kezel le és nem is hanyagol el.

  • A futónál nagyobb prioritású folyamat futásra késszé válik.

  • A read rendszerhívás végrehajtásához szükséges diszk blokk nincs bent a gyorsító tárban (buffer cache).

  • A futó folyamat exit rendszerhívást hajt végre.

  • Minden óramegszakítás bekövetkeztekor.

  • A futó folyamat laphiba megszakítást okozott és a szükséges lap nincs a fizikai tárban.

  • Egy várakozó állapotban lévő folyamat a folyamat által nem lekezelt jelzést (signal) kap.

21. UNIX-kernelben hol preemptiv a folyamatok ütemezése?

22. Mire szolgálnak a callout-ok, hogyan biztosítható minél hamarabbi végrehajtásuk?

23. A UNIX operációs rendszer a folyamatainak ütemezésénél megkülönböztet rendszer- és felhasználói prioritásokat. Mikor kap egy folyamat rendszer prioritást és mitől függ ennek az értéke? Milyen paraméterek befolyásolják a felhasználói prioritás értékét?

24. Mire szolgál a whichqs?

25. Mutassa be a hagyományos UNIX-ütemező működését a következő példán: nice nincs, prioritás = CPU/2 + 60, csillapítás = CPU/2, az óra 60-at üt másodpercenként.

26. Melyek a hagyományos UNIX-rendszerekben megvalósított ütemezési algoritmus hiányosságai?

27. Ismertesse a UNIX operációs rendszer jelzéseinek (signal) fogalmát, az ezeket kezelő rendszerhívásokat, fontosabb paramétereit! Hogyan reagálhat egy folyamat a neki küldött jelzésekre?

28. Hol tárolja a UNIX operációs rendszer az egyes folyamatok által lekezelt jelzéseket (signal) kezelő eljárások kezdőcímeit?

29. Milyen célokat szolgálnak, és milyen hatásuk lehet a jelzéseknek (signals) a UNIX-rendszerekben?

30. Mutassa meg, hogy az SVR2-beli signalkezelés miért nem volt megbízható!

31. Ismertesse az SVR4 és a BSD verziókban alkalmazott jelzésmenedzsmentet!

32. Ismertesse a UNIX operációs rendszer jelzéseinek (signal) kezelésére szolgáló legfontosabb rendszerhívások feladatát! Mikor, milyen állapotátmeneteknél juthatnak érvényre a jelzések? Mondjon konkrét példát, eseményt, mikor az operációs rendszer küld jelzést egy folyamatnak.

33. Milyen kapcsolat van a folyamatcsoportok és a terminálkezelés között?

34. Mi a viszony-objektum (session object) feladata?

35. Milyen célokat szolgálhat a folyamatok közötti kommunikáció?

36. Milyen fizikai tulajdonságai vannak a kommunikációs csatornának?

37. Milyen módszereket használnak a folyamatok a megnevezésre (naming)?

38. Milyen típusú szinkronizáció történik tárolás nélküli átvitel, véges kapacitású tároló, illetve végtelen kapacitású tároló típusú átviteli csatornák esetén?

39. Mi történik ha a kommunikáció folyamán az egyik folyamat leáll?

40. Hogyan kezelhetőek a hibás, iletve elveszett üzenetek?

21. Sorolja fel a UNIX rendszerekben folyamatok közötti kommunikációra szolgáló módszereket. Melyek alkalmazhatok közülük csak szülő-leszármazottai viszonylatban?

42. Ismertesse hogyan történik az adatok átvitele a UNIX-csővezetékek (pipe) használatával! Térjen ki a szélsőséges esetekre (túltöltés, olvasás üres csővezetékből) is!

43. Ismertesse a UNIX System V IPC mechanizmusainak közös(!) vonásait!

44. Mi a különbség az elnevezett (named) és az anonim (unnamed) UNIX-csővezetékek (pipe) között? (Létrehozás, használat, megszűnés.)

45. Milyen problémák merülnek fel a System V által megvalósítot szemaforokkal kapcsolatban?

46. Mikor érdemes kommunikációra üzenet sorokat, illetve osztott memóriaterületet használni?

47. Melyek igaz állítások?

A UNIX-rendszer csővezetékét (pipe) használva

  • az író (write) folyamatnak soha nem kell várakoznia.

  • az olvasó (read) eljárás csak akkor tér vissza, ha a csővezetékből beolvasta a megkívánt számú Byte-ot.

  • minden csővezetékhez külön tárbeli inode tartozik.

48. Jelölje be a felsoroltak közül az összes olyan információt, amelyek a UNIX operációs rendszer a memóriában lévő inode adatszerkezetben tárol!

  • az átvitel (írás vagy olvasás) aktuális poziciója

  • az inode azonosítója (kötet és a köteten belüli index)

  • az állományt tartalmazó könyvtár inode-jának száma

  • az inode-hoz tartozó állomány tulajdonosának azonosítói (UID és GID)

  • mutatók a tárban lévő szabad inode-ok listájának megelőző és következő elemére

49. Jelölje be a felsoroltak közül az összes olyan információt, amelyek egy UNIX-kötet szuperblokkjában találhatók!

  • A kötet mérete blokkokban.

  • Annak a könyvtárnak a helye (path), ahova a kötet fel van mount-olva.

  • A szabad inode-ok egy részének sorszámai.

  • A kötet blokkjainak mérete.

  • A kötet tulajdonosa.

50. Hol és hogyan tárolja a UNIX operációs rendszer a lemezen lévő állományokhoz tartozó blokkokat? Írja le, hogyan található meg egy állomány állomány 274452! byte-ja (268x1024 + 20), feltételezve, hogy az egyes blokkok 1024 byte méretűek, illetve egy köteten legfeljebb 232 blokk lehet.

51. Háromszoros indirekt blokkal mennyi tárolóegységet lehet megcímezni (1 blokk 1K, egy cím 4 byte – a számolás menetét kell megadni)?

52. Hogyan néz ki UNIX alatt egy könyvtár bejegyzés?

53. Egy UNIX folyamat az open(„/path/filename”, O_RDWR, O_CREAT) rendszerhívással sikeresen létrehoz egy új állományt. Írja le, hogy a ennek során milyen változások történtek a köteten tárolt adatszerkezetekben!

54. A UNIX operációs rendszer hierarchikus könyvtárszerkezetében milyen adatszerkezettel ábrázolják az egyes állomány-nyilvántartásokat? Mi a különbség a szimbólikus és az ún. hard link között, hogyan ábrázolja a UNIX ezeket? Mikor nem lehet hard link-et létrehozni? Hogyan változik egy állományt leíró i-node tartalma, ha létrehozunk az állományra egy hard, illetve szimbolikus link-et?

55. A UNIX operációs rendszerben használt diszk gyorsítótár (buffer cache) megvalósításánál mikor szerepel egy blokk egyidejűleg a szabad blokkok listáján és a diszk blokkok hash listáján? Mikor kerül egy módosult blokk kiírásra? Sorolja fel a gyorsítótár alkalmazásának hátrányait!

56. Mi a szerepe a szabad helyek nyilvántartásánál a kötet szuperblokkjának?

57. Milyen problémák adódnak az S5FS állományrendszer esetén, és hogyan oldották meg ezeket a Berkeley FFS esetén?

58. Mi a virtuális állományrendszer?

59. Milyen speciális állományrendszerek találhatóak UNIX-rendszerekben?

60. Milyen szempontokat kell figyelembe venni egy naplózó állományrendszer tervezése esetén?

61. Mit nevezünk tartománynak?

62. Milyen algoritmus szerint allokál helyet a swapper a háttértáron?

63. Milyen esetben csökken a map bejegyzések száma?

64. Miért nem ír ki háttértárra zombi folyamatot a swapper?

65. Milyen feltételeknek kell teljesülni, hogy a swapper egy folyamatot háttértárra írjon, illetve onnan beolvasson?

66. Ismertesse a háttértár kezelését fork, illetve memória növelés esetén!

67. Mi a legfontosabb különbség a tárcsere (swap) és az igény szerinti lapozás (demand paging) között?

68. Mit jelent a virtuális tárkezelésnél alkalmazott copy-on-write módszer?

69. Ismertesse az igény szerinti lapozáshoz használt adatszerkezeteket és azok szerepét UNIX alatt!

70. Ismertesse a „laplopó” folyamatot, annak működését lapok háttértárra írásakor, illetve onnan történő olvasásakor!

71. Milyen hardver támogatásra van szükség igény szerinti lapozás megvalósításához?

72. Milyen állapotokban lehet egy laphibát okozó lap?

73. Mi teszi lehetővé az igény szerinti lapozás elvi alkalmazását?

74. Mit jelent a munkahalmaz ablakszélessége?

75. Mire szolgál a UNIX-ban a pfdata?

76. Milyen főbb adatszerkezeteket használnak a UNIX-ban memóriakezeléshez?

77. Milyen eltérés tapasztalható a BSD virtuális memóriakezelésében a System V implementációhoz képest?

78. Jellemezze az IP protokollt!

79. Mi a különbség az UDP és a TCP protokollok között?

80. Milyen lehetőségeket biztosít a SUN NFS a felhasználó számára?

81. Az NFS (Network File System) rendszerben a szerver oldalon az exportált könyvtáraknál a könyvtár nevén (elérési útján) kívül milyen paramétereket lehet megadni?

82. SUN NFS esetén mi a különbség a soft, illetve hard mount között?

83. Milyen célokat tüzek ki a SUN NFS tervezői, és milyen típusú megvalósítást választottak?

84. Milyen protokollokat használ a SUN NFS? Adja meg ezek funkcióját!

85. Adja meg a SUN NFS szoftver komponenseit és azok feladatát!

86. Milyen információkat tartalmaz egy RPC-kérés-, illetve válasz-üzenet?

87. Mi a szerepe a virtuális fájlrendszernek az NFS esetében?

88. Hogyan hajtódik végre egy write művelet távoli állomány esetén?

89. Mit ls hogyan definiál a POSIX-szabvány?

90. Milyen kategóriákat definiál a POSIX-szabvány az egyes előírások megvalósításának besorolására?

91. Az alkalmazás oldaláról milyen megfelelőségi kategóriákat különböztet meg a POSIX?

92. Hogy definiálja a felhasználási környezetet a POSIX?

93. Hogyan támogatja a POSIX a hordozhatóságot?

94. Milyen eltéréseket mutat a POSIX a könyvtárak kezelésében a hagyományos UNIX-megvalósításokhoz képest?

95. Mi a POSIX által a folyamatkezelésnél definiált session funkciója?

96. Mi a hasonlóság és különbség a System V, a BSD, illetve a POSIX-szignál kezelésében?

97. Milyen változást hozott a POSIX-terminál kezelése a hagyományos UNIX-rendszerekhez képest?

98. Milyen komponensekből tevődik össze a Linux?

99. Hogyan jelentkezik a modularitás a Linux kernelben?

100. Melyek a Linux rendszerkönyvtárainak funkciói?

101. Hogyan támogatja a Linux a többszálú (multithreaded) programozást?

102. Mire szolgál a Linuxban a socket interfész?

103. Milyen virtuális memória és fájlkezelést támogat a Linux?