Operációs Rendszerek II. Első előadás
Mar 16, 2016
Operációs Rendszerek II.
Első előadás
Mai alkalom
Tárgystruktúra
A félév
Előadások
Számonkérés
• Fontosabb fogalmak elmagyarázása • 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!
Tartalom
• Történeti áttekintés, fejlődés mozgatórugói• OS black-box leírása• Folyamatok és szálak (ütemezés, párhuzamosság)• Memóriakezelés• I/O kezelés és diszkek• Fájlrendszerek, fájlok• „Aktuális témák” (virtualizáció, elosztott rendszerek)
• Példák: Windows, Unix (Solaris), Linux
Mai alkalom
Témák
• Mi az, hogy „operációs rendszer”?• Black-box leírás• Rövid történet • A fejlődés mozgatórugói
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)
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)
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
Black-box leírás
• Nem érdekel, „mi van belül”, az interfészek megadásával írom le a vizsgált „valamit”
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ó
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– Oprendszer 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
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
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
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
Interfészek, határok
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…
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
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
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
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
Kötegelt vs. Időosztásos
Kötegelt feldolgozás
Időosztásos rendszerek
Optimalizálás alapja
Processzor kihasználtság maximalizálása
Válaszidők minimalizálása
Rendszer vezérlése
JCL nyelvű programok
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
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
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
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
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