Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

OPERÁCIÓS RENDSZEREK OS fogalom, struktúrák 2006/2007. tanév I. félév Dr. Vadász Dénes.

Hasonló előadás


Az előadások a következő témára: "OPERÁCIÓS RENDSZEREK OS fogalom, struktúrák 2006/2007. tanév I. félév Dr. Vadász Dénes."— Előadás másolata:

1 OPERÁCIÓS RENDSZEREK OS fogalom, struktúrák 2006/2007. tanév I. félév Dr. Vadász Dénes

2 Vadász2 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.

3 Vadász3 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!

4 Vadász4 A gyakorlatok, gyakorlatvezetők IN 104 laborRépási Tibor –Kedd 8:00 2MMI –Kedd 9:002In –Kedd 12:002FP –Kedd 15:003In –Szerda 13:002EP

5 Vadász5 Irodalom Tannenbaum: Modern Operating Systems, Prentice Hall, Silberschach, Galvin: Operating Systems Concepts, Addison- Wesley, Kóczy, Kondorossi szerk: Operációs rendszerek mérnöki megközelítésben, Panem, Bach: The Unix System, Prentice Hall, Vahalia: UNIX Internals: the new frontiers, Prentice Hall, 1996 Vadász: Operációs rendszerek, ME, Unix on-line manual lapok, helps stb. Tudni kell angolul olvasni!

6 Vadász6 Az ütemterv Lásd a hirdetőtáblán!

7 Vadász7 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.

8 Vadász8 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

9 Vadász9 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)

10 Vadász10 Történetük 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. Tanenbaum 4 generációt említ …

11 Vadász11 I. generáció: (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

12 Vadász12 II. generáció: (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

13 Vadász13 III. generáció: (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.)

14 Vadász14 IV. generáció: (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

15 Vadász15 És ma? 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ó

16 Vadász16 Az utóbbi évtizedek … 1985 – 95: olcsó processzálás : olcsó sávszélesség A jövő: olcsó érzékelők … Egy másik áttekintés … Két lapot mutatok …

17 Vadász17 Az utóbbi évtizedek a számítástechnikában Az évek60-as70-es80-as90-es A paradigma Kötegelt feldolgozás Időosztás Asztali gépek Hálózatok Hol? Számító- központban Terminál- szobában ÍróasztalonMobil Az adatok Numerikus adatok Szövegek + számok … + rajzok Multimédia Fő célSzámításokHozzáférés Megjelení- tés Kommuni- káció

18 Vadász18 Az utóbbi évtizedek a számítástechnikában 2 Az évek60-as70-es80-as90-es A paradigma Batch Time sharing DesktopNetwork Az interfész Lyuk- kártya Billentyű- zet + CRT Lásd és kattints Kérdezd és mondd Kapcsoló- dás Nincs Terminál vonalak LANInternet Tulajdonos Intézeti sz.központ Osztályok Osztályok dolgozói Mindenki

19 Vadász19 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

20 Vadász20 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 Lehetne-e struktúrálni? Alkalmazás 1 Alkalmazás 2 OS kernel Hardver

21 Vadász21 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

22 Vadász22 Kernel struktúrák Funkcionális szerkezetek (szolgáltatások szerinti komponensek) Implementációs szerkezetek (hogyan programozzák az egyes komponenseket).

23 Vadász23 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)

24 Vadász24 Processz (taszk, fonál) menedzsment komponensek 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. Ad Funkcionális struktúra

25 Vadász25 Memória menedzselő komponensek 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. Ad Funkcionális struktúra

26 Vadász26 I/O és másodlagos tároló menedzsment 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 Ad Funkcionális struktúra

27 Vadász27 Fájl-rendszert megvalósító komponensek 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 Ad Funkcionális struktúra

28 Vadász28 Esettanulmányok A VAX/VMS, a W NT és a UNIX funkcionális struktúrája. 6 lapot mutatunk …

29 Vadász29 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.

30 Vadász30 A VMS struktúra System-wide data structures Memory Management I/O Subsystem Process and time management System services Kernel Record Management Service (RMS) Executive Command Language Interpreter (CLI) Supervisor Platform-Adaptation Layer (PAL) - Alpha Support LibrariesUtilities Program Development Tools Layered Products (Apps) User

31 Vadász31 Az NT struktúra, magas szinten OS/2 Windows POSIX Environment Subsystems User Application Subsystem DLL Windows User/GDI Device Driver Executive Device DriversKernel Hardware Abstraction Layer (HAL) User Mode Kernel Mode System & Service Processes Windows

32 Vadász32 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.

33 Vadász33 Windows NT Kernel

34 Vadász34 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ő.

35 Vadász35 A Unix funkcionális felépítése Hardver, vezérlők Programozói felület, rendszerhívás diszpécser Fájlrendszer Buffer cache Device drivers Folyamatok közti kommunikáció Memória menedzser Ütemező Folyamat vezérlő alrendszer I/O alrendszer Felhasználói processz Felhasználói mód Hardver szint Kernel mód (trap)

36 Vadász36 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 …

37 Vadász37 Lehetséges archeo tí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 futtaható program rutinjai.

38 Vadász38 Monolitikus rendszer 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 Ad Implementációs struktúra

39 Vadász39 Réteges 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 Ad Implementációs struktúra

40 Vadász40 A THE struktúrája Rétegek 5OperátorAz operátor indít, lelő processzeket 4Felhasználói programokFüggetlen processzek 3I/O menedzsment, eszközök Felette virtuális (absztrakt) I/O 2Operátor-processz kommunikáció A processzeknek saját, virtuális konzolok 1Memória-dob menedzsment Virtuális memória, a processz látja a teljes címtartományát 0Processz allokálás, multiprogramozás Virtuális CPU-k, minden processztől elrejtve a többi Dijkstra professzor és hallgatói készítették, A rétegezés tervezési koncepció volt: egyetlen modulba linkelték.

41 Vadász41 A réteges struktúrától a virtuális gépig 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 Ad Implementációs struktúra

42 Vadász42 A kliens-szerver modell 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. Ad Implementációs struktúra

43 Vadász43 A kliens – szerver modell Felhasználói mód Kernel mód Kliens processz Terminál szerver Fájl szerver Memória szerver … Kérelem, válasz üzenet Mikro-kernel Nyomtató szerver Kliens processz Kernel Fájl szerver Kernel Processz szerver Kernel Üzenet Ad Implementációs struktúra

44 Vadász44 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.

45 Vadász45 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.

46 Vadász46 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)

47 Vadász47 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.)

48 Vadász48 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!

49 Vadász49 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.

50 Vadász50 Ö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.

51 OPERÁCIÓS RENDSZEREK OS fogalom, struktúrák, Vége


Letölteni ppt "OPERÁCIÓS RENDSZEREK OS fogalom, struktúrák 2006/2007. tanév I. félév Dr. Vadász Dénes."

Hasonló előadás


Google Hirdetések