Operációs rendszerek I.
|
|
- Zsófia Gálné
- 8 évvel ezelőtt
- Látták:
Átírás
1 Az operációs rendszerek meghatározása Alapismeretek Az operációs rendszer fogalmát nehéz meghatározni. Röviden a számítógépen állandóan futó program, mely közvetlenül vezérli a gép működését, biztosítja a gép és a felhasználó közötti kommunikációt, elosztja az erőforrásokat. Közvetítő szerepet tölt be a számítógép hardvere és a felhasználó között. Operációs rendszerek osztályozási szempontjai 1. Felhasználók száma (egyfelhasználós, többfelhasználós) 2. A multiprogramozás foka (nem multiprogramozott/multiprogramozott) 3. Az elérés módja (kötegelt, interaktív (idõosztásos), valós idejû) 4. A hardver mérete (nagygépes, kisgépes, mikrogépes) 5. A rendszer struktúrája (centralizált, elosztott, hálózati) 6. A felhasználás jellege (ügyviteli, adatfeldolgozó, tranzakciós és lekérdezõ rendszerek, folyamatvezérlõ, ipari és tervezõi munkaállomások, programfejlesztõi környezet, személyi számítógépes rendszerek stb.). Az operációs rendszerek feladatai Erőforrás-szervezés Két fő cél: kényelmes használat ellenőrzött kiosztás A felhasználói felület Egy operációs rendszernek alkalmasnak kell lenni arra, hogy kommunikálni tudjon a felhasználókkal és azok programjaival, Az ezt megvalósító felhasználói felület két részből áll: - parancs interface, amely biztosítja a felhasználónak, hogy parancsokat adjon közvetlenül a számítógépnek. - program interface, amely biztosítja azokat a szolgáltatásokat, amelyekre az éppen futó programoknak szükségük van. Programok szervezése A (futó) programok szervezése az operációs rendszer egyik legfontosabb feladata. Ha az operációs rendszer részére csak egy CPU áll rendelkezésre, akkor két lehetőség közül választhat: vagy egy program fut egy adott időben, a memóriában a befejezésig, vagy ha több program futásáról kell gondoskodni, akkor ezek sorban kapnak lehetőséget egy-egy rövid időre a CPU használatára. Készülék-kezelés A számítógépek az I/O készülékek széles választékával rendelkeznek. Nyomtatók, terminálok, plotterek, mágneslemezek, mágnesszalagok és egyéb kommunikációs készülékek találhatók az ilyen rendszerekben. Fontos a készülékek kezelését, ellenőrzését egy jól szervezett rendszerre bízni. A készülékek kezeléséhez szorosan hozzátartoznak a megszakítások. Sok esetben ugyanis az adatátvitel a készülékek között akkor is folytatódik, ha a CPU mással van elfoglalva. Ha egy I/O egység készen áll adatok továbbítására vagy fogadására, akkor egy megszakítás jellel ezt közli az operációs rendszerrel. Memória-kezelés A központi tár egy számítógép legkritikusabb erőforrása. A korai operációs rendszerek esetében a memóriakezelés viszonylag egyszerű volt: Az operációs rendszer elfoglalta a memória egy részét, és az éppen futó program rendelkezett a memória megmaradt részével. A többprogramos rendszereknél azonban a memória egyidejűleg több program között kerül felosztásra és ezek védelme egymás ellen már sokkal összetettebb feladat. 1.
2 Állomány-kezelés Egy számítógépes rendszeren az információk tárolását többnyire állományokba (fájlokba) szervezéssel oldjuk meg. Az állományok kezelésén értjük azok olvasását, írását, szervezését és a tárolt információk elérésének ellenőrzését is Job and Session Management Néha előfordul, hogy egy feladat teljes körű végrehajtásához programok sorozatát kell végrehajtani. A sorozat egy tagját elemnek (jobnak) nevezzük. Az elemek összekapcsolt sorozata a csomag (session). Néha kívánatos, hogy az elemeket ill. a csoportokat egy komplett egységként kezeljük. Hiba-kezelés Az operációs rendszernek kell foglalkozni minden olyan hibával, amely a számítógépes rendszerben előfordulhat. A hibák lehetnek hardware hibák (készülékekben, memóriában, átviteli vonalakban) és software hibák (rendszerprogramokban vagy felhasználói programokban). A hiba kezelésének az a feladata, hogy érzékelje és felfedje ezeket a hibákat. A hibák megoldása azonban (extrém eseteket kivéve) a felhasználó feladata. Megbízhatóság és védelem Az operációs rendszer kiemelt feladatai közé tartozik az, hogy biztosítsa a számítógépes rendszer korrekt működését, továbbá az, hogy védje mind az adatokat, mind a programokat a sérüléstől és az illetéktelen hozzáféréstől. Felügyelet és elszámolás A legjobban felkészített operációs rendszerek rendelkeznek egy olyan lehetőséggel, amelynek segítségével a felhasználók által igénybe vett erőforrások felhasználása mérhető. Erre azért van szükség, mert a rendszer egyes részei olyan költségekkel rendelkezhetnek, amelyeket a felhasználókra kívánunk terhelni. Operációs rendszerek története Operációs rendszer nélkül mérnökpult open shop rendszer mágnesszalagos egységek megjelenése fontos programok (compiler, linker) operátor closed shop rendszer Supervisor programok és I/O rendszerek IBM 701 Share Operating System Fortran Monitor System IBM Input/Output Control System - BIOS Szalagos és lemezes operációs rendszerek IBM/360 TOS/360 mágneslemez megjelenése DOS JOB Control Language Multiprogramozott kötegelt rendszerek Burroughs Large System (B5000) Master Control Program virtuális memória priorizálás Időosztásos rendszerek Interaktív operációs rendszerek Multics (Multiplexed Information and Computing Service) Unix 2.
3 Operációs rendszerek típusai Kötegelt rendszerek Elosztott rendszerek Fontosabb szervezési elvek: homogén (azonos típusú processzorok) vagy inhomogén rendszer szimmetrikus (nincs kitüntetett processzor) vagy aszimmetrikus rendszer Időosztásos rendszerek Prioritásos (real-time) rendszerek T.H.E. architektúra rétegszerkezet absztrakt (virtuális) gépek PDP10/11 Tenex Az operációs rendszerek szerkezete Rendszermodulok A folyamatok kezelése - program betöltése, végrehajtása, - folyamatok létrehozása, megszüntetése, attribútumainak beállítása, - folyamatok közötti kommunikáció, folyamatok egymáshoz illetve külső eseményekhez - vagy órához- szinkronizálása, - nyomkövetés hibakereséshez. A központi tár kezelése - központi tár igénylése, felszabadítása, - védett memóriaterületek kialakítása - rendszer és felhasználói programterület szétválasztása Perifériakezelés - igénylése, lefoglalása, felszabadítása, - átvitel a program és a periféria között. Az állományok kezelése - állományok létrehozása, törlése, attribútumainak beállítása, - könyvtárak létrehozása, módosítása, - állományok megnyitása, lezárása, szekvenciális és véletlen elérésű átvitel. Védelmi mechanizmusok (Protection system) - hardveres hibajelzések kezelése, - szoftveres hibajelzések, védelem A hálózatok kezelése - kommunikációs csatornák létrehozása, megszüntetése, - üzenetek, állapotinformációk küldése és fogadása, 3.
4 - műveletek távoli erőforrásokon. 4.
5 Kezelői felületek - közvetlen kapcsolattartás során egy interaktív terminálon gépeljük le a parancsot, - közvetett igény során a programokból adjuk ki a szolgáltatást igénylő utasítást. Az OR-nek azt a komponensét, amely a kommunikáció kezeléséért felelős felhasználói interface-nek nevezzük, és két fő részre osztható: - A parancs interface azáltal, hogy magas szintű kommunikációt biztosít a felhasználó és az OR között, irányítja a programok futását. - A program interface kezeli a futó programokat. Az OR ezen a részrendszeren keresztül tartja a kapcsolatot a programok és a rendszer által ellenőrzött erőforrások és szolgáltatások között. Perifériás műveletek gyorsítása Pufferelés A CPU és az autonóm perifériavezérlők egyidejűleg működnek. A beolvasás egy pufferbe történik, a következő adat beolvasása rögtön megkezdődhet, ha a CPU elvette innen az adatot. Egy munkán belül az adat feldolgozása és a következő I/O művelet egymással átlapoltan történik (átlapolt feldolgozás). Spooling (Simultaneous Peripheral Operations On-Line) Az egyfelhasználós rendszereknél bevezették a spooling technikát, amely egy lassú perifériára (nyomtató) való kivitelnél úgy küszöböli ki a központi egység állandó tétlenségét, hogy a kivitel először egy gyorsabb háttértárra történik viszonylag rövid idő alatt, majd a főprogram tovább fut, és maga a nyomtatás más feladatokkal párhuzamosan, a központi egység hulladék idejében hajtódik végre. A folyamat fogalma Folyamatkezelés A folyamat (process) a multiprogramozott operációs rendszerek alapfogalma. Legtömörebb megfogalmazása: végrehajtás alatt álló ("életre kelt") program. Valójában a folyamat, a legtöbb esetben, több mint a program, mivel a folyamat fogalma nem csak a programot, hanem a futás közben lefoglalt erőforrásokat is takarja. Természetesen vannak olyan programok-programrendszerek, melyek több folyamatból állnak, ilyen esetben a folyamat nem fedi le a program fogalmát. Folyamatkezelés multiprogramozott rendszerekben Folyamatállapotok - Fut (running): A központi egység a folyamathoz tartozó utasításokat hajtja végre. CPU-nként egyetlen ilyen folyamat lehet. - Várakozik, blokkolt (blocked): A folyamat várakozni kényszerül, működését csak valamilyen külső vagy belső esemény bekövetkezésekor tudja folytatni. Például a folyamat elindított egy perifériás átvitelt és be kell várnia annak lezajlását. A rendszerben több várakozó folyamat is lehet. - Futásra kész (ready): A folyamat futásához minden feltétel adott, de a multiprogramozott rendszer központi egysége éppen foglalt, egy másik folyamat utasítását hajtja végre. A rendszerben több futásra kész folyamat is lehet. 5.
6 Állapotátmeneti gráf Folyamatok felfüggesztése Az operációs rendszer felfüggeszthet (suspend) bizonyos folyamatokat, azaz időlegesen kiveheti azokat a fenti három állapot körforgásából, - ha a rendszer túl van terhelve, túl sok folyamat vetélkedik a futás jogáért, a rendszer fontosabb erőforrásai túlzottan foglaltak, - ha a rendszer "gyanúsan" működik vagy valamilyen vészhelyzet következik be (áramszünet), - ha a felhasználó fel akarja függeszteni valamelyik folyamat, mert annak futására pillanatnyilag nincs szükség. Környezetváltás Az átkapcsolások megvalósításához minden olyan információt meg kell őrizni, ami az egyes folyamatok zökkenőmentes folytatásához szükséges. Ez egyrészt a folyamat saját, másrészt az őt végrehajtó gép állapotjellemzőinek megőrzését jelenti. 6.
7 Saját állapotjellemzők: - a folyamathoz tartozó programkód, - változók aktuális értéke. beleértve a verem tartalmát is, - hol tart a program végrehajtása (programszámláló). Folyamatok közötti kommunikáció (IPC InterProcess Communication) Szinkronizálás: 1 bit (flag) v. változó, közös memóriaterület Közvetlen kommunikáció üzenetek küldésével és fogadásával Közvetlen kommunikáció csatorna használattal: közös file analógia Közvetett kommunikáció: mailbox analógia Folyamatok párhuzamosítása fork/join parbeign/parend Folyamatleírók - a folyamat állapota, - a folyamat azonosítója, - a folyamat szülőjének és gyerekeinek azonosítója, - a folyamathoz tartozó összes tárterület leírása, mutatók, illetve a virtuális tárkezeléshez szükséges összes adat (címtranszformációs táblák, lemezblokkok leírása, stb.), - a folyamat által használt egyéb erőforrások leírása (pl. a nyitott állományok leírása), - a regiszterek tartalma, - várakozó folyamatoknál a várt esemény leírása - ütemezéshez szükséges információk (prioritás, várakozási idő), - számlázási információk és egyéb statisztikák. Szálak A szál (thread) a folyamtokhoz hasonló aktív entitás, a folyamatoktól az különbözteti meg, hogy az operációs rendszernek a szálak kezeléséhez kevesebb adatot kell nyilvántartania, általában csak saját regiszterei, és verme van, a kód- és az adatterületén és egyéb erőforrásokon más szálakkal osztozik. A szálak futási környezete a tradicionális folyamat, amely a szálak által közösen használt erőforrások tulajdonosa. Megszakítások Megszakításnak nevezünk - a számítógép részéről kezdeményezett - minden olyan akciót, amely az éppen feldolgozás alatt álló folyamatot - külsőleg v. belsőleg - megszakítva, (annak állapotát esetlegesen a folytatáshoz szükséges állapotban megőrizve) egy másik folyamatnak - az ún. megszakítási rutinnak - adja át a vezérlést. A megszakítási rutin ezután dönthet újabb akció(k) végrehajtásáról és/vagy a vezérlés visszaadásáról a megszakított folyamatnak. Kiváltó mechanizmus alapján megkülönböztetünk hardver- ill. szoftvermegszakításokat. Előbbieket mindig valamilyen - a számítógéphez csatlakoztatott - külső (tehát nem a végrehajtó egységen belüli) egység váltja ki (pl. bővítőkártya, DMA vezérlő) jelezvén valamilyen tevékenység befejezését (pl. adat küldése) vagy megkezdésének szükségességét (pl. adat fogadása). Megszakításosztályok - perifériák megszakításai, amelyek perifériás berendezések állapotának változását, átvitel befejeztét jelzik, - belső hardver megszakítások, pl. programozható óra, - utasítás-végrehajtási hibák, például nullával való osztás, vagy pl. a (virtuális) tárkezelés védelmi mechanizmusai válthatják ki, - komoly hardver meghibásodások, tápfeszültség kimaradás, - szoftver megszakítások, speciális gépi utasítások (csapda), például a rendszerhívások. 7.
8 Megszakítások kiszolgálása Konkurens folyamatok A folyamatokat függetleneknek tekintjük, ha egymás működését semmilyen módon nem befolyásolják. Független folyamatok végrehajtása általában aszinkron, azaz egymással párhuzamosan is végrehajtódhatnak, a végrehajtás egymáshoz viszonyított sebességéről semmilyen feltételezést nem tehetünk. A folyamatok között csatolást (függőséget) idézhet elő, ha - logikailag független folyamatok megosztottan használnak erőforrásokat (pl. egymást nem ismerő felhasználók folyamatainak végrehajtása ugyanazon a számítógép-konfiguráción, multiprogramozott operációs rendszer felügyelete alatt). - a folyamatok logikailag is függenek egymástól, együttműködnek valamely feladat megoldásán, közös változóik vannak, kommunikálnak egymással (pl. irányító rendszerek különböző funkcióit ellátó programok) Szinkronizáció A szinkronizáció a folyamat végrehajtásának olyan időbeli korlátozása, ahol az egy másik folyamat futásától, esetleg egy külső esemény bekövetkezésétől függ. Alapesetei: - Precedencia: A precedencia meghatározott sorrend biztosítása. Egy Pi folyamat Si és egy Pj folyamat Sj utasításainál a precedencia akkor áll fenn, ha Sj végrehajtása csak akkor kezdődhet el, ha Si már befejeződött. Természetesen itt és a későbbi definíciókban az "utasítás" nem egy gépi utasítást, hanem a programozó által összekapcsolt utasítássorozatot jelent. - Egyidejűség: Az egyidejűségnél két vagy több folyamat bizonyos utasításának végrehajtását - az előbbi példában Si-t és Sj-t - egy időben kell elkezdeni. Az ilyen szinkronizáció két folyamatnak egy találkozási pontját, randevúját valósítja meg, a két folyamat bevárja egymást, mielőtt a meghatározott utasítást megkezdené. - Kölcsönös kizárás (mutual exclusion): Kölcsönös kizárás esetén a résztvevő folyamatok utasításainak futási sorrendjére nincs korlátozás, de biztosítani kell, hogy a folyamatokban kijelölt utasítások (Si, Sj,...) közül egy időben csak az egyik futhat. A szinkronizációhoz kapcsolódó egyéb fogalmak: - Holtpont (deadlock): A holtpont több folyamatra, esetleg az egész rendszerre vonatkozó fogalom. Holtpont akkor következik be, ha a folyamatok egy csoportja olyan feltételre, olyan esemény bekövetkezésére vár, amelyet csak a csoport egy másik várakozó folyamata képes előállítani. Nem beszélünk holtpontról, ha valamelyik folyamat egy külső eseményre várakozik, hiszen ez az esemény - legalábbis az operációs rendszer szemszögéből, a környezetet nem vizsgálva - még bekövetkezhet. 8.
9 - Holtpont kezelése - Az erőforrások használatánál bevezetett szabályokkal biztosítjuk, hogy holtpont ne alakulhasson ki: - holtpont megelőzése ( deadlock prevention ) - holtpont elkerülése ( deadlock avoidance ) - Hagyjuk, hogy esetleg kialakuljon a holtpont és csak ekkor avatkozunk be: - holtpont felismerése ( deadlock recognition ) - holtpont megszüntetése ( deadlock recovery ) - Éhezés (starvation, indefinite postponement): Az éhezés egyes folyamatokra vonatkozó fogalom. Egy folyamat akkor éhezik, ha a továbbfutásához szükséges erőforrásokhoz véges időn belül nem jut hozzá, mert más folyamatok mindig megelőzik. (Rögzített folyamatprioritások, tisztességtelen ütemezés.) Kölcsönös kizárás Mivel az operációs rendszerek legfontosabb feladata az erőforrások kezelése, azok osztott használatának biztosítása, ezért az operációs rendszerek belsejében a különböző szinkronizálási esetekből leggyakrabban a kölcsönös kizárás fordul elő. Egy erőforrás használatát valamelyik folyamatnak be kell fejeznie, mielőtt egy másik folyamat elkezdené, különben az erőforrást a második folyamat nem definiált, inkonzisztens állapotban találja. A kritikus szakasz Azon programrészletet, amelynek működése közben a folyamat az erőforrásra vonatkozó tevékenységét nem lehet megszakítani, pontosabban, amíg a felhasznált erőforráshoz más folyamat nem férhet hozzá, kritikus szakasznak nevezzük. Megvalósítása: - Tisztán programozott megoldások: Ezek közösen használt változókon alapulnak, több processzoron párhuzamosan futó folyamatokat tételeznek fel, a mindhárom kritériumot teljesítő eljárások bonyolultak. A megoldásokban az erőforrásokon végzett műveletekről csak azt tételezzük fel, hogy azok nem interferálnak, hatásuk egyértelmű. - Hardvertámogatás: Speciális megszakíthatatlan gépi utasítások, amelyek egy utasítás alatt összevontan több műveletet is elvégeznek. - Szemafor (semaphore): A szemafor egy speciális adattípus, amely 0-t illetve pozitív egész számokat tartalmazhat és két művelet, a P (proberen - vizsgál vagy wait), illetve a V (verhogen - növel vagy signal) van értelmezve rajta. Mindkét művelet elemi, megszakíthatatlan. - Feltételes kritikus szakasz: Ha valamelyik folyamat az s utasítást hajtja végre, más folyamat közben nem férhet hozzá a v változóhoz - nem hajthat végre más v-hez tartozó kritikus szakaszt. A kritikus szakaszhoz hozzárendelünk egy logikai feltételt. Ha egy folyamat beléphet a kritikus szakaszba, akkor kiértékelődik a b feltétel és a folyamat csak akkor haladhat tovább, hajthatja végre az s utasítást, ha a feltétel igaz. Ha hamis, a folyamat felszabadítja a kritikus szakaszt és addig várakozik, amíg a feltétel igazzá nem válik. - Monitor: A monitor egy olyan programszerkezet, amelybe a programozó programrészleteket, eljárásokat zárhat. A monitor biztosítja, hogy egy időben csak egy folyamat lehet aktív a monitorban, csak egy folyamat hajthat végre valamelyik monitorbéli programrészletet. Ha már van aktív folyamat a monitorban, a többi folyamatnak a monitorba lépésnél várakozniuk kell. 9.
10 Ütemezés Az operációs rendszer egyik legfontosabb feladata, hogy a rendszer erőforrásait kezelje, azaz meghatározott gazdálkodási, védelmi, stb. szempontok betartásával ellássa a folyamatokat futásukhoz szükséges erőforrásokkal. Az ütemezés (scheduling) az a tevékenység, amelynek eredményeként eldől, hogy egy adott erőforrást vagy erőforráscsoportot a következő pillanatban mely folyamat használhat. Szintek Az ütemezés három különböző szintjét különböztetjük meg: 1. Hosszútávú (long-term) vagy munka ütemezés A hosszú távú ütemezés határozza meg, hogy a véletlen elérésű háttértáron várakozó, még meg nem kezdett munkák közül melyek kezdjenek el futni. Az ütemező algoritmusnak viszonylag ritkán kell futnia, ha közel azonos terhelést akarunk biztosítani, akkor egy futó munka befejeződésekor választunk ki egy új elindítandót. Mivel ritkán fut, ezért a következő munka kiválasztása viszonylag hosszú ideig tarthat, az algoritmusnak nem kell gyorsnak lennie. Az algoritmusnak olyan munka-halmazt (job-mix) kell összeállítania, ami a rendszer erőforrásait kiegyensúlyozottan használja, nem indít el olyan munkát, amely egy már úgyis túlterhelt erőforrásra tart igényt. A CPU kihasználtságát szem előtt tartva biztosítja, hogy CPU-korlátozott és periféria-korlátozott munkák egyenletesen forduljanak elő. 2. Középtávú (medium-term) ütemezés A középtávú ütemezés a rendszer időszakos terhelésingadozásait egyes folyamatok felfüggesztésével illetve újraaktiválásával próbálja kiegyenlíteni. Egy folyamat felfüggesztésekor a folyamat környezetét háttértáron tárolják és megfosztják az elvehető erőforrásaitól (pl. memóriától). A felfüggesztett folyamatok nem versengenek tovább az erőforrásokért, csak aktiválásuk után válhatnak futásra késszé. 3. Rövidtávú (short-term) ütemezés A rövidtávú ütemezés dönti el, hogy a processzort melyik futásra kész folyamat kapja meg. A rövidtávú ütemezés gyakran fut, ezért gyorsnak kell lennie, különben a rendszer túl sok időt töltene az ütemezéssel, elvéve a processzort a folyamatoktól. Az ütemező mindig a tárban van, része az operációs rendszer magjának. Az ütemező algoritmusok alapjai Az ütemezés alapját az képezi, hogy egy folyamat futása során két különböző jellegű tevékenységet hajt végre: - a CPU löket (CPU burst) ideje alatt a folyamatnak csak a processzorra - és az operatív tárra - van szüksége, - a periféria löket (I/O burst) alatt a folyamat egy perifériás átvitelt hajt végre, annak lezajlására várakozik. Ütemezés a folyamatok következő állapotátmeneteinél következhet be: - a futó folyamat várakozni kényszerül, - a futó folyamat vagy lemond a processzorról vagy elveszik tőle, - egy folyamat felébred, futásra késszé válik, - a futó folyamat befejeződik. Az ütemezési algoritmusok teljesítményét a következő paraméterek alapján szokták összehasonlítani: - CPU kihasználtság: A központi egység az idő hány százalékában foglalkozik a folyamatok utasításainak végrehajtásával. A kihasználtságot csökkenti, ha a CPU henyél (idle), azaz nincs olyan folyamat, amelyik futhat, illetve a rendszeradminisztrációra, ütemezésre, stb. fordított idő (rezsi, overhead). Tipikus értékei % közöttiek. - Átbocsátó képesség (throughput): Az operációs rendszer egy időegység alatt hány munkát futtat le. - Körülfordulási idő (turnaround time): Egy munka a rendszerbe helyezésétől számítva mennyi idő alatt fejeződik be. 10.
11 - Várakozási idő (waiting time): Egy munka vagy folyamat mennyi időt tölt várakozással. Ide tartozik a várakozó és futásra kész állapotokban eltöltött időn felül a felfüggesztett állapotok ideje és munkák esetén a hosszútávú ütemezés által okozott előzetes várakozás is. A körülfordulási idő a várakozási idő és a folyamat utasításának végrehajtásához szükséges idő összege, ám ez utóbbi idő természetesen nem függ az ütemezési algoritmusoktól. - Válaszidő (response time): Időosztásos rendszerekben a felhasználók számára nagyon fontos, hogy érezzék, a rendszer reagál parancsaikra. A válaszidő az az idő, amely az operációs rendszer kezelői felületének - esetleg egy felhasználóval kommunikáló folyamatnak- adott kezelői parancs után a rendszer első látható reakciójáig telik el, amennyi idő alatt a rendszer válaszolni kezd. Típusok Az ütemező algoritmus: - PREEMPTÍV, ha az operációs rendszer elveheti a futás jogát egy folyamattól, azt futásra késszé teszi és egy másik folyamatot indít el. - NEM PREEMPTÍV, ha egy folyamattól, miután egyszer megkapta a központi egységet, azt nem lehet elvenni, azaz a folyamat csak általa kiadott utasítások (erőforrásra, eseményre várakozás, befejeződés vagy a CPUról önként lemondás) hatására válthat állapotot. Egyszerű algoritmusok - Legrégebben várakozó (FCFS, First Come, First Served): A futásra kész folyamatok a várakozási sor végére kerülnek, az ütemező mindig a sor elején álló folyamatot kezdi futtatni. Nem preemptív algoritmus. az algoritmus egyszerűen megvalósítható, de a folyamatok átlagos várakozási ideje meglehetősen nagy lehet, egy-egy hosszú CPU löketű folyamat feltartja a mögötte várakozókat (konvoj hatás). - Körbeforgó (RR, Round-Robin): Preemptív algoritmus, az időosztásos rendszerek valamennyi ütemező algoritmusának alapja. Minden folyamat, amikor futni kezd, kap egy időszeletet (time slice), ha a CPU lökete nagyobb lenne, mint az időszelet, akkor az időszelet végén a folyamattól az ütemező elveszi a processzort, a folyamat futásra kész állapotú lesz és beáll a várakozó sor végére. Ha a CPU löket rövidebb, a löket végén a rendszer folyamatait újraütemezzük, a futó folyamat időszelete újraindul. Az időszelet helyes méretének meghatározása igen nehéz. Az átlagos CPU lökethez képest túl nagy időszelet esetén az algoritmus az FCFSnek felel meg (hiszen az időszelet nem szakítja meg a folyamatot), túl kicsi választásánál a folyamatok úgy érzik, hogy a CPU-t egyenlő arányban használják (minden CPU löket sokszor megszakad), de a környezetváltás gyakorisága a rendszer hasznos teljesítményét nagyon lerontja. Alapszabály, hogy a CPU löketek 80 %-a legyen rövidebb az időszeletnél. Prioritásos algoritmusok A prioritásos algoritmusok közös sajátossága, hogy a futásra kész folyamatok mindegyikéhez egy számot - prioritást rendelünk, a következő futtatandó folyamat a várakozók közül a legnagyobb prioritású lesz. A prioritás lehet - belső, amikor az operációs rendszer rendel a folyamatokhoz prioritást - külső, amikor a folyamatok prioritását az operációs rendszeren kívüli tényezők - pl. a folyamat saját kérése vagy operátori beavatkozás - határozza meg. A folyamat prioritása futása során lehet - statikus, végig azonos - dinamikus, az operációs rendszer által változtatott Az összes prioritásos algoritmusnál fellép a kiéheztetés veszélye. Ennek kivédésére általában a régóta várakozó folyamatok prioritását a rendszer fokozatosan növeli, a folyamatokat öregíti (aging). A folyamatok prioritását különböző tényezők határozhatják meg. A következő algoritmusokban a prioritást a várakozó folyamat CPU löketidő-szükséglete határozza meg. Az egyes folyamatok következő löketidejének hossza nem ismert, ezért azt becsülni kell vagy - a folyamat illetve a folyamatot elindító felhasználó "bevallása" alapján (a felhasználók hajlamosak hazudni), illetve 11.
12 - a folyamat előző viselkedése alapján, a korábbi löketidők általában exponenciális átlaga alapján. Az algoritmusok: - Legrövidebb (löket)idejű (SJF, Shortest Job First): Nem preemptív algoritmus, az algoritmus a futásra kész folyamatok közül a legrövidebb CPU löketidejűt indítja el. Az algoritmus kiküszöböli az FCFS-nél előforduló konvoj-hatást, a folyamatok átlagos várakozási és körülfordulási ideje bizonyíthatóan optimális. - Legrövidebb hátralevő idejű (SRTF, Shortest Remaining Time First): Az SJF algoritmus preemptív változata: ha egy új folyamat válik futásra késszé, akkor az ütemező újra megvizsgálja a futásra kész folyamatok, illetve az éppen futó folyamat hátralevő löketidejét, és a legrövidebbet indítja tovább. Mivel egy futó folyamat megszakításához és egy másik elindításához szükséges környezet-váltáshoz idő szükséges, ezt az időt is figyelembe kell venni, ha úgy döntünk, hogy egy futó folyamatot megszakítunk. Tárkezelés Címkötési módszerek - Fordítás közben (compile time): A fordítóprogram a program és adatterület elemeihez abszolút címet rendel. Ezt a technikát merevsége miatt elsősorban csak a ROM memóriába kerülő programok esetén használják. - Szerkesztés közben (link time): A program több egymástól függetlenül lefordított modulból áll, amelyek más-más modulban definiált logikai címekre is hivatkoznak. A kapcsolatszerkesztő (linker) program feladata, hogy az összes modult egymás mögé elhelyezze a fizikai tárban, valamint feloldja a modulok közötti hivatkozást, konkrét fizikai címeket helyettesítve. - Betöltés közben (load time): A fordítás eredményeképpen előállott áthelyezhető kód címhivatkozásait a betöltő program az aktuális címkiosztás szerint módosítja. - Futás közben (run time): A program memóriaképe logikai címeket tartalmaz, speciális hardverelemek a konkrét fizikai címet csak az utasítás végrehajtásakor határozzák meg. Ismertek olyan eljárások, amikor a program indításakor nem a teljes programot, hanem csak egyes részeit töltjük a tárba, más részek csak a futás közbe, szükség esetén töltődnek be. Ilyenek: - Dinamikus betöltés (dynamic loading): A programhoz tartozó egyes eljárások - áthelyezhető formában- a háttértáron vannak, ha valamelyikre szükség van, akkor egy speciális programrészlet ezt betölti. A program így lényegesen kisebb tárterületet foglal el, a ritkán használt (pl. hibakezelő) eljárások nem foglalják a tárat. A dinamikus betöltést a programozó szervezi meg, az operációs rendszer ehhez nem nyújt támogatást. - Dinamikusan betöltött könyvtárak (dynamic linking): A módszer a dinamikus betöltés módosított, az operációs rendszer által támogatott változata. A programban használt rendszerkönyvtárak eljárásai helyett csak egy csonk (stub) kerül a programba, amely tartalmaz valamilyen hivatkozást egy könyvtárra és a könyvtáron belüli eljárásra. A csonk első meghívásakor a rendszer a kívánt eljárást betölti a tárba és a következő hívások már az eljárást fogják időveszteség nélkül meghívni. A módszer előnye a csökkentett tárfelhasználáson felül az, hogy a könyvtárban lévő hibákat egy helyen kell módosítani, nem kell újrafordítani az összes, könyvtárat használó programot. 12.
13 - Átfedő programrészek (overlay): A programot olyan részekre bontjuk, amelyek közül egy időben csak az egyik dolgozik, majd ezeket a részeket - a közösen használt adat- és programrészleteket változatlanul hagyva - egyesével töltjük be. Az átfedő programrészletek technikájához nincs szükség az operációs rendszer támogatására. Az átfedés számára fenntartott tárterület a legnagyobb programrészlet hosszával egyezik meg. Az egyes ágak a háttértáron tartalmazhatnak abszolút címeket, hiszen mindig ugyanoda töltődnek be. A helyes overlay-szerkezet megvalósításához a program szerkezetének, futás közbeni viselkedésének alapos ismerete szükséges. Társzervezési elvek Egy partíciós rendszer Az operációs rendszeren felüli folytonos címtartományt teljes egészében egy folyamat használhatja. A betöltő program indításakor azt az első szabad címre hozza be. Ha a program futása során az operációs rendszernek több tárra van szüksége, akkor azt vagy a program által nem használt területről lopja el, vagy a programot át kell helyezni, ami hardvertámogatás nélkül nehézkes. Az operációs rendszer területének védelmére elegendő egy regiszter, amely a program legkisebb címét tartalmazza. A folyamat futása közben - felhasználói módban - a tárkezelő hardver figyeli, hogy minden hivatkozás a tárolt cím felett legyen. Rendszerhíváskor a processzor átkerül olyan működési módba, ahol ez a védelem kikapcsol, az operációs rendszer a teljes tárat elérheti. Több partíciós rendszer A multiprogramozás megkövetelte, hogy egy időben több folyamat tartózkodjon a tárban. Korai rendszerekben az operációs rendszeren felüli tárterületet részekre (partíciókra) osztották, ám ezeknek a partícióknak a határa a rendszer futása alatt nem változhatott (rögzített partíciók). 13.
14 Tipikus volt, hogy különböző méretű partíciókat definiáltak, egy programot a neki megfelelő méretű partícióban futtatták, sőt esetleg már eleve ebbe a partícióba fordították le. Bár ez a tárkezelés nagyon egyszerű volt, de merevsége miatt a tárat rosszul használta ki. A szervezés a tár belső tördelődéséhez (internal fragmentation) vezet, azaz a folyamatok nem használják ki teljesen a partícióban rendelkezésükre álló tárterületet. Fejlettebb operációs rendszerekben a folyamatok változó - az igényeiknek megfelelő méretű partíciót kapnak. Terület lefoglalási stratégiák Az operációs rendszer a betöltendő program számára a szabad területek közül a következő kritériumok szerint választhat: - A legjobban megfelelő (best fit): a legkisebb, még elegendő méretű területet foglaljuk le, - Az első megfelelő (first fit): a kereséssel a tár elejéről indulva az első megfelelő méretű területet foglaljuk le - A következő megfelelő (next fit): a kereséssel az utoljára lefoglalt tartomány végétől indulunk, az első megfelelő méretű területet foglaljuk le - A legrosszabbul illeszkedő (worst fit): a legnagyobb szabad területből foglalunk le, abban bízva, hogy a nagy darabból szabadon maradó terület más folyamat számára még elegendően nagy lesz. Memóriacímzési módszerek Rögzített címzés Amíg egy számítógépen csak egy felhasználó dolgozhatott és ő is csak egyetlen programot futtathatott, a memóriakezelés különösebb gondot nem okozott. Az operációs rendszer állandó területen, például a memória legelső, legkisebb című rekeszein helyezkedett el, a felhasználói program használhatta az operációs rendszer végétől egészen a legnagyobb címig az egész memóriát. A program változóinak, ill. vezérlésátadásainak címe így már fordítás közben meghatározható volt. Áthelyezhető címzés Az első korlát, amibe a rögzített címzésű rendszerek beleütköztek, hogy az operációs rendszer mérete nem bizonyult állandónak, mivel megjelentek olyan operációs rendszerek, melyek tranziens részekkel rendelkeztek, vagyis bizonyos részeik csak akkor töltődtek be a memóriába, amikor arra szükség volt. A megoldás viszonylag egyszerű: a programok fordításánál a fordító már nem fizikai vagyis abszolút, hanem a program elejéhez képest relatív címeket használ. Ezeket a címeket logikai címeknek nevezzük. Most már csak azt kell tudni, hogy a program hol kezdődik a memóriában. Erre találták ki a bázisregisztert, mely a program báziscímét tartalmazza. A legegyszerűbb megoldásoknál a báziscím és a logikai cím összeadásából megkapjuk a fizikai címet. Szegmensszervezés A logikai címtartományban a program memóriája nem egyetlen egybefüggő területnek képzelik, hanem olyan önmagukban folytonos blokkok halmazának, amely a blokkok tárbeli elhelyezkedése közömbös (pl. program kódja, veremterülete, nagyobb tömbjei). A szegmens-szervezésnél a címtranszformáció ezt a szemléletet tükrözi. a folyamat memóriája különböző méretű blokkokból (szegmens) áll, a blokkok önmagukban folytonos címtartományt foglalnak le. 14.
15 Lapszervezés A különböző méretű blokkok használatánál óhatatlanul fellép a külső tördelődés jelensége. Ezen úgy segíthetünk, ha mindig azonos méretű blokkokat (lap, page) használunk, a folyamatoknak szükséges tárat ilyen egységekben allokáljuk. Az elkerülhetetlen belső tördelődés okozta veszteséget a lap megfelelően kis méretűre választásával csökkenthetjük. A lap mérete gyakorlati szempontok miatt mindig 2 hatványa. Címtranszformáció lapszervezés esetén A címtranszformáció mechanizmusában a legnagyobb különbség, hogy a 2 egész hatványainak megfelelő, azonos méretű lapok használata miatt a fizikai lapcímhez nem kell hozzáadni a lapon belüli címet, hanem ennél kevésbé költséges módon a lapon belüli cím a fizikai cím kisebb helyi értékű bitjeit alkotja. A címtranszformáció a laptérkép tábla szerkezete szerint lehet: - Közvetlen leképezés: A folyamathoz tartozó minden lap fizikai címe egy laptérkép táblában van, a transzformáció mindig innen veszi elő a fizikai lapcímet. Mivel a lapok mérete viszonylag kicsi, így a laptábla meglehetősen nagy lehet, nehéz speciális, elkülönített, gyors hozzáférésű tárban tartani. - Asszociatív leképezés: A címtranszformációt egy speciális szervezésű, gyors asszociatív tár segíti, ahol a folyamat lapjainak logikai és fizikai címei találhatók. Az asszociatív tár egy művelettel kiadja a bemenetére juttatott logikai címhez tartozó fizikai címet. Problémát jelent, hogy az asszociatív tár nagyon drága, ezért mérete általában meglehetősen kicsi. - Kombinált technika: A fizikai lapcím keresése először az asszociatív tárban történik, a címtranszformációs hardver csak akkor fordul a direkt laptáblához, ha a lapról szóló bejegyzés az asszociatív tárban nem található. A programok általában futásuk egyes időszakaiban a teljes címtartományuk csak kis részét használják, így kis méretű asszociatív tárral is magas találati arányt lehet elérni, ha a hardver a laptáblából elővett címeket az asszociatív tárba is beírja 15.
16 Modern tárkezelési elvek Tárcsere (swap) A tárcsere (swap) során az operációs rendszer egy folyamat teljes tárterületét a háttértárra másolja, így szabadítva fel területet egyéb folyamatok számára. Persze az operációs rendszernek pontosan ismernie kell a folyamat aktuális tárigényét. A tárcsere a perifériás átvitel miatt időigényes - egyszerre nagy tárterületeket kell mozgatni -, jóval hosszabb időt vesz igénybe, mint egy környezetváltás. Ezért az ütemezőnek célszerű a tárban lévő futásra kész folyamatok közül - ha van ilyen- választani. A tárterület elmentésénél (ha a hardver támogatja) figyelhetünk arra, hogy egy változatlan, a háttértáron is meglévő tartományt nem kell újra kiírni. Virtuális tárkezelés A virtuális tárkezelés olyan szervezési elvek, operációs rendszer algoritmusok összessége, amely biztosítja, hogy a rendszer folyamatai logikai címtartományának csak egy - a folyamat futásához szükséges- része legyen a központi tárban, de ennek ellenére bármelyik folyamat a virtuális tartománybeli tetszőleges címre hivatkozik. Motiváció: A programok nem használják ki a teljes címtartományukat:, - tartalmaznak ritkán használt kódrészleteket (pl. hibakezelés), - a statikus adatszerkezetek általában nincsenek teljesen kihasználva, - a program futásához egy időben nem kell minden részlet (ld. overlay). Ha nem tartjuk a tárban a teljes programot, akkor, - a program nagyobb lehet, mint a számítógépben ténylegesen meglevő tárterület, - több folyamat fér el a tárban, a multiprogramozás növelhető, - a programok betöltéséhez, a folyamatok háttértárra mentéséhez kevesebb B/K művelet kell, a betöltés gyorsabb lesz. Megvalósítás: Amikor a folyamat egy érvénytelen, a valós memóriában nem levő címre hivatkozik, a hardver megszakítást okoz, amelyet az operációs rendszer kezel, behozva a háttértárról a szükséges blokkot. Lépései: 1. Az operációs rendszer megszakítást kiszolgáló programrészlete kapja meg a vezérlést: - elmenti a folyamat környezetét - elágazik a megfelelő kiszolgáló rutinra - eldönti, hogy a megszakítás nem programhibát jelent-e, 2. Behozza a kívánt blokkot a központi tárba - a blokknak helyet keres a tárban, ha nincs szabad terület, fel kell szabadítania egy megfelelő méretűt - beolvassa a kívánt blokkot Az egy vagy esetleg két perifériás művelet sok időt vesz igénybe, hiszen a rendszernek - meg kell várnia, amíg a perifériás eszköz felszabadul, - ki kell várnia az átvitelt előkészítő műveleteket (pl. fejmozgás), - át kell vinnie egy blokkot a periféria és a tár között. A központi egység jobb kihasználása érdekében az operációs rendszer a megszakított folyamatot várakozó állapotba helyezi és a várakozások alatt folyamatokat indít el. Amikor a kívánt tartomány bekerül a tárba, az igénylő folyamat futásra kész állapotú lesz, amíg az ütemező elindítja. 16.
17 Alapvető kérdések - A betöltendő blokk lap kiválasztása (fetch strategy): - Igény szerinti lapozás (demand paging) - Előretekintő lapozás (anticipatory paging) - A behozott blokk a valós tárban hova kerüljön (placement strategy): ez lapszervezés esetén triviális, azonban szegmensek mozgatása esetén a multipartíciós valós tárkezelésnél megismert stratégiák közül kell választani. - Ha nincs szabad hely a tárban, melyik blokkot cseréljük le (replacement strategy). - Véletlen kiválasztás - Legrégebbi lap (FIFO) - Legrégebben nem használt (Least Recently Used, LRU) lap - Újabb esély (Second Chance) - Legkevésbé használt (Least Frequently Used, LFU - Mostanában nem használt (Not Used Recently) - Hogyan gazdálkodjunk a fizikai tárral, melyik folyamat számára hány lapot biztosítsunk? - Vergődés (Trashing): Ha valamelyik folyamat következő utasításának végrehajtásához nincs(enek) a tárban szükséges lap(ok), akkor az(oka)t be kell tölteni. Akkor beszélünk vergődésről, ha egy folyamat vagy egy egész rendszer több időt tölt a laphibák kiszolgálásával, mint hasznos futással. Oka: - folyamatnál: kevés lapja van a tárban, gyakran hivatkozik a háttértáron lévőre. - rendszernél: túlzottan megnöveljük a multiprogramozás fokát, így a túl sok folyamat egymás elől lopkodja el a lapokat, mindegyik folyamat vergődni kezd. - Lokalitás: A folyamatok statisztikailag megfigyelhető tulajdonsága, hogy egy időintervallumban a címtartományuk csak egy szűk részét használják. A lokalitás lehet: - időbeli: a hivatkozott címet a közeljövőben nagy valószínűséggel újra használni fogják (ciklusok, eljárások, verem, globális változók). - térbeli: a hivatkozások tipikusan egymás melletti címekre történnek (sorosan végrehajtott kódrészletek, tömbkezelés). - Munkahalmaz: A munkahalmaz a folyamatok lokalitásán alapuló fogalom. Egy folyamat munkahalmaza az elmúlt w időintervallumban (munkahalmaz-ablak) a folyamat által hivatkozott lapokból áll. A lokalitás tulajdonsága miatt a folyamatnak valószínűleg erre a laphalmazra lesz a közeljövőben szüksége. Háttértár kezelés A hardver fejlődésével a következő típusú háttértárak jelentek meg: - mágnesszalag, - mágnesdob, - mágneslemez, - optikai adatrögzítés (lemez szervezésű, csak olvasható pl. CD-ROM, egyszer írható (WORM), illetve írható-olvasható lemezek), - egyéb, kísérleti jellegű megoldások: - mágnesbuborék tár, - félvezető tárak (EEPROM, memóriakártya), - holografikus tárolás. A jelenlegi rendszerek legelterjedtebb háttértára a mágneslemezes tár (magnetic disc), ezen tárak szervezési kérdéseivel foglalkozunk a továbbiakban. Háttértárak fizikai szervezése A mágneslemezes egység működésének lényege, hogy a tárcsaszerű, forgó mágneses hordozó felett - oldalanként egy - író-olvasó fej mozog, a fejek mozgatását közös mechanika végzi. Általában a lemezek mindkét oldalát használják, a lemez felett és alatt is található fej. 17.
18 A sáv (track) egy-egy lemezfelület azon területe, amelyet a fej elmozdulás nélkül, a lemez egyetlen körülfordulása alatt elér. Cilindernek (cylinder) nevezik az összes fej alatti sávokat. Egy-egy sávot - általában sávonként azonos méretű, gyakorta az összes sávon azonos számú, azonos szövegtartományt elfoglaló - szektorra (sector) osztják. Az információtárolás a szektoron belül bitsoros. A szektor az információátvitel legkisebb egysége, a lemezvezérlő egyszerre egy teljes szektort olvas vagy ír. A modern lemezeken a szektorok elhelyezkedését a vezérlő a sávra felírt speciális mágneses jelekből (szektorjelölők, angolul mark) ismeri fel. A mágneslemez egységek lemezei lehetnek fixek, de cserélhető lemezek (pl. hajlékony lemez, floppy disc) is használatosak. Háttértárak címzése Szektorok címzése A lemez szektorait az operációs rendszer lineárisan címzi, a lemezillesztő viszont több komponensű - több dimenziós - címet igényel. A kettő között az összefüggés: b = s * ( i + ( t * j) ) + k ahol s a sávon levő szektorok száma, t a cilindereken lévő sávok száma, i a kijelölt cilinder, j a fej (lemez felület) száma, k pedig a sávon belüli szektorok száma (i, j, és k értékei 0-tól indulnak). A b eredmény a szektor lineáris, 0-tól induló sorszáma. Szektorcsoportok kialakítása A legtöbb operációs rendszer a merevlemezt nem szektor szinten kezeli, hisz akkor a legnagyobb kezelhető egység 512 byte lenne. Így rengeteg helyet kellene arra áldozni, hogy beazonosítsuk, hogy az adott fájl melyik szektorban található. Így a DOS és minden hasonló OP rendszer több szektort nevez ki egy alapegységnek melyet cluster-nek nevezünk. Egy cluster állhat egy szektorból (pl. a floppy-k esetében) de 2, 4, 8, 16, 32, vagy esetleg 64 szektorból is (64-nél több szektorból nem állhat egy cluster MS-DOS alatt). Ha egy adatra hivatkozunk, akkor az operációs rendszer alatti legkisebb írható-olvasható egységre a cluster-re hivatkozunk. Háttértárak kezelése Particionálás Merevlemezes egységeken maximálisan négy, akár különböző méretű logikai köteg, partíció kialakítására van lehetőség. Minden egyes partíció külön logikai egységet képez és általában külön logikai meghajtóként is jelenik meg. A rendszer indításkor a ROM-BIOS a partíciós táblát tartalmazó szektort betölti és átadja neki a vezérlést. A rutin megvizsgálja a partíciós táblát, majd az aktív partíció boot rekordjának betöltése után átadja annak a vezérlést, ezáltal az operációs rendszert elindítva. Ha az aktív partíció boot-szektora nem operációs rendszert betöltő 18.
19 kódot tartalmaz, hanem például a jól ismert Non system disk... üzenetet megjelenítő programot, akkor a rendszerindítás csak külső egységről lehetséges. A partíciós táblában elhelyezett speciális program segítségével lehetőség nyílik ún. multi-bootos rendszer létrehozására, melyben az aktív partíciótól függetlenül lehetőség nyílik bármely partíción elhelyezkedő operációs rendszer indítására. Ezen programok a partíciós táblában az aktív jelölést figyelmen kívül hagyják és a felhasználó által megadott (vagy kiválasztott) partíció boot-szektorát töltik be. Míg a partíciós tábla kezelése minden operációs rendszer alatt egységes módon történik, addig a partíción belüli logikai lemezfelépítés és kezelés az operációs rendszertől függ. Lemezműveletek ütemezése A multiprogramozott rendszerekben egyszerre több folyamat verseng a mágneslemezes perifériákért, egy átvitel lezajlása után több újabb kérés várakozhat kiszolgálásra. Az ütemezési algoritmusok a kérések megfelelő sorrendbe állításával az egyes folyamatok rovására próbálják a várakozási idők csökkentésével a rendszer teljesítményét növelni. Az algoritmusok célja a fejmozgás optimalizálása, vagy az elfordulási várakozás csökkentése. Az algoritmusok értékelésének szempontjai: - Átbocsátó képesség: időegység alatt lebonyolított átvitelek száma. - Átlagos válaszidő: egy átvitel kérésétől a végrehajtásáig eltelt átlagidő. - Válaszidő szórása: elsősorban interaktív rendszerekben fontos szempont, hogy a folyamatok előre látható sebességgel fussanak, a futásuk ne ingadozzon nagyon rajtuk kívülálló okok miatt. A fejmozgás optimalizálása Sok algoritmus képzelhető el, az itt következő felsorolás csak néhány ismertebb alaptípust vizsgál. Ezek: - Sorrendi kiszolgálás (First Come First Served, FCFS): Az átviteli kéréseket érkezésük sorrendjében szolgáljuk ki. Az algoritmus nem törődik a fej mozgásával, kicsi az átbocsátó képessége, nagy az átlagos válaszideje, de ennek szórása viszonylag kicsi. - Legrövidebb fejmozgási idő (Shortest Seek Time First, SSTF): Az algoritmus következőként azt a kérést szolgálja ki, amelyik az aktuálishoz legközelebb levő cilinderre hivatkozik - ennek az eléréséhez szükséges a legkisebb fejmozgási idő. Bár teljesítménye az FCFS-nél jobb, de a válaszidők szórása nagy, sőt fennáll a kiéheztetés veszélye: egy távoli cilinderre vonatkozó kérést az újra és újra érkező közeli kérések nem meghatározható ideig késleltethetik. - Pásztázó (SCAN): Az algoritmus a következő kérés kiválasztásánál csak azokat a kéréseket veszi figyelembe, amelyekhez szükséges fejmozgás az aktuális mozgási iránynak megfelelő. A mozgási irány akkor fordul meg, ha az aktuális irányban már nincs több kiszolgálatlan kérés. Az algoritmus teljesítménye jobb, mint az SSTF, a válaszidő szórása is kisebb. A pásztázásból következő sajátossága, hogy a középső cilindereket gyakrabban látogatja, mint a szélsőket. - N lépéses pásztázó (N-SCAN): Egy irányba mozogva csak azokat a kéréseket- közülük is csak N-et - szolgálunk ki, amelyek a pásztázás elején már megvoltak. A pásztázás közben érkező kérésekre csak a következő irányváltás után kerül sor. Az algoritmus válaszidejének szórása kisebb a SCAN-nél is, a válaszidő akkor sem nő meg, ha az aktuális cilinderre sok kérés érkezik. - Egyirányú (körforgó) pásztázó (Circular-SCAN, C-SCAN): A kérések kiszolgálása mindig csak az egyik irányú fejmozgásnál történik, a másik irányban a fej közvetlenül a legtávolabbi kérés cilinderére ugrik. Implementálható a pásztázás közben beérkezett kérése mind menet közbeni, mind a következő pásztázásra halasztott kiszolgálásával. Az algoritmus elkerüli a külső sávoknak a belsőkhöz viszonyított alacsonyabb fokú kiszolgálását. Az elfordulási idő optimalizálása Az egy cilinderen belüli kérések a lemezek aktuális pozíciójának, valamint a szektorok sorrendjének - ami nem mindig növekvő (szektor közbeékelődés, sector interleave) - ismeretében kiszolgálás előtt sorba állíthatók. 19.
20 Egyéb szervezési elvek a teljesítmény növelésére - Lemezterület tömörítése (disk compaction): Az egymáshoz tartozó blokkokat lefoglaláskor a lemezen fizikailag is egymás mellé igyekszünk elhelyezni, illetve ezt az állapotot egy időnként futtatott rendezőprogrammal elérni. A lemezműveleteknél is megfigyelhető lokalitás következményeként egy folyamat várhatóan az egymáshoz közeli - egymást követő - blokkokat fogja olvasni, így a fejmozgás minimális lesz. A tömörítés nem mindig vezet teljesítményjavuláshoz, hiszen egy multiprogramozott rendszerben egy időben sok folyamat használja a lemezt. - Lemezadatok elhelyezése: A gyakran szükséges adatokat SCAN típusú üzemeltetésnél érdemes a lemez középső sávjain elhelyezni. - Redundáns tárolás: A gyakran szükséges adatokat a lemezen több példányban, különböző sávokon helyezzük el, így minden fejállásnál kiválaszthatunk egy viszonylag közel lévő cilindert, ahol a kívánt adat megtalálható. A módszer elsősorban nem - vagy csak nagyon ritkán - változó adatoknál használható, hiszen a módosítások minden másolatba bevezetése hosszú időt jelentene és módosítás közben az adatok konzisztenciájának biztosítása kölcsönös kizárási problémák kezelését jelenti. - Több blokk egyidejű átvitele: Mivel a kérések kiszolgálásának jelentős része a fejmozgásból eredő várakozással telik, ha már a megfelelő pozíción vagyunk, igyekezzünk minél több blokkot egyszerre átvinni és azokat a memóriában tárolni. - Blokkok átmeneti tárolása: A gyakran vagy a közeljövőben várhatóan szükséges blokkokat igyekezzünk a központ-, esetleg a perifériaillesztőben levő tárban tartani (disk cache). Az átmeneti tárolás közben foglalkozni kell a megváltozott tartalmú szektorokkal: - a tárban változással egyidejűleg a lemezre is felírjuk (write through cache), vagy - csak akkor írjuk ki, ha a tárra szükség lesz. Ez utóbbi a nagyobb teljesítményű módszer, hiszen egy gyakran változó szektor kiírás előtt újra megváltozhat, viszont kevésbé biztonságos, hiszen a rendszer meghibásodása esetén a szükséges módosítások nem kerülnek a lemezre. - Adattömörítési (data compression) eljárások használata: A lemezen az információt tömörített (compressed) formában tároljuk, visszaállítása - a programozó számára láthatatlanul - csak a beolvasásakor történik meg. Ily módon csökkenthető a szükséges perifériás átvitelek száma. A tömörítést és visszaállítást a perifériakezelő program vagy célhardver végezheti. Az adattárolás megbízhatósága - Adatok mentése (backup): A lemez teljes vagy az előző mentés óta megváltozott tartalmát (incremental backup) időnként más - általában mágnesszalagos, optikai lemezes - háttértárra kell kimásolni, ahonnan a lemez sérülése, a tárolt adatok véletlen törlése esetén az egész illetve a szükséges részek visszaállíthatók. - Átmeneti tár és a háttértár tartalmának szinkronizálása: Az átmeneti tárban levő "fontosabb" változásokat, esetleg időnként az összes változást a lemezre kell írni. - Lemezegységek többszörözése (RAID Redundant Array of Inexpensive Disks vagy Redundant Array of Independent Disks): napjaink egyik fontos technológiája. A RAID technológia alapja az adatok elosztása vagy replikálása több fizikailag független merevlemezen, egy logikai lemezt hozva létre. Minden RAID szint alapjában véve vagy az adatbiztonság növelését vagy az adatátviteli sebesség növelését szolgálja. RAID szintek: - A RAID 0 az egyes lemezek egyszerű összefűzését jelenti, viszont semmilyen redundanciát nem ad, így nem biztosít hibatűrést, azaz egyetlen meghajtó meghibásodása az egész tömb hibáját okozza. Mind az írási, mind az olvasási műveletek párhuzamosítva történnek, ideális esetben a sebesség az egyes lemezek sebességének összege lesz, így a módszer a RAID szintek közül a legjobb teljesítményt nyújtja (a többi módszernél a redundancia kezelése lassítja a rendszert). - A RAID 1 eljárás alapja az adatok tükrözése (disk mirroring), azaz az információk egyidejű tárolása a tömb minden elemén. A kapott logikai lemez a tömb legkisebb elemével lesz egyenlő méretű. Az adatok olvasása párhuzamosan történik a diszkekről, felgyorsítván az olvasás sebességét; az írás normál sebességgel, párhuzamosan történik a meghajtókon. Az eljárás igen jó hibavédelmet biztosít, bármely meghajtó meghibásodása esetén folytatódhat a működés. 20.
21 - A RAID 2 használja a csíkokra bontás módszerét, emellett egyes meghajtókat hibajavító kód (ECC: Error Correcting Code) tárolására tartanak fenn. A hibajavító kód lényege, hogy az adatbitekből valamilyen matematikai művelet segítségével redundáns biteket képeznek. A használt eljárástól függően a kapott kód akár több bithiba észlelésére, illetve javítására (ez utóbbi persze több redundanciát igényel) alkalmas. A védelem ára a megnövekedett adatmennyiség. Ezen meghajtók egy-egy csíkjában a különböző lemezeken azonos pozícióban elhelyezkedő csíkokból képzett hibajavító kódot tárolnak. A módszer esetleges lemezhiba esetén képes annak detektálására, illetve kijavítására. Manapság már nem használják. - A RAID 3 felépítése hasonlít a RAID 2-re, viszont nem a teljes hibajavító kód, hanem csak egy lemeznyi paritásinformáció tárolódik. Egy adott paritáscsík a különböző lemezeken azonos pozícióban elhelyezkedő csíkokból XOR művelet segítségével kapható meg. A rendszerben egy meghajtó kiesése nem okoz problémát, mivel a rajta lévő információ a többi meghajtó (a paritást tároló meghajtót is beleértve) XOR-aként megkapható. - A RAID 4 felépítése a RAID 3-mal megegyezik. Az egyetlen különbség, hogy itt nagyméretű csíkokat definiálnak, így egy rekord egy meghajtón helyezkedik el, lehetővé téve egyszerre több (különböző meghajtókon elhelyezkedő) rekord párhuzamos írását, illetve olvasását (multi-user mode). - A RAID 5 a paritás információt nem egy kitüntetett meghajtón, hanem körbeforgó paritás (rotating parity) használatával, egyenletesen az összes meghajtón elosztva tárolja, kiküszöbölvén a paritásmeghajtó jelentette szűk keresztmetszetet. Minimális meghajtószám: 3. Mind az írási, mind az olvasási műveletek párhuzamosan végezhetőek. Egy meghajtó meghibásodása esetén az adatok sértetlenül visszaolvashatóak, a hibás meghajtó adatait a vezérlő a többi meghajtóról ki tudja számolni. A csíkméret változtatható; kis méretű csíkok esetén a RAID 3-hoz hasonló működést, míg nagy méretű csíkok alkalmazása esetén a RAID 4-hez hasonló működést kapunk. A hibás meghajtót ajánlott azonnal cserélni, mert két meghajtó meghibásodása esetén az adatok elvesznek! - A RAID 6 tekinthető a RAID 5 kibővítésének. Itt nemcsak soronként, hanem oszloponként is kiszámítják a paritást. A módszer segítségével kétszeres meghajtómeghibásodás is kiküszöbölhetővé válik. A paritáscsíkokat itt is az egyes meghajtók között, egyenletesen elosztva tárolják, de ezek természetesen kétszer annyi helyet foglalnak el, mint a RAID 5 esetében. - Hibajavítás: A háttértárolásban (pl. fájlok tárolásakor), fontos lehet a hibás adatok felismerése és esetleges javítása. Ezekre több különböző módszert dolgoztak ki az idők folyamán (ECC, paritásvizsgálat, stb.), a ma legismertebb hibafelismerő eljárás a CRC (Cyclic redundancy check ciklikus redundancia ellenőrzés). Lényege, hogy az ellenőrzés az adatblokkot egy polinom együtthatóinak tekinti, amelyet eloszt egy előre meghatározott, állandó polinommal. Az osztás eredményének együtthatói alkotják a redundáns adatbiteket, a CRC-t. A vett adat ellenőrzéséhez elegendő megszorozni a CRC-t az előre meghatározott polinommal. Ha a szorzás eredménye a hasznos adat, akkor az adatok hiba nélkül olvashatóak. Másik lehetséges ellenőrzési mód a CRC újbóli kiszámítása a hasznos bitekből, és a vett CRC-vel való összehasonlítása. A szabad blokkok nyilvántartása - Bittérkép - Láncolt lista - Szabad helyek csoportjainak listája - Egybefüggő szabad területek nyilvántartása A lemez blokkjainak allokációja - Folytonos terület allokációja - Láncolt tárolás - Indexelt tárolás Állományelhelyezkedési táblázatok - FAT (FAT12/16/32) - i-node (UFS) Lemezterület allokáció és állománykezelés 21.
22 - MFT (NTFS) 22.
23 Állományhozzáférési módok - Soros (sequential): Az állomány fogalma az operációs rendszerekben a mágnesszalag analógiájára alakult ki, a szalagon tárolt információt csak a tárolt byte-ok sorrendjében lehetett olvasni vagy írni. Sok információfeldolgozási feladathoz a soros hozzáférés elegendő. A soros hozzáférés közvetlen elérési módú háttértáron történő implementálásához az operációs rendszer átvitel közben tárolja, kezeli az állományon belüli pozíciót. - Közvetlen (direct): A tárolt információ-elemek (byte, mező, rekord) bármelyikét közvetlenül el lehet érni. Az átviteli eljárásoknak paraméterként meg kell adni az információ-elem állományon belüli címét. Mivel az indextábla rendezett, a kívánt kulcshoz tartozó rekord címét gyorsan (pl. bináris kereséssel) megtalálhatjuk, a cím alapján a rekord közvetlenül elérhető. Az állományban tárolt információ módosítása során az indextáblát is módosítani kell, hogy a kereséshez szükséges rendezettséget mindig megtartsuk, ez nagy állományok esetén sok időt vehet igénybe. - Partícionált: Az állományt soros részállományok alkotják, az állomány tartalmaz egy nyilvántartást arról, hogy az egyes partíciók az állományon belül hol kezdődnek. Könyvtárkezelés A könyvtárak hierarchiája Az összes állomány egy könyvtárban tárolása az állományok nagy száma miatt nem célszerű. A könyvtárakat az operációs rendszer hierarchiába szervezi. Kétszintű könyvtárszerkezet A kétszintű könyvtárszerkezetben az egyes felhasználók állományai kerülnek egy könyvtárba. Problémát jelent, hogy a felhasználók - más felhasználók állományait is használni akarják, ezeket az állományokat a felhasználó és az állomány neve együtt azonosítja, - az operációs rendszerhez tartozó állományokat, például rendszerprogramokat akarnak használni. A rendszerprogramokat egy speciális "felhasználói" könyvtárban helyezik el. Egy program indításánál az operációs rendszer parancsértelmezője a felhasználói könyvtáron felül a rendszerkönyvtárban is keres. Faszerkezet Az egyes könyvtárak nem csak állományokat, hanem más könyvtárakat is tartalmaznak. Körmentes irányított gráf Az előbbi faszerkezet is irányított gráf volt, hiszen mindig egy könyvtártól lehetett eljutni annak tartalmához, az állományokhoz vagy más könyvtárakhoz. A körmentes irányított gráfban egy állományra - vagy könyvtárra - a hierarchia több pontjáról, több könyvtárból is hivatkozhatunk, de a hivatkozások irányítását követve a gráfban nincsenek körök. Egyes állományokat, könyvtárakat a gyökértől több útvonalon lehet elérni. Az állományokra való hivatkozás (link) lehet: - Fizikai (hard): az állományt leíró információkat megismétlik, illetve pl. UNIX-nál ugyanarra a kötet nyilvántartás bejegyzésre hivatkoznak. - Szimbolikus (szoft): a nyilvántartás bejegyzésben az állományt elérő, létező útvonalat tárolunk. 23.
Operációs rendszerek II. Folyamatok ütemezése
Folyamatok ütemezése Folyamatok modellezése az operációs rendszerekben Folyamatok állapotai alap állapotok futásra kész fut és várakozik felfüggesztett állapotok, jelentőségük Állapotátmeneti diagram Állapotátmenetek
Tartalom. Operációs rendszerek. 5.1. Bevezetés. 5.2. CPU ütemezés. Középtávú ütemezés. Hosszútávú ütemezés
Tartalom Operációs rendszerek Bevezetés CPU ütemezés Ütemezési algoritmusok alapjai Ütemezési algoritmusok 5. Ütemezés Simon Gyula Felhasznált irodalom: Kóczy-Kondorosi (szerk.): Operációs rendszerek mérnöki
Ütemezés (Scheduling),
1 Ütemezés (Scheduling), Alapfogalmak Ütemezési feltételek (kritériumok) Ütemezési algoritmusok Több-processzoros eset Algoritmus kiértékelése 2 Alapfogalmak A multiprogramozás célja: a CPU foglaltság
Ütemezés (Scheduling),
1 Ütemezés (Scheduling), Alapfogalmak Ütemezési feltételek (kritériumok) Ütemezési algoritmusok Több-processzoros eset Algoritmus kiértékelése 2 Alapfogalmak A multiprogramozás célja: a CPU foglaltság
Operációs rendszerek. Folyamatok ütemezése
Operációs rendszerek Folyamatok ütemezése Alapok Az ütemezés, az események sorrendjének a meghatározása. Az ütemezés használata OPR-ekben: az azonos erőforrásra igényt tartó folyamatok közül történő választás,
Operációs rendszerek 1. 8. előadás Multiprogramozott operációs rendszerek
Operációs rendszerek 1. 8. előadás Multiprogramozott operációs rendszerek Soós Sándor Nyugat-magyarországi Egyetem Faipari Mérnöki Kar Informatikai és Gazdasági Intézet E-mail: soossandor@inf.nyme.hu 2011.
Előadás_#03. Előadás_03-1 -
Előadás_#03. 1. Ütemezés [OR_05_Ütemezés_ok.ppt az 1-30. diáig / Előadás_#03 (dinamikusan)] Tekintsük át, hogy eddig minek a kapcsán merült fel ütemezés. Tulajdonképpen minden olyan lépés, ami állapot
Nem biztos, hogy mindenhol helytáll, helyenként hiányos, de az eddigi kérdések össze vannak gyűjtve őszi félév első zhval bezárólag.
Nem biztos, hogy mindenhol helytáll, helyenként hiányos, de az eddigi kérdések össze vannak gyűjtve. 2013 őszi félév első zhval bezárólag. 1. Mi az operációs rendszer kernel módja és a felhasználói módja
2. Folyamatok. Operációs rendszerek. Folyamatok. Bevezetés. 2.1. Folyamatkezelés multiprogramozott rendszerekben. Folyamatok modellezése
Operációs rendszerek 2. Folyamatok Simon Gyula 2. Folyamatok Bevezetés Folyamatkezelés multiprogramozott rendszerben Környezet váltás Folyamatleírók, I/O leírók Szálak Megszakítások Felhasznált irodalom:
Operációs rendszerek II. Tárkezelés
Tárkezelés Témák I. Memória (központi tár) kezelés 1. Programok fizikai tárigényének csökkentése 2. Memória hézagmentes kitöltése. 3. Háttértár használata memória kiváltására. II. Állományrendszerek Mágneslemezes
Processzusok (Processes), Szálak (Threads), Kommunikáció (IPC, Inter-Process Communication)
1 Processzusok (Processes), Szálak (Threads), Kommunikáció (IPC, Inter-Process Communication) 1. A folyamat (processzus, process) fogalma 2. Folyamatok: műveletek, állapotok, hierarchia 3. Szálak (threads)
Processzusok (Processes), Szálak (Threads), Kommunikáció (IPC, Inter-Process Communication)
1 Processzusok (Processes), Szálak (Threads), Kommunikáció (IPC, Inter-Process Communication) 1. A folyamat (processzus, process) fogalma 2. Folyamatok: műveletek, állapotok, hierarchia 3. Szálak (threads)
Operációs rendszerek. Bemutatkozás
Bevezetés az operációs rendszerek világába dr. Benyó Balázs benyo@sze.hu Bemutatkozás www.sze.hu/~benyo 1 Számítógép HW-SW felépítése felhasználó felhasználó felhasználó Operációs rendszer Operációs rendszer
12. Másodlagos tár szerkezet
12. Másodlagos tár szerkezet Diszk felépítés Diszk ütemezés Diszk kezelés Swap (csere) terület kezelés Diszk megbízhatóság Stabil-tár implementáció 71 Diszk felépítés Logikailag a diszk blokkokból képezett
Fábián Zoltán Hálózatok elmélet
Fábián Zoltán Hálózatok elmélet Fizikai memória Félvezetőkből előállított memóriamodulok RAM - (Random Access Memory) -R/W írható, olvasható, pldram, SDRAM, A dinamikusan frissítendők : Nagyon rövid időnként
8. A háttértár kezelése. Operációs rendszerek. Miért van szükség háttértárra? 8.1. Háttértárak típusai. Mágneslemez. Mágnesszalag
Operációs rendszerek 8. A háttértár kezelése Simon Gyula 8. A háttértár kezelése Bevezetés Háttértárak típusai A lemezegység fizikai szervezése Lemezműveletek ütemezése Fejmozgás optimalizálása Elfordulás
Operációs rendszerek
Operációs rendszerek 2. EA Regiszter: A regiszterek a számítógépek központi feldolgozó egységeinek (CPU-inak), illetve mikroprocesszorainak gyorsan írható-olvasható, ideiglenes tartalmú, és általában egyszerre
Operációs rendszerek III.
A WINDOWS NT memóriakezelése Az NT memóriakezelése Memóriakezelő feladatai: Logikai-fizikai címtranszformáció: A folyamatok virtuális címterének címeit megfelelteti fizikai címeknek. A virtuális memóriakezelés
A számítógép egységei
A számítógép egységei A számítógépes rendszer két alapvető részből áll: Hardver (a fizikai eszközök összessége) Szoftver (a fizikai eszközöket működtető programok összessége) 1.) Hardver a) Alaplap: Kommunikációt
OPERÁCIÓS RENDSZEREK. Elmélet
1. OPERÁCIÓS RENDSZEREK Elmélet BEVEZETÉS 2 Az operációs rendszer fogalma Az operációs rendszerek feladatai Csoportosítás BEVEZETÉS 1. A tantárgy tananyag tartalma 2. Operációs rendszerek régen és most
9. Virtuális memória kezelés
9. Virtuális memória kezelés Háttér Igény szerinti (kényszer) lapozás A kényszer lapozás teljesítménye Laphelyettesítési algoritmusok Frame-k allokálása Vergôdés (csapkodás, thrashing) Kényszer szegmentálás
IT - Alapismeretek. Feladatgyűjtemény
IT - Alapismeretek Feladatgyűjtemény Feladatok PowerPoint 2000 1. FELADAT TÖRTÉNETI ÁTTEKINTÉS Pótolja a hiányzó neveket, kifejezéseket! Az első négyműveletes számológépet... készítette. A tárolt program
Operációs rendszerek Folyamatok 1.1
Operációs rendszerek p. Operációs rendszerek Folyamatok 1.1 Pere László (pipas@linux.pte.hu) PÉCSI TUDOMÁNYEGYETEM TERMÉSZETTUDOMÁNYI KAR INFORMATIKA ÉS ÁLTALÁNOS TECHNIKA TANSZÉK A rendszermag Rendszermag
Az operációs rendszer szerkezete, szolgáltatásai
Az operációs rendszer szerkezete, szolgáltatásai Felhasználói programok Rendszerhívások Válaszok Kernel Eszközkezelők Megszakításvezérlés Perifériák Az operációs rendszer szerkezete, szolgáltatásai Felhasználói
Uniprogramozás. várakozás. várakozás. Program A. Idő. A programnak várakoznia kell az I/Outasítások végrehajtására mielőtt továbbfuthatna
Processzusok 1 Uniprogramozás Program A futás várakozás futás várakozás Idő A programnak várakoznia kell az I/Outasítások végrehajtására mielőtt továbbfuthatna 2 Multiprogramozás Program A futás vár futás
Feladatok (task) kezelése multiprogramozott operációs rendszerekben
Operációs rendszerek (vimia219) Feladatok (task) kezelése multiprogramozott operációs rendszerekben dr. Kovácsházy Tamás 3. anyagrész 1. Ütemezéssel kapcsolatos példa 2. Összetett prioritásos és többprocesszoros
Az interrupt Benesóczky Zoltán 2004
Az interrupt Benesóczky Zoltán 2004 1 Az interrupt (program megszakítás) órajel generátor cím busz környezet RESET áramkör CPU ROM RAM PERIF. adat busz vezérlõ busz A periféria kezelés során információt
(kernel3d vizualizáció: kernel245_graph.mpg)
(kernel3d vizualizáció: kernel245_graph.mpg) http://www.pabr.org/kernel3d/kernel3d.html http://blog.mit.bme.hu/meszaros/node/163 1 (ml4 unix mérés boot demo) 2 UNIX: folyamatok kezelése kiegészítő fóliák
Operációs rendszerek. Az Executive és a kernel Policy és mechanizmusok szeparálása Executive: policy - objektum kezelés Kernel: mechanizmusok:
Operációs rendszerek MS Windows NT (2000) folyamatok Az Executive és a kernel Policy és mechanizmusok szeparálása Executive: policy - objektum kezelés Kernel: mechanizmusok: szálak ütemezése végrehajtásra
Operációs rendszerek. 3. előadás Ütemezés
Operációs rendszerek 3. előadás Ütemezés 1 Szemaforok Speciális változók, melyeket csak a két, hozzájuk tartozó oszthatatlan művelettel lehet kezelni Down: while s < 1 do üres_utasítás; s := s - 1; Up:
Operációs rendszerek. Folyamatok kezelése a UNIX-ban
Operációs rendszerek Folyamatok kezelése a UNIX-ban Folyamatok a UNIX-ban A folyamat: multiprogramozott operációs rendszer alapfogalma - absztrakt fogalom. A gyakorlati kép: egy program végrehajtása és
Architektúra, megszakítási rendszerek
Architektúra, megszakítási ek Mirıl lesz szó? Megszakítás fogalma Megszakítás folyamata Többszintű megszakítási ek Koschek Vilmos Példa: Intel Pentium vkoschek@vonalkodhu Koschek Vilmos Fogalom A számítógép
IT - Alapismeretek. Megoldások
IT - Alapismeretek Megoldások 1. Az első négyműveletes számológépet Leibniz és Schickard készítette. A tárolt program elve Neumann János nevéhez fűződik. Az első generációs számítógépek működése a/az
Dr. Illés Zoltán zoltan.illes@elte.hu
Dr. Illés Zoltán zoltan.illes@elte.hu Operációs rendszerek kialakulása Op. Rendszer fogalmak, struktúrák Fájlok, könyvtárak, fájlrendszerek Folyamatok Folyamatok kommunikációja Kritikus szekciók, szemaforok.
Operációs Rendszerek II.
Operációs Rendszerek II. Második előadás Első verzió: 2004/2005. I. szemeszter Ez a verzió: 2009/2010. II. szemeszter Visszatekintés Visszatekintés Operációs rendszer a számítógép hardver elemei és az
Számítógép felépítése
Alaplap, processzor Számítógép felépítése Az alaplap A számítógép teljesítményét alapvetően a CPU és belső busz sebessége (a belső kommunikáció sebessége), a memória mérete és típusa, a merevlemez sebessége
Ismerkedjünk tovább a számítógéppel. Alaplap és a processzeor
Ismerkedjünk tovább a számítógéppel Alaplap és a processzeor Neumann-elvű számítógépek főbb egységei A részek feladatai: Központi egység: Feladata a számítógép vezérlése, és a számítások elvégzése. Operatív
Operációs rendszerek. Holtpont
Operációs rendszerek Holtpont Holtpont (deadlock) fogalma A folyamatok egy csoportja olyan eseményre vár, amelyet egy másik, ugyancsak várakozó folyamat tud előidézni. Esemény: tipikusan erőforrás felszabadulása.
Operációs rendszerek. Az NT folyamatok kezelése
Operációs rendszerek Az NT folyamatok kezelése Folyamatok logikai felépítése A folyamat modell: egy adott program kódját végrehajtó szál(ak)ból és, a szál(ak) által lefoglalt erőforrásokból állnak. Folyamatok
Operációs rendszerek előadás Multiprogramozott operációs rendszerek. Soós Sándor ősz
Operációs rendszerek 1. 8. előadás Multiprogramozott operációs rendszerek Soós Sándor 2011. ősz 1 Tartalomjegyzék. Tartalomjegyzék 1. Multiprogramozott operációs rendszerek 1 1.1. Multiprogramozás..........................
Előadás_#02. Előadás_02-1 -
Előadás_#02. 1. Folyamatok [OR_02_Folyamatok_zs.ppt az 1-12. diáig / Előadás_#02 (dinamikusan)] A multiprogramozott rendszerek előtt a tiszta szekvenciális működés volt a jellemző. Egy program (itt szándékosan
elektronikus adattárolást memóriacím
MEMÓRIA Feladata A memória elektronikus adattárolást valósít meg. A számítógép csak olyan műveletek elvégzésére és csak olyan adatok feldolgozására képes, melyek a memóriájában vannak. Az információ tárolása
Máté: Számítógép architektúrák 2010.12.01.
Máté: Számítógép architektúrák... A feltételes ugró utasítások eldugaszolják a csővezetéket Feltételes végrehajtás (5.5 5. ábra): Feltételes végrehajtás Predikáció ió C pr. rész Általános assembly Feltételes
Informatika érettségi vizsga
Informatika 11/L/BJ Informatika érettségi vizsga ÍRÁSBELI GYAKORLATI VIZSGA (180 PERC - 120 PONT) SZÓBELI SZÓBELI VIZSGA (30 PERC FELKÉSZÜLÉS 10 PERC FELELET - 30 PONT) Szövegszerkesztés (40 pont) Prezentáció-készítés
6. óra Mi van a számítógépházban? A számítógép: elektronikus berendezés. Tárolja az adatokat, feldolgozza és az adatok ki és bevitelére is képes.
6. óra Mi van a számítógépházban? A számítógép: elektronikus berendezés. Tárolja az adatokat, feldolgozza és az adatok ki és bevitelére is képes. Neumann elv: Külön vezérlő és végrehajtó egység van Kettes
Operációs rendszerek
Operációs rendszerek Hardver, szoftver, operációs rendszer fogalma A hardver a számítógép mőködését lehetıvé tevı elektromos, elektromágneses egységek összessége. A számítástechnikában hardvernek hívják
Számítógép architektúrák
Számítógép architektúrák Számítógépek felépítése Digitális adatábrázolás Digitális logikai szint Mikroarchitektúra szint Gépi utasítás szint Operációs rendszer szint Assembly nyelvi szint Probléma orientált
2. Számítógépek működési elve. Bevezetés az informatikába. Vezérlés elve. Külső programvezérlés... Memória. Belső programvezérlés
. Számítógépek működési elve Bevezetés az informatikába. előadás Dudásné Nagy Marianna Az általánosan használt számítógépek a belső programvezérlés elvén működnek Külső programvezérlés... Vezérlés elve
Alkalmazások típusai Szoftverismeretek
Alkalmazások típusai Szoftverismeretek Prezentáció tartalma Szoftverek csoportjai Operációs rendszerek Partíciók, fájlrendszerek Tömörítés Vírusok Adatvédelem 2 A szoftver fogalma A szoftver teszi használhatóvá
Operációs Rendszerek II.
Operációs Rendszerek II. Harmadik előadás Első verzió: 2004/2005. I. szemeszter Ez a verzió: 2009/2010. II. szemeszter Visszatekintés: folyamatok Programok és erőforrások dinamikus összerendelése a program
Folyamatok. 6. előadás
Folyamatok 6. előadás Folyamatok Folyamat kezelése, ütemezése folyamattábla új folyamat létrehozása átkpcsolás folyamatok elválasztása egymástól átlátszó Szál szálkezelő rendszer szálak védése egymástól
OKJ: 166/2.1/1168-06. Hálózati operációs rendszerek elmélete
OKJ: 166/2.1/1168-06 Hálózati operációs rendszerek elmélete Összeállította: Miklay György 2008 Barhács Oktatóközpont 1. fejezet 1. fejezet Az operációs rendszerek alapfogalmai Az operációs rendszerek
Operációs rendszerek. Az NT memóriakezelése
Operációs rendszerek MS Windows NT (2000) memóriakezelés Az NT memóriakezelése 32-bites virtuális memóriakezelés: 4 GB-os címtartomány, alapesetben: a fels! 2 GB az alkalmazásoké, az alsó 2 GB az OPR-é.
Operációsrendszerek. 2. elıadás. Standard ismeretek II.
Operációsrendszerek 2. elıadás Standard ismeretek II. Bevezetés A rétegmodell Kernelfunkciók A megszakítási rendszer Folyamatvezérlés Memóriakezelés Erıforráskezelés Eszközvezérlık Programok végrehajtása
Bevezetés a számítástechnikába
Bevezetés a számítástechnikába Megszakítások Fodor Attila Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2010. november 9. Bevezetés Megszakítások
Léteznek nagyon jó integrált szoftver termékek a feladatra. Ezek többnyire drágák, és az üzemeltetésük sem túl egyszerű.
12. Felügyeleti eszközök Néhány számítógép és szerver felügyeletét viszonylag egyszerű ellátni. Ha sok munkaállomásunk (esetleg több ezer), vagy több szerverünk van, akkor a felügyeleti eszközök nélkül
7. Virtuális tárkezelés. Operációs rendszerek. Bevezetés. Motiváció 2. Motiváció 1. 7.1. A virtuális tárkezelés általános elvei
7. Virtuális tárkezelés Operációs rendszerek 7. Virtuális tárkezelés Simon Gyula Bevezetés A virtuális tárkezelés általános elvei Lapcsere stratégiák Folyamatok lapigénye, lapok allokációja Egyéb tervezési
... S n. A párhuzamos programszerkezet két vagy több folyamatot tartalmaz, melyek egymással közös változó segítségével kommunikálnak.
Párhuzamos programok Legyen S parbegin S 1... S n parend; program. A párhuzamos programszerkezet két vagy több folyamatot tartalmaz, melyek egymással közös változó segítségével kommunikálnak. Folyamat
Feladatok (task) kezelése multiprogramozott operációs rendszerekben
Operációs rendszerek alapjai (vimia024) Feladatok (task) kezelése multiprogramozott operációs rendszerekben dr. Kovácsházy Tamás 2. anyagrész, Ütemezés Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika
Utolsó módosítás:
Utolsó módosítás: 2011. 09. 08. 1 A tantárggyal kapcsolatos adminisztratív kérdésekkel Micskei Zoltánt keressétek. 2 3 4 5 6 7 8 9 10 11 12 13 14 Erősen buzzword-fertőzött terület, manapság mindent szeretnek
Utolsó módosítás:
Utolsó módosítás:2011. 09. 29. 1 2 4 5 MMU!= fizikai memóriaillesztő áramkör. Az utóbbinak a feladata a memória modulok elektromos alacsonyszintű vezérlése, ez sokáig a CPU-n kívül a chipset északi hídban
Programozás alapjai. 10. előadás
10. előadás Wagner György Általános Informatikai Tanszék Pointerek, dinamikus memóriakezelés A PC-s Pascal (is) az IBM PC memóriáját 4 fő részre osztja: kódszegmens adatszegmens stackszegmens heap Alapja:
8. Memória management
8. Memória management Háttér Logikai és fizikai címtér Swapping Folytonos allokálás Lapozás Szegmentáció Szegmentáció lapozással 101 Háttér Az számítógép (processzor) kapacitásának jobb kihasználása megköveteli,
Blokkos eszközök. RAM lemezek
Input és Output 1 RAM lemezek Blokkos eszközök Memória egy részének lefoglalása Lemezhez hasonló használat Nem állandó jellegű tárolás, de rendkívül gyors elérés Hasznos telepítésnél 2 Blokkos eszközök
Nyíregyházi Egyetem Matematika és Informatika Intézete. Fájl rendszer
1 Fájl rendszer Terminológia Fájl és könyvtár (mappa) koncepció Elérési módok Fájlattribútumok Fájlműveletek ----------------------------------------- Könyvtár szerkezet -----------------------------------------
Operációs rendszerek (I 1204)
egyetemi docens Debreceni Egyetem 1999/2000 2. félév Mi az operációs rendszer? Korai rendszerek. Bevezetés A kötegelt feldolgozás egyszerû rendszerei. (Simple Batch) A kötegelt feldolgozás multiprogramozott
Operációs rendszerek MINB240
Szemaforok Operációs rendszerek MINB24 3. előadás Ütemezés Speciális változók, melyeket csak a két, hozzájuk tartozó oszthatatlan művelettel lehet kezelni Down: while s < 1 do üres_utasítás; s := s - 1;
Operációs rendszerek
Operációs rendszerek? Szükségünk van operációs rendszerre? NEM, mert mi az alkalmazással szeretnénk játszani dolgozni, azért használjuk a számítógépet. IGEN, mert nélküle a számitógépünk csak egy halom
C# Szálkezelés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Szálkezelés 2013 1 / 21
C# Szálkezelés Tóth Zsolt Miskolci Egyetem 2013 Tóth Zsolt (Miskolci Egyetem) C# Szálkezelés 2013 1 / 21 Tartalomjegyzék 1 Bevezetés 2 Szálkezelés 3 Konkurens Programozás Tóth Zsolt (Miskolci Egyetem)
CPU regiszterei. Átmeneti tár / Gyorsító tár / Cache memória (Oprendszer vezérelt) Központi memória
Előadás_#07. 1. Tárkezelés [OR_12_Tárkezelés-File_rendszer_ok.ppt az 1-29. diáig / nem minden diát érintve] A tárolóeszközök több szempont szerint is csoportosíthatóak (sebesség, kapacitás, mozgó alkatrészek
I. Mérés SZÉCHENYI ISTVÁN EGYETEM GYŐR TÁVKÖZLÉSI TANSZÉK
Mérési Utasítás Adat replikáció, RAID, RAID szintek A RAID-ben eredetileg 5 szintet definiáltak (RAID 1-től RAID 5-ig). Az egyes szintek nem a fejlődési, illetve minőségi sorrendet tükrözik, hanem egyszerűen
Operációs rendszerek feladatai
Számolási példák és algoritmusok Operációs rendszerek (VIMIA) Készítették: Darvas Dániel, Horányi Gergő, Jámbor Attila, Micskei Zoltán, Szabó Tamás Utolsó módosítás: 04. május. Verzió:..8 Budapesti Műszaki
Előadás_# Az első ZH megírása
Előadás_#05. 1. Az első ZH megírása 2. Szinkronizáció [OR_02_Folyamatok_zs.ppt az 57-114. diáig / nem minden diát érintve] Azok a folyamatok, melyek egymástól nem függetlenek, azaz valamilyen függőség
Adatbázis rendszerek. dr. Siki Zoltán
Adatbázis rendszerek I. dr. Siki Zoltán Adatbázis fogalma adatok valamely célszerűen rendezett, szisztéma szerinti tárolása Az informatika elterjedése előtt is számos adatbázis létezett pl. Vállalati személyzeti
Matematikai és Informatikai Intézet. 4. Folyamatok
4. Folyamatok A folyamat (processzus) fogalma Folyamat ütemezés (scheduling) Folyamatokon végzett "mûveletek" Folyamatok együttmûködése, kooperációja Szálak (thread) Folyamatok közötti kommunikáció 49
Adatszerkezetek Adatszerkezet fogalma. Az értékhalmaz struktúrája
Adatszerkezetek Összetett adattípus Meghatározói: A felvehető értékek halmaza Az értékhalmaz struktúrája Az ábrázolás módja Műveletei Adatszerkezet fogalma Direkt szorzat Minden eleme a T i halmazokból
Operációs rendszerek MINB240
Mutex Operációs rendszerek MINB24 3. előadás Ütemezés Bináris szemafor Szemaforváltozója csak két értéket vehet fel ( / 1; foglalt / szabad) Kölcsönös kizárásra 1 kezdőértékű mutex A kritikus szakaszba
Informatikai rendszerek alapjai (Informatika I.)
Informatikai rendszerek alapjai (Informatika I.) NGB_SZ003_1 Lovas Szilárd, Krankovits Melinda SZE MTK MSZT kmelinda@sze.hu B607 szoba 4. Előadás Operációs rendszer fogalma, funkciói Operációs rendszerek
Autóipari beágyazott rendszerek. Komponens és rendszer integráció
Autóipari beágyazott rendszerek és rendszer integráció 1 Magas szintű fejlesztési folyamat SW architektúra modellezés Modell (VFB) Magas szintű modellezés komponensek portok interfészek adattípusok meghatározása
Szenzorhálózatok programfejlesztési kérdései. Orosz György
Szenzorhálózatok programfejlesztési kérdései Orosz György 2011. 09. 30. Szoftverfejlesztési alternatívák Erőforráskorlátok! (CPU, MEM, Energia) PC-től eltérő felfogás: HW közeli programozás Eszközök közvetlen
Windows ütemezési példa
Windows ütemezési példa A példában szereplő számolás erősen leegyszerűsített egy valós rendszerhez képest, csak az elveket próbálja bemutatni! Egyprocesszoros Windows XP-n dolgozunk, a rendszer úgy van
A számítógépek felépítése. A számítógép felépítése
A számítógépek felépítése A számítógépek felépítése A számítógépek felépítése a mai napig is megfelel a Neumann elvnek, vagyis rendelkezik számoló egységgel, tárolóval, perifériákkal. Tápegység 1. Tápegység:
Adatszerkezetek Tömb, sor, verem. Dr. Iványi Péter
Adatszerkezetek Tömb, sor, verem Dr. Iványi Péter 1 Adat Adat minden, amit a számítógépünkben tárolunk és a külvilágból jön Az adatnak két fontos tulajdonsága van: Értéke Típusa 2 Adat típusa Az adatot
Párhuzamos programozási platformok
Párhuzamos programozási platformok Parallel számítógép részei Hardver Több processzor Több memória Kapcsolatot biztosító hálózat Rendszer szoftver Párhuzamos operációs rendszer Konkurenciát biztosító programozási
Nyíregyházi Egyetem Matematika és Informatika Intézete. Input/Output
1 Input/Output 1. I/O műveletek hardveres háttere 2. I/O műveletek szoftveres háttere 3. Diszkek (lemezek) ------------------------------------------------ 4. Órák, Szöveges terminálok 5. GUI - Graphical
Informatikai Rendszerek Intézete Gábor Dénes Foiskola. Operációs rendszerek - 105 1. oldal LINUX
1. oldal LINUX 2. oldal UNIX történet Elozmény: 1965 Multics 1969 Unix (Kernighen, Thompson) 1973 Unix C nyelven (Ritchie) 1980 UNIX (lényegében a mai forma) AT&T - System V Microsoft - Xenix Berkeley
Számítógépek felépítése
Számítógépek felépítése Emil Vatai 2014-2015 Emil Vatai Számítógépek felépítése 2014-2015 1 / 14 Outline 1 Alap fogalmak Bit, Byte, Word 2 Számítógép részei A processzor részei Processzor architektúrák
Operációs rendszerek II. kidolgozott tételsor Verzió 1.0 (Build: 1.0.2011.12.30.)
Operációs rendszerek II. kidolgozott tételsor Verzió 1.0 (Build: 1.0.2011.12.30.) Készült: Dr. Fazekas Gábor Operációs rendszerek 2. diasorok és előadásjegyzetek Ellenőrző kérdések 2011. december 21-i
Memóriakezelés (Memory management) folytatás Virtuális memória és kezelése
1 Memóriakezelés (Memory management) folytatás Virtuális memória és kezelése Alapok (lapok, csere, hibák, címszámítás) Lapkiosztási elvek Lapcsere stratégiák A programozó szerepe a laphibák számának csökkenésében
Java programozási nyelv 9. rész Kivételkezelés
Java programozási nyelv 9. rész Kivételkezelés Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember A Java programozási nyelv Soós Sándor 1/24 Tartalomjegyzék
Problémák. Lehet hogy a program nem fér be a memóriába Mozgatás diszkre és vissza A programok lokalitásának elve
Virtuális memória 1 Problémák Lehet hogy a program nem fér be a memóriába Mozgatás diszkre és vissza A programok lokalitásának elve A program rövid idő alatt csak kis részét használja a memóriának Biztonság
Processzus. Operációs rendszerek MINB240. Memória gazdálkodás. Operációs rendszer néhány célja. 5-6-7. előadás Memóriakezelés
Processzus Operációs rendszerek MINB40 5-6-7. előadás Memóriakezelés Egy vagy több futtatható szál Futáshoz szükséges erőforrások Memória (RAM) Program kód (text) Adat (data) Különböző bufferek Egyéb Fájlok,
Utolsó módosítás:
Utolsó módosítás: 2012. 09. 06. 1 A tantárggyal kapcsolatos adminisztratív kérdésekkel Micskei Zoltánt keressétek. 2 3 4 5 6 7 8 9 Forrás: Gartner Hype Cycle for Virtualization, 2010, http://premierit.intel.com/docs/doc-5768
Alapismeretek. Tanmenet
Alapismeretek Tanmenet Alapismeretek TANMENET-Alapismeretek Témakörök Javasolt óraszám 1. Számítógépes alapfogalmak, számítógép generációk 2. A számítógép felépítése, hardver, A központi egység 3. Hardver
Fábián Zoltán Hálózatok elmélet
Fábián Zoltán Hálózatok elmélet Miért szükséges a háttértár Az alkalmazások és adatok tárolása Háttértárak típusai Szekvenciális elérésű Mágnesszalag Lyukszalag Lyukkártya Véletlen elérésű Csak olvasható
Informatika szóbeli vizsga témakörök
KECSKEMÉTI MŰSZAKI SZAKKÉPZŐ ISKOLA, SPECIÁLIS SZAKISKOLA ÉS KOLLÉGIUM 6000 Kecskemét, Szolnoki út 31., Telefon: 76/480-744, Fax: 487-928 KANDÓ KÁLMÁN SZAKKÖZÉPISKOLA ÉS SZAKISKOLÁJA 6000 Kecskemét, Bethlen
Debreceni Egyetem Matematikai és Informatikai Intézet. 13. Védelem
13. Védelem A védelem célja Védelmi tartományok Hozzáférési mátrixok (access matrix, AM) A hozzáférési mátrixok implementációja A hozzáférési jogok visszavonása Képesség-alapú rendszerek Nyelvbe ágyazott
Balogh Ádám Lőrentey Károly
Architektúrák és operációs rendszerek: Folyamatok, ütemezés Balogh Ádám Lőrentey Károly Eötvös Loránd Tudományegyetem Informatikai Kar Algoritmusok és Alkalmazásaik Tanszék Tartalomjegyzék 1. A folyamat
5-6. ea Created by mrjrm & Pogácsa, frissítette: Félix
2. Adattípusonként különböző regisztertér Célja: az adatfeldolgozás gyorsítása - különös tekintettel a lebegőpontos adatábrázolásra. Szorzás esetén karakterisztika összeadódik, mantissza összeszorzódik.
Occam 1. Készítette: Szabó Éva
Occam 1. Készítette: Szabó Éva Párhuzamos programozás Egyes folyamatok (processzek) párhuzamosan futnak. Több processzor -> tényleges párhuzamosság Egy processzor -> Időosztásos szimuláció Folyamatok közötti