OPERÁCIÓS RENDSZEREK. Célkitűzések, tárgyfelépítés. Módszerek. OS fogalom, struktúrák. 2006/2007. tanév II. félév Dr. Vadász Dénes



Hasonló dokumentumok
OPERÁCIÓS RENDSZEREK. Célkitűzések, tárgyfelépítés. Módszerek. OS fogalom, struktúrák. 2005/2006. tanév II. félév Dr. Vadász Dénes

Operációs rendszerek. Bemutatkozás

Operációs rendszerek

Operációs rendszerek. A Windows NT felépítése

OPERÁCIÓS RENDSZEREK I. BEVEZETÉS Koczka Ferenc -

Processzusok (Processes), Szálak (Threads), Kommunikáció (IPC, Inter-Process Communication)

Bevezetés az informatikába

Operációs rendszerek. Windows NT. A Windows NT

Operációs rendszerek. Az NT folyamatok kezelése

Számítógépes alapismeretek

Számítógép architektúrák. Bemutatkozom. A tárgy címe, célja. Számítógépek, számítási modellek

Operációs rendszerek. Az Executive és a kernel Policy és mechanizmusok szeparálása Executive: policy - objektum kezelés Kernel: mechanizmusok:

Operációs rendszerek Folyamatok 1.1

Autóipari beágyazott rendszerek. Komponens és rendszer integráció

Processzusok (Processes), Szálak (Threads), Kommunikáció (IPC, Inter-Process Communication)

Alkalmazások típusai Szoftverismeretek

Operációs rendszerek III.

UNIX operációs rendszer bemutatása. A UNIX története, fejlesztésének céljai.

Operációs rendszerek MINB240 V2+2+0

Számítógépes munkakörnyezet II. Szoftver

OPERÁCIÓS RENDSZEREK. Elmélet

Operációs rendszerek MINB240 V kredit KF Nagyváradi Anett 0. előadás Bevezetés

Operációs rendszerek

Az informatika alapjai. 10. elıadás. Operációs rendszer

Uniprogramozás. várakozás. várakozás. Program A. Idő. A programnak várakoznia kell az I/Outasítások végrehajtására mielőtt továbbfuthatna

Operációs rendszerek

BEVEZETÉS. Kívánunk a tisztelt olvasónak sok sikert a tanulásban és munkában!

Szoftver labor III. Tematika. Gyakorlatok. Dr. Csébfalvi Balázs

Utolsó módosítás:

Dr. Schuster György október 30.

A szoftverfejlesztés eszközei

Operációs rendszerek. Az NT memóriakezelése

Operációs rendszerek

Számítógép architektúra

Operációs Rendszerek II.

Informatika szigorlat 21-es tétel: Operációs rendszerek. Operációs rendszerek feladatai

Operációsrendszerek. 1. elıadás. Standard ismeretek

Számítógépek architektúrák. Architektúrák

Tartalomjegyzék. Előszó... 10

386 processzor címzés

Matematikai és Informatikai Intézet. 4. Folyamatok

Operációs rendszerek. A Windows NT

Operációs rendszerek

Operációs rendszerek (I 1204)

2. Folyamatok. Operációs rendszerek. Folyamatok. Bevezetés Folyamatkezelés multiprogramozott rendszerekben. Folyamatok modellezése

Operációs rendszerek

Elosztott rendszer architektúrák

2. Számítógépek működési elve. Bevezetés az informatikába. Vezérlés elve. Külső programvezérlés... Memória. Belső programvezérlés

Informatikai Rendszerek Intézete Gábor Dénes Foiskola. Operációs rendszerek oldal LINUX

Az iskolai rendszerű képzésben az összefüggő szakmai gyakorlat időtartama. 10. évfolyam Adatbázis- és szoftverfejlesztés gyakorlat 50 óra

(kernel3d vizualizáció: kernel245_graph.mpg)

Operációs rendszerek PMTRTNB230H V kredit. Radó János 0. előadás Bevezetés

Szoftver-technológia I.

UNIX / Linux rendszeradminisztráció

Operációs rendszerek. Folyamatok kezelése a UNIX-ban

Szenzorhálózatok programfejlesztési kérdései. Orosz György

Operációs rendszerek MINB240

Operációs rendszerek. 1. gyakorlat. Bevezetés, követelmények UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Utolsó módosítás:

Operációs rendszerek. Az X Window rendszer

Mértékegységek a számítástechnikában

UNIX: folyamatok kommunikációja

Nyíregyházi Egyetem Matematika és Informatika Intézete. Input/Output

Debreceni Egyetem Matematikai és Informatikai Intézet. 13. Védelem

Magic xpi 4.0 vadonatúj Architektúrája Gigaspaces alapokon

iseries Client Access Express - Mielőtt elkezdi

ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu

Az operációs rendszer szerkezete, szolgáltatásai

alkalmazásfejlesztő környezete

Tartalom. Történeti áttekintés. Történeti áttekintés Architektúra DCOM vs CORBA. Szoftvertechnológia

Számítógépek architektúrák. Bemutatkozom. A tárgy célja. Architektúrák

Hálózati ismeretek. Az együttműködés szükségessége:

Léteznek nagyon jó integrált szoftver termékek a feladatra. Ezek többnyire drágák, és az üzemeltetésük sem túl egyszerű.

Informatikai rendszerek alapjai (Informatika I.)

Bevezetés. Dr. Iványi Péter

FELHŐ és a MAINFRAME. Irmes Sándor

Hálózati operációs rendszerek II.

1. A Windows Vista munkakörnyezete 1

Alkalmazások architektúrája

Bevezetés a párhuzamos programozási koncepciókba

Utolsó módosítás:

1. Fejezet: Számítógép rendszerek. Tipikus számítógép hirdetés

Autóipari beágyazott rendszerek. Integrált és szétcsatolt rendszerek

es tanév őszi félév Tantárgyi követelményrendszer és programleírás

Számítógépek architektúrák. Architektúrák

Hogyan működtethető a telefonrendszer virtuális környezetben? Mészáros Tamás Műszaki fejlesztési vezető

Segesdi Dániel. OpenNebula. Virtualizációs technológiák és alkalmazásaik BMEVIMIAV ősz

A Java EE 5 plattform

A PRIMO története. ahogy az egykori fejlesztők emlékeznek rá

Operációs rendszerek - bevezető

Az interrupt Benesóczky Zoltán 2004

Intelligens biztonsági megoldások. Távfelügyelet

2. modul - Operációs rendszerek

Az operációs rendszer fogalma

Programozás alapjai. Wagner György Általános Informatikai Tanszék

A számítógép-hálózat egy olyan speciális rendszer, amely a számítógépek egymás közötti kommunikációját biztosítja.

Virtualizációs Technológiák Bevezetés Kovács Ákos Forrás, BME-VIK Virtualizációs technológiák

DCOM Áttekintés. Miskolci Egyetem Általános Informatikai Tanszék. Ficsor Lajos DCOM /1

Programozás. Bevezetés. Fodor Attila. Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék

Elosztott rendszerek

Átírás:

OPERÁCIÓS RENDSZEREK OS fogalom, struktúrák 2006/2007. tanév II. félév Dr. Vadász Dénes Célkitűzések, tárgyfelépítés Alapfogalmak, koncepciók, struktúrák, működés megismerése OS példák: Unix, Linux, W (a közös kiemelve) Témakörök: OS fogalom, történet, struktúrák, Felületek a kernelhez (burok és API) processzek és menedzsmentjük, memóriamendzsment, I/O, eszköz és fájlmenedzsment. Vadász 2 Módszerek Előadások: lényegkiemelés, összefoglalások Gyakorlatok: a tanszéki laborokban, teljesítendő feladatok minden gyakorlaton Teljesítés aláírás feltétele: gyakorlatokon aktív részvétel, legalább 8 gyakorlat elismertetése. Évközi zárthelyi. Aláírás pótlás a vizsgaidőszakban nincs. Vizsga: írásbeli + szóbeli. Vizsgatételek az év végén. Évközi zárthelyi beszámít. A tárgy anyaga szigorlati tananyag is! Vadász 3 1

A gyakorlatok Vadász 4 Irodalom Tannenbaum: Modern Operating Systems, Prentice Hall, 1992. Silberschach, Galvin: Operating Systems Concepts, Addison- Wesley, 1994. Kóczy, Kondorossi szerk: Operációs rendszerek mérnöki megközelítésben, Panem, 2000. Bach: The Unix System, Prentice Hall, 1985. Vahalia: UNIX Internals: the new frontiers, Prentice Hall, 1996 Vadász: Operációs rendszerek, ME, http://www.iit.uni-miskolc.hu/iitweb/opencms/users/dvadasz Unix on-line manual lapok, helps stb. Tudni kell angolul olvasni! Vadász 5 Lásd a hirdetőtáblán! Az ütemterv Vadász 6 2

Számítógéprendszer fő komponensei A HW fő részei: CPU, memória, eszközök, buszok A működtető rendszer: OS Az alkalmazások: segédprogramok, fejlesztők, AB rendszer, üzleti programok stb. A felhasználó: alkalmazás használó, fejlesztő stb. Vadász 7 Működtető rendszerek fejlődése Direkt futtatás a hardveren Monitor Futtatható rutinok gyűjteménye, ROM. Ismeri a konzolt Konzol terminálon parancsok examine mem-cell set mem-cell go mem-cell etc. Esetleg primitív fájl-rendszer, load, store parancsok Operációs rendszer Vadász 8 Az operációs rendszer fogalma Kiterjesztett gép (Extended Machine). Kényelmessé, "felhasználóbarát" jellegűvé teszi a géphasználatot. Erőforrás menedzser. Hatékonnyá, biztonságossá, igazságossá teszi a géphasználatot. Válaszoló gép (Veszély: burok (kezelő, UI) - kernel összetévesztés) Vadász 9 3

Történetük Tanenbaum 4 generációja (5 lap) Kapcsolódik a hardver fejlődéshez, a számítógép használók munkamegosztása történetéhez (hardveresek, rendszerprogramozók, rendszer-menedzserek, operátorok, programozók, felhasználók.) a programozási módszerek fejlődéséhez stb. Az egyes funkciók kialakulásának sorrendje (3 lap) Táblázatos összefoglaló (2 lap) Vadász 10 I. generáció: 1945-55. (Prelingual Stage) Csövek, dugaszoló táblák, lyukkártyák Nincs munkamegosztás: egybeesik a számítógépépítő, működtető, programozó, felhasználó szerepkör Gépi nyelvű programozás Nincs operációs rendszer Tanenbaum koncepciója Vadász 11 II. generáció: 1955-65 (Exploiting Machine Power) Tranzisztorok. Kötegelt rendszerek. Karakterorientált (1401) és szószervezésű (7094) gépek. Tervezők és építők; karbantartók; operátorok; programozók, felhasználók (Increasing the Expressive Power) FORTRAN nyelv A JOB fogalom: load-translate-load-exec szekvencia, eleinte kézzel, később automatizálva. nem_rezidens loader = monitor jellegű OS. Végül: ütemező is. Tipikus a kötegelt (batch) feldolgozás Tanenbaum koncepciója Vadász 12 4

III. generáció: 1965-80 (Reducing the Machine Dependency) Egységesítés a karakter- és szófeldolgozásban (360) Integrált áramkörök Időosztásos multiprogramozás, memória particionálás, spooling (Simultaneuos Peripheral Operation On-Line) Interaktivitás igény: kifejlődnek a parancsnyelvi értelmezők Kis gépek (PDP-11, VAX 780 stb.) Sok operációs rendszer (OS360, MULTICS, RSX, Unix stb.) Hardveresek; operátorok; rendszerprogramozók; programozók; felhasználók Imperatív, funkcionális, logikai nyelvek. Szoftverkrízis (Algol, PL1, APL, LISP, PROLOG, C stb.) Tanenbaum koncepciója Vadász 13 IV. generáció: 1980-90 (Reducing the Complexity) LSI, VLSI; Személyi számítógépek, munkaállomások, szuperszámítógépek Visszaesés a védelemben Interaktivitás, felhasználóbarát kapcsolattartás. GUI is! MS DOS, Unix, VAX/VMS, Novell stb. Hálózati operációs rendszerek, osztott feldolgozás Teljes a munkamegosztás Objektumorientált programozás, párhuzamos programozás, szoftvertechnológiák, CASE Tanenbaum koncepciója Vadász 14 A IV. generáció után... Személyi számítógépek (kliensek), szerverek, grafikus munkaállomások, különleges architektúrák, az Internet, grid Mikrokernelek Unix, MS W, Linux, mach Internet és WEB technológiák, OOP, Java, CORBA, DCOM, SW reengineering Teljes munkamegosztás, mindenki felhasználó Tanenbaum koncepciója Vadász 15 5

OS történet elemek Eleinte direkt futtatás a hardveren Primitív I/O rutinok összegyűjtve ROM-ban Konzol kezelő és parancsértelmező (monitor) Alkalmazások betölthetők, indíthatók, eredményük visszajelezhető Előrelépés a memóriamenedzselésben Rögzített partíciós memória gazdálkodás, JOB fogalom Fejlődő I/O rutinkészlet, eszközök Lyukkártya, lyukszalag, nyomtató Primitív fájlrendszerek Kötegelt (batch) feldolgozás Funkciók kialakulása Vadász 16 OS történet elemek Előrelépés az ütemezésben Nem beavatkozó ütemezés a kötegelt feldolgozásban Single user mód Sokszínű igénynövekedés Interaktivitásra igény és kielégítése Ütemezésben fejlődés (időosztás, valós idejű ütemezés, kölcsönös kizárás stb.) Processz koncepció Multi user mód, session menedzselés Virtuális memóriamenedzselés Fejlett I/O (CRT terminálok és vonalak, diszkek és fájlrendszerek) Funkciók kialakulása Vadász 17 OS történet elemek Asztali és személyi gépek (olcsóvá vált processzálás) Fejlődő megjelenítés, grafika, GUI igény Hálózatosodási igény kezdődik Az Internet elterjedése Hálózati operációs rendszerek Multimédia, GUI uralkodóvá válik A védelmi koncepciók jelentősége megnőtt Kommunikáció és információnyerés (WEB) Infokommunikáció A telekommunikációs és informatika összefonódása Olcsó sávszélesség Grid Mobil Funkciók kialakulása Vadász 18 6

Az utóbbi évtizedek a számítástechnikában Az évek 60-as 70-es 80-as 90-es A paradigma Kötegelt feldolgozás Időosztás Asztali gépek Hálózatok Hol? Terminálszobában Számítóközpontban Íróasztalon Mobil Az adatok Numerikus adatok Szövegek + számok + rajzok Multimédia Fő cél Számítások Hozzáférés Kommunikáció Megjelenítés Vadász 19 Az utóbbi évtizedek a számítástechnikában 2 Az évek 60-as 70-es 80-as 90-es A paradigma Batch Time sharing Desktop Network Az interfész Lyukkártya Billentyűzet + CRT Lásd és kattints Kérdezd és mondd Kapcsolódás Nincs Terminál vonalak LAN Internet Tulajdonos Intézeti sz.központ Osztályok Osztályok dolgozói Mindenki Vadász 20 OS osztályozási szempontok Hardver függőség szerint Személyi, kis, nagy gépek OS-e (?), architektúra független Cél szerint Általános, vagy speciális célú Processzek, processzorok, felhasználók száma szerint Single, vagy multi tasking, multi processing, multi threading Single, vagy multi user Distributed Időkiosztás szerint Szekvenciális, kooperatív, vagy beavatkozó; time sharing, real time Memóriakezelés szerint Valós címzésű, vagy virtuális címzésű I/O és fájlrendszer megvalósítás szerint Vadász 21 7

A számítógép architektúrában az OS Az OS rendszerszoftver, 2 fő céllal kényelmet biztosít, hatékonyságot, védelmet biztosít. Elválasztja az alkalmazásokat a hardvertől Alkalmazás 1 Alkalmazás 2 OS kernel Hardver Lehetne-e struktúrálni? Vadász 22 Egy később tovább részletezett fogalom: a folyamat (processz) A folyamat (processz) egy (párhuzamos szerkezetet nem tartalmazó) program futó példánya Önálló entitás, azonosítható Megkülönböztetem a programtól Ugyanannak a programnak több futó példánya is lehet A processz kontextus fogalmat is fogjuk tárgyalni Az alkalmazás kifejezést itt felhasználói processz értelemben fogom használni A taszk fonál fogalmat is tárgyaljuk majd Vadász 23 Kernel struktúrák Funkcionális szerkezetek (szolgáltatások szerinti komponensek) Implementációs szerkezetek (hogyan programozzák az egyes komponenseket). Vadász 24 8

Szolgáltatások szerinti komponensek Processz (taszk, fonál) menedzsment komponensek CPU ütemezés, eseménykezelés, szignálozás, kölcsönös kizárás, szinkronizáció, processz-közti kommunikáció Memória menedzselő komponensek I/O menedzsment device driver interface szabad terület (blokk) menedzselése blokk allokáció, diszk blokk scheduling pufferezés Fájl-rendszert megvalósító komponensek jegyzék (directory) megvalósítás (fájl attribútumok kezelése) fájlkezelés, biztonsági komponensek Védelmi komponens(ek) Hálózatkezelő komponensek Felhasználói felület (nem feltétlenül OS komponens) Vadász 25 Processz (taszk, fonál) menedzsment komponensek Ad Funkcionális struktúra Processzek kreációját és terminálódását biztosító funkciók Processz/taszk/fonál kontroll, ütemezés Állapotok nyilvántartása, CPU ütemezés, kiosztás; felfüggesztés, elvétel, processz szinkronizációs mechanizmusok (beleértve a holtpont elkerülését is biztosító kölcsönös kizárási mechanizmusokat), processzek közti kommunikációs mechanizmusok. Vadász 26 Memória menedzselő komponensek Ad Funkcionális struktúra Memória használatának nyilvántartása Memória allokálás/felszabadítás a processzek számára Címleképzés: logikai (virtuális) címek leképzése valós (buszra kiadható) címekre) közben ki/be söprés, vagy ki/be lapozás. Utóbbiakhoz kapcsolat a másodlagos tároló menedzsmenttel. Vadász 27 9

I/O és másodlagos tároló menedzsment Ad Funkcionális struktúra Eszközmeghajtó szoftverek (device drivers) biztosítása blokkorientált eszközökhöz (diszkekhez), karakterorientált eszközökhöz (terminálok, nyomtatók, portok stb.), speciális eszközökhöz (óra, hálózat(?)) Szabad blokk menedzselés (diszkeken) Blokk allokálás/deallokálás (fájlokhoz, virtuális memóriához) Diszk-blokk buffer cashing Vadász 28 Fájl-rendszert megvalósító komponensek Ad Funkcionális struktúra Jegyzék (directory) struktúra biztosítása Jegyzék implementáció, fájl-attribútumok rögzítése Blokkhozzárendelés módszerei Fájlok kreálása/törlése Jegyzékek kreálása/törlése Fájlok írása/olvasása Fájlrendszer létrehozásának, helyreállításának segédprogramjai Mentések és visszaállítások segédprogramjai Vadász 29 Esettanulmányok A VAX/VMS, a W NT és a UNIX funkcionális struktúrája. Vadász 30 10

A VAX/VMS struktúrája A VAX CPU négy futási módja: User, Supervisor, Executive, Kernel. Áttérés: trap mechanizmussal. Lásd: $ MONITOR MODES U mode: alkalmazások, segédprogramok, fejlesztők S mode: a DCL (A DCL szoros kapcsolatban a VMS-sel) E mode: RMS rutinok: felelősek a fájl szervezésért; ACP-k: felelősek az elhelyezkedésért, méretekért. K mode: System Services: I/O alrendszer Memória menedzsment Processz és időkezelés Vegyes szolgáltatások (nincs az ábrán): logikai név kezelés, lock menedzsment stb. Vadász 31 A VMS struktúra Layered Products (Apps) Utilities User Program Development Tools Support Libraries Command Language Interpreter (CLI) Supervisor Record Management Service (RMS) Executive System services Kernel Memory Process and I/O Subsystem Management time management System-wide data structures Platform-Adaptation Layer (PAL) - Alpha Vadász 32 Az NT struktúra, magas szinten Environment Subsystems User Mode Kernel Mode System & Service Processes Device Drivers User Application Subsystem DLL Executive OS/2 Hardware Abstraction Layer (HAL) Windows Kernel POSIX Windows Windows User/GDI Device Driver Vadász 33 11

Az NT struktúra HAL: csatoló a HW és a mikrokernel között. A HW különbözőségeket (processzor architektúra, processzorok száma stb.) küszöböli ki. A HW gyártók készítik, szállítják. Mikrokernel: IT kezelés, ütemezés a szálakra, CPU szinkronizáció stb. Szolgáltatások: Objektum menedzser: objektum elnevezések, biztonsági tényezők kezelése. Handle készítés az objektumokhoz. Folyamat menedzser: taszkok létrehozása, törlése, szálak létrehozása, törlése. Együttműködik a biztonsági rendszerrel, a memória menedzserrel. Helyi elj. hívás: (hasonlít az RPC-hez) egy alkalmazáshoz a rendszerkörnyezetet létrehozó alrendszer (kliens-szerver) létrehozáshoz hívás. Vadász 34 Felhasználói mód Alkalmazás Kernel mód Windows NT Executive Executive szolgáltatások I/O Objektum menedzser menedzser Biztonsági figyelő Folyamat menedzser Helyi elj.hívás Virtuális mem. men. Win32K & GDI Eszköz meghajtók Microkernel Hardware Abstraction Layer (HAL) Hardver Grafikus eszk.megh. Windows NT Kernel Vadász 35 Az NT struktúra (folyt.) Szolgáltatások (folyt.): I/O menedzser: Cache funkciókat, fájl-rendszereket (FAT, NTFS, CDFS), eszköz meghajtókat (NET+diszkes) biztosít. Virtuális memória menedzser (ld. később). Megjelenítő rendszer: Win32K ablak menedzser: kezeli az ablakokat, képernyőt; a bejövő jeleket (eljuttatja az alkalmazásokhoz). GDI (Graphics Device Interface): grafikus csatoló: képernyő rajzoló eszköz (primitívek) gyűjtemény. Grafikus eszközmeghajtók (drivers): vezérlik a HW-t. A konzol (ez felhasználói szintű, csak a teljesség kedvéért itt!): szöveges ablak támogatást biztosít. Biztonsági figyelő. Vadász 36 12

A Unix funkcionális felépítése Felhasználói mód Kernel mód Felhasználói processz (trap) Programozói felület, rendszerhívás diszpécser Fájlrendszer I/O alrendszer Buffer cache Device drivers Folyamat vezérlő alrendszer Folyamatok közti kommunikáció Ütemező Memória menedzser Hardver szint Hardver, vezérlők Vadász 37 Implementációs struktúrák Hogyan programozzák a komponenseket Funkciókhoz rutinok Call jelleggel hívható rutinok Argumentumok visszatérési érték Megszakítással hívható rutinok (IT kezelők) Az IT típusa Iret Eseménykezelő rutinok (esemény kezelők) Az esemény jellemzői visszatérési érték, ha egyáltalán ) Hol lehetnek ezek a rutinok? A betöltődő kernelbe linkelve Futtatható programba linkelve Vadász 38 Lehetséges archetípusok Monolitikus rendszer Réteges struktúrák Az ügyfél szolgáltató (kliens szerver) modell A módváltás a trap A szolgáltató rutinok (sokszor) kernel módban futnak! Akár a kernelbe vannak linkelve, Akár futtatható program rutinjai. Vadász 39 13

Monolitikus rendszer Ad Implementációs struktúra Egyszerű szerkezet A kernel (mag): egy betölthető modulba összelinkelt, szolgáltató rutinok összessége A kernel a rendszer indításkor (teljes egészében) betöltődik A szolgáltató rutinok hívása: rendszerhívással (system call), megszakítással (IT), vagy kivételes eseményre való reagálással. Futási mód váltás (user mód - kernel mód: trap) Tipikus példa: korai Unix-ok Vadász 40 Réteges struktúra Ad Implementációs struktúra A szolgáltató rutinok rétegekbe szervezettek. A rétegezés előnye Egy rétegben jól meghatározott, összetartozó funkciók Egy réteg elrejti az alatta lévő komponensek részleteit Magasabb absztrakciós szintű szolgáltatásokat biztosít: virtuális gépet A rétegeket külön-külön betölthető fájlokba linkelik A betöltés akár dinamikusan is történhet (DLL) Már a monolitikusban is lehet diszpécser réteg Lehetséges: a rétegekhez egyre privilegizáltabb futási módok. Tipikus példa: a The OS Vadász 41 Rétegek A THE struktúrája 5 4 Operátor Felhasználói programok Az operátor indít, lelő processzeket Független processzek 3 2 1 0 I/O menedzsment, eszközök Operátor-processz kommunikáció Memória-dob menedzsment Processz allokálás, multiprogramozás Felette virtuális (absztrakt) I/O A processzeknek saját, virtuális konzolok Virtuális memória, a processz látja a teljes címtartományát Virtuális CPU-k, minden processztől elrejtve a többi Dijkstra professzor és hallgatói készítették, 1968. A rétegezés tervezési koncepció volt: egyetlen modulba linkelték. Vadász 42 14

A réteges struktúrától a virtuális gépig Ad Implementációs struktúra Emlékezz: az operációs rendszer virtuális gép: ezt a koncepciót erősíti a rétegezettség A rétegek virtuális (absztrakt, kiterjesztett) gépek Absztrakt (kiterjesztett, virtuális) instrukcióknak foghatók fel a rétegek közötti felületek hívásai Vadász 43 A kliens-szerver modell Ad Implementációs struktúra Igény a kisebb kernelre: mikrokernel Bizonyos rendszerszolgáltatások kiszolgálására önálló processzeket készítenek. Ezek önállóan linkelhetők Betöltődhetnek a rendszer egész életére, vagy időlegesen (daemon processzek) Futhatnak kernel-, vagy akár felhasználói módban Processzek közti kommunikációval kérhetők a szolgáltatások. A kernel szinte csak a kommunikációt és az időosztást biztosítja. Ebből fejlődtek ki a hálózati osztott rendszerek. Vadász 44 A kliens szerver modell Ad Implementációs struktúra Felhasználói mód Kliens processz Kliens processz Terminál szerver Fájl szerver Nyomtató szerver Kernel mód Kérelem, válasz üzenet Mikro-kernel Memória szerver Kliens processz Kernel Fájl szerver Kernel Processz szerver Kernel Üzenet Vadász 45 15

Kis összefoglalás Két oldalon összefoglaljuk a programtechnikai megoldásokat, majd tárgyaljuk a kernelbe való belépés és kilépés lehetőségeit, forgatókönyveit. Vadász 46 Programtechnikai megvalósítások Szolgáltató eljárás, függvény kód; call hívással érhető el (trap) Kivételes eseményt, megszakítást kiszolgáló rutinok; elérésük: IT-vel, kivétellel Önálló processzek (felhasználói/rendszer processzek) rutinjai; elérhetők processz közti kommunikációs mechanizmusokkal. Ilyenek pl.: a swapper; a módosított lapok készletét kiíró processz; az ACP-k (Ancillary Control Process), melyek pl. a fájloknak az eszközökön való elhelyezéséért felelősek (a rekordformátumokért az RMS felelős!); mentő/visszaállító processzek stb. Vadász 47 Programtechnikai megvalósítások Statikusan betöltődő kernel rutinok (A rutinokat fordítják, összelinkelik egyetlen végrehajtható fájlba; a betöltés során betöltődik és megkapja a vezérlést) Call hívással elérhetőek (gyakran trap-pel) IT-vel elérhetőek Dinamikusan betöltődő rutinok (regisztráció - betöltés - inicializálás - szokásos hívások [call/it] - shutdown - regisztráció megszüntetés szekvenciák) Önálló processzek (felhasználói vagy kernel szinten) Vadász 48 16

Hogyan juthat a vezérlés a kernelbe? A felhasználói processzekből rendszerhívással (System Call). (Ez a programozónak RTL hívásnak tűnik.) Hardverből megszakítással (Interrupt). Aszinkron. Hardverből kivételes esemény (Exeption Condition) bekövetkezésével. Váratlan, de szinkron. (Némely esetben ezt nevezik trap-nek.) Vadász 49 A kernelbe lépés eseményei (Unix) Átkapcsolás kernel módba Push PC és PSW (már a kernel verembe!) Hívás kódja a verembe Ált. célú regiszterek lementése (assembly rutin) Hívódik syscall() : rendszerhíváshoz (ez diszpécser); trap() : kivételes eseményhez; device driver rutin : IT-hez. A diszpécser ellenőrzi, másolja a paramétereket, felkészül a megszakítására, hívja a megfelelő szolgáltató rutint. Jegyezzük meg: a syscall és kivétel kiszolgálás processz kontextusban fut, míg az IT kiszolgálás rendszer kontextusban! Vadász 50 Visszatérés a kernelből Visszatérés a diszpécserhez (siker/sikertelenség jelezve); Szignál vizsgálat, szignál kiszolgálás; Ált. regiszterek visszavétele (assembly rutin); Hibakód az errno-ba, visszatérési regiszter beállítása; Return-from-interrupt instrukció (Pop PSW és PC); Visszaáll a felhasználói mód. Vadász 51 17

Összefoglalás. Eddig vettük: Az OS fogalmát, OS-ek fejlődési fokozatait, OS struktúrákat különböző nézőpontok szerint: funkcionális struktúra, az implementáció szerinti struktúra. A kernelbe lépés, a kernelből való kilépés eseményeit. Ezeket később még részletezzük. Vadász 52 OPERÁCIÓS RENDSZEREK OS fogalom, struktúrák, Vége 18