620 likes | 763 Vues
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:
E N D
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
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
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
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
IN IN EXEC EXEC OUT OUT JOB 4 IN IN EXEC EXEC OUT OUT JOB 3 JOB 2 JOB 1 • Multiprogramozás (Többfeladatos rendszerek) • önállóan működő egységek párhuzamos adatfeldolgozás • átlapolt rendszerek
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 • 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 Driver) • 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 • 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
JOB 0 Eszköz kezelő Processzor kezelés Memória kezelés Állománykezelés Erőforrás kezelés JOB 1 Rendszerhívások, válaszok Perifériák JOB 2 Megszakítás kezelő JOB x CPU MEM
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ó
Felhasználói felület Eszköz kezelő Processzor kezelés Memória kezelés Állománykezelés Erőforrás kezelés JOB 1 Rendszerhívások, válaszok Perifériák, óra JOB 2 Megszakítás kezelő JOB x CPU MEM KERNEL SHELL Felhasználók
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
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.
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.
Alapfogalmak • 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
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
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.
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
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.
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)
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óin (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.
Felhasználói programok Programok készítési támogatás Felhasználói folyamatok kiszolgálása Rendszerhívások Eszközkezelők Válaszok Megszakításkezelés Rendszermag (Kernel) Processzorkezelés, Memóriakezelés, Állománykezelés Eszközvezérlő Megszakítás vezérlő Perifériák
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
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.
I. alkalmazás II. alkalmazás IIII. alkalmazás I.Operációsrendszer II.Operációsrendszer III.Operációsrendszer Virtualizáló kernel Hardver • 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.
Java Alkalmazás JavaVirtuális gép Hardver • 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.
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ó: • 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
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
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épen 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 lehetőség. • NetWare szükség esetén foglal le memóriát
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
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.
Assemblyforrás C forrás C fordító ASM fordító Rendszerkönyvtárak Tárgykód Tárgykód Betölthető program
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.
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.
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
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
A parancsértelmező egyéb funkciói • Állományokkal, katalógusokkal kapcsolatos műveletek általában. • Ha nem mindent a parancsértelmező végez el, akkor megkülönböztetünk külső és belső parancsokat.
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ítsa 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.
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.
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
Fájlkezelő: a rendszermag azon része, amely a fájlokkal kapcsolatos műveleteket végzi Megj.: Ez nem azonos az ugyan ilyen nevű felhasználó programmal. A fájlkezelő egy folyamat, ami a felhasználói kéréseket az eszközvezérlőkhöz továbbítja.
KERNEL Felhasználói folyamatok Buffer (cache) Fájlkezelő Eszközkezelő Eszközök
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
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 karakteres hosszúságú kiterjesztés DOS kompatibilitás Hosszú fájlnevekből rövid név képzése
Példák: DOS EZEREGY.DOC UNIX Az.ezeregy.Ejszaka.Mesei.DOC Win 9x (h) Az ezeregy éjszaka meséi.doc Win 9x (r) AZEZER~1.DOC Helyettesítő karakterek • Wildcard, joker, metakarakter • DOS: ?, * • UNIX: ?, *, karaktercsoport
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
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
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