2016/12/25 19:18
1/31
Operációs rendszerek elmélet tananyag
< Operációs rendszerek elmélet
Operációs rendszerek elmélet tananyag Szerző: Sallai András Copyright © Sallai András, 2009, 2010, 2011, 2012, 2014 Licenc: GNU Free Documentation License 1.3 Web: http://szit.hu
Bevezetés Kevés jó könyv található a magyar irodalomban az operációs rendszerek témakörében. Galambos Gábor, Operációs rendszerek című könyve azon kevesek közzé tartozik, amely szakmailag megalapozott és kiváló. Ez a leírás az ő könyvének követi a tematikáját, nagyon nagy segítség volt az elkészítésben.
Alapfogalmak Egy számítógépes rendszer a következő elemekből épülhet fel hardver felhasználó folyamatok a hálózat gépei Az operációs rendszerek határait nehéz meghatározni. Egy számítógép hardverből és szoftverből épül fel. Az operációs rendszer leginkább szoftver, de vannak a hardvernek olyan részei, amelyek közel állnak az operációs rendszerhez. Ilyenek lehetnek a BIOS. Az operációs rendszer felfogható a hardver kiterjesztéseként is.
Erőforrások A számítógép egyes komponenseit erőforrásnak nevezzük, akár a hardver, akár a szoftver része.
Erőforrások csoportosítása fizikai logikai operatív memória, CPU, háttértárolók, időzítők, órák adatok, programok
Rendszerprogramok fordítók szerkesztők SzitWiki - http://www.szit.hu/
Last update: oktatas:operációs_rendszerek:elmélet:tananyag http://www.szit.hu/doku.php?id=oktatas:oper%C3%A1ci%C3%B3s_rendszerek:elm%C3%A9let:tananyag 2014/12/06 01:52
ellenőrzőprogramok
Mit tekintünk operációs rendszernek? Három féle megközelítés ismert: teljes szoftveres környezet fordítók, szerkesztők, segédeszközök kernel ami a végig a memóriában van középút egyfajta hardver és felhasználó interfész
A hardver és a szoftver A hardver és a szoftver közötti határvonalat nehéz meghúzni. A szorzás művelet például nem huzalozott, szoftveresen van megvalósítva. De szoftveres funkciókat is hardver szokott ellátni. Például memóriakiosztás vagy közvetlen művelet az adatstruktúrákon.
Az operációs rendszer helye Felhasználói környezet Operációs rendszer Hardver
Az operációs rendszerek feladatai kezdetben nem volt rá szükség, a felhasználó maga írta, betöltötte, futtatta a programokat ma kényelem, időmegtakarítás, munkánk megkönnyítése a feladatunk
Operációs rendszerek feladatai felület biztosítása memóriakezelés folyamatok szervezése perifériakezelés állománykezelés hibakezelés és védelem könyvelés Felület biztosítása
http://www.szit.hu/
Printed on 2016/12/25 19:18
2016/12/25 19:18
3/31
Operációs rendszerek elmélet tananyag
parancs interfész felület biztosítása a felhasználók számára program interfész állomány hozzáférés IO műveletek eljáráshívások Memóriakezelés Az operációs rendszer elfoglalja a memória egy részét, a többi a programé. Kezdetben az operációs rendszernek csak magát kell védenie. Ma egyszerre több program is fut az operációs rendszer mellett, így az operációs rendszernek nem csak önmagát kell megvédenie, hanem a futó programokat is. Folyamatok szervezése A folyamat egy futó program. Angolosan processz. Egy processzoros rendszerben minden program kap egy időszeletet, majd a következő program jön. Ha minden program elég gyorsan kap egy-egy időszeletet a felhasználó észre sem veszi, hogy a program valójában nem folyamatosan fut. Perifériakezelés Háttértárak, nyomtatók, szkennerek, stb. kezelése. Állománykezelés létrehozás törlés olvasás írás hozzáférés Hibakezelés, védelem Kezelni kell a hardver és a szoftver problémákat. Rendszerkönyvelés Naplózzuk az igénybe vett erőforrásokat, az előforduló hibákat és a költségeket.
SzitWiki - http://www.szit.hu/
Last update: oktatas:operációs_rendszerek:elmélet:tananyag http://www.szit.hu/doku.php?id=oktatas:oper%C3%A1ci%C3%B3s_rendszerek:elm%C3%A9let:tananyag 2014/12/06 01:52
Történet Kezdet Nincs operációs rendszer. A felhasználó egy vezérlőpulton keresztül órákon keresztül binárisan adja meg az adatokat. A beviteli felület kapcsolókból, a kiviteli felület felvillanó lámpákból áll. A sok futtatandó program, és nagy mennyiségű adat egy idő után maga után vonja egy operátor alkalmazását. Később megjelennek a következő eszközök: I/O eszközök Assembly lyukszalag több program
Felügyelő programok Megjelenik a supervisor program, amely helyettesíti az operátor munkáját. Input/Output System SHARE Operating System (SOS) FORTRAN Monitor System (FMS) Ezek még nem voltak valódi operációs rendszerek. Ezek az egyszerű szupervisor programok, ha egy hibához értek a számítógép megállt. Nem volt hibakezelés.
Szalagos operációs rendszer Megjelennek az szalagos rendszerek. Tape Operating System (TOS) TOS/360 OS IBM-360 A szalagos egységek eredményeként nagyon sok program vár a végrehajtásra, így válogatni kell a fontos és nem fontos programok között.
Mágnesdob Egy hengeren egy mágneses palást van. Az író-olvasó fej ezen a paláston mozog. Egy körülfordulással az összes információ elérhető. A mágnesdobozok csak rövid ideig vannak jelen a számítógépeken, mivel nagyon hamar megjelennek a lemezes adattárolók.
http://www.szit.hu/
Printed on 2016/12/25 19:18
2016/12/25 19:18
5/31
Operációs rendszerek elmélet tananyag
Mágneslemezek DISK Operation System (DOS) A jóval nagyobb gyorsaság egész más kezelési technikát igényel. Megjelennek a LOADER-ek, amelyek folyamatosan (rezidensek) a memóriában várják a betöltendő újabb programot.
JCL vezérlő nyelv A hatékonyabb használathoz egy új vezérlő nyelvet találnak ki, ez a JCL (Job Control Language).
I/O ellenőrző részek javítása Az egyre növekvő segítség miatt javítják az I/O eszközöket kezelő részeket: Input Output Control System (IOCS)
Rezidens, tranziens Megjelenek a rezidens és a tranziens részei az operációs rendszernek. Az operációs rendszer egy része állandóan a tárban marad, a másik része csak akkor ha arra szükség van. rezidens folyamatosan a memóriában van tranziens csak akkor töltődik be, ha arra szükség van rá
Operációs rendszerek jellemzői Ebben az időben senki nem gondol az operációs rendszerek hordozhatóságára. A hardvergyártók maguk készítik az operációs rendszert. A cél a hardver hatékony kihasználása.
DOS operációs rendszerek Hardver Operációs rendszer Honeywell 800/1800 ADMIRAL UNIVAC 1107 EXEC 1 CDC 6000 SCOPE Burroghs 5000 Master Control IBM 7090 IBSYS
Megjelenik a BATCH programozás A futtatandó programok egy csomagban vannak összegyűjtve Egy időben egy ilyen csomag van a memóriában SzitWiki - http://www.szit.hu/
Last update: oktatas:operációs_rendszerek:elmélet:tananyag http://www.szit.hu/doku.php?id=oktatas:oper%C3%A1ci%C3%B3s_rendszerek:elm%C3%A9let:tananyag 2014/12/06 01:52
Ez az ún. soros kötegelt feldolgozási rendszer Serial Batch Processing System
Jelenségek Gyorsabb CPU → I/O lassú A CPU gyakran vár Ötlet egyidejűleg legyen több program a tárban ha egy program vár az I/O műveletre, akkor a másik program fut
Több programos kötegelt rendszer Batch Multiprogramming System Az első ilyen OS Master Control Program (MCP) Burroughs 5000-ben
MCP Virtuális memória Prioritások alkalmazása
Virtuális memória Kihasználjuk a CPU által nyújtott memória címzési lehetőséget Amikor egy program betöltődik nem biztos, hogy van elég memória számára amit megcímezhetünk A prg. így olyan címet tartalmaz amely fizikailag nem létezik Az OS úgy viselkedik mintha lenne
Prioritások alkalmazása A programhoz hozzárendelünk egy prioritást a sürgősség alapján pozitív egész szám
OS/360 A legismertebb többprogramos batch IBM 360 gépén futott A hardver moduláris http://www.szit.hu/
Printed on 2016/12/25 19:18
2016/12/25 19:18
7/31
Operációs rendszerek elmélet tananyag
A szoftver visszafele kompatibilis
OS/360 két változata OS/MFT OS/MVT OS/MFT Multiprogramming with Fix Tasks A memória szegmentált (partíciók) ahány partíció annyi program tud futni I/O készülék lassúak spool (átmeneti tároló) OS/MVT Multiprogramming with Variable Tasks Akkor osztott a memória ha szükséges A kiosztott terület a Task
Interaktív feldolgozás A programozó nem látja mit csinál a program, mert az operátortól sok függ Az operátornak leadni a csomagot → holt idő Gyors mágneslemezek miatt Spool technika elterjed a rendszerprogram a mágneslemezen Terminál ill. interaktív I/O eszköz a javításhoz
Batch programok újra egy időben több program is van a memóriában de vezérlés átadás csak akkor történik, ha egy program megállási ponthoz ér Egy program percekig, vagy akár órákig is futhat Ezen változtat az interaktív technika
Időosztás time slice, time sharing óra (timer) méri az utolsó vezérlésátadás óta eltelt időt Ezen rendszerek fénykora '60-'70-es évek
SzitWiki - http://www.szit.hu/
Last update: oktatas:operációs_rendszerek:elmélet:tananyag http://www.szit.hu/doku.php?id=oktatas:oper%C3%A1ci%C3%B3s_rendszerek:elm%C3%A9let:tananyag 2014/12/06 01:52
Első időosztásos OS-ek Compatible Timesharing System (CTSS) DEC PDP-1 gépen Kemény és Kurtz készíti Darthmondthban a General Electric számára Darthmonth Timesharing System (DTSS) IBM TSS/360
Az interaktivitás következményei Nagy sikere van Gyengeségek az OS ide-oda kapcsol a programok között és adminisztrál; ezzel tölti az idejét Az állandó beavatkozás veszélyt rejt az egyik program hibája tönkreteheti a másikat is Gondosabb szupervizor program kell
MULTICS Kutatások kezdődtek a szupervizorok terültén az újabb problémák megoldására három intézményben: Massachusets Institute of Technology AT&T/Bell Laboratories General Electric Munkájuk eredményeképpen létrejött a MULTICS. Jellemzői PL/1-ben íródott könnyen fejleszthető hatékony felhasználói interfész barátságos Technikai jellemzők szegmentált virtuális memória „gyűrűs” erőforrásvédelem hierarchikus fájlrendszer készülékfüggetlen I/O átirányítás más készülékre
UNIX
http://www.szit.hu/
Printed on 2016/12/25 19:18
2016/12/25 19:18
9/31
1970-ben a MULTICS két kutatója Ken Thompson Dennis Ritchie másik szoftvercsoportba kerül Egyfelhasználós OS-t fejlesztenek PDP-re A Bell Laboratóriumban népszerű Jellemzői egyszerű, hatékony hierarchikus fájlrendszer shell jól kezelhető I/O készülék egy speciális állomány → átirányítás több programos Első UNIX Assembly-ben írodott Akarták PL/1-ben De a PL/1 PDP-re nem honosítható C nyelv (B kísérleti nyelvből) C fordító PDP-11 A UNIX-ot átírják teljesen C-re Szokatlan lépések Az egyetemeken forráskóddal együtt adják Így nagyon népszerű lesz a kutatók és a hallgatók között Jelentősége Az első OS amely hardvertől függetlenül terjedhet, azaz hordozható
Absztrakt és virtuális gépek Vissza megyünk a '60-as évek végéhez – Európa Eindhovenni Egyetem – Edger Dijsktra új több felhasználós rendszer T.H.E T.H.E – Technische Hogesschool Eindhoven nagy hatással van a későbbi OS-re
T.H.E Multiprogramming System Újdonságok interaktív folyamatok kezelése SzitWiki - http://www.szit.hu/
Operációs rendszerek elmélet tananyag
Last update: oktatas:operációs_rendszerek:elmélet:tananyag http://www.szit.hu/doku.php?id=oktatas:oper%C3%A1ci%C3%B3s_rendszerek:elm%C3%A9let:tananyag 2014/12/06 01:52
holtpontkezelés szikronizáció hierarchikus struktúra a rendszer komponenseit szintekre osztjuk időzítő, … felhasználói programok Az alsó két szint absztrakt gép
TENEX Minden felhasználó több folyamatot és virtuális memóriát használhat → Virtuális gép A megközelítés az IBM-től van: CP/CMS Miden felhasználó úgy látja, hogy saját CPU-ja és memóriája van DEC PDP-10 gépen 1960
Kis számítógépek Eddig a hardver és szoftver egységesen fejlődött A hardver árak rohamos csökkenése: különböző kategóriák jöttek létre. Létrejött kategóriák mini pl. IBM System/3, System/34, System/36, System/38, AS/400, iSeries mikro p.: Commondore 64 személyi-számítógép (PC = Personal ComputerÖ
Szerkezet Az operációs rendszer programok gyűjteménye. Ezek a programok speciális szerepet töltenek be más programokkal szemben. Az operációs rendszerek tervezése során a következőket kell figyelembe venni: hardver felhasználók száma I/O készülékek Kezdetben élt az a tévhit, hogy egy operációs rendszert csak Assembly nyelven lehet készíteni. Hogyan változhatott akkor ez meg? A változásban a következő események jártak közre: újabb hardvereszközök nagyobb memóriaterület gyorsabb számítógépek http://www.szit.hu/
Printed on 2016/12/25 19:18
2016/12/25 19:18
11/31
Operációs rendszerek elmélet tananyag
magas szintű programozási nyelvek kifejezetten OS készítésre a magas szintű nyelvek hordozhatóak
Társzervezés rezidens tranziens Rezidens állandóan a főtárban van felelősek olyan szolgáltatásokért amire egy futó programnak szüksége van hibakeresés folyamatvezérlés végrehajtás ellenőrzés a legkritikusabb rész nevek: nukleus vagy kernel Tranziens akkor töltődik be, ha szükség van rá parancsinterfész fájlkezelő rendszer oda töltjük a memóriába ahol hely van Több folyamat használhatja váltakozva. A tranziens rész dinamikus könyvtárakba van szervezve: DLL, SHL
Felületei Az operációs rendszeren belül kétfajta kapcsolat lehetsége: közvetlen interaktív terminálon parancsok begépelése közvetett programokból adjuk ki a parancsot
Felhasználói interfész parancs interfész A felhasználó kommunikál az OS-el program interész A program és az erőforrások kommunikálnak az OS-el
SzitWiki - http://www.szit.hu/
Last update: oktatas:operációs_rendszerek:elmélet:tananyag http://www.szit.hu/doku.php?id=oktatas:oper%C3%A1ci%C3%B3s_rendszerek:elm%C3%A9let:tananyag 2014/12/06 01:52
Parancs interfész parancsnyelv A felhasználó parancsai válasznyelv A felhasználónak adott visszajelzések Parancsnyelv Job-control Batch feldolgozás Interaktív parancssor menüvezérelt ikonvezérelt
Parancsállományok Parancsállományok csoportosítása CP/M submit fájl MS-DOS parancsállomány (batch fájl) UNIX shell script Parancsállományok jellemzői paraméterezhető egymásbaágyazható megjegyzés lehet benne van hibakezelés
Memóriakezelés A memóriakezelés három részproblémára osztható fel: memória-allokáció memóriaterület és a program összerendelése áthelyezés az allokált területre illesztjük a programot memóriavédelem
Allokáció
http://www.szit.hu/
Printed on 2016/12/25 19:18
2016/12/25 19:18
13/31
Operációs rendszerek elmélet tananyag
egyfelhasználós rendszerben többfelhasználós rendszerben statikus memóriadefiníció allokálható blokkok száma és mérete OS generálásakor rögzítjük dinamikus memóriadefiníció a blokkok számát és méretét igényléskor határozza meg
Memória foglaltság nyilvántartás módjai bit-térkép (bit map) egyenlő méretű blokkok esetén használható memória ellenőrző blokk (Memory Control Block = MCB) memória blokk hossza nincs rögzítve
Allokációs stratégiák Következő illesztés (Next Fit) Első illesztés (First Fit) Legjobb illesztés (Best Fit) Legrosszabb illesztés (Worst Fit) Következő illesztés (Next Fit) Az első szabad blokktól megvizsgálunk minden szabad blokkot. Az első (méretnek) megfelelőt választjuk. Új keresést ott folytatjuk, ahol az előzőt abba hagyjuk. Első illesztés (First Fit) Mindig az első FMCB-ből kiindulva keressük az első alkalmas blokkot. A kiválasztott FMCB rész két részre oszlik. Egyikben elhelyezzük programot, maradék rész FMCB lesz. Legjobb illesztés (Best Fit) Bejárjuk az összes blokkot, méretüket megvizsgáljuk. Megjegyzi a hozzá legközelebb állót Legrosszabb illesztés (Worst Fit) Ahhoz a szabad helyhez allokáljuk a programot, ahol legtöbb szabad hely marad. Azt reméljük a nagyobb szabad blokkok később használhatóbbak.
MEMÓRIAVÉDELEM Egyfelhasználós rendszer SzitWiki - http://www.szit.hu/
Last update: oktatas:operációs_rendszerek:elmélet:tananyag http://www.szit.hu/doku.php?id=oktatas:oper%C3%A1ci%C3%B3s_rendszerek:elm%C3%A9let:tananyag 2014/12/06 01:52
határcím határregiszterek Többfelhasználós rendszer határregiszterek használata alsó és felső korlát megadása alsó és blokkszélesség megadása
Virtuálismemória Virtuális memóriát akkor használjuk, ha egy újabb programot szeretnénk futtatni és már nincs számára elég szabad memória terület.
Memóriaáthelyezési technikák áthelyezési táblázat leképezési regiszterek laprabontás
Laphiba Az elérni kívánt lap, nincs a fizikai memóriában. Normális működés, nem valódi hiba!
Kettős laphiba A laphibát kezelő rutin is laphibát okoz.
Négy alap probléma Betöltés Mikor kell egy lapot betölteni? Elhelyezés Hova kell a lap képét betölteni? Helyettesítés Melyik lapot kell eltávolítani a főtárból, ha nincs hely Módosított lapok kezelése eltávolított lapot mikor kell visszaírni a másodlagos tárolóra?
Lokalitás elve Az aktuális - és az ezek közvetlen közelében elhelyezkedő – címekre a közeljövőben nagy http://www.szit.hu/
Printed on 2016/12/25 19:18
2016/12/25 19:18
15/31
Operációs rendszerek elmélet tananyag
valószínűséggel ismét hivatkozunk. Bélády László - 1966
Betöltési probléma Egyszerű: Akkor kell lapot betölteni, ha nincs a főtárban Finomíthatjuk, ha megvizsgáljuk mikor van szükség az adott lapra Lokalitás elve: Néhány szomszédos lapot is betöltünk
Elhelyezési probléma Mivel ugyan olyan méretű lapokkal dolgozunk, ezért nincs a memóriának kitüntetett része. Ha van valahol szabad hely, akkor oda betöltjük a kívánt lapot.
Helyettesítési probléma Cél: olyan lapot távolítsunk el, amelyet nem kell visszatölteni (feltehetőleg) stratégiák: legrégebben használt legritkábban használt legrégebben memóriában lévő (FIFO) kombinált módszerek
Módosított lapok kezelése nem módosított lapok módosított lapok Időigényesebb a lap cseréje! Ezért csak akkor választunk ebből a halmazból, ha a másik üres
Szegmentált virtuális memória A lapokrabontás mellett a programokat logikai egységek szerint feldaraboljuk, és szegmensekre osztjuk. Egy szegmensre, egységes egészként hivatkozunk. Minden folyamathoz szegmenstáblát készítünk a főtárban, vagy a a hardveren szegmenstábla regiszterek használata.
SzitWiki - http://www.szit.hu/
Last update: oktatas:operációs_rendszerek:elmélet:tananyag http://www.szit.hu/doku.php?id=oktatas:oper%C3%A1ci%C3%B3s_rendszerek:elm%C3%A9let:tananyag 2014/12/06 01:52
OS-ek virt. mem. szokásai Linux Csak akkor ír a swapra, ha már betelt a memória Windows Akkor helyezi a programot a memóriába, ha használjuk (a tálcáról előtérbe hozzuk)
Folyamatok Azokat a tevékenységeket , amelyeket egy program végrehajt, folyamatnak (processznek) nevezzük. Végrehajtás alatt lévő program. A folyamatok váltakozva hajtódnak végre. Egy időpontban a CPU-t csak egyetlen folyamat használja! Folyamatszervezés módjai Szekvenciálisan szervezett folyamatok Minden folyamat egy időszeletet kap (kb. 20 millisecundum) Közbeékelt folyamatszervezés Multiprogramozás: az erőforrások egyidejűleg több folyamat között is felosztásra kerülnek
PCB Precess Control Block Folyamatellenőrző blokk PCB – folyamat információk Amit eltárolunk egy folyamatról: folyamat neve felhasznált memória állapot környezet prioritás szükséges erőforrások http://www.szit.hu/
Printed on 2016/12/25 19:18
2016/12/25 19:18
17/31
Operációs rendszerek elmélet tananyag
összefüggések elszámolási információk Folyamat neve Külső név karakter sorozat felhasználók számára Belső név egész szám operációs rendszer számára Folyamat állapot direkt kód az állapot leírására pointer (mutató) az állapot leírására Környezet Környezet alatt a regiszterek tartalmát és egyéb információkat értünk. Prioritás Prioritás alatt a folyamat relatív fontosságát értjük a többihez viszonyítva. Akkor használjuk, ha több folyamat vár egy erőforrásra. Szükséges erőforrások mit használunk éppen mire lesz szükség a jövőben Összefüggések A folyamatok közötti viszony leírása. A szülő-gyermek kapcsolatok leírása Elszámolási információk időparaméterek felhasznált erőforrások folyamat tulajdonos neve stb.
SzitWiki - http://www.szit.hu/
Last update: oktatas:operációs_rendszerek:elmélet:tananyag http://www.szit.hu/doku.php?id=oktatas:oper%C3%A1ci%C3%B3s_rendszerek:elm%C3%A9let:tananyag 2014/12/06 01:52
Folyamatok és erőforrások kapcsolata Az erőforrás lehet: fizikai központi tár háttértár I/O készülék állomány (mert hosszú ideig állnak rendelkezésre) logikai állományban vagy központi tárban helyezkednek el
Erőforrás másként Erőforrás (más szempont szerint) ismételten felhasználható a felhasználói folyamat nem rombolja le megszűnő erőforrás általában egy folyamat létrehozza, egy másik használja, az OS lerombolja pl.: üzenet amit egyik prg. küld a másiknak
Speciális erőforrás CPU Memória Azért speciális, mert közvetlenül, rendszerhívások nélkül érjük el őket. Olyan két erőforrás, amit nem kell igényelnünk meg mindig szükség van rá.
Egyéb erőforrások Más erőforrásokhoz rendszerhívásokon keresztül jut a folyamat igénybejelentést előzi meg a használatot pl. állományok, I/O készülékek
Erőforrások használata néhány folyamat → ütemezés egyszerű sok folyamat → ütemezés bonyolult szélsőséges esetben holtpont léphet fel Holtpont (deadlock): egy erőforrás – amelyre néhány folyamat várakozik – nem szabadítható fel, mert egy másik folyamat, amely azt használja, nem fejezhető be, mivel másik erőforrásra várakozik, amely szintén nem szabadítható fel. várakozás sor (queue) http://www.szit.hu/
Printed on 2016/12/25 19:18
2016/12/25 19:18
19/31
Operációs rendszerek elmélet tananyag
sorban tárolás esetén ütemezés: FIFO first in first out
Környezetváltás Multitaskos rendszerben a folyamatnak mindig más folyamatnak engedi át a CPU-t. Folyamathoz tartozó információ megőrzése történhet: regiszterekben státusz-flagekben státusz szavakban vermekben címterületeken
Környezet A megőrzött információ adja a környezetet Ennek cseréje a környezetátállás van ahol több regisztert alkalmaznak a gyorsításhoz van ahol az OS számára külön regisztert tartanak fent
Folyamatvezérlő műveletek statikusan kezelt folyamatok az egyszer aktív folyamat sosem szakad meg új folyamatot sosem generálnak dinamikusan kezelt folyamatok folyamatokat állítunk elő, indítunk subprocess szülő-gyermek kapcsolat Folyamatvezérlő műveletek: Létrehozás Megszüntetés Attribútumok olvasása, megváltoztatása Felfüggesztés, újraindítás Folyamatok létrehozása Ha a rendszerben dinamikus folyamatkezelés van! Rendszerhívással végezhető művelet indíthatja rendszerprogram indíthatja felhasználó SzitWiki - http://www.szit.hu/
Last update: oktatas:operációs_rendszerek:elmélet:tananyag http://www.szit.hu/doku.php?id=oktatas:oper%C3%A1ci%C3%B3s_rendszerek:elm%C3%A9let:tananyag 2014/12/06 01:52
Folyamat előállítás műveletei PCB előállítása Memória allokálása Program betöltése Kezdeti paraméterek megadása, forráskorlátok folyamathoz rendelése PCB előállítása rögzített terület tartunk fent meghatározott számú PCB külön kulcsolási területet (system queue area) tartunk fent vagy keverjük az előző két technikát Pl.: UNIX PCB-ét két részre osztjuk legfontosabb adatok → folyamat táblában pointer mutat a maradék részre → felhaszn. ter. Memória terület allokálása megvizsgáljuk van-e elég hely a memóriában az PCB-hez tartozó program számára ha van allokáljuk ha nincs felfüggesztjük a folyamat előállítását Betöltés betöltő végzi (relocating loader) végrehajtható formában tárolt állományokat olvas be bonyolult lehet mert a kezdő címek csak akkor válnak ismerté, ha betöltjük az ugró utasítások címeit Kezdeti paraméterek kezdeti paraméterek beállítása erőforráskorlátok beállítása UNIX alatt a létrehozott gyermek folyamatok mindig öröklik a szülő által már allokált erőforrásokat UNIX – új folyamat előállítása elágaztatás (fork) új folyamat előállítása de kezdetben nincs új program betöltve helyette a szülőhöz tartozó programot futtatja végrehajtás (exec) {rendszerhívás} http://www.szit.hu/
Printed on 2016/12/25 19:18
2016/12/25 19:18
21/31
Operációs rendszerek elmélet tananyag
betölt egy új programot megkezdődik a végrehajtása Folyamatok megszüntetése Okok önmaga igényli szülő folyamat ért véget normálisan abnormálisan kitüntetett folyamat kényszeríti operátori parancs „nem azonosítható” hiba Folyamat megszüntetése Destroy process rendszerhívással kötések feloldása gyermek folyamatok megszüntetése allokált memória felszabadítása PCB felszabadítása Megszüntetendő folyamat gyermekei Lehet olyan gyermek folyamat amelyet kifejezetten azért hoztunk létre, hogy túlélje a szülő folyamatot (pl. nyomtatás) vagy hozzárendeljük őket egy másikhoz vagy árvának tekintjük UNIX-ban az árva folyamatot a init folyamathoz rendeljük Attribútumok olvasása, változtatása adatok olvasása a PCB-ből értékek megváltoztatása a PCB-ben Felfüggesztés és újraindítás felfüggesztés (suspend) a folyamat más folyamatok eredményére vár megszakítás következett be időpontra vár újraindítás (waku up) az alvó folyamat felébresztése, újraindítása
SzitWiki - http://www.szit.hu/
Last update: oktatas:operációs_rendszerek:elmélet:tananyag http://www.szit.hu/doku.php?id=oktatas:oper%C3%A1ci%C3%B3s_rendszerek:elm%C3%A9let:tananyag 2014/12/06 01:52
Ütemezés Az a művelet amely meghatározza a sorrendet az újrafelhasználható erőforrások igénybevételére.
Kiemelt erőforrások Memória Kicsi CPU Csak egy van belőle Így kiélezett verseny folyik értük nehézség, hogy a folyamatok sosem fordulnak ezekért az erőforrásokért mégegyszer
Folyamatok osztályozása Batch folyamatok jobban elhelyezett munkák, felhasználó nem kommunikál folyamattokkal Interaktív folyamatok interaktív terminálról küldött felhasználói beavatkozások Real-time folyamatok rendszeren kívül zajló műveletet figyelünk, ellenőrzünk, irányítunk
Ütemezési stratégiák hosszú távú folyamatok sorbajutásának ellenőrzése Középtávú folyamatok közül kiválasztják melyek lehetnek CPU használatra jelöltek rövid távú hogyan rendeljünk a CPU-hoz futáskész folyamatokat kiválasztás (scheduler) előkészítés (dispatcher)
Ütemezési célok 1 áteresztés a lehető legtöbb munka elvégzése konzisztencia kiszámítható foly. kezelés válasz legrövidebb időn belül szolgáljunk ki korrektség azonos jellemzőkkel bíró foly. azonos módon kezelése átfutás http://www.szit.hu/
Printed on 2016/12/25 19:18
2016/12/25 19:18
23/31
Operációs rendszerek elmélet tananyag
leggyorsabb befejezés források kezelése kerüljük a várakozást, a forrásokat folyamatosan használjuk
A célokról A célok részben ellentmondanak egymásnak. Ezért kompromisszum szükséges. Megoldásként kategóriákba soroljuk a folyamatokat. Kategóriába soroláshoz alapadatok: prioritás kategória becsült futási idő és a szükséges erőforrások I/O igények és azok gyakorisága kapcsolat egy interaktív terminállal kiszolgálásra mennyi ideje vár
Stratégia alkalmasságának megítélése legrosszabb eset vizsgálat milyen távol kerülünk az elméleti optimumtól átlagos eltérés vizsgálata a mért értékek statisztikai jellemzői mennyire térnek el az optimumtól
Fontos jellemzők Prioritás mérőszám, többiekhez viszonyított relatív fontosság csökkenő prioritás (pl.: MVT 0..15) növekvő prioritás (pl.: VMS 0..31) Unixban lehet negatív és pozitív A prioritást PCB-ben tároljuk vagy külön prioritási sort hozunk létre
Prioritás osztályozása statikus a folyamat élettartalma alatt a prioritás nem voltozik dinamikus a folyamat élettartalma alatt a prioritás változhat
Önköltség A folyamat kicserélésre használt idő rövid távú ütemezés esetén OS döntést előkészítő eljárása fut SzitWiki - http://www.szit.hu/
Last update: oktatas:operációs_rendszerek:elmélet:tananyag http://www.szit.hu/doku.php?id=oktatas:oper%C3%A1ci%C3%B3s_rendszerek:elm%C3%A9let:tananyag 2014/12/06 01:52
környezetváltás közép távú ütemezés esetén memória tartalom csere (swaping)
Megszakíthatóság nem megengedett non-preemtív addig foglalja a CPU-t amíg le nem mond róla órákon át futhat megengedett preemtív ha a magasabb prioritású job ready állapotba kerül, akkor megkapja a CPU-t
Batch folyamatok ütemezése Jobokkal dolgozunk programcsomag a programok „stepek”-ben hajtódnak végre Fontos paraméter a becsült futási idő felhasználó adja meg felső korlát lesz Hosszú távú ütemezés A jobok közbülső tárolási területen spool terület Input sorokba rendezve input queue Az initator nevű program vizsgálja az input sorokat Ha az első step számára minden erőforrás szabad akkor kiválasztja Kezdéskor időzítőt állítunk be valós időt mérhetünk vagy CPU időt mérhetünk Középtávú ütemezés Batch esetén nem külön feladat Mivel a jobokat akkor engedjük futni, amikor minden erőforrás rendelkezésre áll. Rövid távú ütemezés ha az operatív memória felszabadul, akkor a készenlétben levő folyamatok közül választunk egy folyamat fut amíg: http://www.szit.hu/
Printed on 2016/12/25 19:18
2016/12/25 19:18
25/31
Operációs rendszerek elmélet tananyag
véget nem ér önként felfüggeszti magát I/O utasításra van szüksége vagy olyan szolgáltatást kér, amely várakozást igényel magasabb prioritású folyamat megszakad
Rövid távú ütemezési stratégiák SJN FIFO Dinamikus prioritású SRTN Shortest Job Next (SJN) előnyben részesíti azokat a jobokat, amelyeknek rövidebb a becsült végrehajtási ideje hátránya ha mindig van rövid becsült idejű, akkor a hosszú sosem fut éhenhalási vagy kiéheztetési jelenség First-In First-Out – FIFO leggyakrabban alkalmazott technika abban a sorrendben lesznek végrehajtva, ahogy érkeztek azonos prioritás Dinamikus prioritású job öregedik, így változik a prioritása néha megszakításos rendszerekben használjuk Shortest Remaining Time Next – SRTN legkevesebb megmaradt idejű job lesz kiválasztva megszakításos rendszerekben legsűrűbben használt
Interaktív folyamatok ütemezése interaktív terminál ↔ felhasználó tevékenységek hosszúak lehetnek indításkor semmit nem tudunk az igényelt erőforrásokról azonos módon kezelt folyamatok múltbeli viselkedésből következtetünk jövőben viselkedésére felhasználónak gyors válasz kell
SzitWiki - http://www.szit.hu/
Last update: oktatas:operációs_rendszerek:elmélet:tananyag http://www.szit.hu/doku.php?id=oktatas:oper%C3%A1ci%C3%B3s_rendszerek:elm%C3%A9let:tananyag 2014/12/06 01:52
Hosszú távú ütemezés nincs jelentősége az elindított folyamat azonnal fut kivéve: túlterhelt rendszer a rendszerbelépéssel túllépnénk a rendszerkorlátokat minden folyamat kap egy időszeletet Középtávú ütemezés a központi tár időszeletének kiosztása számlálót állítunk be a PCB-ben a rendelkezésre álló CPU időt adjuk meg ha fut a folyamat a felhasznált idővel csökkentjük ha I/O tev. van akkor is csökkentünk ha nincs több CPU idő kikerül az aktív halmazból Swapolunk ha szükség van az elfog. területre Rövid távú ütemezés CPU időszeletének kiosztása ha lejár a rendelkezésre álló idő → környezetváltás A CPU általában 100 millisecundum és néhány másodpercig használható Prioritás alapján választunk vagy sorbarendezünk Nincs teljes futásiidő túllépés (batchnál van) Alacsonyabb prioritású foly. néha megszakítható Stratégiák rövid távú ütemezés esetén prioritásos ütemezés prioritás alapján választunk csoporton belül körkörösen ütemezünk különböző prioritáshoz, különböző időszelet alacsony prioritás → nagyobb időszelet körkörös ütemezés sorba rendezünk rögzített időszelet sor elejéről választunk nincs CPU idő → sorvége újak a sorvégére
Prioritás-kezelés öregítési technika http://www.szit.hu/
Printed on 2016/12/25 19:18
2016/12/25 19:18
27/31
Operációs rendszerek elmélet tananyag
visszacsatolás Kleinrock – önző ütemezés „tisztességes kiosztás” Öregítési technika időnként felülvizsgáljuk a folyamatokat ha nem került a folyamatra vezérlés, akkor növeljük a prioritást Visszacsatolás Az éppen befejezett folyamat alacsonyabb prioritást kap Kleinrock Kleinrock – önző ütemezési technika készenléti állapotban lévő folyamat → külön speciális prioritás független a normál prioritástól az új és a készenlétben levő folyamatokat valamilyen technikával növeljük pl. öregítés „tisztességes kiosztás” a folyamatok különálló csoportokba azaz halmazokba szervezettek a CPU időt a csoportokhoz rendeljük kevés CPU idővel bíró csoport magas prioritást kap
Hardver támogatás nem szükséges szoftveresen minden megoldható de ha van nagyban növeli a hatékonyságot regiszterek többszörözése huzalozott utasítások speciális CPU utasítások
Folyamatok interakciói A folyamatok között a következő két esetben szokott interakció létrejönni: ha egy erőforrásra várnak jelzést kíván egyik küldeni a másiknak
SzitWiki - http://www.szit.hu/
Last update: oktatas:operációs_rendszerek:elmélet:tananyag http://www.szit.hu/doku.php?id=oktatas:oper%C3%A1ci%C3%B3s_rendszerek:elm%C3%A9let:tananyag 2014/12/06 01:52
Interakciók típusai Erőforrások osztott használata erőforrásért versenyeznek konkurensek akaratlan Kommunikációból eredő interakció információt osztanak meg egymással kooperatívak akaratlagos Lehetséges probléma: holtpont
Holtpont Folyamat leköt egy erőforrást, egyúttal várakozik egy másik lekötött erőforrásra. A másik erőforrást másik folyamat lefoglalta. Folyamatok kommunikálnak. Egymás információira várnak. Holpont létrejöttének feltételei Kölcsönös kizárás egy erőforrás egyidejűleg csak egy folyamat használhat Erőforrások lefoglalása erőforrást kell birtokolni, miközben újat igényel Megszakítás nincs megengedve erőforrás hozzárendelés nem szüntethető meg Ciklikusan láncolható igények a folyamat olyan erőforrásra vár, amelyet a láncban következő folyamat tart lefoglalva A feltételeiknek egyszerre kell megfelelni! Holtpontmegelőzés A cél, hogy úgy ütemezzünk az erőforrásokat, hogy a holtpont bekövetkezésének feltételei közül legalább egy ne teljesüljön.
Kölcsönös kizárás néhány forrás esetén elkerülhetetlen CPU egyes I/O készülékek könnyen elkerülhető pl.: csak olvasásra megnyitott fájloknál I/O készülékeknél spoolingolunk átmeneti tárolóban helyezzük el a tevékenységet http://www.szit.hu/
Printed on 2016/12/25 19:18
2016/12/25 19:18
29/31
Operációs rendszerek elmélet tananyag
batch folyamattal használjuk
Erőforrások lefoglalása Folyamatot úgy programozzuk, hogy egy időben csak egy erőforrást használjon.
Megszakíthatóság néhány erőforrás esetén azonnal eldönthető, hogy nem követelhető meg nyomtatás, olvasásra szánt fájl T.H.E rendszerben mégis megszakítható a nyomtatás
Ciklikusan láncolható igények Havendar által fejlesztett hierarchikus rendezés A forrásokat kategóriákba osztjuk A kategóriákhoz prioritást rendelünk Egy adott prioritási szinten levő forrást csak akkor kaphat meg a folyamat, ha vele azonos vagy nála magasabb szinten nem használ forrást.
Holtpontelkerülés dinamikus módszer, amely megkísérli elérni, hogy sohase allokáljunk a forrásokat oly módon, hogy a rendszer „bizonytalan” állapotba kerüljön Bizonytalan az állapot, ha megnő a holtpont bekövetkezésének a veszélye Általános stratégiát erre javasolni nagyon nehéz! Az interakcióba került folyamatok erőforrásigényeit ellenőrizni kell Egy módszer lehet, ha a nagyobb igényű erőforrásokat külön ellenőrizzük. nem javasolt növeli az önköltséget Habermann bankár algoritmus bankár zárt csoportnak biztosít hitelt feltételezi egyszerre nem veszik igénybe az egész hitelkeretet így a teljes hitelkeretnek csak egy részét tartalékolja hitel = erőforrás használat Ha egyszerre több igény van, fokozatosan elégíti ki újabb hitelezés előtt, az előző lépésben kifizetett, teljesen kielégített hitelkeretet mindig felszabadítja Adott hitelezési állapot rendszerállapot R1 rendszerállapot biztonságos, ha ebből létrehozható az állapotoknak egy olyan sorozata, SzitWiki - http://www.szit.hu/
Last update: oktatas:operációs_rendszerek:elmélet:tananyag http://www.szit.hu/doku.php?id=oktatas:oper%C3%A1ci%C3%B3s_rendszerek:elm%C3%A9let:tananyag 2014/12/06 01:52
amely a maximális igények egymás utáni kielégítésével eljuthat az összes maximális hitelkérelem kifizetéséhez. A = aktuálisan igénybe vett hitel M = Maximálisan igénybe vehető hitel Név A M Nagy 0 9 Kovács 0 5 Szabó 0 4 Takács 0 7 Szabad keret 11 Biztonságos
Név AM Nagy 2 9 Kovács 1 5 Szabó 2 4 Takács 4 7 Szabad keret 2 Biztonságos
Név AM Nagy 1 9 Kovács 3 5 Szabó 2 4 Takács 4 7 Szabad keret 1 Bizonytalan
Holtpont érzékelés nehéz mert sok folyamat vehet részt nehéz mert más tevékenység „normálisan” halad Lehetséges stratégia 1. Futó folyamatok közül erőforrást igénylők kiválasztása 1. ezek vesznek részt a holtpont kialakításában 2. Keressünk egy olyan folyamatot amely erőforrásigénye kielégíthető. Jelöljük meg 3. Minden olyan forrást, amelyet most kijelölt tevékenységünk használ, tekintsünk szabadnak 4. Ismételjük meg az eljárást a 2. ponttól mindaddig, amíg nem jutunk el egy olyan állapotba, amikor már nincs kiszolgálható tevékenység Következtetés Ha az eljárás végén marad nem kiszolgálható folyamat, akkor létezik a rendszerben holtpont A megmarad folyamatok éppen azok, amelyek a holtpont kialakításában részt vesznek
Holtpont megszüntetése Feladat: várakozási kör lebontása Drasztikus: a kör kialakításában résztvevő összes folyamat megölése néha elég néhány tevékenységet kiemelni és azt megszakítani néha elég az előbb kiemelt tevékenységeket egy korábbi állapotba visszaállítani
Megszakítások, IO kezelés
http://www.szit.hu/
Printed on 2016/12/25 19:18
2016/12/25 19:18
31/31
Operációs rendszerek elmélet tananyag
Megszakítás típusok I/O művelet befejezés miatt timer-megszakítás riadó megszakítás programhiba-megszakítás rendszermegszakítás készülék-hibamegszakítás
Irodalom Dr. Galambos Gábor: Operációs rendszerek http://en.wikipedia.org/wiki/Operating_system
From: http://www.szit.hu/ - SzitWiki Permanent link: http://www.szit.hu/doku.php?id=oktatas:oper%C3%A1ci%C3%B3s_rendszerek:elm%C3%A9let:tananyag Last update: 2014/12/06 01:52
SzitWiki - http://www.szit.hu/