Ellenőrző kérdések:

1. fejezet

 

1. Ismertesse a kötegelt, az időosztásos és a valósidejű feldolgozási módok lényegét és főbb jellemzőit!

Kötegelt feldolgozás lényege: Az egyes feladatokat leíró kártyakötegek utasításait egymás után, szép sorban hajtja végre a számítógép, szakképzett operátor segítségével.

Jellemzői: az első operációsrendszer megjelenése (monitor), mágnesszalagok megjelenése, és a parancsnyelvek.

 

2. Ismertesse a megszakítások típusait, a megszakításkezelés lépéseit!

Megszakítás kérés - (interrupt request)

Megszakítások típusai:

I. Elvehető – megszakítható; II. nem elvehető – nem megszakítható.

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

Lépései:

1. Megszakításkérés, 2. Elfogadás, 3. Állapot elmentése, 4. Privilegizált mód,

5. Kiszolgáló rutin címe, 6. A kérés kiszolgálása, 7. Felhasználói mód,

8. Állapot visszaállítása.

 

3. Ismertesse az operációsrendszer feladatait! Milyen fő részekből áll a rendszermag?

Az operációs rendszer feladata:

1. Eszközkezelés (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) biztosítása.


A rendszermag részei: a rendszermag folyamatok sokasága, mely a rendszer bekapcsolásakor jönnek létre, és futásuk a rendszer leállításáig tart. 

A rendszermag, szubrutinok- és adattáblázatok együttese.

Rendszerhívások – Válaszok; Processzorkezelő; Memóriakezelő; Állománykezelő; Eszközkezelő; Megszakításkezelő; Fájlkezelő; Erőforrás kezelő.

 

4. Mennyiben javítja a rendszerek jellemzőit a több processzor alkalmazása? Mi a különbség a szimmetrikus és az aszimmetrikus elrendezések között?

Több processzor:

1.     Megnövekedett átbocsátó képesség.

2.     Erőforrás megtakarítás.

3.     Megbízhatóság.

Különbség a szimmetrikus és az aszimmetrikus elrendezések között:

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.

 

5. Mi a folyamatleíró blokk (PCB) szerepe? Milyen információ található benne?

A PCB szerepe: folyamatleíró blokk, mely azonosítja 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.

 

6. Mi az összefüggés és a különbség program és folyamat között? Hogyan tartják nyilván az operációs rendszerek a folyamatokat?

A program egy algoritmust megvalósító utasítások sorozata, a folyamat (task, process) egy éppen végrehajtás alatt lévő program.

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

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

A folyamatok közötti váltás, a folyamatleíró tábla alapján történik, melyet az operációs rendszer kezel.

 

7. Miért előnyösek a többfeladatos rendszerek? Milyen árat kellett fizetni ezekért, az előnyökért?

Amíg a processzor az egyik program számítási lépéseit hajtotta végre, a memória egy másik területére betöltődhetett az újabb munka, illetve az előző munka eredményeinek lemezre mentése alatt a processzor már az új feladaton dolgozhatott. Így a feldolgozási idő jelentősen lerövidült.

Az operációs rendszernek több feladatot kellett elvégeznie és több perifériát kellett kezelnie egyszerre.

 

8. Mik a rendszerhívások, miért van rájuk szükség? Ismertesse a rendszerhívások kiszolgálásának lépéseit!

Rendszerhívások alkalmazásával a kernel a programok erőforrások iránti igényeit elégíti ki úgy, hogy azok lehetőleg észre se vegyék azt, hogy nem közvetlenül használhatják a perifériákat.

A rendszerhívások kiszolgálása a következőképpen történik: 

1. A felhasználói folyamat legfontosabb paraméterei elmentődnek.

2. A kernel megfelelő folyamatára kerül a vezérlés.

3. A paraméterek átadásra kerülnek a vermen (stack), a regisztereken vagy valamely közösen használt memóriaterületen keresztül.

4. A processzor rendszermódba kapcsolódik át. (Ezt gyakran már a rendszerhívó utasítás maga megteszi).

5.  Elindul a megfelelő rendszerfolyamat, végrehajtja a kívánt feladatot.

6. A válaszok vagy hibakódok valamely paraméterátadásra szolgáló területre kerülnek.

7. A processzor visszatér felhasználói módba.

8. A megszakított folyamat visszakapja a vezérlést.

 

9. Mik a szálak (thread) és mi a kapcsolatuk a folyamatokkal? Melyek a szálak alkalmazásának előnyei és hátrányai?

Szálak: 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. A szálak közötti átkapcsolás nagyon gyors, de az adatcsere lehetőségének biztosítása érdekében a szálaknak általában valamely memória területen osztozniuk kell.

 

10. Ismertesse a legfontosabb Neumann-elveket! Mi a Neumann-ciklus.

Elvek:

1.     Tárolt program: az utasításokat az adatokkal azonos módon, közös, nagy kapacitású memóriában, numerikus kódok formájában kell tárolni.

2.  Kettes számrendszer: az adatok- és program kódok ábrázolására a kettes számrendszert kell alkalmazni.

3.  Vezérlőegység: szükség van egy olyan vezérlőegységre, amely különbséget tud tenni utasítás és adat között, majd önműködően végrehajtatja az utasításokat.

4.  Aritmetikai-logikai egység (ALU): a számítógép tartalmazzon olyan egységet, amely az aritmetikai műveletek mellett képes elvégezni az alapvető logikai műveleteket is.

5.  Perifériák: szükség van olyan ki/bemeneti egységekre, amelyek biztosítják a kapcsolatot az ember és a számítógép között.


 

Négy utasítás, melyet a CPU alkalmaz:

Betöltés a memóriából, értelmezés, végrehajtás, visszaírás.

 
Neumann-ciklus:

Program betöltése, PC beállítása

Utasítás lehívása

PC növelése

Végrehajtás

Vége

 

11. Milyen módszerekkel kommunikálhat a CPU a perifériákkal? Értékelje őket!

1. Lekérdezéses átvitel (polling): a processzor folyamatosan kérdezi le a periféria állapotát, és ha érdemleges információt talál, beolvassa azt. A módszer legnagyobb hátránya, hogy a processzor folyamatosan foglalt, a periféria átvitel alatt semmi mást nem képes csinálni.

2. Megszakításos átvitel (Interrupt  ReQest  -  IRQ): a periféria a számára kijelölt megszakítás-kérő vonalon értesíti a megszakítás vezérlőn keresztül a processzort, ha adatátvitelt igényel. A kérés elfogadása esetén a CPU egy időre félreteszi éppen végzett munkáját, kiszolgálja a perifériát, majd folytatja ott, ahol abbahagyta. A processzor ez esetben nincs teljesen kiszolgáltatva a perifériának, viszont a programok közötti átkapcsolás, a visszatéréshez szükséges információk elmentése adminisztrációt, szervezést igényel, időt vesz el.

3. 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. A processzor egy pillanatig sem foglalt (ez nem mondható el azonban a buszról), mindössze az átvitel megkezdése előtt a kezdő memóriacímet, és az átadandó blokk méretét kell közölnie az autonóm vezérlővel.

 

12. Melyek az interaktív rendszer legfőbb jellemzői?

1. Válaszidő.

2. Időosztás.

3. Felhasználói felület.

4. Felhasználói adminisztráció.

 

13. Milyen előnyökkel és hátrányokkal jár az elosztott rendszerek alkalmazása?

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.

        

         Előnyei:                                                  Hátrányai:

1. Rugalmasság (hardver, szoftver).          Magasabb költség.

2. Erőforrás megosztás.                                      Biztonsági problémák.

3. Sebességnövekedés.                              Helyigény.

4. Megbízhatóság.

5. Kommunikáció.

14. Ismertesse a „virtuális gép” koncepcióit! Miért tekinthető az operációs rendszer virtuális gépnek?

A virtuális gépen futó folyamatok egymástól gyakorlatilag teljesen függetlenek, mindössze kissé lassabban futnak, mintha valóban egyedül lennének. A virtualizáló kernel előnye, hogy egyszerre futhat rajta több “igazi” operációs rendszer! Párhuzamosan fejleszthető az új operációs rendszer, míg a régi alkalmazásokat futtat, melyek valóságos adatokon, élesben dolgoznak.

 

Az operációs rendszer, amely a hardver kezelését magára vállalja, egy olyan felületet biztosít, amely úgy viselkedik, mintha egy látszólagos (virtuális) számítógépen futnának programjaink.

 

15. Mutassa be az erőforrások, a felhasználói folyamatok és az operációs rendszer viszonyát!

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

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.

 

Az erőforrás kezelő gondoskodik a számítógép (rendszer) erőforrásainak (a futó folyamatok igényei alapján történő) hatékony, gazdaságos elosztásáról, illetve az erőforrások használatáért vívott versenyhelyzetek kezeléséről.

 

16. Miért fontos a „felhasználói”, és a „rendszer” üzemmód különválasztása többfeladatos rendszereknél?

Az egyes munkák egymástól függetlenek, de ugyanazt a processzort, ugyanazt a memóriát és ugyanazokat a perifériákat használják. A zavartalan működés csak abban az esetben lehetséges, ha az operációs rendszer a hardver és az egyes munkafolyamatok között áthatolhatatlan falat alkot, minden perifériaművelet csak az ellenőrzése mellett hajtható végre. 


2.     fejezet

 

1) Milyen lépésekben történik egy program elkészítése és betöltése?

       Forráskód: a forráskód elkészítésére szinte minden rendszer biztosít egy szövegszerkesztőt (editor), amely a konzolról begépelt szöveget egy állományba menti. A programozási nyelv megválasztása erősen függ az elvégzendő feladattól.

       Fordítás: a forráskód alapján azt a gépi kódú programot, amely az adott processzor által ismert utasításokat, valamint a rendszerhívásokat megvalósító szoftver megszakításokat tartalmazza a fordítóprogram (compiler) készíti el. Így keletkezik a tárgykódú (könyvtár) (object - OBJ) modul. Az operációs rendszer is tartalmazhat előre elkészített, rendszerkönyvtárakba (library - LIB, Dynamic Linked Library - DLL) rendezett, elsősorban perifériakezelő, vagy a felhasználói felület kialakítását. A modern operációs rendszereknek csak a hardver közeli részei íródnak gépi kódban, nagy részüket a kifejezetten e célra kifejlesztett C nyelven készítik.

       A szerkesztő (linker) feladata a tárgykódú modulok címeinek összehangolása, a kereszthivatkozások feloldása, a betölthető program (executable - EXE) előállítása.

       A betöltő (loader) program már az operációs rendszer magjához tartozik, feladata a végrehajtható program elhelyezése a memóriában, a bázis cím kitöltése a megfelelő értékkel, a folyamat leíró blokk elkészítése. A betöltéssel válik egy program folyamattá.

 

2) Definiálja 1-2 mondattal a következő fogalmakat:

       a) Betöltő program (loader): feladata a végrehajtható program elhelyezése a memóriában, a bázis cím kitöltése a megfelelő értékkel, a folyamat leíró blokk elkészítése.

       b) Közvetett fájlelérés: ugyanazon állományhoz több helyről is hivatkozhatunk. A hivatkozás egy kicsi fájl, mely tartalmazza a betöltendő állomány nevét, paramétereit.

       c) Keresési útvonal: az operációs rendszer egy előre megadott rendszerint veszi sorba a megjelölt katalógusokat addig, amíg a keresett állományra nem bukkan.

       d) Láncolt programfuttatás: olyan program futtatása, mely több parancsot is tartalmaz. (Olyan fájl mely több sort is tartalmaz).

       e) Automatikus programbetöltés: akkor van rá szükség, ha néhány program indítását minden bekapcsoláskor vagy belépéskor amúgy is elvégeznénk. A lefuttatandó programokat a gyökérkönyvtárba elhelyezett állomány tartalmazza.

 

 

3) Mit nevezünk egy program környezetének? Milyen jellemzők tartoznak ide?

A programok futását befolyásoló, módosító paraméterek összességét nevezzük a program környezetének.

 

 

Jellemzői:

Paraméterek: azon állományok nevei, amelyeken a programnak műveleteket kell végeznie.

Kapcsolók: melyek a működést pontosítják, vagy megváltoztatják.

Környezeti változók: az operációs rendszer beállításait jelző paraméterek.

Átirányítási adatok: a program a bemeneti paramétereit az alapértelmezett forrás helyett honnan kérje.

 

4) Hogyan támogatják az ablakozó rendszerek az adatforgalom csökkentését, az eszközfüggetlen működést?

Az adatforgalom csökkentése: különösen abban az esetben, amikor a szolgáltató és az ügyfél a világ két ellentétes pontján található, nagyon fontos, hogy a lassú és túlterhelt csatornán (például az interneten) a lehető legkevesebb adatnak kelljen átmennie. Ennek érdekében az ügyfél nem minden apró kívánságát küldi el az ablakozó rendszernek, hanem több utasítást csokorba fogva.

Eszközfüggetlen működés: az ablakozó rendszerre íródott alkalmazások, azért, hogy bármilyen kiépítettségű rendszeren futni tudjanak, nem használhatják ki az adott gépen alkalmazott perifériák speciális tulajdonságait, illetve beállításait. Az ügyfelek eszközfüggetlen üzeneteket küldenek, amelyeket az ablakozó rendszer a maga legjobb tudásának megfelelően hajt végre.

 

5) Ismertesse az ablakozó rendszer működési elvét a kliens-szerver modell alapján!

A grafikus interfész, egy szolgáltatást (szerver, server) nyújt a hozzá forduló ügyfelek (kliens, client), a folyamatok számára.

Működése:

1)    Minden futó programhoz tartozik egy ablak, melyen a kliens, az egér vagy a billentyűzet segítségével, eseményeket indít el.

2)    Az ablakozó rendszer az egér pozíciójából megállapítja, hogy melyik alkalmazással kíván kommunikálni a felhasználó, és az üzenetet a megfelelő folyamatnak küldi el.

3)    Az alkalmazás feldolgozza az üzenetet, és felkéri a szervert, hogy hajtson végre bizonyos változtatásokat.

 

6) Mik az alrendszerek? Mi az alkalmazásuk előnye és hátránya? Milyen fontosabb alrendszereket ismer?

Alrendszerek: programok, melyek az operációs rendszer szolgáltatásait bővíti, de nem része az operációs rendszernek (pl. Norton Commander).

Előnye: speciális felhasználói igényeket elégít ki, a segéd programok és az alrendszerek igény szerint megválogathatók, könnyen kezelhetők.

Hátránya: plusz erőforrásokat foglal le, ezért lassul a rendszer, kompatibilitási problémák.

Fontosabb alrendszerek: Állománykezelők (Total Commander, Krusader); programfejlesztő segédprogramok (Notepad++, Xampp-win); adatbázis kezelők; kommunikációs segédprogramok.

 

7) Melyek egy programfejlesztő alrendszer fontosabb elemei? Hogyan segítik a programfejlesztést?

Fontosabb elemei: A forráskód elkészítésére egy szövegszerkesztő (editor); fordítóprogram (compiler), mely a gépi kódot készíti el; szerkesztő (linker) feladata a betölthető program (executable - EXE) előállítása; a betöltő (loader) program, ami viszont nem alrendszer, hanem az operációs rendszer része.

 

8) Mi a fordító, a szerkesztő és a betöltő programok fő feladata?

Válasz: az előző kérdésben.

 

 

3.     fejezet

 

1) Ismertesse a hierarchikus katalógusrendszerben a relatív fájl elérés módját! Milyen speciális elnevezéseket és jelöléseket ismer?

Relatív hivatkozás: a fájl megadásának az a módszere, ahol a gyökér katalógus helyett az aktuális katalógus a kiinduló pont.

Elnevezések: root directory (gyökérkönyvtár vagy főkatalógus); subdirectory (alkönyvtár vagy alkatalógus); file (fájl).

Jelölések: „/” vagy „\” jelölik a könyvtárakat, a „.” a fájlt.

 

2) a. Mi a fájl, milyen adatait tartja nyilván az operációs rendszer? b. Milyen elnevezési szabályokat ismer? c. Mi az előnye illetve hátrány a „8+3”szabály betartásának?

a. Fájl = Állomány az adatok egy olyan csoportja, melyre együttesen, egy névvel hivatkozhatunk. Nyilvántartási adatok: fájlnév, méret, utolsó módosítás ideje, attribútumok, hozzáférési jogok, fizikai elhelyezkedés.

b. MS-DOS: név+kiterjesztés: 8+3 (nincs különbség a kis és a nagybetűk között, szóköz helyett pontot használ); UNIX: maximum 255 karakter (a nagy és a kis betűk között különbséget tesz, szóköz helyett pontot használ); Windows: név+ kiterjesztés: 250+3 (nincs különbség a kis és a nagybetűk között, rövidítésnél szóköz helyett ~ használ).

c. Könnyen megjegyezhető, az op. rendszer számára könnyen kezelhető, viszont nem választhatunk tetszőleges nevet.

 

3) Mi a katalógus (directory) célja? Milyen katalógus elrendezéseket ismer? Mik ezek előnyei és hátrányai?

A katalógus célja: adminisztratív célokat szolgáló fájl, amely a lemezen lévő fájlok adatainak listáját tartalmazza (tartalomjegyzék). Fajtái: katalógus nélküli (soros hozzáférésű média, például mágnesszalag esetén ahol a katalógus rendszer nem megvalósítható, de viszonylag lassú); egyszintű (egy fájl megkereséséhez az egész katalógust végig kell olvasni); kétszintű (áttekinthetőbb rendszer, 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); többszintű [hierarchikus] (könnyen áttekinthető, gyorsabb a bináris keresés).

 

4) Milyen fájl hozzáférési jogokat ismer? Mi a különbség a hozzáférési jogok és az attribútumok között?

Hozzáférési jogok: 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).

Hozzáférési jogok: a felhasználókra vonatkozó tulajdonságok.

Attribútumok: a fájlra vonatkozó tulajdonságok (titkosított, rejtett, tömörített stb.).

 

5) Milyen közvetett fájl elérési módokat ismer? Mikor nem alkalmazható a „hard link”?

Közvetett fájl elérés: lényege, hogy ugyanazon állományhoz több helyről is hivatkozhatunk. A hivatkozás maga is egy fájl, azonban egy elég kicsi fájl, melynek tartalma mindössze a betöltendő állomány neve, esetleg paraméterei.

1. merev láncolás (hard link), 2. lágy láncolás (soft link).

Akkor nem használható a merev láncolás, ha a hivatkozás az állandó lemezen van, viszont a fájl egy cserélhető lemezen. Ebben az estben, a lágy láncolásra van szükség.

 

6) Mutassa be a láncolt fájl elhelyezés (FAT) elvét! Melyek az előnyei és hátrányai (a legfontosabbak)?

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 - ha van következő blokk, 0 - ha ez volt az utolsó blokk.

Előnyei: nincs töredezés, mint a folytonos elhelyezésnél, a szabad helyek az utolsó blokkig kihasználhatók, a fájlok mérete a lemez fizikai határáig növekedhet. Az üres helyek keresésére sem kell időt és energiát szánni, az első szabad blokknál lehet kezdeni.

Hátrányai: sok memóriát igényel a táblázat nagysága miatt. A FAT sérülése esetén a sérült fájlt nem lehet vissza állítani. Végig kell lapozni az összes blokkot, ha valamit keresünk.

 

7) Mutassa be az indexelt fájl elhelyezés (INOD) elvét, előnyeit és hátrányait!

Egy ó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.

Előnyei: az elhelyezési információ gyorsan elérhető, kevésbé sérülékeny a tárolás is. Lehetővé teszi a közvetlen elérést.

Hátránya: hogy valamiféle becslésre van szükség, hogy mekkorák lesznek fájlok. Mekkora indextáblát kell fenntartani? Ha túlságosan nagy a tábla, pazarló, ha túlságosan kicsi, akkor ez határozná meg a maximális fájlméretet.

 

8) Milyen módon tartják nyilván az operációs rendszerek a fájlok közötti szabad területet? Hasonlítsa össze a tanult módszereket.

Üres helyek nyilvántartása: foglaltsági tábla mutatja, a táblázatnak annyi eleme van, ahány blokkja a lemeznek, és az egyes blokkok betöltöttségétől függően egyeseket vagy nullákat tartalmaz.

Folytonos kiosztás (nagygépes környezetben):

- a fájl blokkjai folytonosan helyezkednek el.

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

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

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

 

Láncolt elhelyezés (főként régi Windows): két táblázat, tetszőleges fájl méret, a leghatékonyabb hely kihasználás.

Indextábla (LINUX): egy nagy tábla és több kicsi, gyors fájl elérés, korlátozott fájl méret, közvetlen fájl elérés.

 

9) Folytonos kiosztás esetén, milyen elhelyezési stratégiák alkalmazhatók?

Válaszok: 5); 6); 7); 8).

10) Hasonlítsa össze a folytonos, a láncolt és az indexelt fájl elhelyezés előnyös és hátrányos tulajdonságait! Válaszok: 5); 6); 7); 8).

11) Folytonos, láncolt és indexelt fájl elhelyezési stratégiáknál milyen problémát okoznak a nagy fájlok elhelyezése? Milyen módszerekkel küszöbölhetők ki? Válaszok: 5); 6); 7); 8).

 

12): Definiálja az abszolút fájl elérés fogalmát! Mikor használható ez a módszer? Hátrányai!

Abszolút fájl elérés: a fájl megadásának az a módszere, ahol a gyökérkatalógustól kezdődően, az összes közbülső katalógus nevének felsorolása után jutunk el a fájlhoz. Katalógus nélküli, és egyszintű katalógusoknál használják. Nagyon lassú.

 

13): Mi az eltérés a DOS alapú és a UNIX alapú rendszerek fájlkezelése között?

A DOS FAT-et használ, a biztonság miatt két táblázatot tart fenn. A UNIX index táblázatot használ.

 

14) Milyen adatok találhatók indexelt fájl elhelyezés esetén az INOD táblában?

A fájl blokkjainak címe, az objektum típusa, tulajdonos és jogai, felhasználói csoportja, objektum mérete, létrehozás dátuma, utolsó módosítás, hány katalógus bejegyzés hivatkozik rá.

 

15) Mi a FAT-et alkalmazó fájl rendszerek legnagyobb korlátja? Hogyan lehet ezen túllépni?

A FAT tábla sérülés esetén a kettészakadt fájlt nem lehet visszaállítani. Viszont ha két táblát használ az operációs rendszer, ez kivédhető. Biztonsági szempontból a FAT táblát duplikálni kell, viszont a két tábla nincs szinkronban.

 

16) Mi az FCB (File Control Block) szerepe? Van-e valami kapcsolatban a PCB-vel (Process Control Block)?

Az FCB: Fájl Leíró Táblázat, feladata a fájlokkal végzett műveletek nyilvántartása. A PCB: Folyamat Leíró Táblázat, mely a folyamatokkal végzett műveleteket tartja nyilván. FCB: fájlazonosítás. PCB: folyamatazonosítás.

Ha a folyamat egy állományhoz fordul, a megnyitás során az operációs rendszer ellenőrzi a kívánt művelethez szükséges jogosultság meglétét. Ha minden rendben van, létrehozza a fájl leíró táblázatát (FCB-t). A folyamat a továbbiakban ezen a struktúrán keresztül végzi műveleteit.

 

4.     fejezet

 

1) Ismertesse a mágneslemezek felépítését! Milyen paraméterekkel jellemezhetők? Milyen részekből áll egy blokk megtalálásának ideje?

A mágneslemezek, mágnes réteggel borított korongokból állnak. A lemez gyorsan forog (60 s-1), a koncentrikus körök, a sávok (track) mentén tárolt adatokat sugárirányban mozgatható olvasó/író fejek olvassák, illetve rögzítik. Az egymás alatt elhelyezkedő sávokat együttesen cilindernek nevezzük. Egy tengelyen több lemez is található, fésűszerű mechanikával mozgatott fejek száma mindig kétszerese a lemezek számának. Egy-egy oldal „torta szeletei” a szektorok, a szektoron található ívek a blokkok.

Kapacitás: ~10GB- 1TB;

Elérési idő: ~ 10Mb/s;

Adatátviteli sebesség:~ 1-10Mb/s.

Fejmozgási idő+körülfordulási idő= Blokk elérési idő.

 

2) Ismertesse a tanult adattömörítési elveket! Mikor milyen módszer használata kedvező? Milyen előnyei és hátrányai vannak a tömörítésnek?

-         veszteséges tömörítők (hang vagy kép esetén),

-         veszteségmentes tömörítés (adatok esetén):

 

1.  Futási hossz-kódolás (Run Length Encoding), olyan esetekben alkalmazható a legjobban, ahol egy adatmezőben nagyon sok egyforma elem van (90%-os csökkenés).

2.  Különbségi kódolás (Difference Encoding) segítségével lassan, fokozatosan változó adatok esetén érhető el jó eredmény. A módszer lényege, hogy nem magát az adatot, hanem csak a változást tárolja (veszteséges).

3.  A Huffmann-kódolás: a módszer egy kód összerendelés, mely a tömörítetlen adatok között gyakrabban előfordulókhoz rövidebb, a ritkábbakhoz hosszabb kódot rendel.

A tömörítési módszerek tehát kisebb helyfoglalást és gyorsabb adatátvitelt eredményeznek, mely előnyökért cserébe számításigényesek. További hátrány, hogy a tömörítési eljárások csökkentik a redundanciát - ezért képesek veszteség nélkül tömöríteni - ezzel csökkentik az adatbiztonságot. Egy sérülés egy hosszabb szakasz helyreállíthatatlan hibájához vezethet.

3) Mi a lemezütemezők célja? Sorolja fel és jellemezze a tanult algoritmusokat!

Lemezütemezés - a meghajtó “felső” oldala:

A lemezütemező feladata a kérés átvétele, vizsgálata, és elhelyezése a várakozási sorban, a hatékonyság, vagy prioritási szempontok figyelembe vételével. Az átvitel lehet szinkron, vagy aszinkron.

 

A sorrendi kiszolgálás (First Come First Served - FCFS): a folyamatokat érkezési sorrendjükben szolgálja ki.

A legkisebb elérési idő módszere (Shortest Seek Time First - SSTF), azt a kérést részesíti előnyben, amely kiszolgálása a legkisebb fejmozgással kielégíthető. Ennél a módszernél könnyen előfordulhat a kiéheztetés.

Pásztázó (Scan, Look) módszer alkalmazásánál a fej állandó mozgásban van, sorban elégíti ki a mozgási irányába eső kéréseket.

Az egyirányú pásztázás (Circular Scan, C-Scan) az adatokat csak az egyik mozgás iránynál továbbít a fej, ha a legtávolabbi kérés is kielégítésre került, a fej a legelső kérésre ugrik vissza, majd kezdi újra útját.

 

4) Milyen elven működnek az optikai tárolók? Hasonlítsa össze a jellemző paramétereit a mágneslemezekével!

A CD (Compact Disk) felületén az egyes biteket spirális vonalban elhelyezkedő, kiemelkedések (pit) és a köztük lévő sík területek (land) reprezentálják. A bitek a mágneslemezektől eltérően, ahol a belső sávokban az adatsűrűség növekedett, itt egyenletes távolságokra követik egymást. Az egyenletes adatátviteli sebesség elérése érdekében ezért az optikai lemezek fordulatszáma függ az olvasó fej aktuális helyzetétől.

 

Technikai jellemzői:

Optikai lemez

Mágneslemez

Kapacitás: 650MB-14GB

Kapacitás: ~10GB- 1TB;

Elérési idő: ~ 300 ms

Elérési idő: ~ 10Mb/s;

Adatátviteli sebesség: ~ 150 Kb/s

Adatátviteli sebesség:~ 1-10Mb/s.

 

5) Mi az interleave (közbeékelődő) technika? Hogyan kell elhelyezni a merevlemezen a blokkokat, ha a cél a leggyorsabb átviteli sebesség biztosítása?

A címszámítás - az eszközmeghajtó “alsó” oldala:

Ha az adatátviteli sebesség a szűk keresztmetszet, lehetséges, hogy az egy sávon belüli szomszédos blokkok gyorsabban követik egymást, mint ahogy az előző blokk adatai feldolgozásra kerülnének. Ilyenkor a számozásnál egy vagy több blokk kimarad. Ez a közbeékelődő (interleave) technika.

A blokkokra sorszámuk alapján hivatkozhatunk, a gyors átvitel érdekében, az egymás alatti blokkok kapnak szomszédos számokat, így ezek olvasása nem igényel sem lemez, fejmozgást, tehát igen gyors.

 

 

 

6) Ismertesse a lemezmeghajtó felépítését, működését!

A kiszolgálásra váró folyamat az adatstruktúrát átadja az eszközmeghajtó “felső” moduljának. A felső szint a kérést a várakozási sorba helyezi. Az “alsó”, hardver közeli szint a várakozási sorból kiemeli a soron következő feladatot, majd a lemezegységet a megfelelő blokkra pozícionálja, a DMA vezérlőt pedig feltölti a memóriatartomány kezdőcímével, az adatok mennyiségével és az adatátvitel irányával. Az adatátvitel végét a hardver egy megszakítással jelzi az eszközmeghajtónak, az pedig a jó hírt továbbadja a kérő folyamatnak.

 

7) Hasonlítsa össze a lemezegység és a memória közötti szinkron és aszinkron adatátvitelt!

Szinkron átvitel: a kérő folyamat a művelet befejezéséig a várakozási sorban tartózkodik. Ekkor a folyamat nem érzékeli az adatátvitel sebességét, hiszen mikor újra futhat, már minden kért adat rendelkezésére áll. Ilyenkor nincs többlet adminisztráció, viszont memória terület sincs, hiszen az operációs rendszer elveszi a várakozó folyamatoktól lapjaikat és átadja azokat más, futni képes folyamatoknak. Az operációs rendszernek kell átmenetileg területet biztosítania a várakozó folyamat adatainak, majd a művelet befejezése után át kell azokat másolnia a folyamat területére.

A lemezegység aszinkron átvitelénél, a folyamat nem várakozik, viszont az operációs rendszernek biztosítania kell a területeket, és a forrásokat. A folyamat az átvitel alatt akár be is fejeződhet, és nincs, aki felszabadítsa a foglalt memóriarészt. Sok adminisztratív kötelességgel jár. A folyamatnak vigyáznia kell, hogy az érintett területekre ne írjon, onnan ne olvasson, az operációs rendszernek pedig arra, nehogy időközben más folyamatnak adja át a választott tartományt.

 

8) Hogyan függ össze a blokkméret és a tárolási veszteség nagysága mágneslemezeknél?

Minél kisebb a blokk mérete, annál kevesebb lemezterület megy veszendőbe, viszont a blokkok adatait nyilvántartó tábla túl nagy lesz, ami a lemezen és a memórián is plusz területet foglal el.

 

 

5. fejezet

 

  1) Mi az erőforrás? Hogyan csoportosíthatók? Írjon példákat!

Erőforrásnak nevezünk minden olyan dolgot, amely szükséges lehet egy folyamat futásához. A memóriaterület és a processzoridő alapvető erőforrások, de erőforrás lehet egy állomány, a perifériák, vagy egy postafiók is, melyen keresztül a folyamatok egymással kommunikálhatnak.

1/1 Csoportosítása:     

       I. elvehető (megszakítható, preemptive), a folyamatoktól az erőforrás, a folyamat vagy erőforrás károsodása nélkül elvehető. Processzor és memória.

      

II. nem elvehető (nem megszakítható, non-preemptive), az erőforrás használat félbeszakítása esetén a folyamat, vagy erőforrás sérülhet! Állományok, nyomtatók.

2/2

I.       hardver erőforrások, ezek a processzor, a memória, a nyomtató és az egyéb perifériák.

II.    szoftver erőforrások, ide a programok, adatállományok, adatbázisok tartoznak.

 

2) Milyen holtpont felszámolási módokat ismer?

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. Holtpont esetén a folyamatok körkörösen egymásra várakoznak, az erőforrás foglalási gráfban a nyilak mentén körbejárható zárt görbe, hurok jelenik meg.

 

Holtpontkezelő stratégiák: megelőzés, felszámolás.

Felszámolás: első lépés: holtpont detektálása, holtpontdetektáló algoritmussal.

            Első lehetőség: az összes holtpont megszüntetése (nem biztos, hogy ez a jó megoldás, mert nagy veszteséggel járhat).

            Második lehetőség: áldozat választás (ebben az esetben legalább egy folyamat „életben” marad).

 

3) Mit lehet tenni egy létre jött holtpont felszámolása érdekében? Ld. előző kérdés.

 

4) Melyek lehetnek az áldozat kijelölés szempontjai holtponti állapotban lévő folyamatok estén?

       1. Melyikkel hány erőforrást nyerek?

       2. Hány további erőforrást igényel még?

       3. Mennyi már elhasznált CPU időt és I/O munkát vesztek a megszüntetéssel?

       4. Mennyi idő van még hátra a futásából?

       5. Ismételhető / nem ismételhető folyamat-e?

       6. A folyamat prioritása!

       7. Megszüntetése hány további folyamatot érint?

Lehet, hogy nincs is szükség a folyamat teljes megszüntetésére, elég, ha néhány erőforrást elveszünk tőle.

 

5)-6) Mutassa be a holtpont megelőzési stratégiák működési elvét!

Milyen holtpont megelőzési módszereket ismer? Jellemezze röviden!

A holtpont kialakulásának feltételei:

1)    kölcsönös kizárás: a nem megosztható erőforrásokat egyszerre csak egy folyamat használja.

2)    várakozás közben lekötés történik: az erőforrásokra várakozó folyamatok várakozás közben lefoglalva tartanak erőforrásokat.

3)    rablás nincs: erőforrások melyek erőszakkal nem elvehetőek.

4)    ciklikus várakozás van: a folyamatok körkörösen egymásra várnak.

Ezeknek, a feltételeknek egyszerre kell teljesülniük a holtpont kialakulásához!

      

       I. A holtpont kialakulásáért felelős feltételek egyikének megakadályozása.

       II. Egyetlen foglalási lehetőség (One-shot allocation): csak az a folyamat foglalhat erőforrást, amelyik még egyetleneggyel sem rendelkezik.

III. Rangsor szerinti foglalás (Hierarchical allocation): az erőforrások osztályaihoz egy-egy növekvő sorszámot rendelünk úgy, hogy a leggyakrabban használt erőforrások kapják a legkisebb sorszámokat. Ha egy folyamatnak egy osztályon belül több erőforrásra van szüksége, azokat csak egyszerre igényelheti. A megelőzési stratégia azon az elven alapul, hogy a folyamatok rangsor szerint növekvő sorrendben igényelhetnek erőforrásokat.

       IV. A bankár algoritmus (Banker’s algorithm) lényege: sohase elégítsünk ki egy igényt, ha az nem biztonságos állapotot eredményez.

Biztonságos állapot: Egy rendszer állapota akkor biztonságos, ha létezik egy olyan sorrend, amely szerint a folyamatok erőforrás igényei kielégíthetőek.

 

7) Mi a holtpont? Ismertesse a holtpont kialakulásának feltételeit! Ld. előzőek.

 

8) Mi a kiéheztetés? Hogyan függ össze a kiéheztetés veszélye és az alkalmazott erőforrás-kezelő stratégia?

Kiéheztetés (Starvation): egy folyamat – az erőforrás kezelő stratégiája miatt – beláthatatlan ideig nem jut erőforráshoz. Azokkal a folyamatokkal fordul elő, melyek nem rendelkeznek saját erőforrással, és túl kicsi a prioritásuk.

 

Amíg az egyik folyamat használhatja az összes erőforrást, a várakozó folyamatok elszaporodhatnak a várakozási sorban, a várakozási sor hosszúra nyúlhat. Az erőforrások felszabadulása után az erőforrás kezelő valamilyen algoritmus alapján dönt arról, hogy melyik folyamat következik. Ha ez a stratégia nem kellően demokratikus, vannak kiemelt és háttérbe szorított folyamatok (prioritásos módszer), előfordulhat, hogy egy folyamat hiába áll sorba, mindig akad egy, amelyik megelőzi.

 

9) Mikor mondjuk, hogy egy állapot (holtpont szempontjából) biztonságos?

Ld.: 5-6 kérdés.

 

10) Ismertesse a bankár algoritmus működési elvét!

Az algoritmus úgy működik, hogy egy beérkezett erőforrásigény teljesítése előtt az erőforrás kezelő kiszámolja, hogy ha az igényt teljesítené, akkor a rendszer biztonságos állapotban maradna-e. Ha igen, teljesíti az igényt; ha nem, akkor a folyamat várakozólistára kerül. Ha egy folyamat visszaad erőforrásokat, akkor az erőforrás kezelő végignézi a várakozó listán levő folyamatokat, hogy most már kielégíthető-e valamelyik igénye. 

 

 

11) Mutassa be a bankár algoritmus alkalmazásának előnyeit, hátrányait és korlátait!

Előnyei: biztosítja a holtpontmentességet, elviekben nincs kiéheztetés.

Hátránya: bonyolult és időigényes számítást igényel, a rendszert túlbiztosítja és az erőforrásokat, nem lehet maximálisan kihasználni.

Korlátai: csak akkor használható, ha előre tudjuk, hogy a folyamatnak hány erőforrásra van szüksége. Nagyon sok naplózási folyamatra van szükség.

 

12) Mi az erőforrás foglalási gráf? Hogyan jelentkezik a holtpont az erőforrás foglalási gráfon?

Az erőforrás foglalási gráf (resource allocation graph) szemléletes segédeszköz az erőforrás igények és foglaltságok állapotának ábrázolására. A gráf a folyamatok (körök) és erőforrások (téglalapok) viszonyát mutatja. Ha egy folyamat erőforrást igényel, ezt az állapotot, a folyamatot ábrázoló körből az igényelt erőforrást ábrázoló téglalapra mutató nyíl jelzi. Ha egy erőforrás egy folyamat birtokában van, a nyíl iránya fordított, azaz az erőforrásból mutat a folyamat felé.

 

Erőfoglalási gráf:

 

                   

 

                  

 

„A” kéri az „I-es” erőforrást, „B” birtokolja az „I-es” erőforrást. „B” igényli a „II-es” erőforrást, „A” birtokolja a „II-es” erőforrást. A folyamat befejezéséhez, mindkettőnek a másik által birtokolt erőforrásra lenne szüksége: holtpont.

 

 

13) Mi a postaláda? Hogyan használható a P és a V primitív postaláda vezérlésre?

Postaládának nevezzük azt a memória területet, melyen két folyamat osztozik – termelőfolyamat (adatokat ír a memória területre);  fogyasztó folyamat (adatokat olvas a memória területről). Primitív: oszthatatlan „atomi” művelet. „P” primitív a memória foglaltságát, jelző szemafort foglaltra állítja, még a „V” primitív szabadra állítja a szemafort.

 

 

14) Mit csinál a P és V primitív? Részletezze felépítésüket!

Ha „P” és „V” primitívet használunk, osztatlan műveletről beszélünk.

Felépítésük: „P” - 1. a szemafor olvasása, 2. a beolvasott érték vizsgálata, 3. ha szabad: a szemafor, 4. ha foglalt: vissza 1-re. - 5. az erőforrás használata (írás a közös memóriába) - „V” - 6. a szemafor szabadra állítása. A „P” és „V” primitívek használatával kizárható, hogy két folyamat egyszerre kezdje el használni a postaládát.

 

15) Mi a kölcsönös kizárás? Adjon példát olyan esetre, ahol a kölcsönös kizárást biztosítani kell! Hogyan lehet ezt megvalósítani?

Kölcsönös kizárás: az, az erőforrás, mely a folyamatok számára nem megosztható.

Pl.: két folyamat nem használhatja úgy a nyomtatót, hogy az egyik sort az egyik nyomtatja, a másikat a másik. Úgy nevezett szemaforral lehet megvalósítani, mint a vasútnál. Ha a szemafor foglaltat mutat, másik folyamat nem férhet hozzá az erőforráshoz, csak ha már szabad.

Ez a szemafor egy változó, a memória egy olyan helyén, amelyet mind a termelő, mind a fogyasztó elér. A szemafor, két dolgot képes jelezni – foglalt; szabad – ebben az esetben, bináris szemaforról beszélünk, van még osztatlan művelet primitívek használatával, valamint a nembináris szemafor.

 

16) Milyen esetekben van szükség nembináris szemaforra? Hogyan általánosítható a P és V primitív ennek kezelésére?

Abban az esetben van szükség rá, ha nem csak foglalt – szabad jelzésre használjuk, hanem arra is, hogy a folyamat értesüljön arról, hogy a postaládában van-e üres hely, vagy megtelt. Mivel a „P” primitív a foglalt értéket 1-gyel csökkenti (1-ről – 0-ra), így számlálóként is használható, ugyan így a „V”primitív, csak az, az értéket 1-gyel növeli.

 

6. fejezet

 

Folyamat- és processzorkezelés

 

1)    Ábrázolja a folyamatok lehetséges állapotait, valamint az átmeneteket! Milyen hatások idézhetik elő az egyes állapotátmeneteket?

Az alapállapotok: 1.  FUTÁSRA KÉSZ (ready); 2.  FUT (running);

3.  VÁRAKOZIK (blocked);

 

Az állapot átmenetek:

1.  Elindul (dispatch): a központi egység felszabadulása esetén az alacsonyszintű ütemező a KÉSZ állapotban lévő folyamatok közül választja ki azt, amelyik a FUT, állapotba kerülhet;

2.  Megszakad (timer runout): ha a futó folyamat számára biztosított idő lejár, visszakerül a FUTÁSRA KÉSZ állapotba;

3.  Vár (wait, block): amennyiben olyan erőforrásra van szüksége, amely éppen foglalt, a FUT állapotból, a VÁRAKOZIK állapotba jut;

 4.  Feléled (awake): a várt esemény bekövetkezése esetén a folyamat,

FUTÁSRA KÉSZ állapotba kerül, újra beáll a processzorra várakozó folyamatok sorába.

5. Felfüggesztett állapot

 

2)    Hasonlítsa össze a tanult alacsony szintű ütemezési algoritmusokat!

1. Előbb jött, előbb fut – FCFS: A folyamatok érkezési sorrendben futhatnak.

Előny: egyszerű, biztos.

Hátrány: a folyamatok érkezési sorrendjétől nagymértékben függ a várakozási idő.

2. Legrövidebb előnyben – SJF: A folyamatok közül először a legrövidebb fut.

Előny: a legrövidebb várakozási időt adja.

Hátrány: a hosszú folyamatokkal mostohán bánik.

3. Körben járó – Round Robin (RR): Minden folyamat egy adott időszeletig futhat, majd újra sorba kell állnia.

Előny: demokratikus, a legrövidebb a válaszideje.

Hátrány: jelentős adminisztrációt igényel.

 

3)    Ismertesse az alacsony szintű CPU ütemezés feladatát! Milyen paraméterekkel jellemezhetők az egyes algoritmusok?

Az alacsony szintű ütemezés célja, hogy az operatív tárban lévő, kiszolgálásra váró folyamatok számára biztosítsa a processzor használatának jogát, azaz tegye lehetővé az azokban található utasítások végrehajtását. Az alacsony szintű ütemezővel szemben támasztott legfőbb követelmény a gyorsaság, valamint, hogy a processzort a futásra kész folyamatok között igazságosan és hatékonyan ossza el.

Várakozási idő: megadja, hogy a folyamat mennyi időt töltött tétlen várakozással; Átfutási idő: a folyamat érkezésétől annak befejezéséig eltelt idő;

Válaszidő: az, az idő, ami a folyamat rendszerbe állításától az első futás kezdetéig telik el. Interaktív rendszereknél nagyon fontos, hogy a felhasználók megnyugodjanak, programjuk elindult, nincs nagyobb baj.

 

4)    Mi a kapcsolat az egyes (folyamat) ütemezési szintek között?

A magas szintű ütemező választja ki a háttértárolón lévő programok közül azt, amelyik az operációs rendszer közvetlenebb felügyelete alá kerülhet, elkezdődhet a végrehajtása, azaz folyamattá válhat, futásra kész. Ha túlságosan sok folyamat került futásra kész állapotba, előfordulhat, hogy egyiknek sem jut megfelelő mennyiségű erőforrás, ekkor a középszintű ütemezőhöz kerül, mely felfüggeszti a folyamatot. Ha nem kell perifériára várni, a rendszer is megfelelően viselkedik, és megszakítás sem jön éppen, akkor az alacsonyszintű ütemező veszi át a folyamatot, hogy kiossza a processzor időt, azaz a processzor használatának jogát.

 

 

5)    Mi a környezetváltás (context switching)? Mi idézhet elő környezetváltást? Milyen műveleteket kell ilyenkor az operációs rendszernek végrehajtania?

A PCB-k, illetve a benne foglalt adatok képezik az operációs rendszer folyamatainak környezetét, kontextusát (context). Ha a rendszerfolyamat egy másik felhasználói folyamattal akar foglalkozni, a környezetét kell átkapcsolni.

Ez a művelet a környezetváltás (context switching). A környezetváltás előtt természetesen az előző folyamat állapotában beállt változásokat, regisztertartalmat, változók értékét, illetve a használt perifériák állapotát a lecserélni kívánt folyamat PCB-jében regisztrálni kell. (PCB: Folyamatleíró blokk)

 

6)    Mi a magas szintű illetve a közbenső ütemező feladat?

A főütemező (high-level scheduler) vagy magas szintű ütemező választja ki a háttértárolón lévő programok közül azt, amelyik az operációs rendszer közvetlenebb felügyelete alá kerülhet, elkezdődhet a végrehajtása, azaz folyamattá válhat. A főütemező működésére az operációs rendszer időléptékével mérve viszonylag ritkán van szükség, ezért hosszú távú ütemezőnek (long-term scheduler) is nevezik.

A középtávú, vagy közbenső szintű ütemező (medium-term scheduler): folyamatosan figyeli a rendszer terhelését, és ha a normális működés zavarait észleli, beavatkozik, azaz felfüggeszti a folyamatokat, amíg a normális működés helyre nem áll.

 

7)    Ismertesse a körben járó (round robin) algoritmus alapgondolatát! Mi a fő előnye, illetve hátránya?

Az RR módszer lényege, hogy egy bizonyos időszelet eltelte után az ütemező elveszi a folyamattól a processzort (az algoritmus tehát, az eddigiekkel szemben preemptív). Az addig futó folyamat a várakozási sor végére kerül, a következő folyamat futhat, de ő is csak egy ideig.

Előnye: demokratikus, a legrövidebb a válaszideje,

Hátránya: jelentős adminisztrációt igényel.

 

8)    Mi az előnyük, illetve hátrányuk a prioritásos algoritmusnak? Hogyan kezelhető a prioritás időosztásos rendszerekben?

A prioritásos rendszereknél fennáll a veszélye annak, hogy a kevesebb joggal rendelkező folyamatok háttérbe szorulnak, nem futhatnak. A prioritás azonban a gyengék javát is szolgálhatja. Ha a várakozási sorban lévő folyamatok prioritását idővel automatikusan növeljük, előbb-utóbb az alacsony jogú, hátrányos helyzetű folyamatok is futhatnak.

 

 

 

 

 

 

7. fejezet

 

1) Mutassa be a címszámítási eljárást lapszervezésű virtuális tár esetén!

Osszuk fel az operatív memóriát és a virtuális memóriát is egyforma méretű, viszonylag kis egységekre, lapokra. Az operatív memóriában hozzunk létre minden folyamathoz egy laptáblát, amely minden sorában a lap operatív tárbeli kezdőcíme mellett tartalmazzon még egy olyan vezérlés jellegű bitet is, amely azt mutatja, hogy az adott lap bent van-e (present) az operatív tárban vagy nincs. 

 

 

2) Ismertesse a számítógépek tárhierarchiájának elemeit, azok jellemzőit!

Háttértárolók: nagy kapacitású, lassú. Operatív tár (memória): gyorsabb, de kisebb kapacitású, mint a háttértár. Chache memória (gyorsítótár).

 

3) Ismertesse a virtuális tárkezelés lényegét!

A felhasználó által kiadott memória címek egy háttértáron (virtuális tárban) levő címeknek felelnek meg, és e címtartománynak csak bizonyos részei találhatóak meg az operatív memóriában. A multiprogramozott rendszerekben, ha a folyamatoknak csak egy-egy részét tároljuk az operatív memóriában, akkor több folyamatot futtathatunk párhuzamosan.

 

4) Milyen előnyös tulajdonságokkal rendelkezik a „második esély” (SC) és a „mostanában nem használt” (NUR) technika? Hogyan működnek?

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

                   Hátrány: HW-t igényel és elég bonyolult is

                   Előny: sokkal gyorsabb, mint az LRU

2.     NUR - Mostanában nem használt: 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.

Előny: viszonylag jól közelíti az optimálist,

Hátrány: lassú, HW-t igényel.

 

5) Mi a lényegi különbség a lapszervezésű és a szegmensszervezésű tárkezelés között? Egyszerre is alkalmazható a kettő?

Lapozásnál: fizikai tördelés, gyors. Szegmentálás: logikai tördelés, biztonságos.

Igen, használható együtt, így biztonságos és viszonylag gyors tárkezelést kapunk.

 

 

 

 

6) Miért van szükség tárvédelemre? Hogyan segíti a szegmensszervezés a védelmi funkciók ellátását?

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.

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.

 

7) Milyen lapcsere stratégiákat ismer? Jellemezze őket?

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

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.

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

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.

NUR (Not Used Recently) - Mostanában nem használt -: 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.

 

8) Mikor mondjuk azt, hogy egy folyamat vergődik (trashing)?

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

 

9) Mutassa be a címszámítási eljárást szegmentálás estén!

• A folyamat által adott cím a LOGIKAI cím

• A szegmensleíró tábla CS-hez tartozó sorában ellenőrizzük, hogy a folyamat jogosult-e használni a szegmenst, illetve, hogy a cím benne van-e a tartományban.

• Kiszámítjuk a szegmens: eltolás alapján a LINEÁRIS címet (pl. szegmens kezdőcím+offset)

• A lineáris cím a lapozó egység bemenete, felosztódik laptábla címre (pl. 6 bit -> 4kB) és lapon belüli offset-re (eltolás mértékére), majd a laptábla által tartalmazott fizikai lapcímet összeillesztve az eltolással, megkapjuk a FIZIKAI címet.

 

 

 

 

10) Mi a belső illetve külső elaprózódás? Hol lépnek fel? Hogyan lehet ellenük küzdeni?

Külső elaprózódásról (external fragmentation), akkor beszélünk, ha egy befejezett folyamat után egy másikat tölt be az operációs rendszer a memóriába, nyilván ez kisebb lesz (nagyobb nem lehet, mert nem fér bele), így lyukak maradnak. Tömörítő algoritmussal kivédhető, de lassú.

Belső elaprózódás (internal fragmentation): a memóriát partíciókra osztjuk. Ha a partíció túl nagy, esetleg sok kihasználatlan üres hely marad a memória partíció területén belül. Rugalmas partíciókkal kivédhető.

 

11) Mi a laphiba? Milyen lépésekből áll a laphiba kezelése? Hogyan lehet gyorsítani a laphiba kezelést?

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!

Szükséges lépések:

– Ellenőrizzük, hogy az adott folyamat használhatja-e az adott címet.

– A lapot behozzuk a háttértárról az operatív tárba (természetesen előtte egy lapot lehet, hogy ki kell menteni) és módosítjuk a laptáblát.

– Meg kell ismételni annak az utasításnak a végrehajtását, ahol a laphiba fellépett.

Lapcsere stratégiák: laphibák csökkentésére algoritmusokat használnak.

 

12) Hogyan lehet gyorsítani a címszámítási eljárást lapszervezésű virtuális tár estén?

Ha a betöltött lapra nem írtunk, és helyszűke miatt törölni kell a memóriából, nem kell elmenteni, mert a másolata a háttértáron meg van, ezzel gyorsíthatjuk a címszámítási eljárást. A jelző bitet, mely azt jelzi, hogy írtunk-e a lapra "piszkos" (dirty) bitnek hívják.

 

13) Hogyan lehet gyorsítani a címszámítási eljárást szegmentálás estén?

Úgy, hogy a lapszervezésű tárkezeléssel együtt használjuk.

 

14) Hol és miért van szükség címszámítási kikerülő tár (TLB) használatára? Hogyan Működik?

Az utoljára használt néhány lap címét egy speciális gyorstárban (TLB) (asszociatív memória) tárolják. A laptáblán keresztüli címszámítással párhuzamosan keresünk a TLB-ben is, ha ott megtaláljuk, leállítjuk a laptáblán keresztüli keresést. Így gyorsíthatjuk a memóriakezelést.

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

 

 

 

15) Mi a lokális és a globális leírótábla? Mi szerepel bennük? Hogyan valósítható meg segítségükkel a folyamatok együttműködése tárvédelem mellett?

Szegmensleíró táblák:

GDT (global descriptor table) mindenki által használható, globális leírótábla.

LDT (local descriptor table) minden folyamathoz saját leírótábla, lokális leírótábla.

Hozzáférési jogokat jelző bit, vagy bit csoport található bennük, mely azt jelzi, hogy az adott folyamat, vagy felhasználó milyen jogokkal rendelkezik.

Minden folyamathoz prioritási szintet rendelünk, melyet a szegmensleíró táblában is nyilván tartunk. A prioritás (priority) mező is a védelmi bitek között helyezkedik el. A szegmensek adatait, amelyek az adott folyamatra vonatkoznak, de csak az operációs rendszer számára kellenek, tegyük a folyamat lokális szegmensleíró táblájába. A folyamatleíró blokkot (PCB) folyamat-, vagy task állapot szegmens (task state segment - TSS) tartalmazza.

Ezeknek, a szegmenseknek pedig adjunk olyan prioritási szintet, hogy csak az operációs rendszer férhessen hozzájuk, maga a folyamat ne. Így védhetjük meg a folyamatokat egymástól.

 

16) Értékelje a tanult lapcsere stratégiákat azok gyakorlati megvalósítása szempontjából!

OPT: a gyakorlatban megvalósíthatatlan.

FIFO algoritmus, bár egyszerűen implementálható, de hatékonyságában messze elmarad az optimumtól.

LRU: kevés laphibát eredményez, de cserébe az adminisztrációs terhek szinte elviselhetetlenül növekedtek.

SC: FIFO alapú, de kevesebb laphibát okoz.

Mostanában nem használt: az LRU módszer enyhített, könnyebben megvalósítható változata. Kevesebb adminisztációt használ, mint a LRU.

 


8. fejezet

 

1) Mutassa be a szinkronizáció három formáját (kölcsönös kizárás, randevú, precedencia)!

Kölcsönös kizárás, azaz az, hogy két folyamat közül egy időben csak az egyik - de mindegy, hogy melyik - futhat.

Randevú: az "előbb érkező" folyamatnak meg kell várnia a másikat, majd végrehajtásuk - többnyire paraméter-átadás után - újra szétválik.

Precedencia, vagyis a sorrend biztosítása. A precedencia itt azt jelenti, hogy egy bizonyos folyamat adott utasításcsoportjának végrehajtása meg kell, hogy előzze egy másik folyamat másik adott utasításcsoportjának végrehajtását. (Például egy üzenetet előbb be kell tenni egy postaládába, és csak ezután lehet kiolvasni onnan.)

 

2) Mi célt szolgált a precedenciagráf? Melyek az előnyei, illetve hátrányai?

A precedenciagráf megmutatja, hogy a folyamatokat hol kell párhuzamosítni, szinkronizálni és hol kell utasításokat egymás után végrehajtani.

A precedenciagráf csomópontjaiban folyamatok vannak, és egy csomóponttól nyíl mutat egy másik csomópontig akkor, ha az első csomópont által reprezentált folyamat végrehajtása meg kell, hogy előzze a másik csomópont által reprezentált folyamatét. Tehát a nyilak két folyamat végrehajtási sorrendjét határozzák meg.

 

3) Hogyan készíthető párhuzamos program a fork/join szerkezet segítségével?

A fork és join utasítások a számítógép számára érthetően írják le a párhuzamosítási lehetőségeket.

A fork utasítás segítségével a végrehajtás pontosan két, egymással párhuzamosan végrehajtható ágra osztható szét.

Egymással párhuzamosan futó ágakat a join utasítás segítségével egyesíthetünk.

A join utasítás tetszőleges számú ágat egyesíthet, az egyesítendő ágak számát az utasítás paraméteréül megadandó számláló értéke mutatja meg.

 

4) Mi a fork/join technika alkalmazásának előnye és hátránya?

A fork és join utasítások a számítógép számára érthetően írják le a párhuzamosítási lehetőségeket.

 

5) Miért áttekinthetőbb a parbegin/parend struktúra, mint a fork/join technika?

A parbegin - parend utasításpár tulajdonképpen konkurensen végrehajtható folyamatok zárójelezését jelentik, ami azt jelenti, hogy a parbegin és a parend között felsorolt folyamatok egymással párhuzamosan végrehajthatók. A parbegin - parend utasításokkal szemléletes, áttekinthető kódot kapunk.

 

6) Mely precedenciagráfok nem írhatók le parbegin/parend módszer szerkezettel?

Ha egy folyamat után szétváló két ág nem egy helyen egyesül, hanem két helyen, akkor parbegin/parend módszerrel nem lehet leírni a precedenciagráfot.

A parbegin - parend utasítások természetéből fakadóan viszont következik, hogy az egy ponton szétváló ágak egy ponton kell, hogy találkozzanak újra.

 

7) Hogyan szolgálják a szemaforok a parbegin/parend módszer általánosítását?

A parbegin - parend utasítások szemaforokkal, való kiegészítésével minden gráf leírható, a párhuzamosan futó folyamatok a primitívek segítségével lefuttathatók, és az operációs rendszer is megérti.

 

8) Hasonlítsa össze a párhuzamos futó folyamatok három leírási módját, precedenciagráfot, a fork/join és a parbegin/parend szerkezeteket!

A precedenciagráf segítségével áttekinthetően lehet ábrázolni a folyamatokat, viszont a számítógép nem tudja értelmezni.

A fork/join módszert megérti a számítógép, viszont a több párhuzamos folyamat ábrázolása szinte áttekinthetetlen.

A parbegin/parend módszer a szemafor segítségével minden gráf leírható és áttekinthető, tehát univerzális eszköz.