Download
oper ci s rendszerek os fogalom strukt r k n.
Skip this Video
Loading SlideShow in 5 Seconds..
OPERÁCIÓS RENDSZEREK OS fogalom, struktúrák PowerPoint Presentation
Download Presentation
OPERÁCIÓS RENDSZEREK OS fogalom, struktúrák

OPERÁCIÓS RENDSZEREK OS fogalom, struktúrák

122 Vues Download Presentation
Télécharger la présentation

OPERÁCIÓS RENDSZEREK OS fogalom, struktúrák

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

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

  2. 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

  3. 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

  4. A gyakorlatok, gyakorlatvezetők • IN 104 labor Répási Tibor • Kedd 8:00 2MMI • Kedd 9:00 2In • Kedd 12:00 2FP • Kedd 15:00 3In • Szerda 13:00 2EP Vadász

  5. 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/~vadasz/GEIAL202 • Unix on-line manual lapok, helps stb. Tudni kell angolul olvasni! Vadász

  6. Az ütemterv • Lásd a hirdetőtáblán! Vadász

  7. 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

  8. 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

  9. 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

  10. 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 … Vadász

  11. 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 Vadász

  12. 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 Vadász

  13. 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.) Vadász

  14. 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 Vadász

  15. É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ó Vadász

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

  17. Az utóbbi évtizedek a számítástechnikában Vadász

  18. Az utóbbi évtizedek a számítástechnikában 2 Vadász

  19. 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

  20. 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? Vadász

  21. 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

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

  23. 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

  24. 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

  25. 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

  26. 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

  27. 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

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

  29. 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

  30. A VMS struktúra Layered Products(Apps) Program Development Tools Utilities Support Libraries User Command Language Interpreter (CLI)Supervisor Record Management Service (RMS)Executive System servicesKernel Memory Management I/O Subsystem Process andtime management System-wide data structures Platform-Adaptation Layer (PAL) - Alpha Vadász

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

  32. 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

  33. Windows NT Kernel Vadász

  34. 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

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

  36. 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

  37. 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. Vadász

  38. 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

  39. 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

  40. A THE struktúrája Dijkstra professzor és hallgatói készítették, 1968. A rétegezés tervezési koncepció volt: egyetlen modulba linkelték. Vadász

  41. 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

  42. 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

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

  44. 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

  45. 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

  46. 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

  47. 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

  48. 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

  49. 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

  50. Ö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