Operációs Rendszerek

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

Tartalomjegyzék:

    1. 1997. szeptember 17. szerda
    2. 1997. szeptember 24. szerda
    3. 1997. október 1. szerda
    4. 1997. október 8. szerda
    5. 1997. október 15. szerda
    6. 1997. október 22. szerda
    7. 1997. október 29. szerda
    8. 1997. noveber 5. szerda
    9. 1997. noveber 12. szerda
    10. 1997. noveber 19. szerda
    11. 1997. noveber 26. szerda
    12. 1997. december 3. szerda
    13. 1997. december 10. szerda
    14. 1997. december 17. szerda


1. elõadás ( 1997. szeptember 17. szerda)
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:
Napjaink rendszerei:

2. elõadás ( 1997. szeptember 24. szerda)

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

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

Az operációs rendszerek feladatai

Operációs rendszer szolgáltatások:
Fontosabb rendszerkomponensek:
Rendszerhívások és végrehajtásuk.

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

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

3. elõadás ( 1997. okt. 1. szerda)

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ázipá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.

Folyamatok a UNIX operációs rendszerben

Belsõ adatszerkezetek, a folyamat környezetének elemei UNIX-ban:
Állapotátmeneti diagramm:
kezdõ állapot fork után,
zombie állapot szerepe,
futó állapot felbontása kernel és felhasználói futó állapotra,
a futásra kész és a felfüggesztett állapot különbsége.
Kernel erõforrásainak védelme, kölcsönös kizárás megvalósítása:
nem preemptálható kernel,
zárak, ha a kernel algoritmus várakozni kényszerül: lock és unlock,
megszakítások idõleges tiltása.

4. elõadás ( 1997. okt. 8. szerda)
Rendszerhívások:
fork, exec, wait, exit,
adatterület növelése: brk, sbrk.
fork mûködése, példaprogram,
wait és exit együttmûködése.
(tényleges és effektív felhasználói azonosítók, getuid, setuid. )
Példa: rendszer indulása
indító folyamat,
init folyamat szerepe
Várakozás (sleep) és felébred (wakeup) átmenetek:
ugyanarra az eseményre több folyamat is várakozhat,
minden azonos kódú eseményre várakozó felébresztése,


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:
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.

5. elõadás ( 1997. október 15. szerda)
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:

CPU ütemezés a UNIX-ban

Implementációnként vannak különbségek, itt a
Elve:
idõosztásos ütemezés,
többszintû visszacsatolásos várakozási sorok,
az egyes sorokban körforgó FCFS.
Prioritás osztályok:
Kernel és felhasználói prioritási osztályok, eltérô prioritás meghatározás a két osztályban
a nagyobb prioritáshoz kisebb belsõ kód tartozik (pl. O..127),
a kernel módu prioritási sorok (pl. O..49) mindig megelõzik a felhasználói móduakat (pl. 5O..127).
Prioritás meghatározásához használt paraméterek:
p_nice: "nice" érték, felhasználó eszköze a prioritás csökkentésére
p_cpu: a futó folyamat CPU felhsználása
p_pri: az aktuálisan érvényes prioritás
p_usrpri: felhasználói módban érvényes prioritás
Ütemezési funkciôk az óra IT ben hajtôdnak végre. Csökkenô gyakorisággal a funkciók:
Átütemezés:
Ütemezés adminisztrálása: (gyors kiértékelés támogatása)
hash tábla, láncolt sorok, külön jelzôbitek
Óra megszakítás a UNIX-ban
Ébresztés (alarm) kérése

6. elõadás ( 1997. október 22. szerda)
Callout implementáció: (gyakorlati példa)
idôkritikus elellenôrzés, nem idôkritikus beszúrás
Megoldás:
  • láncolt lista
  • idôkerék

  • Folyamatokból álló rendszerek

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

    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

    7. elõadás ( 1997. október 29. szerda)

    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.


    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.


    8. elõadás ( 1997. november 5. szerda)

    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:


    9. elõadás ( 1997. november 12. szerda)

    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

  • 10. elõadás ( 1997. november 19. szerda)

    Á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:
    Hozzáférési módok:
    Mûveletek az állományokon:
    Állománykezelés során használt adatszerkezetek:
    Könytárak:

    11. elõadás ( 1997. november 26. szerda)
    Könyvtárak hierarchiája:
    Osztott állománykezelés:
    Hozzáférés szabályozása:


    Unix file rendszer

    A file rendszer a UNIX viszonylag állandó része. A 8O-as évekig jórészt változatlan. (System V - s5fs) Utána az elosztott file-kezelés támogatására különbözô megoldások:

    Felhasználói felület:

    Lényeges tulajdonságok:

    File típusok:

    File rendszer belsô leírása (adatszerkezetek):

    Szabad adat blokkok nyilvántartása:

    Szabad i-node-ok nyilvántartása, adatszerkezetek frissítése.

    Linkek:

    Filekezelô parancsok:

    Rendszerhívások:

    Nyitott file-ok adminisztrálása:

    File lezárása: lock


    12. elõadás ( 1997. december 3. szerda)

    File rendszerek összekapcsolása: mount

    Logikai lemezek fogalma, használata.

    Csatorna (pipe):


    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.

    NFS részei:

    XDR (EXtended Data Representation) protokoll:

    Szabályrendszer különbözô típusú adatok HW független ábrázolásának, ill. továbbításának módjára.

    Rögzíti az adatelemek:

    Definiál alapadatípusokat és szabályrendszert (formális nyelvet) ad kombinált típusok definiálására.

    RPC (Remote Procedure Call) protokoll:

    A kliens és a szerver kommunikációjának formai defininíciója:

    SUN RPC jellemzôi:

    SUN RPC üzenet (kérés ill. válasz) formátuma.

    NFS megvalósítása UNIX rendszerben

    Virtuális file rendszer alkalmazása a hagyományos UNIX file rendszer bôvítésére.
    Használt adatstuktúra: v node.
    A v node felépítése:
    A virtuális file rendszer a hagyományos UNIX file rendszer fölé épül. Megtartva az eredeti felhasználói felületet megnöveli a rendszer rugalmasságát. Pl.:
    File leíró:
    File kezeléskor használt adatstruktúrák ill. alapvetô eljárások.

    13. elõadás ( 1997. december 10. szerda)
    Távoli file elérése NFS segítségével.
    Elérési jogok ellenôrzése NFS használata esetén:
    Elérési jogok csak nyitáskor ellenôrzôdnek, de mivel a szerver nem tárolhat információt a kliensrôl alkalom nyílhat rosszindulatú behatolásra, file ok jogosulatlan elérésére.

    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.


    14. elõadás ( 1997. december 17. szerda)

    A kezelôi felület elemei

    Az X programozás alapjai

    Eseményvezérelt mûködés
    A szerver a munkaállomás állapotváltozásairól eseményekként informálja a klienst.
    Események forrása
    Események kezelése
    Programkönyvtárak
    Az X programozási környezethez szervesen tartozik egy programkönyvtár (Xlib), ami tartalmazza az X protokoll által rögzített alapvetô grafikus rutinokat. Ez a könyvtár szabványos.
    Léteznek az Xlib re támaszkodó un. grafikus könyvtárak, amik tipikusan grafikus környezetben használt képernyôelemeket definiálnak. Ezekhez a rendszerekhez általában létezik grafikus környezet tervezô program és szorosan kötôdnek egy-egy window manager-hez. A grafikus könyvtárak már nem részei a szabványos X környezetnek.


    Összefoglalás