1 / 32

Operációs Rendszerek 2.

Operációs Rendszerek 2. Második előadás. Közlemény. Jövő héten az óra elején külsős előadás kooperatív képzéssel kapcsolatban Kb. 10 perc Ha lehet, minél többen jöjjenek. Előadás témái. Néhány szó a hardverről Operációs rendszerekről tömören Miért hibás, miért késik? Fejlődés háttere.

Download Presentation

Operációs Rendszerek 2.

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Operációs Rendszerek 2. Második előadás

  2. Közlemény • Jövő héten az óra elején külsős előadás kooperatív képzéssel kapcsolatban • Kb. 10 perc • Ha lehet, minél többen jöjjenek

  3. Előadás témái • Néhány szó a hardverről • Operációs rendszerekről tömören • Miért hibás, miért késik? • Fejlődés háttere

  4. Hardver • Néhány szó a hardverről • Processzor • Memória • I/O

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

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

  7. I/O • Néhány szó a hardverről • Processzor  • Memória  • I/O • Másodlagos tároló • Humán interfész • Gép-gép kapcsolat • Szélsőséges sávszélesség igények

  8. Operációs rendszerek • Néhány szó a hardverről  • Operációs rendszerekről tömören • Esetek • Nincs operációs rendszer • Minimál operációs rendszer • Multiprogramozás • Értékelési szempontok • 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

  9. Nincs operációs rendszer • 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)

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

  11. Kitérő - megszakítások • Programozott I/O esetén a programnak folyamatosan figyelni kell a perifériák jelzéseit – ez különösen interaktív rendszereknél problémás! • Megszakítások alkalmazásával a folyamatos lekérdezés kiváltható, az eseményekről annak kiváltója (érzékelője) küld jelzést (ha tud) • Megszakításos működés: CPU támogatás is! • De…

  12. Kitérő – de… • Megszakítás beérkezése esetén a CPU egy előre meghatározott címen található kódnak adja át a vezérlést • Ha a megszakítás feldolgozásra kerül, a vezérlés visszaadódik az eredeti kódhoz (ehhez persze ennek címét el kell tárolni) • Mi lesz az adatokkal (CPU regiszterek)? • Többszörös megszakítások?

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

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

  15. Minimál OS-en túl – védelem • Az operációs rendszer védje meg magát • Memória védelme

  16. Memória védelme

  17. Minimál OS-en túl – védelem • Az operációs rendszer védje meg magát • 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) • 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

  18. Minimál OS-en túl – 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

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

  20. Multiprogramozott rendszerek • Elvárás: több program váltott futtatása • Kötegelt rendszerek esetén a rendszer terhelését maximalizáljuk (ha egy program nem tud tovább futni /mert vár/ válasszunk helyette egy másik, futásra készet) • 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) • PC-k: egy felhasználó több programjára igaz

  21. Váltás programok között • Programok közötti váltás: „ki birtokolja” a processzort? • A (vissza) váltás után a program a futását ott folytatassa, 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

  22. 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ó)

  23. I/O kezelés • A „minden I/O eszköz kisajátítása” koncepció nem működik (és felesleges) • 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”

  24. Multiprogramozott rendszerek • Az operációs rendszernek váltogatnia a programok között  ütemezés • Minden programnak úgy kell „éreznie”, hogy csak „övé a gép” – interferencia nem lehetséges (memória, I/O kezelés) • Már nem csak az operációs rendszer védelme, de a programok egymástól való védelme is fontos (a memória védelme mellett az I/O is)  alkalmazások nem érhetik el közvetlen a hardvert!

  25. Folyamatok • Multiprogramozott operációs rendszerek egyik alapfogalma • Először a Multics rendszer fejlesztői használták (60-as évek) • Jelentése (egyik): a program végrehajtás alatt álló példánya • De mi is ez?

  26. Program futó példánya • A folyamat leírható: • Terület a központi memóriában (kód, adat, stack) • Adatok és státuszinformációk a processzor regisztereiben • Egyéb státuszinformációk (pl. erőforrásokkal kapcsolatos) • Egy végrehajtási szál (most éppen melyik utasítást kell végrehajtani) • Kiindulás: az operációs rendszerek folyamatok szintjén ütemeznek • Folyamat váltáskor a teljes folyamat környezetet meg kell őrizni – ez biztosítja a folytathatóságot!

  27. Folyamatok

  28. Folyamatok – bonyolítás • Szál (thread) alapú rendszerek, egy folyamaton belül több végrehajtási szál • Több fizikai processzor, így egy időben valóban (nem csak látszólag) több folyamat futhat

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

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

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

  32. Változások motorja • Optimalizálás, javítás (meglévő kódé) • Hardver fejlődése • Új hardver eszközök • Új hardver „családok” • Hardverek teljesítmény, „mennyiségi” jellemzőinek változása • Felhasználási mód, igények változása • Programozási modell, elvárások változása • Pl. objektum orientált paradigma • Szálak

More Related