Operációs Rendszerek

Óravázlat az 1997/98-as tanév tavaszi félevéhez

Tartalomjegyzék:

    1. 1998. február 6. péntek
    2. 1998. február 13. péntek
    3. 1998. február 20. péntek
    4. 1998. február 27. péntek
    5. 1998. március 6. péntek
    6. 1998. március 13. péntek
    7. 1998. március 20. péntek
    8. 1998. március 27. péntek
    9. 1998. április 3. péntek
    10. 1998. április 10. péntek (2 elôadás)
    11. 1998. április 24. péntek (2 elôadás)


Témakörök:


1. elõadás ( 1998. február 6. péntek)

Bevezetés


2. elõadás ( 1998. február 13. péntek)
Operációs rendszer fogalmának meghatározása.
Az operációs rendszerek célja:
Az operációs rendszerek feladata:
Alternatívák az operációs rendszer részének tekintett programok meghatározására:

Az operációs rendszerek története

Az operációs rendszerek fejlôdése párhuzamos a HW fejlôdésével.
Korai rendszerek:
A HW hatékony kihasználásának alapvetô eszköze a CPU és a perifériás mûveletek átlapolása.
Korai megoldások:
Multiprogramozott rendszerek:

3. elõadás ( 1998. február 20. péntek)
Napjaink rendszerei:

Operációs rendszerek HW támogatása

ROM program rendszer betöltéséhez.
Be- és kivitel (I/O):
Védelmi mechanizmusok:

Operációs rendszerek szolgáltatásai és komponensei

Operációs rendszer szolgáltatások:
Fontosabb rendszerkomponensek:

4. elõadás ( 1998. február 27. péntek)

Az operációs rendszerek felépítése

Komplex, nagyméretû szoftver. Alapvetô felépítés:

Rendszerhívások és végrehajtásuk.


Folyamatok

A folyamat (process)fogalma:
multiprogramozott rendszerek alapfogalma,
"életre kelt" program, kód és adatterület.
Folyamat adatterületei:
Környezet (context) fogalma:
program és végrehajtó gép állapota. Részei:
Környezetváltás: a CPU-t birtokló futó folyamat váltása.
Szálak (thread, lightweight process):
szálak környezete részben közös, közös erõforráshasználat, gyors környezetváltás
folyamatol ill. szálak használatának elõnyei, hátrányai.
Párhuzamos folyamatok viszonya:
Megszakítások kezelése:
megszakítás kiszolgálásainak lépései.
Alapvetõ módszerek:
Folyamatok állapota, állapotátmeneti diagramm:
alap állapotok: fut és várakozik,
futásra kész állapot: kvázi párhuzamos végrehajtás,
felfüggesztett állapotok, jelentõségük,
állapotátmenetek, környezetváltás helye az állapotátmeneti diagrammban,
preemptív és nem preemtív operációs rendszerek.


5. elõadás ( 1998. március 6. péntek )

CPU ütemezés

Az ütemezés (scheduling) fogalma:
az azonos erõforrásra igényt tartó folyamatok közül választás, az erõforrások allokálása.
A CPU ütemezés kategóriái:
A rövidtávú CPU ütemezési algoritmusok alapjai:
CPU és I/O löket fogalma,
CPU löket eloszlása,
I/O löketidõt más folyamatok kihasználhatják.
ütemezés helye az állapotátmaneti diagrammban:
nem preemtív: befejezõdik, fut -> vár; (csak önkéntesen mondhat le a futási jogról)
preemptív: fut -> futásra kész (nem önként), vár -> futásra kész.
összehasonlításukra lehetõséget adó paraméterek:
követelmények (néha ellentmondó példák):
Egyszerû ütemezési algoritmusok:

6. elõadás ( 1998. március 13. péntek )
Prioritásos ütemezési algoritmusok:
lehet preemptív és nem preemptív
kiéheztetés (starvation, indefinit postponement) veszélye: öregítés (aging).
CPU löketidõt figyelembe vevõ algoritmusok:
(átlagos) löketidõ "bevallása",
löketidõ becslése (exponenciális) átlagolással.
Többszintû ütemezési algoritmusok:
Többprocesszoros ütemezés:
feltétel: szorosan csatolt homogén rendszer
közös várakozási sor
lehet szimmetrikus vagy asszimetrikus ütemezés, kölcsönös kizárás biztosítása szükséges
Ütemezési algoritmusok hatékonyságának meghatározása:

Folyamatokból álló rendszerek

Folyamatok viszonya:
Motiváció:
Alapfogalmak:
A szinkronizáció formái:

7. elõadás ( 1998. március 20. péntek )

Motiváló gyakorlati példa

Egy nyomtatót használó folyamat példáján keresztül megvizsgáljuk egy tipikus termelô fogyasztó (felhasználó) szituációban elôforduló feladatokat és azok lehetséges megoldását.

Termelô

repeat
until false;

Fogyasztó

repeat
until false;

Probléma

A számláló inkrementálásának ill. dekrementálásának gépi utasításai párhuzamosan (átlapolódva) hajtódnak végre, az eredmény a végrehajtás sorrendjétôl függ.

Inkrementálás
MOV AX, számláló
INC AX
MOV számláló, AX
Dekrementálás
MOV AX, számláló
DEC AX
MOV számláló, AX


Folyamatok szinkronizációja

Kritikus szakasz

A kritikus szakasz olyan utasítássorozat a programban, amelyen belül egyidejûleg csak egyetlen folyamat tartózkodhat, a kritikus szakaszt a belépô (entry) és kilépô (exit) utasítások határolják.
A kritikus szakasz helyes implementálásának kritériumai:

A kritikus szakasz implementálása

Tisztán programozott megoldások

Két folyamat esetén:
A két folyamat P(1) ill. P(2).
A P(i) folyamathoz tartozó belépô (entry) és kilépô (exit)szakaszok:
entry:
flag [i] := IGAZ;
következô := j;
while ( flag[j] and következô == j ) do { üres utasítás };
exit:
flag [i] := HAMIS;
Mind a három kritikus szakaszra vonatkozó feltételt teljesíti a fenti megoldás.
Tetszôleges n folyamat esetén használható megoldások jóval bonyolultabbak. Példa a jegyzetben található.

Kritikus szakasz megvalósítása HW támogatással

Speciális, megszakíthatatlan, egyidejûleg több tármûveletet végzõ hardver utasítások:
  • TestAndSet
  • A fenti megoldások csak az elsô kettô kritikus szakaszra vonatkozó feltételt teljesítik. A harmadik feltétel is kielégíthetô, azonban bonyolultabb

    Kritikus szakasz megvalósítása magas szintû programnyelvekben

    Erõforrások ill. változók és a rajta mûveleteket végzõ, kritikus szakaszba tartozó utasítások magasszintû nyelvi szerkezetben.

    8. elõadás ( 1998. március 27. péntek )

    Folyamatok közötti információcsere

    Információcsere formái:

    Üzenet hossza

    Csatorna jellemzôi

    Folyamatok megnevezése

    A kommunikáló partner megnevezése

    Üzenetek tárolása a csatornán

    Hibakezelés

    Kezelendô események

    Üzenetek sérülésének megakadályozása üzenet kódolással


    Holtpont kezelés

    A holtpont (deadlock)
    Az erõforrások modellje:
    A holtpont kialakulásának szükséges feltételei:
    1. kölcsönös kizárás,
    2. foglalva várakozás,
    3. nem elvehetõ erõforrások,
    4. körkörös várakozás.
    A holtpont kialakulásának elégséges feltételei:
    a fenti 4 szükséges feltétel, valamint
    minden erõforrás osztályban csak egyetlen erõforrás van.
    Holtpont kezelési stratégiák:
    A holtpont megelõzése:
    holtpont kialakulásának valamelyik szükséges feltételének kizárása
    1. kölcsönös kizárással nem lehet mit tenni,
    2. foglalva várakozás ellen: csak akkor kérhet új erõforrást, ha nem tart lefoglalva másikat,
    3. nem elvehetõ erõforrások: erõforrások elvétele egyes folyamatoktól,
    4. körkörös várakozás ellen: beszámozott erõforrások, csak sorrendben igényelhetõk.

    9. elõadás ( 1998. április 3. péntek )
    A holtpont elkerülése:
    A holtpont felismerése:
    A holtpont felszámolása:
    Kombinált holtpont-kezelõ stratégiák:
    különbözõ erõforrás-típusokhoz más-más stratégiát használhatunk, pl.:

    Központi tár kezelése

    A tárkezelés szerepe az operációs rendszerekben:
    Klasszikus tárkezelés fõ kérdései:
    Program címeinek kötése (logikai-fizikai cím hozzárendelés):
    Társzervezési elvek:


    10. elõadás ( 1998. április 10. péntek )

    Logikai címek fizikai címmé való transzformálásának módszerei:

    Különbözô módszerek által használt adatszerkezetek, a módszerek összehasonlítása.


    Háttértár (mágneslemez) kezelés

    Lemezmûveletek ütemezése: (fejmozgásra koncentráló algoritmusok)
    Egyéb gyorsítási lehetõségek:
    Megbízhatóság növelésének lehetôságe:
  • rendszeres mentés,
  • redundáns tárolás,
  • elosztott tárolás

  • Állományrendszer

    Alpfogalmak:
    Állománykezelõ feladatai:
    Az állományrendszer réteges implementációja:
    Adatszerkezetek a lemezen:
    Szabad helyek nyilvántartása
    Állományokhoz tartozó blokkok nyilvántartása
    Állományok belsõ szerkezete:


    11. elõadás ( 1998. április 24. péntek )

    Állomány hozzáférési módok:
    Mûveletek az állományokon:
    Állománykezelés során használt adatszerkezetek:
    Könytárak:
    Könyvtárak hierarchiája:
    Hozzáférés szabályozása:


    Elosztott operációs rendszerek

    Elosztott operációs rendszerek típusai

    Hálózati operációs rendszer

    Távoli gépek, erôforrások elérésének biztosítása.

    Elosztott operációs rendszer

    Az operációs rendszer elelrejti az elosztott hardvert.

    Tipikus funkciók:

    Elosztott rendszerek elônyei


    Elosztott állományrendszerek

    A hetvenes évektôl kezdôdôen az elosztott rendszerek használata egyre gyorsuló ütemben fejlôdött. Távoli fileok elérésére kidolgozott protokollok:

    Transzparens file elérést támogató protokollok (nyolcvanas évektôl):

    Elosztott állományrendszerek általános jellemzôi

    Kliens szerver modell használata: A szerver szolgáltatást nyújt a kliens gépen futó felhasználói folyamatnak.

    Fontos a következô három fogalom megkülönböztetése:

    Jellemzô tulajdonságok:

    Tervezési szempontok:


    SUN Network File System

    1985 ben.publikálták a

    Azóta de facto szabvánt lett.

    Jellemzô tulajdonságok, mûködés:

    Felhasználói felület lehetôségei:

    NFS tervezési célok:

    Az NFS specifikáció következménye az állapotmentes megvalósítás.


    Operációs rendszerek kezelôi felülete

    A kezelôi felület feladata:
    Parancsok típusa:
    Kezelôi felület készítésekor fô szempont a felhasználóbarátság.
    Az OR és a felhasználó közötti kommunikáció eszközei:
    Heterogén felhasználói kör, eltérô igényekkel:
    Kezdô felhasználó igényei:
    Tapasztalt felhasználó igényei:

    X window rendszer

    Fejlesztése 1983-84-ben kezdôdött az MIT-n. A fejlesztés célja olyan kommunikációs felület készítése, amely hálózattal összekötött különbözô OR-eket futtató számítógépeken azonos kezelôi felületet biztosít.
    Ma az X forráskódja publikus. Elsôsorban UNIX rendszerek támogatják.
    Jellemzôi:

    X protokoll

    Grafikus funkciókat, akciókat leíró protokoll.
    Tulajdonságai:

    Az X koncepciója

    Az X környezet elemei
    X munkahely:

    Ablakkezelés

    Ablak: Téglalap alakú képernyôrészlet.

    Hierarchikus ablak rendszer.

    Automatikus vágás átlapolódó, egymást fedô ablakoknál. Kitakaráskor eseményküldés, ablakfrissítés támogatása.

    Megjelenítô eszköz

    Raszteres (képpontokból, pixelekbôl álló) grafikus terminál
    Képpontonkénti kezelés relatív koordinátákkal.
    Az X egyszrû elôre definiált rajzelemek használatát engedi.
    A rajzelemek halmaza bôvíthetô.
    Rajzolni mind a képernyôre, mind (virtuálisan) a memóriába lehetséges.
    Színek használatát palettázással támogatja.

    Ki és bemeneti eszközök kezelése

    A bemeneti eszközök állapotváltozásakor a szerver esemény üzenettel értesíti a klienst.

    Input focus:
    Input focus birtokosa az a kitüntetett kliens folyamat, amelyik a bemeneti eszközök állapotváltozásakor értesítendô.

    Pozicionáló eszköznél a kliens relatív koordinátákat kap.

    Karakteres input esetén a karakter hozzárendelést a szerver végzi.