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,
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.
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.
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:
5. Elindul a
megfelelő rendszerfolyamat, végrehajtja a kívánt feladatot.
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?
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” -
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.