Operációs rendszerek

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

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

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

Operációs rendszerek. Bemutatkozás

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

Bevezetés az informatikába

Alkalmazások típusai Szoftverismeretek

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

Számítógépes alapismeretek

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

Operációs rendszerek III.

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

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

Nyíregyházi Egyetem Matematika és Informatika Intézete. Fájl rendszer

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

Operációs Rendszerek II.

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. Elmélet

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

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

Operációs rendszerek. UNIX fájlrendszer

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

Operációs rendszerek Folyamatok 1.1

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

Operációs rendszerek

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

A számítógép egységei

INFOTECHNOLÓGIA I. Operációs rendszer működése, használata

Operációs rendszerek

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

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

Utolsó módosítás:

Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT

Digitális technika VIMIAA01 9. hét

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

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

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

Operációs rendszerek. Az X Window rendszer

(kernel3d vizualizáció: kernel245_graph.mpg)

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

Utolsó módosítás:

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

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

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

A szoftverfejlesztés eszközei

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

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

Matematikai és Informatikai Intézet. 4. Folyamatok

1. A Windows Vista munkakörnyezete 1

Operációs rendszerek (I 1204)

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

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

Az interrupt Benesóczky Zoltán 2004

386 processzor címzés

Kinek szól a könyv? A könyv témája A könyv felépítése Mire van szükség a könyv használatához? A könyvben használt jelölések. 1. Mi a programozás?

Utolsó módosítás:

5-6. ea Created by mrjrm & Pogácsa, frissítette: Félix

UNIX: folyamatok kommunikációja

Windows. Készítette: Csatlós István

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

Bevezetés a számítástechnikába

Operációs rendszerek

UNIX: fájlrendszerek

2. modul - Operációs rendszerek

Előadás_#02. Előadás_02-1 -

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

Operációs rendszer ismeretek

9. óra operációs rendszerek. Grafikus operációs rendszer

Az operációs rendszer. Az operációs rendszer feladatai, részei, fajtái Az operációs rendszer beállítása

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

Architektúra, megszakítási rendszerek

Programozás alapjai Bevezetés

Az operációs rendszer fogalma

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.

13. óra op. rendszer ECDL alapok

14. Tétel. A kezelt hardvererőforrásoknak része többek között a memória, a processzor, a merevlemez és a perifériális eszközök használata.

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

Operációs rendszerek. UNIX/Linux fájlrendszerek

IT - Alapismeretek. Megoldások

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

A L I N U X f e l é p í t é s e

Operációs rendszerek. A Windows NT

Operációs rendszerek MINB240

6. óra Mi van a számítógépházban? A számítógép: elektronikus berendezés. Tárolja az adatokat, feldolgozza és az adatok ki és bevitelére is képes.

Dr. Schuster György október 30.

KIRA. KIRA rendszer. Telepítési útmutató v1

Bevitel-Kivitel. Eddig a számítógép agyáról volt szó. Szükség van eszközökre. Processzusok, memória, stb

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

13. Tárgymutató. Windows XP alapokon

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

Operációs rendszerek gyak.

IT - Alapismeretek. Feladatgyűjtemény

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

Digitális rendszerek. Digitális logika szintje

Szoftver alapfogalmak

SZOFTVEREK (programok)

Operációs rendszerek II. jegyzet

12. Másodlagos tár szerkezet

Fájlrendszerek. A Windows operációs rendszerek fájlrendszere

1. tétel. A kommunikáció információelméleti modellje. Analóg és digitális mennyiségek. Az információ fogalma, egységei. Informatika érettségi (diák)

Átírás:

Operációs rendszerek

Az operációs rendszerek fejlődése A kezdetek 1944: első elektronikus számítógép nincs operációs rendszere huzalos programozású 1946: Első Neumann elven működő szg. még mindig nincs operációs rendszer kapcsolók segítségével programozható Hátrányok: kényelmetlen programozás kihasználatlanság Hatékonyság növelése kártyaolvasók a bevitel gyorsítására első szimbolikus nyelv, az assembler 2

1950: szélesedő felhasználói kör (matematikusok) Első magas szintű, algoritmusokra optimalizált nyelv a FORTRAN bővülő feladatkör Open Shop (Nyílt programozás) a felhasználó a gép előtt ülve végzi el a műveleteket gépidőt kell lefoglalni, csak ekkor tevékenykedhet egy tipikus programfuttatás menete:» konzolon a jelszó begépelése tártörlés» FORTRAN fordító kártyacsomag behelyezése, fordítandó program a kártyaolvasóba majd betöltés» kártyalyukasztón megjelenik a lefordított program» tártörlés, majd a lefordított program futtatása» konzol írógépen az eredmény megjelenése (ha minden tökéletes volt) nehézkes javítás, hosszú gépidőre várás 3

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 Tannenbaum szerint 4

Kötegelt feldolgozás hatékonyság növelésére szakképzett operátor alkalmazása képes volt hibajavításra, beérkező munkák rendszerezésére kevesebb fordítóprogram betöltés a felhasználók nem érintkeztek a géppel (Closed Shop) Kötegelt (batch) feldolgozás: Az egyes feladatokat leíró kártyakötegek utasításait egymás után sorjában hajtja végre a számítógép. Növekedett a számítógép sebessége az operátor nem győzte General Motors laboratorium cél: operátor hibáinak kiküszöbölése első operációs rendszer(ecske) a monitor állandóan a memóriában volt az operátornak csak a perifériákat kellet kezelnie kártya helyett mágnesszalag 5

feldolgozás menete:» felhasználói programok összegyűjtése (satellite)» az összegyűjtött program betöltése a számítógépbe» eredmény kiírása» eredmény közlése a felhasználókkal (satellite) mágnesszalag előnye az operátor nélküli pozícionálhatóság parancsnyelvek lérejötte 1960: SPOOL rendszerek a mágnesszalag is lassúnak bizonyult gyors átmeneti tárak létrehozása az input és output adatok számára (mágneslemezek) processzor nélküli adatátvitel (közvetlen memória hozzáférés) művelet befejezése megszakítás kéréssel 6

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 Tannenbaum szerint 7

Multiprogramozás (Többfeladatos rendszerek) önállóan működő egységek párhuzamos adatfeldolgozás átlapolt rendszerek JOB 4 JOB 3 JOB 2 JOB 1 IN EXEC OUT IN EXEC OUT IN EXEC OUT IN EXEC OUT együttes perifériaidő = együttes CPU idő igény hatékony rendszer nagyon ritkán valósul meg több program egyidejű végrehajtásának szükségessége 8

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.) Tannenbaum szerint 9

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 Tannenbaum szerint 10

É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ó 11

Az operációs rendszer több periféria jelenik meg és több feladatot kell egyidejűleg kezelni minőségi változások szükségesek megjelenik az alapfunkciókat ellátó vezérlőprogram (rendszermag) a kezelői felület (monitor) mellett Operációs rendszer = burok (shell) + mag (kernel) Az operációs rendszerek feladatai: Eszközkezelők (Device Drivers)» Egységes kezelői felület a különböző perifériáknak Megszakításkezelés (Interrupt Handling)» A perifériák igényeinek kielégítésre Rendszerhívás, válasz (System Call, Reply)» felhasználói alkalmazások erőforrás igénylésének kiszolgálása (programok futtatása, szervezése) 12

Erőforrás kezelés (Resource Management)» közös eszközhasználat megelőzése illetve konfliktus feloldása Processzor ütemezés (CPU Shceduling)» a várakozó munkák közötti processzoridő kiosztása valamilyen stratégia alapján» munkák közötti átkapcsolás Memóriakezelés (Memory Management)» memóriaterület felosztása a munkák között Állomány- és lemezkezelés (File and Disk Management)» rendszerezés, nyilvántartás Felhasználói felület (User Interface)» kommunikáció biztosítása a felhasználóval Hálózatkezelés (Net Management) 13

Megszakítás kezelő Perifériák Eszköz kezelő Processzor kezelés Memória kezelés Állománykezelés Erőforrás kezelés Rendszerhívások, válaszok JOB 0 JOB 1 JOB 2 JOB x CPU MEM 14

Interaktív rendszerek a terminálon lehetett a programot és az adatot bevinni programfejlesztés gyors növekedése számológép funkció helyett információkezelés Operációs rendszer újabb követelményei: Válaszidő» órák, napok másodpercek Időosztás» felhasználóval való foglalkozás» megjelenik az óra időosztás (time sharing) Felhasználói felület» parancsnyelv helyett parancsértelmezők» felhasználóbarát felület Felhasználói adminisztráció» jogi, biztonsági kérdések» felhasználók közötti kommunikáció 15

Megszakítás kezelő Perifériák, óra Eszköz kezelő Processzor kezelés Memória kezelés Állománykezelés Erőforrás kezelés Rendszerhívások, válaszok Felhasználók KERNEL SHELL Felhasználói felület JOB 1 JOB 2 JOB x CPU MEM 16

Valósidejű rendszerek (real time) Olyan interaktív rendszer, melyben egy kiszolgálás kérésre az adott válasz egy szigorúan meghatározott időn belül meg kell érkezzen. A jelen és a közeljövő Többprocesszoros rendszerek programok párhuzamos végrehajtása gyorsabb feldolgozás újabb feladatok megoldása folyamatok közötti kommunikáció folyamatok közötti szinkronizáció Előnyök: Megnövekedett átbocsátó képesség Erőforrás megtakarítás Megbízhatóság 17

Típusai: szimmetrikus» minden processzor egyenértékű» mindegyiken egy példánya fut az oprendszernek» minden folyamat bármelyik processzorra rábízható aszimmetrikus» az egyes processzorok feladata rögzített Elosztott rendszerek A többprocesszoros rendszerek másfajta felépítése. A processzoroknak saját memóriájuk és perifériáik vannak. A processzorok közötti kapcsolat valamilyen kommunikációs csatornán történik. 18

Előnyök Rugalmasság» Mindenféle feladathoz található(k) megfelelő számítógép(ek) Erőforrás megosztás» Hardver mellett információ megosztás Sebességnövekedés Megbízhatóság Kommunikáció Hátrányok Illetéktelen hozzáférés Operációs rendszer mindenhol A mindennapi életben használt gépekben. 19

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? Számítóközpontban Terminálszobában Íróasztalon Mobil Az adatok Num. adatok Szövegek + számok + rajzok Multimédia Fő cél Számítások Hozzáférés Megjelenítés Kommunikáció 20

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özp. Osztályok Osztályok dolgozói Mindenki Vadász 21

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

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

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öztetjük a programtól Ugyanannak a programnak több futó példánya is lehet A processz kontextus fogalmat is fogjuk tárgyalni A processz szál fogalommal is foglalkozunk még

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

Alapfogalmak részletezése Folyamatok Program: egy algoritmust megvalósító utasítások sorozata. Folyamat (task, process): Végrehajtás alatt lévő élő programok. Egy program több folyamatból is állhat. Ha több folyamat van, mint processzor a folyamatoknak várakozni kell. Folyamatleíró blokk (Process Control Block-PCB, Task State Segment-TSS) a folyamat számlálója, a programszámláló állása a folyamat állapota a regiszterek tartalma a folyamathoz tartozó memóriaterületek adatai a használt perifériák, állományok jellemzői 26

Folyamatok: Olyan programok, melyeknek van folyamatleíró blokkja. A tábla alapján lehet váltani a folyamatok között. Szálak (thread): folyamathoz hasonlítanak kevesebb adat kell a nyilvántartásukhoz gyors átkapcsolás a szálak között közös memóriahasználat (veszélyforrás) Erőforrások Erőforrás: Minden, ami egy folyamat végrehajtásához szükséges. Csoportosításuk: Elvehető (preemptive): a folyamat vagy az erőforrás nem károsodik Nem elvehető (non preemptive): a folyamat vagy az erőforrás is károsodhat 27

Az operációs rendszer meghatározása Erőforrás szemlélet: A folyamatok egy olyan csoportja, amely a felhasználói folyamatok között elosztja az erőforrásokat. Felhasználói szemlélet: A folyamatok egy olyan csoportja, amely megkíméli a felhasználókat a hardver kezelés nehézségeitől. Az operációs rendszerek szerkezete, szolgáltatásai Rendszermag (KERNEL) Feladata az erőforrások elosztása és kezelése, a felhasználói folyamatok igényeinek kielégítése, adminisztrálása. Folyamatok sokasága (rendszerfolyamatok) Induláskor jönnek létre és leállításig tartanak. 28

Felhasználói folyamatok létrehozása Folyamatleíró blokk elkészítése Memóriaterület biztosítása Processzoridő elosztása Folyamat sorrendjének meghatározása Felhasználói folyamatok elválasztása és védelme Rendszerhívások, válaszok A felhasználói folyamatok és az operációs rendszer magja közötti kommunikáció A rendszerhívások megvalósítására sok módszer létezik A processzorok is támogatják» felhasználói üzemmód» rendszer üzzemmód 29

Rendszerhívások kiszolgálása» A felhasználói folyamat legfontosabb paramétereinek elmentése» A kernel megfelelő folyamatára kerül a vezérlés» A paraméterek átadásra kerülnek a vermen, a regisztereken vagy valamely közösen használt memóriaterületen keresztül.» A processzor rendszermódba kapcsolódik át.» Elindul a megfelelő rendszerfolyamat, végrehajtja a kívánt feladatot.» A válaszok vagy hibakódok valamely paraméterátadásra szolgáló területre kerülnek.» A processzor visszatér felhasználói üzemmódba.» A megszakított folyamat visszakapja a vezérlést. 30

Eszközkezelők, megszakításkezelés A perifériák és az operációs rendszer magja közötti kommunikáció eszközei. Az eszközkezelők feladata a kernel tehermentesítése. Megszakítás kérés (interrupt request): az operációs rendszer figyelmének felhívása Megszakítások típusai:» Megszakítás (interrupt)» Kivétel (Exception)» Nem maszkolható megszakítás (Non Maskable Interrupt)» Csapda (Trap) 31

Megszakításkezelés lépései:» Megszakításkérés érkezik» A processzor befejezi az éppen végzett műveletet, majd, ha nincs letiltva az adott szintű megszakítás, elfogadja a kérést, ellenkező esetben várakoztatja.» A processzor elmenti a futó folyamat állapotvektorát» A CPU privilegizált (kernel) üzemmódba kerül, és letiltódik az összes olyan megszakítás, melynek prioritása kisebb vagy egyenlő az érkezett megszakításéval.» A központi egység megállapítja a megszakításkérés helyét, és megszakítási vektortáblából kikeresi a megfelelő kiszolgáló rutin címét.» A kiszolgáló rutin fut.» A CPU visszatér felhasználói (user) üzemmódba, és engedélyezi a letiltott megszakítási szinteket.» A processzor visszaállítja a megszakított folyamat állapotvektorát, ezzel visszaadva a vezérlést. 32

Felhasználói programok Programok készítési támogatás Felhasználói folyamatok kiszolgálása Rendszerhívások Válaszok Rendszermag (Kernel) Processzorkezelés, Memóriakezelés, Állománykezelés Eszközkezelők Eszközvezérlő Perifériák Megszakításkezelés Megszakítás vezérlő 33

Virtuális gépek Hol van a határ a rendszer magja és a felhasználói folyamatok között? DOS + Windows 3.1 + Windows folyamat Felhasználói folyamat Windows DOS BIOS Hardver 34

Többfelhasználós rendszereknél, multiprogramozott környezetben az operációs rendszerre, mint áthatolhatatlan falra szükség van. Az IBM VM rendszere Nincs nagyobb bonyolultságú rendszerhívás. A felhasználói interfész hardverként viselkedik. Több folyamat is működhet rajta párhuzamosan. A folyamatok egymástól teljesen függetlenek Előnye: Egyszerre futhat rajta több operációs rendszer; Párhuzamosan fejleszthető az újabb operációs rendszer, míg a régiek futnak. 35

Hátránya: A virtualizáló kernelnek a processzor üzemmódjainak tekintetében követnie kell a valódi viszonyokat. A folyamatok viszont csak felhasználói módban futhatnak. Bonyolult a lemezkezelés.minden folyamatnak a többitől függetlenül az egész lemezterületet kellene használnia. I. alkalmazás II. alkalmazás IIII. alkalmazás I. Operációs rendszer II. Operációs rendszer Virtualizáló kernel Hardver III. Operációs rendszer 36

A Sun JAVA rendszer A JAVA magas szintű, OOP. Teljesen elfedi a hardvert. A fordítás után ún. bájtkód keletkezik. A megírt rendszer minden gépen képes futni. Bonyolult, összetett operációs rendszert igényelnek. Java Alkalmazás Java Virtuális gép Hardver 37

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 és hibakezelő komponens(ek) Hálózatkezelő komponensek Felhasználói felület (nem feltétlenül OS komponens)

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

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 (csere swapping). Utóbbiakhoz kapcsolat a másodlagos tároló menedzsmenttel (virtuális tárkezelés).

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

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 Ad Funkcionális struktúra Mentések és visszaállítások s.programjai

Esettanulmányok implementációs rész A VAX/VMS, a Win. NT és a UNIX funkcionális struktúrája.

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.

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 services Kernel Memory Management I/O Subsystem Process and time management System-wide data structures Platform-Adaptation Layer (PAL) - Alpha

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

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.

Windows NT Kernel felépítése Alkalmazás Felhasználói mód Kernel mód Windows NT Executive Executive szolgáltatások I/O menedzser Objektum 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.

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

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 I/O alrendszer Fájlrendszer Buffer cache Device drivers Folyamat vezérlő alrendszer Folyamatok közti kommunikáció Ütemező Memória menedzser Hardver szint Hardver, vezérlők

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 Hol lehetnek ezek a rutinok? A betöltődő kernelbe linkelve Futtatható programba linkelve

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.

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) (Pl.: régi Unix) Ad Implementációs struktúra

Réteges struktúra A szolgáltató rutinok rétegekbe szervezettek. A rétegezés előnye Egy rétegben jól meghatározott, összetart. funkciók Egy réteg elrejti az alatta lévő komp.-k részleteit Magasabb absztr. szintű szolg.-at biztosít: virt. gépet A réteg.-et külön-külön betölthető f.-ba 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

Rétegek A THE struktúrája 5 Operátor Az operátor indít, lelő processzeket 4 Felhasználói programok Független processzek 3 I/O menedzsment, eszközök 2 Operátor-processz kommunikáció 1 Memória-dob menedzsment 0 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.

A réteges struktúrától a virtuális gépig Emlékezzünk: az operációs rendszer virtuális gép: ezt a koncepciót erősíti a rétegezettség Ad Implementációs struktúra 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

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 felh. módban Processzek közti kommunikációval kérhetők a szolgáltatások. A kernel szinte csak a komm.-t és az időosztást biztosítja. Ebből fejl.-k ki a hálózati osztott rend.-k. Ad Implementációs struktúra

A felhasználói felület

A felhasználói felület biztosítja a kommunikációt a felhasználó és a kernel között. A felhasználói felület részei az ellátandó feladatok szempontjából a következő részekre bonthatók: programindítás, kapcsolat a folyamatokkal a rendszermag szolgáltatásainak közvetlen felhasználói elérése a rendszermag programozói felülete alapvető segédprogramok 59

A felhasználó és a rendszermag Milyen lehetőségek vannak a külső és belső erőforrások elérésére. Külső erőforrások Kézi beállítás MS-DOS, Windows 16 bites verzió Automatikus beállítás Windows 9x Plug and Play (PnP) Félautomatikus beállítás NetWare: scan for new devices 60

Belső erőforrások Operációs rendszer alapvető erőforrásai a memóriák. Különböző rendszerekben különböző képpen lehet felhasználni. Pl. DOS különböző verziói Memória optimalizálása történhet Kézzel, önműködően, közbülső eljárással. DOS esetén betöltéskor kell megadni az átmeneti tárolok, fájlleíró táblák vázlatát. Windows esetén kevés a lehetőség. NetWare szükség esetén foglal le memóriát. 61

A programozói felület A programozó csak a kernelen keresztül érheti el a hardvert. A forráskód elkészítése Minden rendszerben van egy szövegszerkesztő (editor) Fordítás A fordító program készíti el a tárgykódot (object OBJ) amely tartalmazza: a processzor által ismert utasításokat, és a szoftvermegszakításokat Relatív címek szerepelnek benne 62

Az előre elkészített programrészletek a rendszerkönyvtárban helyezkednek el (library LIB) A kernel programozói szempontból egy függvény-, vagy eljáráskönyvtár. Application Programming Interface (API) Szerkesztés A szerkesztő (linker) feladata a tárgykódú modulok címeinek összehangolása, a kereszthivatkozások feloldása, A betölthető program (executable EXE) előállítása. 63

C forrás Assembly forrás Rendszer könyvtárak C fordító Tárgykód ASM fordító Tárgykód Betölthető program 64

Karakteres felhasználói felület Ezek az ún. parancsértelmezők Feladatuk az OR szolgáltatásainak biztosítása az interaktív felhasználónak. Gyakori elnevezéseik: Shell: a felhasználói felület burokba zárja, eltakarja a rendszer magját; Command interpreter: akkor használják, ha a rendszer parancsainak a kiszolgálása a leglényegesebb; Monitor: akkor használják, ha a folyamatok felügyelete az elsődleges. 65

A shell alapvető feladatai: Programindítás, programkezelés Egyéb, operációs rendszer funkciók felhasználói szintű biztosítása Programkezelés Négy részből áll: A betöltendő állomány kiválasztása. A program számára a megfelelő környezet biztosítása. A folyamat futásának megfigyelése, szabályozása. Vezérlési szerkezetek megvalósítása. 66

Program indítása A program indítása általában nem más, mint a gépi utasítássorozatot tartalmazó állomány nevének megadása. Run (fut) vagy Load (betölt) utasítás a program neve előtt. Közvetett fájlelérés.» Ugyanazon állományhoz több helyről is hivatkozhatunk. Keresési útvonal megadása.» DOS esetén PATH» NetWare esetén SEARCH DRIVE Láncolt programfuttatás Automatikus programbetöltés 67

Program környezet beállítása (enviroment) A program futását befolyásoló, módosító paraméterek összességét nevezzük a program környezetének. A környezeti változók adatokat biztosítanak a létrejövő folyamat számára Az adatok lehetnek:» Paraméterek» Kapcsolók (switch, flag, option)» Átirányítási adatok (redirection)» Környezeti változók (environment variables) A folyamat futásának ellenőrzése Személyi számítógépeknél korlátozott. Többfeladatos rendszereknél, folyamatot lehet megszüntetni, illetve felfüggeszteni. Vezérlési szerkezetek Korlátozott feltételes elágazás és ciklus megvalósítás. 68

A parancsértelmező egyéb funkciói Állományokkal, katalógusokkal kapcsolatos, általában. Ha nem mindent a parancsértelmező végez el, akkor megkülönböztetünk külső és belső parancsokat. 69

Grafikus felhasználói felületek A folyamatok ablakokban futnak ablakozó technika Az ablakozó rendszer működése GUI (Graphical User Interface Grafikus Felhasználói Felület) GUI feladata: A folyamat számára biztosítja a grafikus bevitelt és megjelenítést. GUI működése: Minden futó alkalmazáshoz tartozik egy ikon. A felhasználó tevékenykedik, eseményeket vált ki. GUI megállapítja melyik folyamattal kíván kommunikálni a felhasználó, és üzenetet küld. Az alkalmazás feldolgozza az üzenetet. 70

A grafikus felületek jellemzői Ablakok rendszere Az események címzettjeinek felismerése Eszközfüggetlen működés Az adatforgalom csökkentése Egy felhasználóbarát felület jellemzői Könnyű legyen megtanulni. Billentyűkombináció helyett menüszerkezet Méretezhető legyen A felhasználó ismerete szerinti segítségnyújtás. Lehessen visszavonni Legyen megszakítható egy művelet. Legyen többszintű súgó rendszer. Használata hasonlítson a nyelvhez. Minden utasításra legyen válasz. 71

Állományok

Fájl = Állomány Az adatok egy olyan csoportja, melyre együttesen, egy névvel hivatkozhatunk. UNIX-nál a fájl nem csak a tárolt adatokat jelenti. A mágneses háttértárak feladata: Operatív tár kiegészítése, méretének látszólagos megnövelése. Létrehozott állományok megőrzése. Lemezen tárolt adatok csoportosítása Ideiglenes állományok Felhasználói állományok Adminisztratív állományok 73

Fájlkezelő: a rendszermag azon része, amely a fájlokkal kapcsolatos műveleteket végzi. Megj.: Ez nem azonos az ugyanilyen nevű felhasználói programmal. A fájlkezelő egy folyamat, ami a felhasználói kéréseket az eszközvezérlőkhöz továbbítja. 74

KERNEL Felhasználói folyamatok Buffer (cache) Fájlkezelő Eszközkezelő Eszközök 75

Fájlnevek MS-DOS Két komponenses 1 rész a név: minimum 1, maximum 8 karakter 2 rész a kiterjesztés: legfeljebb 3 karakter A két részt pont választja el egymástól. A felhasználható karakterek ASCII kódtábla nagybetűi ASCII kódtábla számai Néhány speciális karakter (~! @ # $ % ^ & _ - {}) Ékezetek használata Az újabb verzióknál lehetséges, de nem ajánlott 76

UNIX Hossza maximum 255 karakter. Komponensek száma tetszőleges. A komponensek elválasztója a pont. Különbséget tesz kis és nagybetű között. Használható karakterek: nagyjából megegyeznek a DOS-nál használhatókkal. Windows 9x Kettős elnevezésrendszer Dokumentum-orientált szemlélet Max. 250 tetszőleges karakterből álló név Max. 3 (később 4) karakteres hosszúságú kiterjesztés DOS kompatibilitás Hosszú fájlnevekből rövid név képzése 77

Példák: DOS UNIX Win 9x (h) Win 9x (r) EZEREGY.DOC Az.ezeregy.Ejszaka.Mesei.DOC Az ezeregy éjszaka meséi.doc AZEZER~1.DOC Helyettesítő karakterek Wildcard, joker, metakarakter DOS:?, * UNIX:?, *, karaktercsoport JÓ LEVI?.TXT LEVI1.TXT *NI.DOC LEVI2.TXT DANI.DOC ZOKNI.DOC NEM JÓ LEVI10.TXT DANO.DOC [TD]OBOZ (unix!) TOBOZ DOBOZ KOBOZ doboz 78

Fájlok jellemzői Utolsó módosítás időpontja Fájl mérete Tulajdonos (több felhasználós) Fájl állapotára utaló jelzőbitek Archiválandó Csak olvasható Rendszerfájl Rejtett állomány Katalógus Szimbolikus hivatkozás Adatcsere fájl Hozzáférési jogok (Unix) Fájl fizikai elhelyezkedése 79

Közvetett hivatkozás Egy fájlhoz több elnevezés Főleg UNIX esetén, de Windows 9x-nél is előfordul Előnye Csak a nevek szaporodnak Többféleképpen csoportosíthatók Több katalógusban is szerepelhet A fájlban történő változások azonnal megjelennek mindenhol Fajtái Merev láncolás Lágy láncolás 80

Katalógusok (directory) Def.: Olyan speciális állomány, melynek tartalma a fájlok nevét és jellemzőit tartalmazó rekordok listája. Fájl hivatkozás esetén a katalógust vizsgálja az OR, hogy létezik-e a fájl. Ha megvan a fájl, következik a jogosultsági ellenőrzés. Fajtái Katalógus nélkül: soros tárolású adathordozóknál 81

Egyszintű katalógus Lassú a fájl megtalálása. A rendezés segíthet. Bináris keresés Legutóbb használt kerül legelőre Minden fájlnak egyedi név kell. Kétszintű katalógus Áttekinthetőbb rendszer. Minden felhasználónak külön katalógusa van. A közös fájlok külön katalógusban vannak. Katalógusok katalógusa a fő (master, gyökér) katalógus. A szinteket a \ vagy a / választja el egymástól. 82

Többszintű (hierarchikus) fájlrendszer Kiindulópont a gyökérkönyvtár. Szerepelhetnek benne fájlok és alkatalógusok (subdirectory). A hierarchikus felépítés gyorsítja a keresést. Az egymásba ágyazott katalógusok száma elvileg nem korlátozott. Abszolút hivatkozás: A fájl megadásának az a módszere, ahol a gyökér katalógustól kezdődően az összes közbülső katalógus nevének felsorolása után jutunk el a fájlhoz. Relatív hivatkozás: A fájl megadásának az a módszere, ahol a gyökér katalógus helyett az aktuális katalógus a kiinduló pont. 83

Hozzáférési jogok A felhasználói jogosultságoknál alkalmazott modell. Vannak: Felhasználók, fájlok, jogosultságok. Jogosultságok típusai Olvasás (Read) Írás (Write) Létrehozás (Create) Végrehajtás (execute) Törlés (Erase) Jellemzők módosítása (Modify) Hozzáférés módosítása Jogok nyilvántartása 84

Fájlok elhelyezése Foglaltsági tábla Első üres blokk címe 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 1 1 0 0 0 0 1 1 1 1 0 0 0 1 1 0 Üres blokk címe Mérete 2 4 10 3 15 1 Folytonos kiosztás A legelső alkalmas (First Fit) A legjobban illeszkedő (Best Fit) A legrosszabbul illeszkedik (Worst Fit) 85

10 30 30 30 30 10 12 12 10 12 15 10 15 15 FIRST BEST WORST 86

Hátrányai Előnye Összességében elegendő hely esetén is előfordulhat, hogy újabb fájl már nem helyezhető el. Pontos illeszkedés esetén a fájl mérete másolás nélkül nem növekedhet. Egy blokk törlése a fájlból a maradék blokkok eggyel előbbre történő mozgatását eredményezi. Könnyű a fájlok nyilvántartása, csak a kezdő blokk sorszámát kell tárolni. Láncolt elhelyezés Egy újabb táblát vezetünk be. A katalógus csak a fájlok kezdő blokkját tárolja. Többi információt a Fájl Elhelyezési Tábla tárolja (File Aloccation Table). 87

FAT jellemzői U.a. eleme van, mint ahány blokk van a lemezen. Minden rekesz tárolja a fájl következő blokkjának helyét. Nulla az érték, ha ez a fájl utolsó blokkja volt. Fájl FAT Lemez 1 2 3 4 1 5 2 2 3 2 4 1 7 5 3 6 Katalógus 0 7 4 8 88

Előnyök A szabad helyek az utolsó blokkig kihasználhatók Nem kell keresni a megfelelő üres helyet. Nem probléma a fájl méretének változása Hátrány A blokkok elérése szekvenciális. A FAT nagy táblázat is lehet. Sűrűn kell használni, ezért a memóriában kell tárolni. A FAT sérülése fájlvesztéssel jár. Biztonsági másolat. 89

Indextábla alkalmazása Minden állományhoz külön táblázat tartozik. Katalógus tartalmazza a fájlhoz tartozó táblát, a tábla pedig a fájl blokkjainak címét. Előnye az elhelyezési információ gyorsan elérhető kevésbé sérülékeny blokkok közvetlenül elérhetők Hátránya becslésre van szükség foglaltsági tábláról külön kell gondoskodni törlésnél az indextábla bejegyzéseit kell előrébb másolni 90

A katalógus egy címet, egy indextábla címet tartalmaz, amely 15 rekeszből áll. Az első 12 a fájl első 12 blokkjának sorszáma. Ha ez nem elég a 13. rekesz egy újabb indextáblára mutat. Ha ez sem elég a 14. rekesz egy indirekt indextáblára mutat, amelynek tartalma további 15 indextábla, és így tovább Fájl 1 2 3 4 INODE 4 2 5 7 Lemez 2 1 3 Katalógus 4 91

Műveletek állományokkal, katalógusokkal Állományok, katalógus létrehozása állomány létrehozása: a katalógusba új bejegyzés kerül, az új számára az OR. megfelelő mennyiségű szabad blokkot keres katalógus létrehozása: különleges státuszát mutató attribútumán kívül semmiben sem különbözik Írás, olvasás állományokba Keresés a katalógusban: a fájl neve alapján az állomány jellemzőinek, fizikai elhelyezkedésének adatait keressük. Állomány megnyitása: az OR ellenőrzi a jogosultságot, ha rendben van létre hozza a fájl leíró táblázatát (file control block - FCB). 92

A megnyitás lehet:» írás» olvasás» hozzáfűzés» írás/olvasás Az adatok értelmezése szerint:» bináris» szöveg Az elérés módja szerint» sorrendi (szekvenciális)» tetszőleges (random) Pozícionálás állományokban: mutató helyének beállítása. Fájl elejére, fájl végére. Írás/olvasás Állomány kezelése: hatására az átmeneti tárolóban lévő adatok rögzítésre kerülnek, az FCB megszűnik. Állomány, katalógus törlése: bejegyzés a szülő katalógusba. 93

Készült: Dr. Vadász Dénes előadásai alapján 94