Operációs Rendszerek II. Első előadás
Első verzió: 2004/2005. I. szemeszter Ez a verzió: 2009/2010. II. szemeszter Sunday, February 14, 2010
Bemutatkozás Bringye Zsolt E-mail:
[email protected] Web: http://www.bringyezsolt.hu
Sunday, February 14, 2010
A szemeszter anyaga • • • • • • •
Történeti áttekintés, fejlődés mozgatórugói Operációs rendszerek leírása Folyamatok és szálak (ütemezés, stb.) Memóriakezelés I/O kezelés és diszkek Fájlrendszerek, fájlok Elosztott rendszerek
Sunday, February 14, 2010
Felkészülés, számonkérés • Vizsga anyaga: ≤ előadáson elhangzottak – – – – –
Rajzok (pl. állapottér) Algoritmusok (egyszerű, beszélt nyelven) Több megoldás (algoritmus) összevetése Nem lesz: konkrét nevek, évszámok, típusok De: időszak, gyártmány (cég) lehet!
• Előadás diák letölthetők (lesznek nemsokára) • Miért teszt alapú a számonkérés?
Sunday, February 14, 2010
Mai nap témái • • • •
Mi az, hogy „operációs rendszer”? Black-box leírás Rövid történet A fejlődés mozgatórugói
Sunday, February 14, 2010
Mi az operációs rendszer? • An operating system (OS) is a computer program that manages the hardware and software resources of a computer. At the foundation of all system software, the OS performs basic tasks such as controlling and allocating memory, prioritizing system requests, controlling input and output devices, facilitating networking, and managing files. It also may provide a graphical user interface for higher level functions. It forms a platform for other software (Wikipedia) 6 Sunday, February 14, 2010
Mi az operációs rendszer? • An operating system (OS) is a computer program that manages the hardware and software resources of a computer. At the foundation of all system software, the OS performs basic tasks such as controlling and allocating memory, prioritizing system requests, controlling input and output devices, facilitating networking, and managing files. It also may provide a graphical user interface for higher level functions. It forms a platform for other software (Wikipedia) 6 Sunday, February 14, 2010
Mi az operációs rendszer? • An operating system (OS) is a computer program that manages the hardware and software resources of a computer. At the foundation of all system software, the OS performs basic tasks such as controlling and allocating memory, prioritizing system requests, controlling input and output devices, facilitating networking, and managing files. It also may provide a graphical user interface for higher level functions. It forms a platform for other software (Wikipedia) 6 Sunday, February 14, 2010
Mi az operációs rendszer? • An operating system (OS) is a computer program that manages the hardware and software resources of a computer. At the foundation of all system software, the OS performs basic tasks such as controlling and allocating memory, prioritizing system requests, controlling input and output devices, facilitating networking, and managing files. It also may provide a graphical user interface for higher level functions. It forms a platform for other software (Wikipedia) 6 Sunday, February 14, 2010
Mi az operációs rendszer? • master control program in computer: the essential program in a computer that maintains disk files, runs applications, and handles devices such as the mouse and printer (MSN Encarta) • Olyan program, amely közvetítőként működik a felhasználó és a számítógép hardvere között (Kóczy-Kondorosi, 2000)
Sunday, February 14, 2010
Mi az operációs rendszer? • A számítógép hardver elemei és az (alkalmazói) programok közötti szoftver réteg, amely biztosítja a hardver komponensek (erőforrások) hatékony használatát • Az operációs rendszer elfedi a hardver sajátosságait, egyfajta virtuális gépként jelenik meg a felsőbb rétegek számára
Sunday, February 14, 2010
Black-box leírás • Nem érdekel, „mi van belül”, az interfészek megadásával írom le a vizsgált „valamit”
Sunday, February 14, 2010
Black-box leírás • Nem érdekel, „mi van belül”, az interfészek megadásával írom le a vizsgált „valamit”
Sunday, February 14, 2010
Felhasználói interfész • Ember-gép kapcsolat, tipikus formájában képernyő, billentyűzet és (manapság) valamilyen pozicionáló eszköz segítségével • A különféle felhasználói csoportok (végfelhasználó, programozó, rendszer admin) elvárásai eltérőek, ez a különbség általában az interfészben is tapasztalható
Sunday, February 14, 2010
Felhasználói csoportok • Végfelhasználók – Napi tevékenységükhöz szükséges alkalmazásokat használnak, operációs rendszerrel minimális a közvetlen kapcsolatuk
• Fejlesztők (alacsony szintű megoldások) – Operációs rendszer által biztosított virtuális gépen fejlesztenek – Operációs rendszeri eszközöket (is) használnak (utility-k)
• Rendszer adminisztrátorok – Operációs rendszer működését felügyelik, hangolják – Folyamatos állapot információkkal kell rendelkezniük – A működésbe is beavatkoz(hat)nak
Sunday, February 14, 2010
Felhasználói felületek • Grafikus és karakteres felületek egyaránt használatosak • A karakteres felület lehet parancssoros és menü alapú • Egy rendszernek lehet többféle felülete is • A végfelhasználók esetén szinte csak grafikus felület, de a többi csoportban is használják • Feladatok összekapcsolása sokszor hasznos lehet, ez jellemzően parancssoros megoldásoknál használatos
Sunday, February 14, 2010
Felhasználói felületek • Grafikus és karakteres felületek egyaránt használatosak • A karakteres felület lehet parancssoros és menü alapú • Egy rendszernek lehet többféle felülete is • A végfelhasználók esetén szinte csak grafikus felület, de a többi csoportban is használják • Feladatok összekapcsolása sokszor hasznos lehet, ez jellemzően parancssoros megoldásoknál használatos
Sunday, February 14, 2010
Felhasználói felületek • Grafikus és karakteres felületek egyaránt használatosak • A karakteres felület lehet parancssoros és menü alapú • Egy rendszernek lehet többféle felülete is • A végfelhasználók esetén szinte csak grafikus felület, de a többi csoportban is használják • Feladatok összekapcsolása sokszor hasznos lehet, ez jellemzően parancssoros megoldásoknál használatos
Sunday, February 14, 2010
Felhasználói felületek • Grafikus és karakteres felületek egyaránt használatosak • A karakteres felület lehet parancssoros és menü alapú • Egy rendszernek lehet többféle felülete is • A végfelhasználók esetén szinte csak grafikus felület, de a többi csoportban is használják • Feladatok összekapcsolása sokszor hasznos lehet, ez jellemzően parancssoros megoldásoknál használatos
Sunday, February 14, 2010
Alkalmazási Programozói Felület • Az operációs rendszer, mint virtuális gép „utasításkészlete” (a számítógép utasításkészletének kiterjesztése) • Tipikusan rendszerhívásokon keresztül érhető el • A programozói nyelvek tipikusan elfedik ezt a felületet (még a C is – hiszen itt is C függvényhívásokat, nem pedig rendszerhívásokat használunk), de a saját szolgáltatás-készletüket erre alapozzák
Sunday, February 14, 2010
Hardver Interfész • Különféle hardver elemek kezelése – – – –
Hatékonyság Hardverek sokaságának támogatása Képesség a fejlődésre (új fajta hardverek) Hibakezelés
Sunday, February 14, 2010
Interfészek, határok
Sunday, February 14, 2010
Interfészek, határok
Sunday, February 14, 2010
Interfészek, határok
Sunday, February 14, 2010
Operációs rendszerek fejlődése • • • • • •
Operációs rendszer nélküli idők Egyszerű kötegelt rendszerek Multiprogramozott kötegelt rendszerek Időosztásos rendszerek Személyi számítógépek Specialitások: valós idejű és elosztott rendszerek • Specialitások: PDA-k, okos telefonok és társaik…
Sunday, February 14, 2010
Operációs rendszer nélkül • A kezdeti idők (40-es évek végétől az 50-es évek közepéig) teljesen manuális megoldása • Kézi ütemezés (foglalási tábla) – lehet, hogy programot ki kellett lőni, de az is lehet, hogy a gép „üresen állt” • A program indítása jelentős időt vett el a hasznos működéstől • Feladat: rendszer kihasználtságának növelése
Sunday, February 14, 2010
Egyszerű kötegelt feldolgozás • 50-es évek közepe, GM (IBM platformra) • A rendszer vezérlése nem manuálisan, hanem egy program által (rezidens monitor) történik • A futtatandó program kártyáit a monitornak szóló leírással (JCL) együtt előre be kellett „tárazni” • A megvalósítás feltételei: – Memória védelem (monitor meg tudja védeni magát) – Időzítő (timer), megszakítások (később) – Privilegizált utasítások (monitor megkerülése ellen) – végrehajtási módok (user, kernel) megjelenése
Sunday, February 14, 2010
Egyszerű kötegelt feldolgozás • 50-es évek közepe, GM (IBM platformra) • A rendszer vezérlése nem manuálisan, hanem egy program által (rezidens monitor) történik • A futtatandó program kártyáit a monitornak szóló leírással (JCL) együtt előre be kellett „tárazni” • A megvalósítás feltételei: – Memória védelem (monitor meg tudja védeni magát) – Időzítő (timer), megszakítások (később) – Privilegizált utasítások (monitor megkerülése ellen) – végrehajtási módok (user, kernel) megjelenése
Sunday, February 14, 2010
Egyszerű kötegelt feldolgozás • 50-es évek közepe, GM (IBM platformra) • A rendszer vezérlése nem manuálisan, hanem egy program által (rezidens monitor) történik • A futtatandó program kártyáit a monitornak szóló leírással (JCL) együtt előre be kellett „tárazni” • A megvalósítás feltételei: – Memória védelem (monitor meg tudja védeni magát) – Időzítő (timer), megszakítások (később) – Privilegizált utasítások (monitor megkerülése ellen) – végrehajtási módok (user, kernel) megjelenése
Sunday, February 14, 2010
Multiprogramozott kötegelt feldolg. • 60-as évek közepétől • A kötegelt feldolgozás nem segített a processzor futás közbeni üresjáratain (I/O-ra várakozás) • Egy időben több program található a memóriában, ezek közül választjuk ki azt, amelyik futhat • Feltételek – Memória menedzsment (több program a memóriában) – Megszakítások
Sunday, February 14, 2010
Időosztásos rendszerek • A kötegelt rendszerek bizonyos feladatokra (pl. tranzakció feldolgozás) alkalmatlanok, viszont a számítógépek túl drágák, hogy egyetlen ember használja őket • Az interaktív felhasználók (programjaik) időszeleteket kapnak • Egyik első megvalósítás: CTSS, MIT 60-évek eleje • Terminálok elterjedése
Sunday, February 14, 2010
Kötegelt vs. Időosztásos Kötegelt feldolgozás
Időosztásos rendszerek
Optimalizálás alapja
Processzor Válaszidők kihasználtság minimalizálása maximalizálása
Rendszer vezérlése
JCL nyelvű programok
Sunday, February 14, 2010
Terminálról ad-hoc bevitt parancsok
Személyi számítógépek • • • •
Olcsó, tömegesen elterjedt rendszer Kifejezetten személyi (single user) használatra Kezdetben korlátos erőforrások, de ma már nem Erőforrások kihasználása nem szempont, felhasználói élmény fokozása a cél • A felhasználók informatikai képzettsége sokkal alacsonyabb, mint a korábbi rendszereknél
Sunday, February 14, 2010
Valós idejű rendszerek • Nem új történet, de korábban csak specializált területeken • Megkülönböztetünk „hard” és „soft” rendszreket, a közkedvelt rendszerek gyakorlatilag csak az utóbbi kategóriát teljesítik • Hard real-time rendszerek esetén komoly matematikai háttér
Sunday, February 14, 2010
Elosztott rendszerek • A szükséges számítási teljesítményt és/vagy megbízhatóságot nem drága, egyedi rendszerekkel, hanem több (sok) olcsó rendszer együttműködésén alapuló megoldásokkal biztosítjuk • Igazán kényelmes használatuk újfajta operációs rendszereket (is) igényelne, ezek még inkább csak kutatási fázisban találhatók meg • Feladtokat jelenleg alkalmazás és/vagy middleware szinten oldjuk meg
Sunday, February 14, 2010
PDA-k, Okos telefonok, stb. • A „klasszikus” számítógépektől eltérő használati mód, eltérő hardver képességekkel (perifériák képességei, rendelkezésre álló erőforrások) • Méret, fogyasztás kritikus • Itt is vannak operációs rendszerek – – – –
Windows Mobile Symbian Palm OS Linux
Sunday, February 14, 2010
Hardver • Néhány szó a hardverről – Processzor – Memória – I/O
Sunday, February 14, 2010
Processzor • Néhány szó a hardverről – Processzor • • • • •
Utasítások végrehajtása (utasításkészlet) Utasítások forrása: központi memória Regiszterek (általános célú, státusz és vezérlő) További adatok tárolása: központi memória Megszakítások (hw. és sw.)
– Memória – I/O
Sunday, February 14, 2010
Memória • Néhány szó a hardverről – Processzor – Memória • Utasítások és adatok tárolása • Stack terület • RAM és NVRAM (ROM) részek
– I/O
Sunday, February 14, 2010
I/O • Néhány szó a hardverről – Processzor – Memória – I/O • Típusok – Másodlagos tároló – Humán interfész – Gép-gép kapcsolat
• Szélsőséges sávszélesség igények
Sunday, February 14, 2010
Operációs rendszerek és a hardver • Vizsgálat keretei – Esetek • Nincs operációs rendszer • Minimál operációs rendszer • Multiprogramozás
– Értékelési szempontok • • • •
Operációs rendszer szolgáltatásai Processzor, memória, I/O kezelése Védekezés hibás, rosszindulatú kódoktól Környezet változására való érzékenység
Sunday, February 14, 2010
Nincs operációs rendszer • Operációs rendszer szolgáltatásai: nincs! • Rendszer indításakor a program feladata az inicializálás – (Legalább részben) NVRAM-ból kell futnia – CPU beállítások (opcionális) – Perifériavezérlő áramkörök inicializálása
• Teljes kontroll az összes hardver elem felett (beleértve a processzort is)
Sunday, February 14, 2010
Nincs OS - értékelés • Processzor, memória, I/O kezelése – Teljes mértékben egyéni megvalósítás
• Védekezés hibás, rosszindulatú kódoktól – Amit a programozó beépít, nincsenek „társak” (csak önmagától kell megvédenie magát)
• Környezet változására való érzékenység – Amit a programozó beépít (jellemzően rendkívül nagy lehet)
Sunday, February 14, 2010
Minimál operációs rendszer • Rendszer indítás és inicializálás • Minimális parancs interfész (CLI, batch) • Loader funkció, program lehet másodlagos tárolón vagy távoli helyen (tftp) – a betöltés után a vezérlés alapvetően a programnál van • Opcionálisan: sokat használt funkciók megvalósítása (kezdetleges virtuális gép!) – Perifériák kezelése (tip. megszakítás alapon)
Sunday, February 14, 2010
Minimál OS – értékelés • Processzor, memória, I/O kezelése – Egyéni megvalósítás, esetleg I/O esetén minimális támogatás (kb. instant eljárások)
• Védekezés hibás, rosszindulatú kódoktól – Amit a programozó beépít, nincsenek „társak” – Az OS védtelen a programtól (⇒MS DOS éra)
• Környezet változására való érzékenység – Alapvetően nagy, de mértéke az „instant eljárások” segítségével csökkenthető
Sunday, February 14, 2010
A „minimál OS” világán túl Multiprogramozott rendszerek • A rendszer egyetlen program általi kisajátítása nem „szerencsés” – Régen: drága a számítógép idő • Kötegelt: egyetlen program ált. nem tudja folyamatosan kihasználni a rendszer erőforrásait (pl. I/O-ra vár) • Időosztásos: a számítógépek túl drágák voltak ahhoz, hogy egy időben egyetlen ember használja őket
– Ma: hatékonyság • A PC felhasználók szeretnek egyszerre több dologgal foglalkozni (ugye Önök is) • A szerverek egy időben több kliens kérését is ki kell, hogy szolgálják (ezért szerverek)
Sunday, February 14, 2010
A „minimál OS” világán túl Multiprogramozott rendszerek • Egy időben több kód fut (látszólag vagy valóban) • A programok versenyeznek a számítógép erőforrásaiért (processzor, memória, I/O) • Kódok az operációs rendszerre, egymásra és önmagukra is veszélyt jelenthetnek
Sunday, February 14, 2010
Több program egyidejű futtatása • Kötegelt rendszerek esetén a rendszer terhelését maximalizáljuk • Interaktív rendszerek esetén a válaszidőt kell kordában tartani, a programok között periodikusan kell váltani (a felhasználók egymást nem akadályozhatják) – Szerverek: itt is fontos a válaszidő, de nem közvetlen felhasználói interakcióban, hanem gép-gép szolgáltatásban – PC-k: egy felhasználó több programjára igaz
Sunday, February 14, 2010
Váltás programok között • Programok közötti váltás: „ki birtokolja” a processzort? ⇒ ütemezés • A (vissza) váltás után a program a futását ott folytassa, ahol korábban abbahagyta (hasonlót már láttunk – megszakítások) • A processzor birtoklásán túl egyéb problémák is adódnak: – Memóriakezelés – I/O kezelés
Sunday, February 14, 2010
Memóriakezelés • A processzor csak a központi memóriában található kódhoz/adathoz fér közvetlenül hozzá • Programok (adatok) folyamatos mozgatása a másodlagos tárolóról/ra jelentős erőforrás és időigényt jelentene, ezalatt a processzor semmittevésre kényszerül • Egy időben több programot kell a memóriában tartani ⇒ egyetlen program sem sajátíthatja ki a memóriát • A memóriamenedzsment az operációs rendszer feladata, meglehetősen összetett probléma (foglalási módok, relokáicó)
Sunday, February 14, 2010
I/O kezelés • Minden programnak úgy kell „éreznie”, hogy csak „övé a gép” – interferencia nem lehetséges • Az operációs rendszernek kell felügyelnie az I/O kezelést úgy, hogy a programoknak ne kelljen egymással törődniük – Megosztható és nem megosztható erőforrások – Nem megosztható erőforrás megoszthatóvá tétele
• Ha az operációs rendszer nem eléggé „szigorú” egész rendszer hatékonysága múlhat egyes programok „jólneveltségén”
Sunday, February 14, 2010
Védelem • Az operációs rendszer védje meg magát és a programokat „egymástól” – Memória védelme – Kontroll memória műveletek (címek) alapján – Bizonyos utasítások letiltása a programnak (pl. amivel a memória védelmet lehet befolyásolni vagy perifériához hozzáférni) – Hardver támogatás nélkül nem lehet hatékonyan megoldani (esetleg emulációval, lassú) • Memória védelmi rendszer • Legalább kétféle CPU üzemmód: privilegizált az OS és „normál” a user kód számára (korlátozott) • Átjárás a két mód között: szoftver megszakítások
Sunday, February 14, 2010
Operációs rendszeri szolgáltatások • Virtualizáció, az eredeti utasításkészlet kibővítése • Elsődlegesen I/O menedzsment (most) – Logikai perifériák • Másodlagos tároló: fájlok, fájlrendszerek • Humán interfész: csatornák (input, output) • Gép-gép kapcsolat: csatornák
– Absztrakciós szint eltérő lehet
Sunday, February 14, 2010
Multiprogramozott OS – értékelés • Processzor, memória, I/O kezelése – Virtualizált környezet
• Védekezés hibás, rosszindulatú kódoktól – A folyamatok csak a saját címterükben futhatnak (önmagukat igen, másokat nem károsíthatnak) – Az élet nem ennyire egyszerű • Nem megfelelő (védelmi) rendszerbeállítások • Hibák, hibák, hibák
• Környezet változására való érzékenység – Alapvetően az operációs rendszer szintjén jelentkezik – Valós és virtuális erőforrások minél teljesebb szétválasztása – Ha az OS nem kezeli a változást, alkalmazás szintről nem (vagy nagyon nehezen) lehet rajta segíteni
Sunday, February 14, 2010
Miért hibás, késik? • A funkciók bővülése, a támogatandó hardverek körének bővülése az operációs rendszerek komplexitásának jelentős növekedését eredményezte – Az egyik első időosztásos rendszer, a CTSS (1963, MIT) 32 000 utasításból állt – Az egy évvel később bemutatott OS/360 (IBM) mérete már 1 millió+ sort tartalmazott – 1975-re a Multics rendszer mérete meghaladta a 20 millió programsort – Az NT 4 mérete 16 millió+ sor, a Windows 2000 ennek több, mint kétszerese volt – Ettől a kezdetben kicsi és egyszerű Unix mai mérete sem marad el – A Linux mérete is jelentősen növekedett a kezdetekhez képest
Sunday, February 14, 2010
A méret következményei • Nehezen menedzselhető fejlesztés – A kiadások jellemzően késnek – A rendszerben mindig vannak hibák, a javítások (bizonyos hibák megszüntetésén túl) nem egyszer újabb hibákat generálnak – A teljesítmény sokszor nem éri el az elvárt szintet – A rendszer sérülékeny (biztonsági fenyegetések)
• A rendszer struktúrája fontos kérdés! Sunday, February 14, 2010
Változás mozgatórugói Meglévő kód javításán, optimalizálásán túl... Funkcionalitás – Fájlrendszer funkciók (locking, quota, ACL) – Hálózati szolgáltatások – Snapshot (fájlrendszer)
Sunday, February 14, 2010
Változás mozgatórugói Funkcionalitás Teljesítmény, hardver fejlődése – Új hardver-technológiák (RAID, SMP) – Új hardver eszközök, családok támogatása – Teljesítmény jellemzők változása (pl. SSD) – Eszközök egymáshoz képesti teljesítményének változása
Sunday, February 14, 2010
Változás mozgatórugói Funkcionalitás Teljesítmény, hardver fejlődése Minőségi elvárások, megbízhatóság – Adatvesztés rendszerösszeomlás esetén – Helyreállási idő (hiba után) – Működés hibák során
Sunday, February 14, 2010
Változás mozgatórugói Funkcionalitás Teljesítmény, hardver fejlődése Minőségi elvárások, megbízhatóság Paradigmaváltás, új alkalmazások – Kliens-szerver alkalmazások – Szálak – Real-time elvárások (pl. média szerverek)
Sunday, February 14, 2010