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ó

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

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

Ez a könyv a Művelődési és Közoktatási Minisztérium támogatásával a Felsőoktatási Pályázatok Irodája által lebonyolított felsőoktatási tankönyvtámogatási program keretében jelent meg.


Tartalom

1. Támogatók
2. Előszó
3. 1. Bevezetés
1.1. Mit nevezünk operációs rendszernek?
1.2. Az operációs rendszerek története
1.2.1. Korai rendszerek
1.2.2. Batch rendszerek
1.2.3. Multiprogramozott rendszerek
1.2.4. Időosztásos rendszerek
1.2.5. Személyi számítógépek
1.2.6. Elosztott rendszerek
1.2.7. Valósidejű rendszerek
1.2.8. Nyílt rendszerek
1.2.9. Napjaink rendszerei
1.3. Rendszermodell és rendszerarchitektúra
1.3.1. Az operációs rendszer és környezete
1.3.2. Funkciók
1.3.3. Csatlakozási felületek
1.3.4. Számítógép-architektúrák
1.3.5. Belső szerkezet
1.3.6. Működés
4. 2. Az operációs rendszer mint absztrakt, virtuális gép
2.1. Folyamatok és szálak
2.2. Folyamatokból álló rendszerek
2.2.1. Folyamatok létrehozásának indokai
2.2.2. Független, versengő és együttműködő folyamatok
2.2.3. Folyamatok születése és halála
2.2.4. Folyamatok együttműködése
2.2.5. Folyamatok szinkronizációja
2.2.6. Folyamatok kommunikációja
2.2.7. Holtpont
2.2.8. Éhezés
2.2.9. Klasszikus konkurens problémák
2.2.10. Folyamatokból álló rendszerek leírása nyelvi szinten
2.3. Tárak
2.3.1. Tárhierarchia
2.3.2. A logikai memória
2.3.3. A háttértár-fájlok
2.3.4. Tárak tulajdonságai
2.4. Készülékek és külső kapcsolatok
2.4.1. A külső eszközök fő típusai
2.4.2. Készülékmodell az alkalmazói felületen
2.4.3. Készülékmodell a kezelői felületen
2.5. Védelem és biztonság
2.5.1. Védelem
2.5.2. Biztonság
5. 3. Multiprogramozott operációs rendszerek
3.1. Bevezetés
3.2. A számítógép-architektúra
3.2.1. Az egyprocesszoros von Neumann struktúrájú számítógép-architektúra
3.2.2. Többprocesszoros, szorosan csatolt számítógéprendszerek
3.3. Folyamatkezelés
3.3.1. A folyamatmodell leképezése a fizikai eszközökre
3.3.2. Processzorütemezés
3.3.3. Ütemezés többprocesszoros rendszerekben
3.4. Tárkezelés
3.4.1. A főtár megosztása a folyamatok között
3.4.2. Virtuális tárkezelés
3.4.3. Fájlrendszerek
3.4.3.1. Az állományok tárolása a lemezen
3.5. Készülékkezelés
3.5.1. A kernel B/K-alrendszere
3.5.2. Háttértárak kezelése
3.6. Operációs rendszerek kezelői felülete
3.6.1. Az X Window-rendszer
6. 4. Hálózati és elosztott rendszerek
4.1. Bevezetés
4.2. Hálózati architektúra
4.2.1. Alapfogalmak
4.2.2. A hálózatok topológiája
4.2.3. A hálózatok típusai
4.2.4. A hálózati kommunikáció rétegei
4.2.5. Címzés és forgalomirányítás
4.3. Hálózati jellegű szolgáltatások
4.3.1. Telnet: távoli terminál
4.3.2. FTP: fájlátvitel
4.4. Elosztott szolgáltatások
4.4.1. Jellemzők
4.4.2. Elosztott fájlrendszerek
4.4.3. Folyamatkezelés
4.4.4. Időkezelés és koordináció elosztott rendszerekben
4.4.5. Elosztott rendszerek biztonsági kérdései
7. 5.UNIX
5.1. Bevezetés
5.2. A UNIX rövid története
5.3. Belső szerkezet és működés
5.3.1. Szerkezet
5.3.2. Folyamatkezelés
5.3.3. Ütemezés
5.3.4. Szinkronizáció
5.3.5. Folyamatok közötti kommunikáció (interprocess communication)
5.3.6. Állományrendszer implementációk
5.3.7. Teljes folyamatok háttértárra írása (swapping)
5.3.8. Igény szerinti lapozás
5.4. Hálózati és elosztott szolgáltatások a UNIX-ban
5.4.1. A TCP/IP protokoll család
5.4.2. A SUN Network File System (NFS)
5.5. POSIX
5.5.1. Alapfogalmak, felépítés
5.5.2. POSIX környezet
5.5.3. Hordozható alkalmazások
5.5.4. Folyamatkezelés
5.5.5. Állománykezelés
5.5.6. Jelzéskezelés
5.5.7. Terminálkezelés
5.6. A LINUX-RENDSZER
5.6.1. A Linux fejlődésének állomásai
5.6.2. A Linux felépítése és működése
8. 6. A Windows NT operációs rendszer
6.1. A Windows NT kialakulása
6.1.1. Az NT-vel szemben támasztott követelmények
6.1.2. A Windows NT, a Windows 95 és a Windows 98 összehasonlítása
6.1.3. Az NT felépítésének fő jellemzői
6.1.4. Az NT objektumorientált szemlélete
6.2. A Windows NT felépítése
6.2.1. HAL
6.2.2. Kernel
6.2.3. Készülékkezelők (device driverek)
6.2.4. Executive
6.2.5. Rendszerfolyamatok
6.2.6. Szolgáltatások
6.2.7. NTDLL.DLL
6.2.8. Alrendszerek
6.3. A Windows NT belső mechanizmusai
6.3.1. Megszakítás- és kivételkezelés
6.3.2. Objektumkezelés
6.3.3. Szinkronizáció
6.3.4. Lokális eljáráshívás
6.4. Folyamatok kezelése és ütemezése
6.4.1. A Windows NT folyamatmodellje
6.4.2. Folyamatok kezelése a Windows NT-ben
6.4.3. Szálak kezelése az NT-ben
6.4.4. Szálak ütemezése
6.5. Memóriakezelés
6.5.1. Memória manager felhasználói interfésze
6.5.2. Memóriafoglalás
6.5.3. Osztott elérésű memória
6.5.4. Memóriavédelem
6.5.5. Copy-on-Write
6.5.6. Memória foglalása
6.5.7. A memória mérete
6.5.8. Címtranszformáció
6.6. A Windows NT fájlrendszere (NTFS)
6.6.1. Elvárások az NTFS-sel szemben
6.6.2. Az NTFS további előnyös tulajdonságai
6.6.3. Az NTFS által használt adattípusok, adatszerkezetek
6.6.4. Fájlok elérése NTFS alatt
6.6.5. File ReKord
6.7. Biztonsági alrendszer
6.7.1. A biztonsági alrendszer komponensei
6.7.2. Az objektumok védelme
6.7.3. A biztonsági auditálás
6.7.4. A logon
9. 7.Kérdések, feladatok
7.1. Bevezetés
7.2. Az operációs rendszer mint absztrakt, virtuális gép
7.3. Multiprogramozott operációs rendszerek
7.4. Hálózati és elosztott rendszerek
7.5. UNIX
7.6. Windows NT operációs rendszer
10. Tárgymutató
A
B
C, CS
D
E, É
F
G, GY
H
I
J
K
L
M
N
O,Ö
P
R
S, SZ
T
U
V
W
X
Z
Irodalom

Az ábrák listája

1.1. ábra. A számítógépes rendszer egymásra épülő rétegei
1.2. ábra. (a)On-line (b) off-line perifériás műveletek blokkvázlata
1.3. ábra. A korai batch programok tipikus szerkezete
1.4. ábra. A spooling technika
1.5. ábra. A multiprogramozás alapelve
1.6. ábra. Az operációs rendszer kontextdiagramja
1.7. ábra. Egyszerű mikrogép architektúrája
1.8. ábra. személyi számítógép architektúrája
1.9. ábra. Szuperszámítógép-architektúra
1.11. ábra. A UNIX és az OS/2 rétegszerkezete
1.13. ábra. Kliens-szerver szerkezetű rendszer
1.14. ábra. Vezérlési szálak különböző típusú rendszerhívások esetén
1.15. ábra. Be-/kivitel lefolyása multiprogramozott rendszerben
1.16. ábra. A parancsértelmező szerkezete
2.1. ábra. Folyamatok együttműködése PRAM szerint működő közös memórián
2.2. ábra. Folyamatok együttműködése üzenetváltással
2.3. ábra. Kommunikáció direkt megnevezéssel
2.4. ábra. Kommunikáció indirekt megnevezéssel
2.5. ábra. Kommunikáció asszimetrikus megnevezéssel
2.6. ábra. Kommunikáció üzenetszórással
2.7. ábra. Erőforrásfoglalási gráf
2.8. ábra. Irányított kört tartalmazó gráf holtponttal és holtpont nélkü
2.11. ábra. Potenciális kérések az erőforrásfoglalási gráfon
2.12. ábra. A termelő-fogyasztó probléma
2.13. ábra. Az írók-olvasók problémája
2.14. ábra. Az étkező filozófusok problémája
2.15. ábra. Adatfolyamok illesztésének problémája
2.16. ábra. Precedenciagráf
3.1. ábra. Von Neumann struktúrájú számítógép egyszerűsített tömbvázlata
3.2. ábra. Tárhierarchia
3.3. ábra. Multiprocesszoros rendszerek logikai tömbvázlata
3.4. ábra. Sorállási diagram
3.5. ábra. Multiprocesszoros rendszerek logikai tömbvázlata
3.6. ábra. Felfüggesztett állapotokat kiegészített állapotmeneti diagram
3.7. ábra. Folyamatleírok láncolása
3.8. ábra. Példa a körülfordulási idő és az időszelet hosszának összefüggésére Round–Robin-rendszerekben
3.9. ábra. Többszintű ütemezés (a) statikus (b) visszacsatolt többszintű sorok
3.10. ábra. Logikai-fizikai címtranszformáció a felhasználói programok többlépcsős feldolgozása során
3.11. ábra. Dinamikus címleképezési módok (a) bázisrelatív címzés (a – a program fizikai kezdőcíme, b – virtuális (logikai) cím, r – fizikai cím), (b) utasításszámláló relatív címzés
3.12. ábra. Késleltetett betöltési módok (a) dinamikus betöltés (b) dinamikus könyvtárbetöltés (c) átfedő programrészek
3.13. ábra. Egypartíciós memória szervezés
3.14. ábra. Többpartíciós memória szervezés
3.15. ábra. Átlapolt tárcsere
3.16. ábra. Címtranszformáció szegmensszervezés esetén
3.17. ábra. Címtranszformáció lapszervezés esetén
3.18. ábra. Címtranszformáció lapszervezés esetén kétszintű laptábla használatával
3.19. ábra. Laphiba kezelésének folyamata
3.20. ábra. Bélády-anomália
3.21. ábra. A multiprogramozás hatása a CPU-kihasználtságra
3.22. ábra. A lokalitás hatása a laphiba gyakoriságra
3.23. ábra. Rendszeregyensúly biztosítása a laphiba-gyakoriság mérése alapján
3.24. ábra. Rendszerstruktúra
3.25. ábra. Mágneslemez-egység felépítése
4.1. ábra. Teljesen és részlegesen összekapcsolt hálózat
4.2. ábra. Hierarchikus és csillag összekapcsolás
4.3. ábra. Gyűrű és kettőzött gyűrű hálózat
4.4. ábra. Sín típusú hálózat
4.5. ábra. A hálózati rétegek és protokollok kapcsolata
4.9. ábra. Bully algoritmus. P2 kordinátorrá választása P4 és P3 meghibásodása után. Majd P4 koordinátorrá választása annak újraindulása után
4.10. ábra. A gyűrű választási algoritmus működése. A választást most a 19-es csomópont kezdeményezte
5.1. ábra. A hagyományos UNIX-rendszerek belső szerkezete
5.2. ábra. A modern UNIX-ok egy lehetséges szerkezeti felépítése
5.3. ábra. Végrehajtási mód és környezet
5.4. ábra. A folyamatok állapotátmeneti gráfja
5.5. ábra. Láncolt lista egy közbülső elem lefűzése előtt
5.6. ábra. Láncolt lista egy közbülső elem lefűzése közben
5.9. ábra. A folyamatok prioritásának tárolása
5.11. ábra. Call-out függvények láncolt listás ábrázolása
5.12. ábra. Call-out függvények időkerekes ábrázolása
5.15. ábra. A szuperblokkban tárolt inode lista
5.17. ábra. Az open és dup rendszerhívások hatása az állománykezeléssel kapcsolatos adatszerkezetekre
5.18. ábra. A UNIX-állományrendszer könyvtárstruktúrája
5.20. ábra. Az FFS könyvtárszerkezete
5.21. ábra. A vnode szerkezete
5.22. ábra. A vnode-ot is tartalmazó állományrendszer hozzáférés logikai sémája
5.23. ábra. Több állományrendszer használata vfs-sel
5.24. ábra. Folymat háttértárra írása és visszatöltése
5.25. ábra. Tartománybővítés háttértárra írással
5.28. ábra. A tartománymodell és a virtuális memóriakezelést támogató adatszerkezetek kapcsolata
5.29. ábra. A virtuális memóriakezelést támogató adatszerkezetek kereszthivatkozásai
5.30. ábra. A laphibát okozó lap állapotai
5.31. ábra. A módosult adatszerkezetek a lap allokálás után
5.32. ábra. A módosult adatszerkezetek a lap szabad listán történő megtalálása után
5.33. ábra. Egyszerű példa a copy-on-write technika alkalmazására. Az (a) ábra azt az állapotot mutatja, amikor az A folyamat és két gyermeke osztoznak egy lapon, míg a (b) ábrán már az egyik gyermek (B) írás miatt külön lapot használ
5.34. ábra. A hardver, szoftver érvényességi és a szoftverből szimulált hivatkozás bit állapota (a) memóriahivatkozás előtt, (b) memóriahivatkozás után
5.35. ábra. Egy IP-adatcsomag vázlatos felépítése
5.36. ábra. Példa az XDR adatábrázolásra
5.37. ábra. Az RPC működése
5.38. ábra. Az RPC-kérés felépítése
5.39. ábra. Az RPC-válasz felépítése
5.40. ábra. Az NFS működésének sémája
5.41. ábra. Távoli fájl elérése NFS segítségével
5.42. ábra. A legfontosabb POSIX.x szabványok
5.43. ábra. Alkalmazások megfelelősége
5.44. ábra. Trigraph karakterek
5.45. ábra. POSIX jelzéskezelés
5.46. ábra. A Linux-rendszer komponensei
6.1. ábra. Az NT történetének fő állomásai
6.2. ábra. Operációs rendszerek összehasonlítása
6.3. ábra. A Windows NT felépítése
6. 4. ábra. A trapkezelő működése
6.5. ábra. IRQL tábla az Alpha processzornál
6.6. ábra. IRQL tábla az Intel x86 processzoroknál
6.7. ábra. A Windows NT folyamatmodellje
6.8. ábra. Folyamatokhoz és szálakhoz tartozó adatstruktúra
6.9. ábra. Az executive szálblokk felépítése
6.10. ábra. Egy szál állapotai a Windows NT-ben
6.11. ábra. Copy-on-write memórialapok írást megelőzően
6.12. ábra. Copy-on-write memórialapok írást megelőzően
6.13. ábra. A logikai címtér felépítése
6.14. ábra. A fizikai memória mérete különböző memóriamodellek esetén
6.15. ábra. A virtuális cím felépítése
6.16. ábra. A címtranszformáció menete x86-os processzorok esetén
6.17. ábra. Egy lemezírási művelet kiszolgálása
6.18. ábra. A lemezműveletek adminisztrálására használt log fájl szerkezete
6.19. ábra. Réteg szerkezetű device driver struktúra
6.20. ábra. LCN és VCN egymáshoz rendelése
6.21. ábra. NTFS metadata információk
6.22. ábra. A virtuális cím felépítése
6.23. ábra. Egy tipikus file rekord
6.24. ábra. Attribútumok rezidens tárolása
6.25. ábra. Attribútumok nem rezidens tárolása
6.26. ábra. A logonban részt vevő komponensek