Operációs rendszerek
Neumann elvű gépek jellemzői Tárolt program: Az utasításokat az adatokkal azonos módon, közös nagy kapacitású memóriában, numerikus kódok formájában kell tárolni. Kettes számrendszer: Az adatok- és program kódok ábrázolására a kettes számrendszert kell alkalmazni. Vezérlőegység: Szükség van egy olyan vezérlőegységre, amely különbséget tud tenni utasítás és adat között, majd önműködően végrehajtatja az utasításokat. Aritmetikai-logikai egység (ALU): A számítógép tartalmazzon olyan egységet, amely az aritmetikai műveletek mellett képes elvégezni az alapvető logikai műveleteket is. Perifériák: Szükség van olyan ki/bemeneti egységekre, amelyek biztosítják a kapcsolatot az ember és a számítógép között.
Egy program futása során a processzor az utasításszámláló regiszterében található cím alapján a memóriából utasítást hív le (fetch), értelmezi (decode), majd végrehajtja azt (execute), és az utasításszámlálót a következő utasítás címére állítja. A memória és a processzor együttműködésének folyamatát írja le az úgynevezett Neumann-ciklus:
Perifériákkal való kommunikáció Lekérdezéses átvitel (polling): A processzor folyamatosan kérdezi le a periféria állapotát, és ha érdemleges információt talál, beolvassa azt. A módszer legnagyobb hátránya, hogy a processzor folyamatosan foglalt, a periféria átvitel alatt semmi mást nem képes csinálni
Perifériákkal való kommunikáció Megszakításos átvitel (Interrupt ReQest - IRQ): A periféria a számára kijelölt megszakítás kérő vonalon értesíti a megszakítás vezérlőn keresztül a processzort, ha adatátvitelt igényel. A kérés elfogadása esetén a CPU egy időre félreteszi éppen végzett munkáját, kiszolgálja a perifériát, majd folytatja ott, ahol abbahagyta. A processzor ez esetben nincs teljesen kiszolgáltatva a perifériának, viszont a programok közötti átkapcsolás, a visszatéréshez szükséges információk elmentése adminisztrációt, szervezést igényel, időt vesz el.
Perifériákkal való kommunikáció Közvetlen memória átvitel (Direct Memory Access - DMA): DMA esetén a memória és a periféria közötti átvitel a processzortól függetlenül, önálló vezérlő segítségével történik. A processzor egy pillanatig sem foglalt (ez nem mondható el azonban a buszról), mindössze az átvitel megkezdése előtt a kezdő memóriacímet, és az átadandó blokk méretét kell közölnie a vezérlővel
Az operációs rendszerek fejlődése Az 1940-es években megjelent első elektronikus számítógépeknek nem volt operációs rendszerük. Az 1944-ben készített jelfogós Mark I, és az 1946-os elektroncsöves ENIAC már bináris elven működött, de a mai értelemben tulajdonképpen nem is volt igazi számítógép, programozásához huzalok százait kellett átdugdosni.( mechanikus programozási módszer) Az első tárolt program elvén működő Neumann-féle számítógép 1949-ben, Angliában készült, és a vezetékek cseréje helyett kapcsolók segítségével bitenként lehetett programozni.
Programfuttatás a 40-es években A felhasználó a jó előre lefoglalt gépidő kezdetén, hóna alatt a félméteres lyukkártya csomaggal megérkezett. A konzolírógépen begépelte a jelszavát és ezzel törölte a tár korábbi tartalmát. Beletette a FORTRAN fordító kártyacsomagját, majd a saját fordítandó programját a kártyaolvasóba, és megnyomta a “betöltés” gombot. Ha minden jól ment, kisvártatva a kártyalyukasztón új kártyák sorakoztak, sikerült a fordítás! Újra a tár törlése következett és most már a lefordított program, az adatok betöltésére majd a futtatására kerülhetett sor. Ha ekkor is minden kedvezően alakult, kattogni kezdett a konzol írógép, megszületett az eredmény.
Kötegelt feldolgozás Batch feldolgozás General Motors laboratóriumában - első operációs rendszert Számítógép vezérlését végző program (Monitor)
Jobcontrol language A gépi kód szintű ASSEMBLY és a magas szintű FORTRAN mellett új nyelvcsalád jött létre, a parancsnyelvek (command language, command interpreter, jobcontrol language) családja.
1960-as évek - mágneslemez A futó program által beolvasandó adatokból (és mint speciális adatból, magából a programból) annyit tárol, amennyit csak lehetséges, és a kimenő adatok gyors rögzítésére és megőrzésére is alkalmas. (CPU felügyelet nélkül-DMA!!!) Az ilyen rendszerek a lefordíthatatlan SPOOL rendszer nevet kapták. ( Simultaneous Peripheral Operations On Line rövidítése volt) - párhuzamos perifériaműveletek végzésének képességére utalt
Mágneslemezek előnye A mágneslemezen egyszerre több munka is volt. CPU válogathatott a futásra várakozó munkák között, különbséget tehetett azok fontossága, vagy a kedvezőbb kihasználtság szempontjából. Adatok tárolhatók rajta újbóli felhasználás (pl. programok) vagy további feldolgozás (pl. eredmények) céljából File-ok/mappák megjelenése!
Multiprogramozás (Többfeladatos rendszerek Ha egy rendszerben két (vagy több) önállóan működni képes eszköz van (esetünkben a processzor és a mágneslemez egység), a munkafolyamatok párhuzamosítására is lehetőség kínálkozik. ÁTLAPOLÁSI TECHNIKA Hatékony működése: az egyszerre végrehajtott munkák együttes periféria-idő igénye pontosan megegyezik az együttes CPU idő igénnyel Kialakultak a vezérlőprogram által ellátandó alapfunkciók, amelyeket összefoglaló néven rendszermagnak nevezünk. A kezelői felület, a burok (shell) és a mag (kernel) együttese alkotja az operációs rendszert (operating system).
Az operációs rendszereknek a hardver, illetve a szoftver oldalról nézve következő feladatokat kellett ellátniuk: Eszközkezelők (Device Driver) Megszakítás kezelés (Interrupt Handling) Rendszerhívás, válasz (System Call, Reply) Erőforrás kezelés (Resource Management) Processzor ütemezés (CPU Scheduling) Memóriakezelés (Memory Management) Állomány- és lemezkezelés (File and Disk Management) Felhasználói felület (User Interface), A parancsnyelveket feldolgozó monitor utódja, fejlettebb változata, melynek segítségével a felhasználó közölni tudja a rendszermaggal kívánságait, illetve annak állapotáról információt szerezhet. A felhasználói programok elől el kell fedniük a perifériák különbözőségét, egységes kezelői felületet kell biztosítani. Alkalmas kell legyen a perifériák felől érkező kiszolgálási igények fogadására, megfelelő ellátására. Az operációs rendszer magjának ki kell szolgálnia a felhasználói alkalmazások (programok) erőforrások iránti igényeit úgy, hogy azok lehetőleg észre se vegyék azt, hogy nem közvetlenül használhatják a perifériákat. Erre szolgálnak a programok által kiadott rendszerhívások, melyekre a rendszermag válaszokat küldhet. Az egyes eszközök közös használatából származó konfliktusokat meg kell előznie, vagy bekövetkezésük esetén fel kell oldania. Az operációs rendszerek ütemező funkciójának a várakozó munkák között valamilyen stratégia alapján el kell osztani a processzor idejét, illetve vezérelnie kell a munkák közötti átkapcsolási folyamatot. Gazdálkodnia kell a memóriával, fel kell osztania azt a munkák között úgy, hogy azok egymást se zavarhassák, és az operációs rendszerben se tegyenek kárt.
Kezelési folyamatok Eszközkezelok (Device Driver) A felhasználói programok elol el kell fedniük a perifériák különbözoségét, egységes kezeloi felületet kell biztosítani. Megszakítás kezelés (Interrupt Handling) Alkalmas kell legyen a perifériák felol érkezo kiszolgálási igények fogadására, megfelelo ellátására. Rendszerhívás, válasz (System Call, Reply) Az operációs rendszer magjának ki kell szolgálnia a felhasználói alkalmazások (programok) eroforrások iránti igényeit úgy, hogy azok lehetoleg észre se vegyék azt, hogy nem közvetlenül használhatják a perifériákat. Erre szolgálnak a programok által kiadott rendszerhívások, melyekre a rendszermag válaszokat küldhet
Kezelési folyamatok Eroforrás kezelés (Resource Management) Az egyes eszközök közös használatából származó konfliktusokat meg kell eloznie, vagy bekövetkezésük esetén fel kell oldania. Processzor ütemezés (CPU Scheduling) Az operációs rendszerek ütemezo funkciójának a várakozó munkák között valamilyen stratégia alapján el kell osztani a processzor idejét, illetve vezérelnie kell a munkák közötti átkapcsolási folyamatot. Memóriakezelés (Memory Management) Gazdálkodnia kell a memóriával, fel kell osztania azt a munkák között úgy, hogy azok egymást se zavarhassák, és az operációs rendszerben se tegyenek kárt. Állomány- és lemezkezelés (File and Disk Management) Rendet kell tartania a hosszabb távra megorzendo állományok között.
Interaktív rendszerek (multiprogramozás)
Interaktív rendszerek jellemzői Válaszidő Időosztás A perifériák között megjelenik az óra, amely az idő felosztását vezényli (időosztás, time sharing).- Figyelni kell a felhasználókra Felhasználói felület. A kötegelt rendszerekben alkalmazott parancsnyelvet ki kellett váltania egy olyan parancs-értelmezőnek (command interpreter) amely lehetővé teszi, hogy a felhasználó közölhesse óhajait a számítógéppel Felhasználói adminisztráció. Az operációs rendszernek a munkafolyamatokon kívül a felhasználókat is könyvelnie kell. felhasználói jogosultsággal kapcsolatos biztonsági kérdések. Igényként jelentkezik az egy gép termináljai előtt ülő felhasználók egymás közötti kommunikációja.
Személyi számítógépek elterjedése Tranzisztor felfedezése Mikroelektronika fejlődése – integrált áramkör 1975 első PC: Alter 8800 – egérrel vezérelt grafikus felület (WYSIWYG - What You See Is What You Get - Ami a képernyőn, az a nyomtatón) Az egyes gépek Ethernet hálózaton kommunikálhattak egymással! PC-k terjedése Felhasználó fontossága
IBM (1981-) APPLE (1982-) IBM a jól kezelhető, megbízható operációs rendszert támogatta erősebben, Apple a grafikus felületeket, és a magas szintű alkalmazásokat részesítette előnyben. Az IBM PC sikere jórészt a BASIC programozási nyelv és a DOS operációs rendszer megjelenéséhez kötődik
90-es évek Windows 3.1 megjelenésével a grafikus kezelői felület általánossá vált, A Windows már több feladatot tudott egy időben kezelni Novell: erőforrások megosztása, kialakultak a lokális hálózatok (LAN), a hálózati funkciókat ellátó gépek, a szerverek pedig már több interaktív felhasználó több feladatát futtatták.
A számítástechnika fejlődése a 70-es évektől kettévált A számítástechnika fejlődése a 70-es évektől kettévált. PC – felhasználói igények; Nagygépek- processzorteljesítmény
90-es évek vége „Olcsó” nagy teljesítményű processzorok „Olcsó” korszerű, -kis méretű alkatrészek Hálózat helyett PC-s megosztás INTERNET – operációs rendszerektől függetlenül működő hálózat
Unix operációs rendszer 60-as évektől napjainkig Számítástechnika változásainak követése Rugalmas: minden konfigurációhoz, mindenfeladathoz igazodik. OSI modell (hálózat) POSIX (rendszerspecifikáció)
Többprocesszoros rendszerek A több processzor egyidejű használata: nagyobb megbízhatóságot eredményezett, megteremtette a lehetőséget, a programágak párhuzamos végrehajtása által, a feldolgozás gyorsítására Operációs rendszerek – megoldandó a - folyamatok közötti kommunikáció - szinkronizálás
Többprocesszoros rendszer előnyei Megnövekedett átbocsátó képesség Erőforrás megtakarítás Megbízhatóság (hibatűrő rendszerek) Két fő típus: Szimmetrikus (minden proc. Egyenértékű) Aszimmetrikus (egyes processzorok feladata előre rögzített) N darab processzor párhuzamos alkalmazásától azt várjuk, hogy a feladatok végrehajtási ideje N-ed részére csökken, azaz a rendszer N-szer annyi feladatot képes adott idő alatt elvégezni. Nem szabad azonban megfeledkezni a megnövekedett adminisztrációval, szinkronizációval járó többlet időről sem. Azoknál a feladatoknál, ahol a CPU jelenti a szűk keresztmetszetet, szükségtelen minden perifériát és memóriát többszörözni. Ha több funkcionális egység ugyanazt a feladatkört tölti be, egyikük meghibásodása nem okoz katasztrófát, némi teljesítmény csökkenés árán a rendszer működőképes marad
Elosztott rendszerek loosely coupled systems-a processzorok csak laza kapcsolatban vannak Minden processzornak saját memóriája van, saját perifériáikkal rendelkezhet A processzorok közötti kapcsolat valamilyen kommunikációs csatornán (telefon vonalon, lokális hálózaton) Pl: számítógép hálózatok
Elosztott rendzsrerek előnyei Rugalmasság. Az elosztott rendszerek komponensei lehetnek a legkülönbözőbb méretű, kiépítettségű, más-más gyártótól származó számítógépek, így minden feladathoz a legmegfelelőbb összeállítás alakítható ki. Eroforrás megosztás. A hardver erőforrásokon kívül igen nagy szerepe van az adatbázisok, információs bázisok elosztott használatának. Az adatokat a keletkezés helyén frissíthetik, így mindig aktuális marad. Sebességnövekedés. Nagyobb, számításigényes feladatra igénybe vehetjük egy nagyszámítógép processzorait, vagy a terhelést megoszthatjuk több, kicsi számítógép között. A munkák érkezésének megfelelően a számítási kapacitás átcsoportosítható.
Elosztott rendzsrerek előnyei Megbízhatóság. Az egyik komponens meghibásodása nem befolyásolja alapvetően az egész rendszer működését, némi sebesség csökkenéssel számolhatunk. Abban az esetben, ha a meghibásodott számítógép valamilyen kritikus feladatot lát el (például kizárólag ez szolgálja ki a terminálokat) a hiba az egész rendszer működését leállíthatja. Kommunikáció. Az összekapcsolt gépek között adatcsere történhet akár állományok továbbítása, akár elektronikus levelezés formájában
Operációs rendszerek mindenütt Mobiltelefonok: Windows mobile Linux Symbian OS (Ericson, Nokia, Siemens, Panasonic..) - ARM (Advanced Risc Machine) architektúrájú telefonokon fut. (32 bites RISC processzor architektúrája) EPOC/EPOC2 Fénymásolók Faxok: Windows 2000 Windows XP Windows Vista Home Basic – SHARP
2. Funkcionális megközelítés Mi szükséges ahhoz, hogy egy alkalmazás, például egy táblázatkezelő program futhasson? logikai áramkör, amelyekből felépíthetők a processzorok alapegységei, az ALU, a vezérlőegység és a regiszterek, mikroprogram tár (gépi kódú utasítások végrehajtását vezérlő program)
Összefoglalva Az operációs rendszer fogalma: Olyan egymással együttműködő programok rendszere, amelynek feladata a számítógép hardver elemeinek összehangolása és a felhasználóval történő kommunikáció biztosítása
Feladata a perifériák tesztelése, a gépi erőforrások kezelése programok indítása, működtetése a feldolgozás ütemezése vagyis a gépi erőforrás-megosztás a futó programok között adatok kezelése programok és adatok biztonságos megőrzése a működési zavarok jelzése párbeszédes kapcsolattartás a gép kezelőjével
A kernel feladatai Ki- és bemeneti eszközök kezelése (billentyűzet, képernyő stb.) Memória-hozzáférés biztosítása Processzor idejének elosztása Háttértárolók kezelése Rendszerhívások kiszolgálása Fájlrendszer
A shell feladatai Kapcsolattartás a felhasználóval (felhasználói felület) Alkalmazások futásának kezelése (indítás, futási feltételek biztosítása, leállítás)
Csoportosításuk Kezelői felület szerint: A felhasználók száma szerint: szöveges (MS DOS, UNIX) grafikus (Windows 95, Windows NT, OS/2) A felhasználók száma szerint: egyfelhasználós (MS DOS) többfelhasználós (NOVELL, UNIX Az egyidőben futtatható programok száma szerint: monoprogramozott (MS DOS) multiprogramozott (Windows, UNIX)
Csoportosításuk Gépek száma szerint: Cél szerint: egyedi: csak egy gépet tud kiszolgálni. hálózati: több gépet ki tud szolgálni, egyes hardver egységeket több gép tudja egyszerre használni (Windows NT) Cél szerint: általános (DOS, WIN 9X, WIN NT, UNIX) speciális (folyamatvezérlő operációs rendszerek, pl. egy terminál esetén, bár nem ritkán egy bankautomatánál is kifagyhat az XP)