1. Folytonos tárallokálás, stratégiák, fragmentáció Folytonos tárallokálásnál egy program számára kiosztható tárterület folytonos. Ezt a mai operációs rendszerek nem használják. Memóriakezelés: Bittérképpel: A memóriát kisebb egységekre osztjuk fel, melyekhez hozzá rendelünk egy bit, amely foglaltságáról ad információt. Túl kis részek esetén nagyméret bittérkép kell, nagyobb részek használat esetén sok lesz a felesleg. Láncolt listával: A szab és a foglalt területeket listába f zzük, kezd cím szerint rendezve. Stratégiák: First-fit: Els megfelel méret hely lefoglalása. Next-fit: A first-fit olyan változata mely megjegyzi az els lyuk helyét Best-fit: A legkisebb megfelel méret hely lefoglalása. Worst-fit: A legnagyobb lyukat választja ki. További gyorsítási lehet ségek: Külön lyuk lista létrehozása, karbantartás bonyolódik. A leggyakrabban kért méretekhez külön lista építése, bonyolultabb karbantartás. Fragmentáció: Küls : Az a jelenség, amikor nyilvántartott lyukak száma n , méretük pedig csökken. Bels : Az a jelenség, amikor az allokált területen belül maradnak kihasználatlan helyek.
-1-
2. Az operációs rendszerek parancsnyelvi alrendszere, scriptek, rendszerhívások. Parancsnyelvi alrendszer: Az operációs rendszernek sok parancsot, vezérl utasítás formájában lehet megadni. Ezek a vezérl utasítások például az alábbi területekhez tartozhatnak: folyamat létrehozása és kezelése, I/O kezelés, másodlagos és operatív tár kezelés, fájl rendszer elérése, védelem, hálózat kezelés...stb. Az operációs rendszernek azt a programját, amelyik a vezérl interpretálja a rendszert l függ en más és módon nevezik: Vezérl kártya interpreter (Job Control). Parancssor interpreter (Command-Line - DOS) Héj (burok, shell - UNIX)
utasításokat beolvassa és
Scriptek: Egy shell script nem más mint shell-parancsok sorozata, amelyeket az újrafelhasználás jegyében egy file-ba írunk. Mivel a shell programozható, shell scriptjeinkkel könnyedén nagyon hasznos programokat írhatunk. Más nyelvekhez hasonlóan tartalmazhat változókat és vezérlési szerkezeteket, valamint argumentumok fogadására is képes. El nyei: A scriptjeinket nem kell lefordítani. A hibakeresés egyszer (sh v/-x/-n scriptnév). I/O tetsz legesen átirányítható. A scriptek ki- és bemenete összeköthet (cs vezeték). Rendszerhívások: Ha a futó program valamilyen rendszerszolgáltatást igényel, ezt rendszerhívás formájában teheti meg. Általában assembly szint utasításként jelen van az architektúrában. Magas szint , rendszerprogramok írására szánt programozási nyelvekben is beépítették (C). A paraméter átadás módjai: regiszterben, paraméter-táblázatban, veremben (push, pop), a módszerek kombinálásával.
-2-
3. Az operációs rendszer f bb komponensei Folyamatkezelés: A folyamat egy végrehajtás alatt álló program. Hogy feladatát ellássa er forrásokra van szüksége (processzor id , memória, állományok I/O berendezések). Az operációs rendszer feladata: Folyamatok létrehozása és törlése Folyamatok felfüggesztése és újraindítása Eszközök biztosítása a folyamatok kommunikációjához és szinkronizációjához. Memória (f tár) kezelés: Bájtokból álló tömbnek tekinthet , amelyet a CPU és az I/O közösen használ. Tartalma törl dik rendszerkikapcsoláskor és rendszerhibáknál. Az operációs rendszer feladata: Nyilvántartani, hogy az operatív memória melyik részét ki (mi) használja. Eldönteni melyik folyamatot kell betölteni, ha memória felszabadul. Szükség szerint allokálni és felszabadítani a memória területeket a szükségleteknek megfelel en. Másodlagos tárkezelés: Nem törl dik, és elég nagy hogy minden programot tároljon. A merevlemez a legelterjedtebb formája. Az operációs rendszer feladata: Szabadhely kezelés. Tárhozzárendelés. Lemez elosztás. I/O rendszerkezelés: Puffer rendszer. Általános készülék meghajtó (device driver) interface. Speciális készülék meghajtó programok. Fájlkezelés: Egy fájl kapcsolódó információk együttese, amelyet a létrehozója definiál. Általában program és adatfájlokról beszélünk. Az operációs rendszer feladata: Fájlok és könyvtárak létrehozás és törlése. Fájlokkal és könyvtárakkal történ alapmanipuláció. Fájlok leképezése a másodlagos tárra, valamilyen nem törl d , stabil adathordozóra. Védelmi rendszer: Olyan mechanizmus, mely az er forrásokhoz való hozzá férést felügyeli. Az operációs rendszer feladata: Különbséget tenni jogos (authorizált) és jogtalan használat között. Specifikálni az alkalmazandó kontrolt. Korlátozó eszközöket szolgáltatni.
-3-
Hálózat elérés támogatása: Az elosztott rendszer processzorok adat és vezérl vonallal összekapcsolt együttese, ahol a memória és az óra nem közös. Adat- és vezérl vonal segítségével történik a kommunikáció. Az elosztott rendszer a felhasználóknak különböz osztott er források elérését teszi lehet vé, mely lehet vé teszi: a számítások felgyorsítását, a jobb adatelérhet séget, a nagyobb megbízhatóságot. Parancs interpreter alrendszer: Az operációs rendszernek sok parancsot vezérl utasítás formájában lehet megadni. Vezérl utasítások minden területhez tartoznak (folyamatok, I/O kezelés ). Az operációs rendszernek azt a programját, amelyik a vezérl utasítást beolvassa és interpretálja a rendszert l függ en más és más módon nevezhetik: Vezérl kártya interpreter. Parancs sor interpreter (command line). Héj (burok, shell).
-4-
4. Futtató rendszer A futtató rendszer a felhasználói programok azon része, mely az alapvet szolgáltatásokért felel s. A futtató rendszerben, olyan szolgáltatásokat gy jtenek össze, melyek nélkül a programok írása nagyon körülményes lenne. A szolgáltatások gyakran eljáráshívással vehet k igénybe. A futtató rendszer és a lefordított program többi része az operációs rendszer számára megkülönböztethetetlen. A futtató rendszer a következ területeken jelenhet meg: Memóriakezelés: A program számára fenntartott memória terület menedzselését végzi. Felel s a dinamikus betöltésért. Fájlkezelés: A mai operációs rendszerekben a blokkolás és szegmentálás megvalósítása, valamint a speciális fájlszerkezetek létrehozása a futtató rendszer feladata Felel s a dinamikus betöltésért. Kivételkezelés: Egyes programhibákat saját hatáskörében dolgozhat föl. Végezhet ellen rzéseket, melyekkel elkerülhet k egyes hibák. tartalmazza az alapértelmezett kivételkezel t (ha van). Paraméterátadás: Név és szöveg szerinti paraméterátadásnál a paraméterek behelyettesítése a kódba futási id ben történik, ennek az elvégzése is a futtató rendszer dolga. Egyedi magas szint feladatok: Megvalósíthat egyedi magas szint feladatokat, rész vehet a szinkronizációban és a kölcsönös kizárásban. Rendszerhívások: Kényelemes réteget biztosíthat a programozó és a rendszerhívások konkrét formája közt.
-5-
5. Folyamatok és szálak. Állapotok. Folyamatvezérl blokk. Hosszú és rövid ütemezés. Folyamatok: A folyamat végrehajtás alatt álló program. Állapotai: új futásra kész, futó, várakozó, halott. Minden folyamathoz tartozik egy processzusvezérl blokk, mely az alábbi területekr l ad információkat: Processzus állapota Program címszámláló értéke (PC) CPU regiszterek tartalma Memória foglalási adatok Account/User adatok I/O státusz információt (a folyamathoz rendelt I/O er források, állományok listája) Processzus azonosító (PID) Folyamatok ütemezése: Cél, hogy mindig legyen legalább egy processzus, amelyik képes a kész processzort lefoglalni. Ütemezési sorok: Munka sor (job queue) Készenléti sor (ready queue) I/O-ra váró sor (device queue) Ütemez k: Hosszú távú ütemez (long term scheduler): Itt d l el, hogy ki kerül a munka sorba, a gyorsaság nem fontos. Rövid távú ütemez (short term scheduler): Itt d l el kikapja meg legközelebb a CPU-t, a gyorsaság fontos. Szempontok: I/O és CPU igényes folyamatok Context-switch (környezet váltás) ideje Szálak: A szál a CPU kiszolgálás alapegysége, jellemz i: Program címszámláló Regiszterek tartalma Verem tartalma Egy szál megosztva használja a vele egyenrangú szálakkal a kód és adat szekcióját, az operációs rendszer által biztosított er forrásokat. Ezek együttesét task-nak nevezzük. Egy hagyományos processzus nem más, mint egy task egyetlen szállal. El ny, hogy csökken a context-switch ideje. Több szálat tartalmazó task esetén, amíg az egyik szál várakozik, addig a másik futhat.
-6-
6. Folyamatok kommunikációja: IPC Az IPC (Inter Process Communication) olyan mechanizmust jelent, amely lehet vé teszi, hogy a folyamatok egymással kommunikáljanak, akciókat összehangolják, szinkronizálják. A folyamatok úgy kommunikálnak egymással, hogy nem rendelkeznek közös memóriával. Az IPC két müveletet ismer: send(message): Üzeneteket küld, melyek lehetnek fix és változó hosszúak. Receive(message): Üzeneteket fogad. Az kommunikációhoz szükséges egy kommunikációs vonal (communcation link). Kommunikáció fajtái: Direkt: o A kommunikációs vonal automatikusan épül fel, PID ismerete szükséges. o A vonal pontosan két folyamat között létezik. o Minden egyes folyamat pár között pontosan egy link létezik. o Egy vagy több irányú is lehet. Indirekt: o Üzenetküldés egy mailboxba. o A kommunikációs vonal abban az esetben épül fel ha közösen használnak egy mailboxot, PID ismerete nem szükséges. o A vonal több folyamat között létezik. o Minden egyes folyamat pár között több link is létezhet. o Egy vagy több irányú is lehet. o Ki kapja az üzenetet? probléma. Pufferes: Kommunikáció puffer segítségével valósul meg. o Zéró kapacitású (szinkronizáció szükséges hozzá). o Korlátozott kapacitású (n üzenet lehet a linken). o Korlátlan kapacitású (gyakorlati korlát biztos van, üzenetek elveszhetnek). o Egyéb (delay, reply, RPC) Kivételek: Processzus felfüggeszt dik. Elveszett üzenetek. Hibás üzenetek.
-7-
7. Folyamat szinkronizáció. A kritikus szakasz probléma. Klasszikus szinkronizációs problémák. Folyamat szinkronizáció: A folyamatok szinkronizációjának szükségessége a termel -fogyasztó folyamatokon keresztül szemléltethet . Termel -fogyasztó folyamatok: Közös memória területet használnak. A Termel új adatokat hoz létre, amíg a rendelkezésre álló terület meg nem telik. A Fogyasztó folyamatosan olvassa be az elemeket, amíg van mit olvasni A változó jelzi az adatszerkezetben szerepl elemek számát. A probléma akkor keletkezik, amikor épp akkor vált az ütemez a processzusok között, amikor a folyamatok épp a számláló változón operálnak. A kritikus szakasz probléma: Több folyamat verseng egy bizonyos adat használatáért. Minden folyamatnak van egy kódszegmense (kritikus szakasz), ahol ezt a bizonyos adatot eléri. Probléma, hogyan biztosítsuk, hogy amíg egy processzus a kritikus szakaszában van, addig más processzus ne léphessen be a kritikus szakaszába. Követelmények: Kölcsönös kizárás: Nem lehet egynél több folyamat a kritikus szakaszában. Progresszió: A futásra való kiválasztás nem késleltethet határozatlan ideig. Korlátozott várakozás: Minden igény kiszolgálása megkezd dik korlátozott számú kritikus szakasz végrehajtása után. Klasszikus szinkronizációs problémák: Korlátos puffer probléma. Olvasók és írók problémája: Egy adat állományt több processzus megosztva, párhuzamosan használ, egyesek csak olvassák, mások csak írják. Következ képp biztosítható az adatok konzisztenciája: o Minden olvasó azonnal hozzáférhet az adatokhoz, hacsak egy író nem kapott már engedélyt az írásra. o Egy író azonnal írhat, ha erre kész és mások nem írnak. A vacsorázó filozófusok problémája: Példa számos konkurencia kontroll problémára. o Egy kör alakú asztal mellett öt filozófus ül, mindegyik el tt van egy tál rizs és a szomszédos tányérok között egy-egy ev pálcika. o Evéshez a filozófus a saját tányérja melletti két ev eszközt használhatja úgy hogy ezeket egymás után kézbe veszi. o Ha befejezte az étkezést, visszateszi az eszközöket és gondolkodni kezd. o Majd újra megéhezik stb.
-8-
8. Folyamat ütemezése. Ütemezési kritériumok és algoritmusok. Preemptív ütemezés, prioritás, éhezés. Ütemezési sorok, visszacsatolás. Folyamat ütemezése: A multiprogramozás célja a CPU foglaltság hatásfokának növelése. Lényege, hogy egy id ben több folyamat is az operatív tárban legyen, készen állva a CPU kiszolgálására. Rövid távú ütemezésr l van szó, döntés helyzet akkor áll el , ha egy folyamat: 1. futó állapotból várakozó állapotba kerül (nem preemptív), 2. futó állapotból készenléti állapotba kerül (preemptív), 3. várakozó állapotból készenléti állapotba kerül (preemptív), 4. vagy megáll (nem preemptív). Egy ütemezés akkor preemtív (beavatkozó), ha a processzustól elveszik a CPU-t. Ütemezési kritériumok: Hatékonyság: A CPU 100%-os kihasználása. Válaszid : Minimalizálni az interaktív felhasználók válasz idejét. Áthaladási id : Minimalizálja azt az id t, amíg a kötegelt felhasználók eredményre várnak. Átereszt képesség: Maximalizálja az egységnyi id alatt végrehajtott processzusok számát. Pártatlanság: Minden processzus kapja meg az t megillet CPU id t. Ütemezési algoritmusok: FCFS (first come, first served): Igény bejelentési sorrend szerinti kiszolgálás. Az átlagos várakozási id nek nagy a szórása, konvoj effektus. SJF (shortest job first): A rövidebb igény el ször. Rövidség megállapítása a korábbi foglaltsági periódusok hosszának használatával. Lehet preemptív és nem preemptív. Prioritási sorrend: Minden folyamathoz rendelünk egy egész számot, kisebb érték nagyobb prioritást jelent. Éhezés elkerülésére aging algoritmust használ, mely segítségével minél régebben volt a CPU egy processzusnál, annál esélyesebb a CPU megkapására. Round Robin: Minden processzus sorban q ideig használhatja a CPU-t. Ekkor n processzus esetén a maximális várakozási id (n-1)/q. Nagy q esetén FCFS, kicsi esetén kontextus váltás.
-9-
9. Az operációs rendszer grafikus felhasználói interfésze (GUI) és m ködése. A GUI (Graphical User Interface) olyan felhasználói felület, amely rajzolt elemekkel (pl.: ikonok, ablakok) könnyíti meg a számítógép vezérlését. M ködés: Mutató eszköz: Kétdimenziós értéket adó beviteli eszköz. Leggyakrabban alkalmazótt mutató eszköz az egér, mely rendszerint több gombbal is rendelkezik. Ablakkezel : Megengedi, hogy a felhasználó a képerny n létrehozzon, töröljön, kiválasszon és ikonosítson ablakokat, kommunikáljon a megjelenített ablakokkal, illetve az ablakokon keresztül a megfelel folyamatokkal. El nyei: Egy ilyen interfész grafikus elemei egységes stílust alkotnak, amelyet ha elsajátít a felhasználó, akkor a legtöbb programmal elboldogul majd. A komponensek közötti kapcsolattartás ( drag and drop ). Egyidej leg különböz tevékenységeket folytathatunk.
- 10 -
10. Operációs rendszerek f bb funkciói. Operációs rendszer szolgáltatásai: Program végrehajtás (betöltés futtatás). I/O m veletek (blokkolás, pufferelés). Fájlrendszer manipuláció (r, w, c, d). Kommunikáció: A folyamatok közti információ csere. Hibakeresés (CPU, memória, I/O, felhasználói programok). Er forrás kiosztás: Multiprogramozás, több felhasználós m ködés. Accountink: Rendszer és felhasználói statisztikák. Védelem: Az er források csak az operációs rendszer felügyelete mellett vehet k igénybe. A rendszerprogramok: A rendszerprogramok kényelmes környezetet teremtenek a programfejlesztéshez és a programíráshoz. Az operációs rendszert a felhasználó szemszögéb l a rendszerprogramok együttesének is tekinthet . Egy lehetséges osztályozás: Fájl manipuláció. Státus információ. Programozási nyelv támogatása. Programbetöltés és -futtatás. Kommunikáció. Alkalmazói programok. Rétegelt megközelítés: Az operációs rendszer egymásra épül szintekre bomlik. Minden szint a kizárólag a nála alacsonyabb szint szolgáltatásait használhatja. Dijkstra által javasolt T.H.E operációs rendszer: 5. Szint: felhasználói programok. 4. Szint: I/O pufferezés. 3. Szint: operátor konzol készülék meghajtó. 2. Szint: memória menedzsment. 1. Szint: CPU ütemezés. 0. Szint: hardver. Virtuális gépek: Az operációs rendszer magját is hardvernek tekinti. A rendelkezésre álló hardverrel azonos inetrfészt nyújt, így azt az illúziót kelti a processzusok számára mintha csak egyedül futnának a gépen és minden er forrás az övék. Implementálás az er források megosztásával. El nyei: o Izoláció, így teljes védelem. o Jó közeg rendszerprogramozóknak. Hátrányai: o Kizárja az er források célszer megosztását. o Bonyolult implementálni.
- 11 -
11. Szinkronizációs eszközök. Szemaforok, monitorok, kritikus régiók. Hardver támogatás a szinkronizációhoz. A szinkronizációs eszközök a kritikus szakasz problémák megoldásánál nyújtanak segítséget. Szemaforok: A szemafor egy egész típusú változó, melyhez várakozási sor tartozik. Két atomi m velet hajtható végre: wait(S): ha S>0 értékét csökkenti eggyel egyébként az a folyamat, mely kiadta a wait m veletet, bekerül a várakozási sorba, block(S). signal(S): ha van a várakozási sorban folyamat, az els közülük tovább indul, egyébként a S értékét növeli eggyel, wakeup(S). Több folyamat szinkronizációját oldja meg. Dijkstra nevéhez f z dik. A szemaforok megoldást nyújt a busy waiting (tevékeny várakozás) problémára, azaz a folyamatoknak nem kell állandóan azt figyelni, mikor indulhatnak tovább. Monitorok: Magas szint szinkronizációs eszköz, mely lehet vé teszi egy absztrakt adattípus biztonságos megosztását a konkurens processzorok közt. Formálisan a monitor eljárások változók és adatszerkezetek együttese, melyek egy speciális csomagba vannak integrálva. A processzusok hívhatják a monitorban lév eljárásokat, de nem érhetik el közvetlenül annak bels adatszerkezetét. Egy monitoron egyszerre csak egy processzus lehet aktív. Speciális állapot változót vezet be a processzusok blokkolására, melyre csak a wait és signal m velet használható. Megvalósítás pl.: szemaforokkal. Kritikus régiók: Magas szint szinkronizációs eszköz. Legyen v egy T típusú megosztott változó: var v: shared T. Ekkor v csak speciális utasításon keresztül érhet el: region v when felt do U. Amíg U utasítás végrehajtás alatt áll, másik processzus nem érheti el a v változót. Ha egy processzus megpróbálja végrehajtani a region utasítást akkor kiértékel dik a feltétel (logikai kifejezés). A processzus végrehajtása késleltet dik addig, amíg a kifejezés igaz nem lesz és egyetlen más processzus sincsen a v-hez kapcsolt régióban. Megvalósítás pl.: szemaforokkal. Szinkronizációs hardver: A test-and-st (TS) gépi utasítás (bizonyos architektúrákban) egyszerre képes egy memória szó tartalmát lekérdezni és ugyanakkor a szóba új értéket beírni. Ennek segítségével a közös adat elérésének a ténye más processzusok számára is érzékelhet vé tehet .
- 12 -
12. Integrált programfejleszt i környezet (IDE) Az IDE-nek (Integrated Develop Environment) azt a szoftver és eszközrendszert tekintjük, amely a szoftverfejlesztés teljes életciklusában, annak minden fázisának folyamatait automatizálja, és tevékenységét koordinálja. Legf bb célja a fejlesztési eszközök integrálása. Az IDE általános szolgáltatásai: Forrás szöveg kezelése (színezett forrás kód, automatikus kiegészítések). Fájlok kezelése (nyilvántartja a program fájlait és megfelel en kezeli ket) A fejlesztési folyamat adott módszertan szerinti irányítása. A projectmunka irányítása, verziókezelés. Adatbank létrehozása és kezelése. Nyomkövet , hibakeres eszközök. Pack készítési funkció (kiegészítéssel látja el a programot, melyek lehet vé teszik a más gépeken való futtatást). A fejlesztési dokumentáció elkészítése.
- 13 -
13. A programok feldolgozási módjai: fordítás, szerkesztés, futtatás, nyomkövetés. Programkönyvtárak. Fordítás: A forrásszövegb l valamilyen módon gépi nyelv programot kell el állítani. Erre kétféle technika létezik: Fordítóprogramos: A fordítóprogram egy speciális szoftver, ami a forráskódból gépi kódú tárgykódot generál. M ködésének része: o Lexikális elemzés: Lexikális egységekre darabolás. o Szintaktikai elemzés: szintaktikai ellen rzés, szintaktikailag helyes forráskód szükséges a tárgyprogram generálásához. o Szemantikai elemzés: Tartalmi helyességet ellen riz. o Kódgenerálás: Ekkor keletkezik a tárgy program, ami már gépi kódú, de még nem futtatható. Interpreteres: Itt is megvan az els három lépés, de az interpreter tárgykódot már nem generál. Utasításonként sorra veszi a forrásprogramot, értelmezi azt és végrehajtja. Szerkesztés: A kapcsolatszerkeszt hozza létre a tárgykódból a futtatható kódot. Létezik: Statikus: A nyelvi könyvtárak fordításnál beépülnek a program kódjába, úgy kezel dnek mint bármely más modul. Dinamikus: A kapcsolatszerkesztés futási id ben történik. Egy csonk helyettesíti a végrehajtandó rutint a végrehajtandó program kódjában, mely segítségével a szükséges rutinok lokalizálhatók. Futtatás: A futtatható programot a betölt helyezi el a tárba. Szintén lehet statikus és dinamikus. Utóbbi esetben csak a szükséges rutinok tölt dnek be, akkor ha még nincsenek benne a memóriában. A futást a futtató rendszer felügyeli. A programváltozókhoz valamikor memória címeket kell rendelni, ez történhet betöltési és futási id ben is. Nyomkövetés: A hibák megtalálását segíti el . Interpreter esetén akár futtatás közben is van lehet ség a forrás program módosítására. Programkönyvtárak: Közönséges tárgykód-fájlok gy jtemények. Lényege, hogy nem kell mindig az egész programot újrafordítani. Létezik statikus és dinamikus. Statikus: A program induláskor tölt dik be. Dinamikus: A program futása közben tölt dik be, amikor szükség van rá.
- 14 -
14. Lapozás szegmentálás. Laptábla. Virtuális tárkezelés. Virtuális tárkezelés: Az alapelv, hogy egy programból annyit kell csak a memóriában feltétlenül benn tartani, hogy az végrehajtható legyen. Ha a program olyan memóriaterületre hivatkozik, amely nincs benn a központi memóriában, akkor az a háttértárról bekerül oda és a program folytathatja a végrehajtását. A virtuális címeket a MMU (Memory Managment Unit) képzi le fizikai címekre. El nyt jelent számunkra, hogy a programok írásakor nem kell foglalkoznunk azzal, hogy az milyen környezetben, mekkora memóriájú gépen fog végrehajtódni.
Lapozás (paging) nem folytonos tár-allokálás: Egy processzushoz fizikailag össze nem függ memória blokkokat allokálunk. A logikai és fizikai címtér független blokkokra (keretekre) bomlik, melyeknek mérete megegyezik (a lap és keret mérete megegyezik). Logikai cím: a lap sorszáma, lapon belül relatív cím. Fizikai cím: a keret memóriabeli címe, kereten belül Bármely lap elfoglalhatja bármely keretet. A szabad és foglalt kereteket nyilván kell tartani. Egy n lapból álló program futtatásához el bb n szabad keretet kell találni. Megsz nik a küls fragmentáció, de a bels megmarad. Laptáblákban tartjuk nyilván, hogy mely programok milyen lapokat használnak. Laptáblák: Minden logikai laphoz tartalmaz egy bejegyzést, amely a logikai lapot tartalmazó keret fizikai címe és más információk. Többszint laptábla: Több szint indexelést valósít meg a laptáblák között, a gyorsabb keresés érdekében. Invertált laptábla: Minden egyes kerethez tartozik egy bejegyzés, mely tartalmazza az adott frame-ben tárolt logikai lap virtuális címét és a hozzá tartozó processzus azonosítóját. Kisebb memória méret n a keresési id . Szegmentálás: A programot szegmensek együttesének tekintjük, ahol a szegmensek a program logikai egységei. A szegmensek különböz méret ek lehetnek. Az operációs a szegmenstábla segítségével (segment table - ST) tartja nyilván azt, hogy az egyes programok szegmensei hol helyezkednek el a memóriában, illetve melyek a még fel nem használt memóriaterületek. A logikai cím két részb l áll: szegmens szám, offset (szegmensen belüli eltolás). A bels fragmentáció nincs, de van küls . A lapozást és a szegmentálást együtt is szokták alkalmazni, így csökkentve a küls és a bels fragmentáció is.
- 15 -
15. Az elektronikus számítógép funkcionális felépítése és m ködése: megszakítási rendszer, duál módú m ködés. Felépítés: Központi egység: o CPU: utasítás vezérl , ALU, regiszter tár o Busz-rendszer: adatok, címek vezérlés o Memória: f tár, RAM, ROM Input-Output vezérl egység (csatorna, I/O processzor) Berendezés vezérl egység (Device Control Unit) I/O berendezés, perifériák (pl.: klaviatúra, egér, merevlemez) M ködés: Az I/O berendezések és a CPU szimultán képes m ködni. Minden berendezés vezérl egység egy meghatározott berendezés típus m ködéséért felel s, saját lokális pufferrel rendelkezik. A CPU oldaláról az I/O a f tár és e lokális pufferek közötti adatmozgást jelenti. A berendezés vezérl egységek, I/O processzorok egy-egy megszakítás generálásával jelezhetik a CPU-nak az I/O m velet befejezését. Megszakításkezelés: A megszakítás (interrupt) átadja a vezérlést a megszakítás feldolgozó rutinnak. Ez általában a megszakítás vektor segítségével történik, amely tartalmazza a megszakítás osztályhoz tartozó feldolgozó rutin els végrehajtandó utasításának címét. A megszakítási rendszernek tárolnia kell a megszakított utasítás címét. Egy megszakítás feldolgozása idején jelentkez további megszakítások letilthatók, hogy el ne vesszenek (lost interrupt). A megszakítás jel forrását tekintve lehet küls (pl.: I/O, Timer) vagy bels (szofver megszakítás (trap)). Az operációs rendszer (megszakítás feldolgozó rutin) közvetlen feladatai: o CPU állapotának meg rzése (hardver minimális kezdeti támogatást nyújt). o Megszakítás részletesebb elemzése (okok, körülmények). o Maszkolás. o Visszatérés a megszakított programhoz. Duál módú m ködés: A processzor két üzemmódban m ködhet: Kernel: Minden megengedett. User: Korlátozott memória hozzáférés és utasítás használat. Az üzemmódok között rendszer hívás segítségével lehet váltani, ezt az operációs rendszer kezeli, így a védelem biztosítva van.
- 16 -
16. Az operációs rendszerek fejl désének f bb állomásai: kötegelt, multiprogramozott, id osztásos, valós idej , személyi számítógépes, hálózati rendszerek. Korai rendszerek: 1940-es évek közepén vákuumcsöves számítógépek. Programozás abszolút gépi nyelven. Alapfunkciók vezérlésére kapcsolótáblákat hordoztak. Lyukkártyás adatbevitel és kivitel. Operációs rendszer nincs Óriási méretek és költségek, alacsony CPU kihasználtság, jelent s beállítási id . Kötegelt rendszerek: Lényege a hasonló munkák kötegelése, így csökken a beállítási id . A vezérlés automatikusan kerül át az egyik jobról a másikra. Rezidens monitort használ: o Kezdetben a vezérlés a monitornál, majd átadódik a jobnak, végül vissza a monitorhoz. o Speciális kártyák mely megmondja a monitornak, mely programot kell futtatni. o Speciális karakterek használata az adat és program kártyák megkülönböztetésére. o Funkcionális részei: Vezérl kártya interpreter, betölt , készülék meghajtó programok. A teljesítmény növelésére külön gépet használunk a lyukkártyák szalagra olvasásához, illetve az eredményt szalagra írásához, és a nyomtatás végrehajtásához. Még jobban növelhet a teljesítmény, ha mialatt egy job végrehajtódik, addig az operációs rendszer beolvassa a következ jobot a lemezre és az el z job által nyomtatni szánt adatokat a lemezr l a nyomtatóhoz továbbítja (spooling). Multiprogramozott rendszerek: Alapelv, hogy néhány job futtatható kódja állandóan az operatív memóriában és készen áll arra hogy utasításokkal lássa el a processzort. Az operációs rendszer valamilyen stratégia szerint adja oda a CPU-t a futásra kész programnak. Nem párhuzamosan futó programokról van szó. Követelmények: I/O felügyelete, memóriagazdálkodás, ütemezés készülék hozzárendelés. Id osztásos (time-sharing) rendszerek: A CPU váltakozva áll a jobok rendelkezésére, amelyek a memóriában találhatók. Egy job betölthet /kimenthet az ütemezési stratégiának megfelel en. Új fogalom a processz. A rendszer és a felhasználó között állandó kapcsolat van, interaktivitás. Vezérl utasítást a felhasználó adhat a klaviatúrájáról. Egy adatokat és utasításokat tároló on-line fájlrendszer kell, hogy a felhasználó rendelkezésére álljon.
- 17 -
Személyi számítógépes rendszer: A teljes rendszer egy egyszer felhasználónak kizárólagos rendelkezésére áll. Tipikus I/O eszközök: klaviatúra, egér, képerny kijelz , nyomtató. El térben a felhasználó kényelme és felel sége. A felhasználó személy sokszor a számítógép kizárólagos tulajdonosa, felhasználója és így nincs fejlett CPU kiszolgáló és adatvéd szolgáltatásokra. Párhuzamos rendszerek: Szorosan kapcsolt rendszerek: A processzorok közösen használják a memóriát és a rendszer órát. A kommunikáció a közös memória segítségével zajlik. El nyök: o Megnövelt átbocsátó képesség. o Gazdaságosság. o Növekv megbízhatóság (Redundancia, Graceful degradation, Fail-soft rendszerek) Típusai: o Szimmetrikus multiprocesszálás: Minden processzor az operációs rendszer azonos változatát futtatja. Ezek egymással szükség szerint kommunikálhatnak. o Aszimmetrikus multiprocesszálás: Minden egyes processzor a hozzárendelt feladatot (task) oldja meg. A feladatot a mester határozza meg. A Taskok között kommunikáció lehetséges. Lazán kapcsolt rendszerek: A processzorok saját lokális memóriát és rendszer órát használnak. A kommunikáció nagy kapacitású adatvonalak segítségével történik. El nyök: o Er forrás megosztás (nyomtató). o Teljesítménynövelés. o Növekv megbízhatóság. o Kommunikáció (e-mail) Valós idej rendszerek: Gyakran úgy jelenik meg, mint valamilyen dedikált alkalmazás irányító-felügyel rendszer (orvosi képfeldolgozás, ipari kontroll). A kiszolgálás azonnal megkezd dik. Jól definiált, rögzített idej korlátozások. o Hard: Az id korlát nagyon fontos (komoly következményekkel járhat a túllépés, pl.: katasztrófa). Az id n túli információnak már nincs értelme. A másodlagos tár korlátozott vagy teljesen hiányzik, az adatok RAM-ban, vagy ROM-ban. o Soft: Id n túli eredmény értéke degradálódik. Korlátozott szolgáltató programok az ipari kontroll, a robotika területén.
- 18 -
17. Szövegszerkeszt k. Internetes kommunikáció. Szövegszerkeszt k: A szövegszerkeszt karakterekb l álló információ rögzítésére szolgál. A szövegszerkeszt programok gyors elterjedésének okai: A dokumentumunkat bármikor átszerkeszthetjük. A rögzítés helyét l függetlenül, tetsz leges példányszámban nyomtathatjuk szövegünket. A szövegünkben könnyedén kereshetünk, cserélhetünk, kivághatunk és beilleszthetünk. A kés bbi szövegszerkeszt k további számos funkcióval kiegészültek: Széleskör szövegformázási lehet ségek. Táblázatok, grafikonok készítése. Más programokkal készített anyagok beillesztése. Automatikus eszközök: tartalomjegyzék, szószedett, oldalszámozás készít k. Helyesírás ellen rzés és szinonimaszótár szolgáltatás. Internetes kommunikáció: A legelterjedtebb formája az e-mail. A levelez rendszerek alapját a mail szabvány képezi. A mail két részb l áll: Head: Többek közt tartalmazza a küld és a címzett adatait. Body: Az üzenetünket tartalmazza. A levelek postaládákban (mailbox) tárolódnak, tulajdonképpen egy puffer. Az otthoni számítógépek folyamatos üzemmód hiányában nem alkalmasak postaládák üzemeltetésére, ezért a postaládák rendszerint távol szervereken kapnak helyet. A levelek elérése, illetve küldése ezen szervereken keresztül történik. Ebben segítenek a levelez programok. Különböz protokollokat dolgoztak ki a levelek küldésére és fogadására: SMPT (Simple Mail Transfer Protocol): A levelez rendszerek közötti kommunikáció megvalósítására szolgál. Csak egyszer szöveget (csak US-ASCII karakterek) tud küldeni, egyéb adtok küldése konvertálással történik. MIME (Multipurpose Internet Mail Extensions): Nem csak szöveg küldhet vele és nem csak US-ASCII karaktereket támogatja. POP (Post Office Protocol): Levelek lekérdezésére szolgál a szerverekr l. IMAP (Internet Message Access Protocol): Ezen technikával elérhet , hogy a lekérdezett levelek a szerveren továbbra is tárolódjanak.
- 19 -
18. Hálózatok, hálózati operációs rendszerek. Hálózatok: A hálózat általában több egymáshoz kapcsolt számítógépb l áll, amelyek között lehet ség van információcserére és er forrás megosztásra. A hálózatba kapcsolt gépek egyedi azonosítóval rendelkeznek (és ezzel együtt egy egyedi címe). Szokás megkülönböztetni a helyi hálózatokat (LAN), és a nagytávolságú hálózatokat (WAN). Az internet több ilyen egymással összekapcsolt LAN-ból illetve WAN-ból áll A számítógépek közötti kommunikáció szigorú szabályok (protokollok) szerint zajlik, és mivel ezek a protokollok nagyon összetettek, ezért ún. logikai szintekre osztották ket azért, hogy könnyebben lehessen ket kezelni és implementálni. Egy lehetséges szintfelosztás a következ : fizikai kapcsolat szintje, adatkapcsolati szint, hálózati szint és a transzport szint. Hálózati operációs rendszerek: A 1980-as évek közepén a számítógép hálózatok növekedése a hálózati és osztott operációs rendszerek megjelenéséhez vezetett. F bb jellemz i: A kapcsolatokat felügyel , azokat eligazgató, a központi adatállományokat kezel operációs rendszert nevezzük hálózati operációs rendszer. Lehet séget biztosít a távoli bejelentkezéshez, az adatállományok távoli hozzáféréséhez, és perifériák megosztására. Rendszerint több felhasználó több számítógépe csatlakozik. Minden gépen saját operációs rendszer fut és saját felhasználóval (akár többel is). Az osztott operációs rendszerek: A felhasználó számára minden er forrás úgy jelenik meg, mintha a helyi gépen lenne. Az adatok mozgatása az operációs rendszer mélyebb rétegeinek a feladata, így ezek a rendszerek nagyfokú konzisztenciát biztosítanak. Ez három alapvet technika révén valósul meg: Adatok migrálása: Ha az A gépen dolgozó felhasználónak szüksége van a B gépen található adatokra, az operációs rendszer az állomány azon kis részét másolja ideiglenesen át, amire éppen szükség van (Network File System). Számítások migrálása: Néha sokkal célravezet bb a távoli géppel végeztetni bizonyos számításokat, ekkor a távoli gép küldi majd vissza a végeredményt. Ez legtöbbször az un. RPC (Remote Procedure Call) technika révén valósul meg Folyamatok migrálása: Amikor a felhasználó elindít egy folyamatot, ami a helyi processzoron fut, nem biztos, hogy itt is ér véget. El nyös lehet, hogy az egész folyamat, vagy annak egy része (szál, theread) egy más processzoron folytatódjon.
- 20 -