Operációs Rendszerek II. Első előadás
Mai alkalom
Bemutatkozás Bringye Zsolt
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)computer programhardware softwareresourcescomputermemory networkingfilesgraphical user interfaceplatform
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