310 likes | 423 Views
Operációs Rendszerek II. Első előadás. Mai alkalom. Bemutatkozás. Bringye Zsolt zsolt.bringye @ ieee.org http://web.t-online.hu/zbringye. Tárgystruktúra. A félév. Előadások. Számonkérés. Fontosabb fogalmak elmagyarázása Rajzok (pl. állapottér)
E N D
Operációs Rendszerek II. Első előadás
Bemutatkozás Bringye Zsolt zsolt.bringye@ieee.org http://web.t-online.hu/zbringye
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
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 softwareresources 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
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
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