Előszó a magyar kiadáshoz | 13 |
Előszó | 15 |
A szerzőkről | 19 |
Bevezetés | 21 |
Mi az az operációs rendszer? | 23 |
Az operációs rendszer kiterjesztett gép | 23 |
Az operációs rendszer erőforráskezelő | 24 |
Az operációs rendszerek története | 25 |
Az első generáció (1945-55) vákuumcsövek és kapcsolótáblák | 25 |
A második generáció (1955-65) tranzisztorok és kötegelt rendszerek | 26 |
Harmadik generáció (1965-80) integrált áramkörök és multiprogramozás | 28 |
A negyedik generáció (1980-napjainkig) személyi számítógépek | 31 |
A MINIX története | 32 |
Az operációs rendszerek fogalmai | 34 |
Processzusok | 34 |
Fájlok | 36 |
A parancsértelmező | 39 |
Rendszerhívások | 40 |
Processzuskezelő rendszerhívások | 42 |
Szignálkezelő rendszerhívások | 45 |
Fájlkezelő rendszerhívások | 47 |
Katalóguskezelő rendszerhívások | 52 |
A védelem rendszerhívásai | 54 |
Az időkezelés rendszerhívásai | 55 |
Az operációs rendszer struktúrája | 56 |
Monolitikus rendszerek | 56 |
Rétegelt rendszerek | 58 |
Virtuális gépek | 59 |
Kliens-szerver modell | 61 |
Könyvünk további részének felépítése | 62 |
Összefoglalás | 63 |
Feladatok | 63 |
Processzusok | 65 |
Bevezetés | 65 |
A processzus modell | 65 |
Processzusok megvalósítása | 71 |
Szálak | 72 |
Processzusok kommunikációja | 74 |
Versenyhelyzetek | 75 |
Kritikus szekciók | 76 |
Kölcsönös kizárás tevékeny várakozással | 77 |
Alvás és ébredés | 81 |
Szemaforok | 84 |
Monitorok | 86 |
Üzenetküldés | 90 |
Klasszikus IPC problémák | 93 |
Az étkező filozófusok probléma | 93 |
Az olvasók és írók probléma | 96 |
Az alvó borbély probléma | 98 |
Processzus ütemezése | 100 |
Round robin ütemezése | 102 |
Prioritásos ütemezés | 103 |
Többszörös sorok | 104 |
A legrövidebb feladatot először | 105 |
Garantált ütemezés | 107 |
Sorsjáték-ütemezés | 107 |
Valós idejű ütemezés | 108 |
Kétszintű ütemezés | 109 |
Cél és megvalósítás | 110 |
A MINIX processzusok áttekintése | 111 |
A MINIX belső szerkezete | 111 |
Processzuskezelés a MINIX-ben | 113 |
Processzusok közötti kommunikáció a MINIX-ben | 115 |
Processzusok ütemezése a MINIX-ben | 116 |
Processzusok megvalósítása MINIX-ben | 116 |
A MINIX forráskód szerkezete | 117 |
A közös definíciós állományok | 120 |
A MINIX definíciós állományok | 125 |
Processzusok adatszerkezetei és definíciós állományai | 130 |
A MINIX elindulása | 137 |
Rendszerinicializáció | 140 |
Megszakításkezelés a MINIX-ben | 145 |
Processzusok közötti kommunikáció a MINIX-ben | 154 |
Ütemezés a MINIX-ben | 157 |
Hardverfüggő kernel komponensek | 158 |
Kiegészítő eljárások és a kernel könyvtár | 161 |
Összefoglalás | 164 |
Feladatok | 165 |
Bevitel/Kivitel | 170 |
A B/K hardver alapjai | 170 |
B/K eszközök | 171 |
Eszközvezérlők | 172 |
Közvetlen memóriaelérés | 174 |
A B/K szoftver alapelvei | 176 |
A B/K szoftver céljai | 177 |
Megszakításkezelők | 178 |
Eszközmeghajtók | 178 |
Eszközfüggetlen B/K szoftver | 180 |
A felhasználó helyű B/K szoftver | 181 |
Holtpontok | 183 |
Erőforrások | 184 |
A holtpont alapelvei | 185 |
A strucc algoritmus | 185 |
Felismerés és helyreállítás | 190 |
A holtpont megelőzése | 190 |
A holtpont elkerülése | 192 |
A MINIX B/K áttekintése | 197 |
Megszakításkezelők a MINIX-ben | 197 |
A MINIX eszközmeghajtói | 198 |
Eszközfüggetlen szoftver a MINIX-ben | 202 |
Felhasználó szintű B/K szoftver a MINIX-ben | 203 |
Holtpontkezelés a MINIX-ben | 203 |
Blokkos eszközök a MINIX-ben | 204 |
A MINIX-es blokkos eszközmeghajtók | 204 |
Közös blokkos eszközmeghajtó szoftver | 207 |
A meghajtó könyvtára | 211 |
RAM lemezek | 213 |
Hardver és szoftver a RAM lemeznél | 213 |
A MINIX-ben a RAM lemezmeghajtója | 214 |
A RAM lemezmeghajtó megvalósítása MINIX-ben | 216 |
Lemezek | 217 |
Lemez hardver | 218 |
Lemez szoftver | 220 |
A merevlemez meghajtója a MINIX-ben | 226 |
A merevlemez-meghajtó MINIX-ben való megvalósítása | 229 |
Hajlékonylemezek kezelése | 238 |
Órák | 240 |
Az óra hardvere | 241 |
Az óra szoftvere | 242 |
A MINIX órameghajtójának áttekintése | 245 |
Az órameghajtó megvalósítása MINIX-ben | 250 |
Terminálok | 254 |
Terminál hardver | 255 |
Terminál szoftver | 260 |
A MINIX terminál meghajtójának áttekintése | 268 |
Az eszközfüggetlen terminálmeghajtó implementációja | 284 |
A billentyűzetmeghajtó megvalósítása | 301 |
A képernyőmeghajtó megvalósítása | 307 |
A rendszertaszk a MINIX-ben | 314 |
Összefoglalás | 322 |
Feladatok | 323 |
Memóriagazdálkodás | 328 |
Alapvető memóriakezelés | 328 |
Egy program futtatása | 329 |
Multiprogramozás rögzített méretű partíciókkal | 329 |
Csere | 332 |
Memóriakezelés bittérképpel | 334 |
Memóriakezelés láncolt listákkal | 335 |
Virtuális memória | 337 |
Lapozás | 337 |
Laptáblák | 340 |
TLB-Címfordítási gyorsítótár | 344 |
Invertált laptáblák | 346 |
Lapcserélési algoritmusok | 347 |
Az optimális lapcserélési algoritmus | 347 |
Az NRU lapcserélési algoritmus | 348 |
A FIFO lapcserélési algoritmus | 349 |
Az második lehetőség lapcserélési algoritmus | 349 |
Az óra lapcserélési algoritmusa | 350 |
Az LRU algoritmus | 351 |
Az LRU szoftveres szimulációja | 352 |
A lapozásos rendszerek tervezési szempontjai | 353 |
A munkahalmaz modell | 354 |
Lokális vagy globális helyfoglalás | 355 |
Lapméret | 357 |
Virtuális memória interfész | 358 |
Szegmentálás | 359 |
A tiszta szegmentálás implementációja | 362 |
Szegmentálás lapozással: Multics | 363 |
Szegmentálás lapozással: Intel Pentium | 366 |
A MINIX memóriakezelés | 370 |
A memória szerkezete | 371 |
Üzenetkezelés | 374 |
A memóriakezelő adatszerkezetei és algoritmusai | 376 |
A FORK, az EXIT és a WAIT rendszerhívás | 379 |
Az EXEC rendszerhívás | 380 |
A BRK rendszerhívás | 384 |
Szignálkezelés | 384 |
Egyéb rendszerhívások | 390 |
A MINIX memóriakezelésének implementációja | 390 |
A fejléc fájlok és az adatszerkezetek | 391 |
A főprogramok | 393 |
A FORK, az EXIT és a WAIT implementációja | 394 |
Az EXEC implementációja | 396 |
A BRK implementációja | 397 |
A szignálkezelés implementációja | 398 |
A többi rendszerhívás implementációja | 403 |
A memóriakezelő segédeljárásai | 404 |
Összefoglalás | 405 |
Feladatok | 406 |
Fájlrendszerek | 410 |
Fájlok | 411 |
Fájlnevek | 411 |
Fájlszerkezet | 412 |
Fájltípusok | 414 |
Fájlelérés | 416 |
Fájlattribútumok | 416 |
Fájlműveletek | 418 |
Könyvtárak | 419 |
Hierarchikus könyvtárszerkezet | 419 |
Útvonal megadása | 421 |
Könyvtári műveletek | 423 |
Fájlrendszerek megvalósítása | 424 |
Fájlok megvalósítása | 425 |
Könyvtárak megvalósítása | 428 |
Lemezterület-kezelés | 431 |
Fájlrendszerek megbízhatósága | 433 |
Fájlrendszerek hatékonysága | 438 |
Naplózott fájlrendszer | 441 |
Biztonság | 443 |
Biztonság környezet | 443 |
Nevezetes biztonsági hiányosságok | 445 |
Általános biztonság elleni támadások | 448 |
Tervezési elvek a biztonság érdekében | 450 |
Felhasználó azonosítása | 451 |
Védelmi mechanizmusok | 455 |
Védelmi tartományok | 455 |
Hozzáférést Vezérlő Listák | 458 |
Képességi listák | 459 |
Rejtett csatornák | 460 |
A MINIX állományrendszere | 462 |
Üzenetek | 464 |
Az állományrendszer felépítése | 464 |
A bitterképek | 467 |
Az i-csomópontok | 469 |
A blokkgyorsítótár | 471 |
Könyvtárak és elérési utak | 473 |
Az állományleírók | 475 |
Az állományokhoz való hozzáférés letiltása | 477 |
Csövek és speciális állományok | 477 |
Egy példa: a READ rendszerhívás | 479 |
A MINIX állományrendszerének megvalósítása | 480 |
Fejlécállományok és globális adatszerkezetek | 481 |
A táblák kezelése | 485 |
A központi program | 195 |
Egyedi állományokon végzett műveletek | 498 |
Könyvtárak és elérési utak | 508 |
További rendszerhívások | 513 |
A B/K eszközcsatoló | 517 |
Általános segédeszközök | 518 |
Összefoglalás | 519 |
Feladatok | 520 |
További irodalom | 524 |
Ajánlott irodalom | 524 |
Bevezetés és általános témájú munkák | 524 |
Folyamatok | 526 |
Bevitel/Kivitel | 526 |
Memóriakezelés | 527 |
Állományrendszerek | 528 |
Betűrendes irodalomjegyzék | 528 |
Függelék | 533 |
A MINIX forráskód | 535 |
File-mutató | 947 |
Szimbólumok | 949 |
Tárgymutató | 964 |