A hétszintű logikai modell:

Alkalmazások (Word, Excel)

Magas szintű nyelvek (Pascal, C)

Alacsony szintű nyelvek (Assembly)

Operációs rendszer Operációs rendszer

Hardver (Memória, busz, perifériák)

CPU (mikroprogram, regiszterek)

Logikai áramkörök (kapuk, összeadó)

 

 

 

 

 

 

 

 

 

 

Kötegelt feldolgozás:

A kártyakötegek utasításait egymás után hajtotta végre a számítógép.

 

Az operációs rendszerek feladat:

1. Eszközkezelők (Device Driver)

2. Megszakításkezelés (Interrupt Handling)

3. Rendszerhívás, válasz (System Call, Reply)

4. Erőforrás kezelés (Resource Management)

5. Processzorütemezés (CPU Scheduling)

6. Memóriakezelés (Memory Management)

7. Állomány- és lemezkezelés (File and Disk Management)

8. Felhasználói felület (User Interface)

 

 

Többprocesszoros rendszerek:

Szimmetrikus esetben minden processzor egyenértékű, mindegyiken az operációs rendszer egy másolata fut, minden folyamatot bármelyik processzorra rá lehet bízni.

Aszimmetrikus rendszereknél az egyes processzorok feladata előre rögzített, például az egyik, lehet a főnök, a másik végezheti a lebegőpontos számításokat, a harmadik kezelheti a perifériákat és így tovább.

Elosztott rendszerek: Több processzor szolgálatait úgy is igénybe lehet venni, ha azok egymással csak laza kapcsolatban vannak (loosely coupled systems). Minden processzornak saját memóriája van, saját perifériáikkal rendelkezhet, tehát egy önálló számítógép. Az elosztott rendszerek tipikus példái a számítógép-hálózatok.

 

Alapfogalmak:

A program egy algoritmust megvalósító utasítások sorozata, függetlenül attól, hogy azok magas szintű nyelven, vagy akár bináris gépi kódban van ábrázolva és tárolva.

 

A folyamat (task, process) egy éppen végrehajtás alatt lévő program. Egy program végrehajtása több folyamatot is létrehozhat, ugyanaz a program több folyamat formájában is megjelenhet.

A folyamat tehát egy “életre kelt” program.

 

A folyamatleíró blokk (Process Control Block-PCB, Task State Segment-TSS) azonosítja egyértelműen a folyamatot, tartalmazza a folytatáshoz szükséges adatokat, mint pl.: a folyamat azonosítóját; a programszámláló állását; a folyamat állapotát; a regiszterek tartalmát; a használt perifériák és állományok jellemzőit és a folyamathoz tartozó memóriaterületek adatait.

A Folyamatok, olyan programok, melyeknek van folyamatleíró blokkja.

 

A szálak (thread) a folyamatokhoz nagyon hasonlítanak, de nyilvántartásukhoz sokkal kevesebb adat elegendő, gyakran csak az utasításszámláló és a regiszterek tartalma szükséges.

 

Erőforrások:

Erőforrásnak nevezünk minden olyan dolgot, amely egy folyamat futásához szükséges: (a memóriaterület és a processzoridő, a ki- és bemeneti eszközök, egy állomány vagy egy postafiók). Két csoportja: elvehető (megszakítható, preemptive): (processzor és a memória), nem elvehető (nem megszakítható, non-preemptive): (állományok, nyomtatók, mágnesszalagos egységek).

 

Megszakítható (preemptív) erőforrás: A folyamatoktól az erőforrás az folyamat vagy erőforrás károsodása nélkül elvehető.

Nem megszakítható (non-preemptív) erőforrás: Az erőforrás használat félbeszakítása esetén a folyamat vagy erőforrás sérülhet!

 

Operációs rendszer - Erőforrás szemlélet: a folyamatok egy olyan csoportja, amely a felhasználói folyamatok között elosztja az erőforrásokat.

Operációs rendszer - Felhasználói szemlélet: a folyamatok egy olyan csoportja, amely megkíméli a felhasználókat a hardverkezelés nehézségeitől és kellemesebb alkalmazói környezetet, biztosít.

 

A rendszermag folyamatok sokasága, melyek a rendszer bekapcsolásakor jönnek létre, és futásuk a rendszer leállításáig tart. A kernel hozza létre a felhasználói folyamatokat, elkészíti a folyamatleíró blokkot, memóriaterületet biztosít a végrehajtandó kódnak, gondoskodik a processzor idő elosztásáról, a folyamatok sorrendjének meghatározásáról.

 

Rendszerhívások segítségével történik a felhasználói folyamatok és az operációs rendszer magja között a kommunikáció.

A processzorok üzemmódjai:

Felhasználói üzemmód (user mode), melyet a felhasználói programok használnak.

Rendszer üzemmód (kernel mode, privilegized mode, system mode, supervisor mode), melyet csak az operációs rendszer használhat.

 

Megszakítások típusai:

                - Megszakítás (Interrupt): Egy periféria, mely jelezheti így egy régen várt adat megérkezését, de megszakítást okoz a rendszer órája is.

                - Kivétel (Exception): A kivételeket maga a processzor generálja, ha valamilyen hibát, például nullával való osztást, kellene végeznie, vagy a címszámításnál tapasztal valamilyen komoly hibát.

                - Nem maszkolható megszakítás (Non Maskable Interrupt): súlyos hardver hiba, például a memória hibája, vagy a tápfeszültség kimaradás esetén keletkezik.

                - Csapda (Trap): olyan szoftver eredetű megszakítás, amely akkor keletkezik, ha egy felhasználói folyamat közvetlenül az operációs rendszerhez fordul (rendszerhívás), vagy olyan utasítást próbál végrehajtani, amihez nem lenne joga (önálló hardverkezelés).

 

 

Fájl = Állomány:

1)     Az adatok egy olyan csoportja, melyre együttesen, egy névvel hivatkozhatunk.

2)     Logikailag összetartozó adatok halmaza névvel ellátva.

 

Fájltípusok:

I.

1.      Ideiglenes állományok,

2.      Felhasználói állományok,

3.      Adminisztratív állományok

 

II.

1.      Adatfájlok köre,

2.      Könyvtárfájlok köre.

 

 

A rendszermag azon részét, amely a fájlokkal kapcsolatos műveleteket végzi, fájlkezelőnek nevezzük.

Közvetlen hivatkozások esetén a teljes elérési útvonal meg van adva, ez alapján juthatunk el a keresett fájlhoz.

Közvetett hivatkozások:

Közvetett hivatkozásokról (láncolás, link, alias) akkor beszélünk, ha egy fájlhoz nem csak egy elnevezés segítségével juthatunk el, tehát például egy programot a különböző felhasználók, különböző neveken érhetnek el.

A merev láncolás (hard link) esetén tulajdonképpen két vagy több független, egyenértékű fájlról beszélhetünk, melyek kizárólag a fájl fizikai elhelyezkedésére vonatkozó információkban kell, megegyezzenek.

A lágy láncolás (soft link) a fizikai cím helyett a hivatkozott fájl nevét tartalmazza, lehetővé téve azt, hogy a fájl akárhol is előfordulhasson. A lágy láncolás további előnye, hogy az adatállományok tömörítése, vagy alapvető, fizikai címeket is, érintő átstrukturálása esetén is működőképes marad.

Katalógus nélkül:

Soros hozzáférésű média, például mágnesszalag esetén, ahol a blokkok mérete sem állandó, nehéz elképzelni könnyen kezelhető, a fájlok alapvető adatait tartalmazó katalógus állományt.

Egyszintű katalógus:

Ha egy rendszer csak egyetlen, rendszerszintű katalógust kezel (manapság ez már kuriózum), egyszintű katalógusról beszélünk.

Kétszintű katalógus:

Egy második szint bevezetése sokkal áttekinthetőbb rendszert eredményez, a legtöbb feladat így már megoldható. Minden felhasználó kaphat egy saját katalógust, míg a közösen használt fájlok külön katalógusba kerülhetnek. Az egyes katalógusokat, a katalógusok katalógusa, a (master) vagy más néven gyökér (root) katalógus fogja össze. Mivel ebből eszközönként csak egyetlen egy van, nem is szükséges neki nevet adni.

A névtelen gyökér katalógust követi az első törtvonal, következik a katalógus neve, majd újabb törtvonal után a fájl neve.

Többszintű (hierarchikus) fájl rendszer:

A kétszintű rendszerről nem nehéz általánosítani a többszintű, többnyire fa struktúrát alkalmazó rendszerekre. A hierarchikus rendszer kiindulópontja a gyökérkönyvtár, mely tartalmazhat fájlokat és alkatalógusokat (subdirectory), ez utóbbiak szintén tartalmazhatnak fájlokat és alkatalógusokat és így tovább.

Abszolút hivatkozás: fájl megadásának az a módszere, ahol a gyökér katalógustól kezdődően az összes közbülső katalógus nevének felsorolása után jutunk el a fájlhoz.

Relatív hivatkozás: A fájl megadásának az a módszere, ahol a gyökér katalógus (vagy szülő könyvtár) helyett az aktuális katalógus a kiinduló pont.

Jogosultságok típusai:

Olvasás (Read - R)

Írás (Write - W)

Létrehozás (Create - C)

Végrehajtás (eXecute - X)

Törlés (Erase - E)

Jellemzők módosítása (Modify - M)

Hozzáférés módosítása (Access control - A)

 

Szabad helyek nyilvántartása:

Folytonos: first, worst, best

Láncolt: FAT

Indexelt: INODE

Folyamatleíró/vezérlő blokk (Process Control Block - PCB):

Fájl leíró táblázatát (file control block - FCB)

 

Az erőforrás kezelő (resource manager) a rendszermag azon része, amely az erőforrások elosztásáért és lefoglalásáért felelős.

Erőforrások:

– Erőforrás foglalási gráf

– Holtpont, Kiéheztetés

Holtpontkezelő stratégiák

– Megelőzés

– Felszámolás

– Közösen használt erőforrások problémái

HOLTPONT – Deadlock: Több folyamat egy olyan erőforrás felszabadulására vár, amit csak egy ugyancsak várakozó folyamat tudna előidézni.

KIÉHEZTETÉS – Starvation:

Egy folyamat - az erőforrás-kezelő stratégiája miatt - beláthatatlan ideig nem jut erőforráshoz.

 

A                                     I                                       B                                  II

 

           Az „A” folyamat igényli                   A „B” folyamat birtokolja

                 az „I” erőforrást                                    a „II” erőforrást

 

                                      Erőforrás foglalási gráf

Az erőforrások lefoglalása:

Statikus lefoglalás

– a folyamat indulása előtt lefoglalja az összes szükséges erőforrást

• Pazarló

• Kiéheztetés

• Ha egyszer elindult, erőforrás korlát miatt nem áll le

Dinamikus lefoglalás

– a folyamat csak akkor igényel erőforrást, amikor éppen szüksége van rá

• Hamar elindulhat egy folyamat, de versenyzés miatt lassabban fut(hat)

• Teljesítőképesség, átbocsátóképesség nő

• Nagy probléma: holtpont

 

Holtpont kialkulás lehetőségének feltételei:

1. Kölcsönös kizárás van

2. Várakozás közben lekötés történik

3. Rablás nincs

4. Ciklikus várakozás van

 

    I

 
 

 


                    Igényli                                                              Birtokolja

Ellipszis: AEllipszis: B

    II

 
        

 

                                                                                                

                                                                                                  Igényli

                    Birtokolja

 

 

Holtpont megelőző stratégiák:

→ Egyetlen foglalási lehetőség:

• Csak az a folyamat foglalhat erőforrást, amelyik egyetlen egy fölött sem rendelkezik.

→ Rangsor szerinti foglalás:

• Egy folyamat csak olyan osztályból igényelhet erőforrást, melynek sorszáma magasabb, mint a már birtokolt erőforrások sorszáma.

→Bankár algoritmus:

A bankár algoritmus úgy kerüli el a holtpont kialakulásának lehetőségét, hogy a rendszert mindig biztonságos állapotban tartja.

 Közvetlen memória átvitel (Direct Memory Access - DMA):

DMA esetén a memória és a periféria közötti átvitel a processzortól függetlenül, önálló vezérlő segítségével történik.

Szabad helyek nyilvántartása:

- Folytonos: first, worst, best

1 legelső alkalmas (First Fit) – leggyorsabb, de pazarló.

2 legjobban illeszkedik (Best Fit) – lassú, de gazdaságos hely kiosztás.

3  legrosszabbul illeszkedik (Worst Fit) – egyszerű nyilvántartás.

- Láncolt: FAT

        A táblázatnak ugyanannyi eleme van, mint ahány blokk a lemezen és minden rekesz tartalma a fájl következő blokkjára mutató sorszám, vagy 0.

- Indexelt: INODE

                Óriási táblázat helyett sok kicsit használunk, minden állományhoz külön. A katalógus tartalmazza a fájlhoz tartozó kicsi táblázat címét, a kicsi táblázat pedig a fájl blokkjainak a címét.

 

A RAID 0 mindenféle redundancia vagy paritás nélkül csíkozza az adatokat a meghajtókon.

Az RAID 1-es szint tükrözi (mirror) az adatokat, azaz az adatok duplikálva vannak.

A RAID 2 ajánlás már használja a csíkozást, emellett külön meghajtókat használnak paritás információk tárolására Hamming-kód segítségével. A gyakorlatban nem használják.

A RAID 3-4 szintén csíkozza a meghajtókat, és egyetlen kitüntetett lemezre írja a paritásadatokat. A két szint közti különbség, hogy a 3-asnál kisméretű csíkokat használnak, míg a 4-es szint nagyméretű blokkokkal dolgozik.

A RAID 5 már nem csak az adatokat, hanem a paritás információkat is csíkozva helyezi el a lemezeken.

A RAID 6 csupán az 5-ös szint kibővítése: nem csak soronként, hanem oszloponként is kiszámítja a paritást, így kétszeres meghajtó meghibásodás sem jelent problémát a rendszer egészére nézve.

A RAID 10 a RAID 0 és a RAID 1 együttese.

A RAID 50 a RAID 0 és a RAID 5 együttese.

 

Lemezütemezési algoritmusok:

Sorrendi kiszolgálás (First Come First Served - FCFS)

Legkisebb elérési idő módszere: (Shortest Seek Time First - SSTF)

Pásztázó (Scan, Look)

Egyirányú pásztázás (Circular Scan, C-Scan)

 

Összefoglalás:

• Fizikai lemezkezelés:

– Ütemezés: FCFS, SSTF, Scan változatok

– Logikai-fizikai cím konverzió

– Blokkméret optimalizálás

• Tömörítés:

– RLE, DE, Huffmann

• Adatvédelem:

– Szoftver: paritás, CRC

         Hardver: tükrözés, RAID

 

 

Erőforrások csoportosítása:

1). -Hardver erőforrások,

        -Szoftver erőforrások.

2). -Hagyományos,

        -Operációs rendszer által létrehozott erőforrások.

3). -Megosztható (sharable) és megszakítható, elvehető (preemptive).

        -Nem megoszthatók (non-sharable) és nem megszakíthatók, nem elvehetők (non-preemptive).

 

Az erőforrás kezelő (resource manager) a rendszermag azon része, amely az erőforrások elosztásáért és lefoglalásáért felelős.

 

P és V primitívek:

Primitív: megszakíthatatlan (oszthatatlan) művelet

 

P primitív: FOGLALTTÁ ÁLLÍTÁS

1. a szemafor olvasása

2. a beolvasott érték vizsgálata

3. ha szabad: a szemafor foglaltra állítása

4. ha foglalt: vissza 1-re

 

V primitív: SZABADDÁ ÁLLÍTÁS

– A szemafor szabadra állítása

 

Bináris szemaforról beszélünk, akkor, ha a vezérlés folyamatosan megy le.

Osztatlan művelet esetén az első négy lépést egyben végzi az operációs rendszer, mert így egy másik (majdnem ugyanabban az időben érkező) folyamat már a termelő által beállított tilos jelzést találja.

 

Folyamatok állapotai:

A várakozási sorok megfelelnek a folyamatok állapotainak.

• FUTÁSRA KÉSZ (már csak a CPU hiányzik)

– Megszakított (pl. kivétel, I/O művelet)

• FUT

• VÁRAKOZIK (további erőforrásra)

– Holtponti (ha reménytelenül vár valamire)

• FELFÜGGESZTETT (erőforrás nélkül, csak PCB)

 

Processzorütemezés:

Ütemezési szintek:

1. Várakozási idő (waiting time, missed time): megadja, hogy a folyamat mennyi időt töltött tétlen várakozással.

2. Átfutási idő (penalty ratio): a folyamat érkezésétől annak befejezéséig eltelt idő.

3. Válaszidő (response time) azaz idő, ami a folyamat rendszerbe állításától az első futás kezdetéig telik el.

 

Előbb jött, előbb fut (First Come First Served - FCFS):

A folyamatok érkezési sorrendben futhatnak. 

Legrövidebb előnyben (Shortest Job First - SJF):

A folyamatok közül először a legrövidebb fut.

Körben járó algoritmus (Round Robin - RR):

Minden folyamat egy adott időszeletig futhat, majd újra sorba kell állnia.

 

Memóriakezelés

A valóságos és a virtuális tárkezelés.

Rögzített címzés:

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.

Áthelyezhető címzés:

A bázisregiszter tartalmazza a program kezdő- vagy más néven báziscímét. A processzor minden memória műveletnél automatikusan hozzáadja a bázisregiszter tartalmát az utasításban szereplő címhez és az így kapott összeg lesz az a fizikai memóriacím, amihez fordul.

Átlapoló (overlay) módszer:

Lényege: hogy a memóriában állandóan csak a programrészek közötti átkapcsolást végző modulnak kelljen tartózkodnia, a többiek közül hol az egyik, hol a másik rész került a memóriába, a többi a háttértáron várakozott.

Tárcsere (swapping):

A memóriatartomány ki-be másolását tárcserének (swapping) hívjuk, a másolás eredményeképpen keletkező állományt cserefájlnak (swap file).

 

Lapozás (paging):

Ha a rendelkezésre álló operatív memória területet egyforma és viszonylag kisméretű egységekre osztjuk, úgynevezett lapokra, akkor egy folyamat memóriában való elhelyezésekor most már nem szükséges az, hogy akkora összefüggő szabad memóriaterület álljon rendelkezésre, amennyit a folyamat igényel, hanem elég az, hogy összességében legyen ennyi hely. Az operációs rendszer minden egyes folyamat betöltésekor létrehoz a folyamat számára egy laptáblát, mely a logikai lapokhoz hozzárendeli a fizikai lapot.

 

Összegzés:

Áthelyezhető: nem mindig ugyanoda töltődik

Átlapoló (overlay): nem minden rész kell egyszerre

Tárcsere (swapping): memóriakép a háttértáron

Lapozás: nem folytonos elhelyezés

 

Laphiba (page fault)

Ha a folyamat olyan memóriacímre hivatkozik, ami olyan lapon található, amely nincs betöltve az operatív memóriába.

Nem igazi hiba! Virtuális tárkezelésnél természetes!

 

 

 

Lapkiosztási elvek:

1.        egyenletes lapkiosztás: minden folyamat ugyanannyi kerettel gazdálkodhat.

2.        arányos lapkiosztás: egy folyamat minél nagyobb virtuálismemória-területet használ, annál több keretet kap.

3.        prioritásos elosztás: magasabb prioritású folyamatok több lapot kapnak.

 

Lokális elosztás: a rendelkezésre álló lapok száma egy folyamat számára a futás során állandó.

Globális lapkiosztás: Az operációs rendszer csak a minimálisan szükséges lapokat osztja ki, a fennmaradó szabad lapokból a folyamatok dinamikus igényeit elégíti ki.

Vergődésnek (trashing) nevezzük azt a jelenséget, ha egy folyamat olyan kevés laphoz jut, hogy csaknem mindig laphibát okoz. Fut ugyan, de nagyon lassan.

 

Lapcsere stratégiák:

1.        OPT (Optimal) - Optimális stratégia: azt a lapot kell lecserélni, amelyre a legkésőbb lesz szükség.

2.        FIFO (First In First Out) - Előbb jött, előbb megy: azt a lapot kell lecserélni, amely legrégebben van bent a memóriában.

3.        LRU (Last Recently Used) - Legrégebben használt: azt a lapot kell lecserélni, amelyre legrégebben hivatkozott a folyamat.

4.        SC (Second Chance) - Második esély: az eljárás a FIFO elven alapul, egy kis kiegészítéssel. A laptáblába egy paritásbitet helyeznek el, mely jelzi, hogy a lap éppen használatban van-e. Így elkerülhetjük, hogy olyan lap kerüljön kilapozásra, melyre még a folyamatnak szüksége volna.

5.        Mostanában nem használt - Not Used Recently (NUR): LRU alapú, jelző bittel kiegészítve, mely jelzi, hogy a lap használatban van-e. A mostanában kifejezés tehát azt takarja, hogy az előző lapcsere óta használták, vagy nem használták a kérdéses lapot.

Az asszociatív tárat gyakran címszámítást kikerülő tárnak (Translation Lookaside Buffer - TLB) nevezik.

A TLB tetején mindig a legutoljára használt lap adatai lesznek, míg legalul a legrégebben nem használt lap adatai találhatók meg.

 

Szegmentálás:

1.        Védeni kell egy folyamat különböző logikai egységeit egymástól.

2.        Védeni kell a felhasználói folyamatokat egymástól, de biztosítani kell közöttük az igényelt kommunikáció lehetőségét.

3.        Védeni kell az operációs rendszert a felhasználói folyamatoktól.

 

A szegmensleíró tábla segítségével védekezhetünk a verem túlcsordulás (memória túlcsordulás), vagy a véletlen program felülírás ellen.

A folyamatok védelme egymástól: minden folyamathoz rendeljünk egy-egy szegmensleíró táblát.

 

 

 

 

Az olyan segédprogramokhoz, melyet minden folyamat használ, létrehoznak egy közös, mindenki által használható, úgynevezett globális leírótáblát (global descriptor table - GDT) a már említett, minden folyamathoz rendelt saját, lokális leírótáblán (local descriptor table - LDT) felül.

 

Az operációs rendszer védelme – prioritások:

Ahhoz, hogy egy folyamat ne írhassa felül egy másik folyamat leírótábláját, az egyes folyamatokhoz jogokat rendelünk – prioritási szint – és meghatározzuk, hogy legalább milyen prioritási szinttel kell rendelkeznie egy folyamatnak ahhoz, hogy az adott szegmenst használja.

A szegmensleíró táblát kiegészítjük egy prioritás mezővel.

 

Vergődés

Egy folyamat több időt tölt lapozással, mint hasznos tevékenységgel (kevés lapja van)

Elkerülése:

Lokális lapkiosztási algoritmus: Minden folyamatnak rögzített darabszámú lapja van. Így, ha egy folyamat vergődik, a többi (majdnem) szabadon futhat.

Munkahalmaz: viszonylag lassan változik; az op. r. olyan lapozási stratégiát követ, hogy minden folyamatnak igyekszik bent tartani a munkahalmazát; bonyolult SW és HW igény.

Laphiba-gyakoriság figyelése: kevés laphibánál a folyamatnak túl sok kerete van, ezért elveszünk tőle egyet, ill. sok laphibánál kevés kerete van, tehát adunk neki még egyet.

 

Gyorsítótár (cache) – elv: A leggyakrabban használt adatok legyenek a leghamarabb elérhető helyen.

 

Tárvédelem

Folyamatok logikai

egységeinek védelme

egymástól

Szegmensleíró tábla,

szegmenshossz mező

Folyamatok védelme

egymástól

Szegmensleíró tábla

létezése

Operációs rendszer

védelme

Szegmensleíró tábla

védelmi (prioritás) mezői