Know-how, előadás, operációs rendszerek

3.5. Operációs rendszer architektúra

Az építészeti operációs rendszer alatt értjük az operációs rendszer strukturális és funkcionális szervezését egy bizonyos szoftver modulok alapján. Az operációs rendszer futtatható és objektummoduljait tartalmazza ehhez az operációs rendszerhez tartozó standard formátumokhoz, speciális formátumú programmodulokhoz (például OS betöltőhöz, I / O illesztőprogramokhoz), konfigurációs fájlokhoz, dokumentációs fájlokhoz, súgórendszer modulokhoz stb.

Kevés figyelmet fordítottak a korai operációs rendszerek architektúrájára: először is, senki sem rendelkezett tapasztalattal a nagy szoftverrendszerek kifejlesztésében, másrészt a modulok kölcsönös függőségének és kölcsönhatásának problémáját alábecsülték. Hasonló monolitikus operációs rendszerben szinte minden eljárás egymásnak nevezhetné. Ez a struktúra hiánya összeegyeztethetetlen az operációs rendszerek bővítésével. Az első verziót OS OS / 360-at 5,000 emberből álló, 5 éven felüli csapat hozta létre, és több mint 1 millió sornyi kódot tartalmazott. A Multics operációs rendszert valamivel később fejlesztették ki 1975-re 20 millió sor. Nyilvánvalóvá vált, hogy az ilyen rendszerek fejlesztését moduláris programozás alapján kell végrehajtani.

A legmodernebb operációs rendszerek jól strukturált moduláris rendszerek, amelyek képesek fejlesztésre, bővítésre és új platformokra történő átvitelre. Nincs egységes egységes operációs rendszer architektúra, de az operációs rendszer struktúrájának általános megközelítése ismert. Az OS architektúrák fejlesztésének alapvetően fontos egyetemes megközelítései [4. 13. 22]:

  • moduláris szervezet;
  • funkcionális redundancia;
  • funkcionális szelektivitás;
  • paraméteres egyetemesség;
  • A többszintű hierarchikus számítástechnikai rendszer koncepciója, amely szerint az operációs rendszert egy többrétegű struktúra képviseli;
  • modulok csoportosítása 2 csoportba funkciók szerint - az alap, az OS alapfunkcióit ellátó modulok és az operációs rendszer kiegészítő funkcióit ellátó modulok;
  • az OS modulok 2 csoportba sorolása a számítógépes rendszernek, állandó jelleggel RAM-nak és tranzitoknak a memóriájában tárolt helye szerint, csak RAM-ra töltve funkcióik feltöltése idején;
  • a számítógépes rendszer két működési módjának megvalósítása - az előnyben részesített mód (vagy kernel mód), vagy a felügyeleti mód, felhasználói mód vagy feladat mód;
  • a rendszermag függvények (és ezáltal a rendszermag modulok száma) korlátozása a szükséges alapvető funkciók minimális számához.

Az első operációs rendszert monolitikus rendszerként tervezték, anélkül, hogy egyértelműen meghatározták volna a struktúrát (3.4 ábra).

A konstrukció a monolit rendszert kell összeállítani az összes egyedi eljárások, majd azok összekötésére egyetlen objektum fájl A linker révén (példák közé tartoznak a korai változatát UNIX kernel vagy a Novell NetWare). Mindegyik eljárás bármely más eljárást lát (ellentétben egy olyan struktúrával, amely olyan modulokat tartalmaz, amelyekben az információ nagy része helyi a modulhoz, a modulfolyamatokat csak speciálisan meghatározott belépési pontokon lehet megkeresni).

Know-how, előadás, operációs rendszerek


Ábra. 3.4. A monolitikus rendszer szerkezeti változata

Az ilyen monolitikus rendszerek azonban enyhén strukturálhatók is. Az operációs rendszer által támogatott rendszerhívások elérésekor a paramétereket szigorúan meghatározott helyeken, például regiszterben vagy veremben helyezik el. majd egy speciális megszakítási parancsot, amelyet kernelhívásnak vagy felügyeleti hívásnak neveznek, végrehajt. Ez a parancs átkapcsolja a gépet a felhasználói módról a kernel módra, amelyet felügyeleti módnak is neveznek, és átirányítja az operációs rendszert. Ezután az operációs rendszer ellenőrzi a hívás paramétereit annak meghatározása érdekében, hogy melyik rendszerhívást kell végrehajtani. Ezután az operációs rendszer indexeli a táblázatot, amely tartalmazza az eljárásokra való hivatkozásokat, és felhívja a megfelelő eljárást.

Az operáció ilyen megszervezése a következő struktúrát feltételezi [28]:

  • a fő program, amely felhívja a szükséges szolgáltatási eljárásokat;
  • egy sor szolgáltatási eljárás, amely végrehajtja a rendszerhívásokat;
  • egy sor segédprogram, amely szolgálja a szolgáltatási eljárásokat.

Ebben a modellben minden szervizhívásra egy szolgáltatási eljárás van. A segédprogramok olyan funkciókat hajtanak végre, amelyekre több szolgáltatási eljárás szükséges. Ez az eljárás három rétegre osztása a 3.5 ábrán látható.

Az operációs rendszer architektúrája klasszikusnak tekinthető, hierarchikus többszintű gép, előnyben részesített kernel és tranzit modulok felhasználói módjának megfelelően. A rendszermag modulok az operációs rendszer alapfunkcióit hajtják végre: a folyamatvezérlés. memória, I / O eszközök stb. A rendszermag az operációs rendszer magja, amely nélkül teljesen üzemképtelen, és nem képes végrehajtani egyetlen funkcióját sem. A rendszermag megoldja a számítógépes folyamatok szervezésének intrasystem feladatait, amelyek nem érhetők el az alkalmazáshoz.

Know-how, előadás, operációs rendszerek


Ábra. 3.5. Egy monolitikus rendszer jobb szerkezete

A rendszermag függvények egy speciális csoportja támogatja az alkalmazásokat, így számukra az úgynevezett alkalmazásszoftver környezetet teremt. Az alkalmazások hozzáférhetnek a kernelhez kérések - rendszerhívások - bizonyos műveletek elvégzéséhez, például egy fájl megnyitásához és olvasásához. a rendszer időtartamát, a kijelzőn megjelenő információkat stb. Az alkalmazások által meghívott rendszermag függvények API-t (Application Programming Interface) alkotnak.

A nagysebességű operációs rendszerek működésének biztosítása érdekében a rendszermag moduljai (legalábbis nagy része) a Kernel módban működnek. Ez a mód biztosítja, hogy a repülésbiztonság az OS megzavarják alkalmazások, másrészt pedig a munkaképesség a modulok egy teljes készlet gépi utasítások, így az aktuális kernel elvégzésére számítógép kezelését, különösen a processzor kapcsol azzal a feladattal, feladatok, eszközkezelő I / O, memóriaelosztás és védelem stb.

Az operációs rendszer többi modulja nem olyan fontos, mint a mag. funkciók és tranzit. Például adat-archiválási programok, lemez-defragmentálás. lemez tömörítés, lemeztakarítás stb.

A segédmodulok általában csoportokba sorolhatók:

Ezek az operációs modulok normál alkalmazások, a rendszermag funkciók elérése rendszerhívások segítségével és felhasználói módban történő végrehajtás. Ebben az üzemmódban néhány olyan parancs, amely az operációs rendszermag funkcióihoz kapcsolódik (erőforrás-menedzsment, memóriaelosztás és védelem stb.) Nem futtatható.

A többszintű (többrétegű) hierarchikus gép fogalmában az operációs rendszer struktúráját egy sor réteg is képviseli. Ilyen szervezet esetén minden réteg a felsõ réteget szolgálja ki, és elvégzi az interlayer felületet alkotó bizonyos funkciókészletet. E függvények alapján a hierarchiában a következő réteg felépíti funkcióit - összetettebb és erősebb, stb. Ez a szervezet a rendszer nagyban leegyszerűsíti a tervezési, t. Hogy. Az első lehetővé teszi, hogy „felülről lefelé”, hogy meghatározzák a funkciókat rétegek és rétegek közötti kapcsolódási pontok, míg a részletes végrehajtási, mozgó „bottom-up”, hogy növelje a hálózati rétegek funkciót. Ezenkívül az egyes rétegek moduljai megváltoztathatók anélkül, hogy változtatni kellene más rétegekben (de anélkül, hogy megváltoztatnák az interlayer interfészeket!).

A mag többrétegű szerkezete például a 3.6 ábrán bemutatott változat segítségével ábrázolható.

Know-how, előadás, operációs rendszerek


Ábra. 3.6. Az operációs rendszer többrétegű szerkezete

A következő rétegeket kiemelik ebben a diagramban.

Az operációs rendszer stabilitásának növelése a rendszermag átmenete a kiváltságos üzemmódban történik. Ugyanakkor lassul a rendszerhívások teljesítménye. A privilegizált kernel rendszerhívása kezdeményezi a processzor átkapcsolását a felhasználói módból az előnyben részesített módba, és visszatér az alkalmazáshoz - a visszirányú kapcsoláshoz. Emiatt további késedelem van a rendszerhívás feldolgozásában (3.7 ábra). Azonban ez a megoldás klasszikus lett, és számos operációs rendszerben (UNIX, VAX, VMS, IBM OS / 390, OS / 2, stb.) Használható.

Know-how, előadás, operációs rendszerek


Ábra. 3.7. Rendszerhívás végrehajtása

A többrétegű klasszikus többszintű operációs rendszer architektúrája nem nélkülözi a problémákat. Az a tény, hogy az egyik szint jelentős változása nehéz lehet előre látható hatással a szomszédos szintekre. Emellett a szomszédos szintek közötti számos interakció bonyolítja a biztonságot. Ezért a klasszikus OS architektúra alternatívájaként gyakran használják az operációs rendszer mikronukleáris architektúráját.

Ennek az architektúrának a lényege a következő. Kiváltságos üzemmódban csak az operációs rendszer egy nagyon kicsi része, a microkernel néven működik. A mikrokernel védve van az operációs rendszer és alkalmazások más részeitől. Gépfüggő modulokból, valamint modulokból áll, amelyek egy hagyományos rendszermag alapvető mechanizmusát végzik. Az összes többi magasabb szintű rendszermag funkció modulként működik, amely felhasználói módban működik. Tehát az erőforrás-menedzserek. amelyek a rendszeres kernel szerves részét képezik, felhasználói módban működnek "perifériás" modulok. Így egy mikrokerneles architektúrában a függőleges szintek hagyományos elrendezését horizontálisan helyettesítik. Ez a 3. ábrán látható módon ábrázolható.

A mikrokernelhez tartozó operációs rendszerelemek szervizelési folyamatokként kerülnek megvalósításra. Együttműködnek egymással, mint egyenrangú partnerek az üzenetküldés segítségével, amelyeket a mikrokernel közvetítenek. Mivel az operációs rendszer ezen összetevőinek célja a felhasználói alkalmazások, a segédprogramok és a rendszerfeldolgozó programok, az erőforrás-menedzserek kéréseinek szolgáltatása. felhasználói módban végrehajtott operációs rendszert OS szervereknek hívják, azaz modulok, amelyeknek fő célja a helyi alkalmazások és más OS modulok szervizelése.

Know-how, előadás, operációs rendszerek


Ábra. 3.8. Az operációs rendszer architektúrája mikrokernellel

Szekvenciálisan, a szerverek formájában tervezett operációs rendszerekhez való hozzáférés mechanizmusa a 3.9 ábrán látható.

Know-how, előadás, operációs rendszerek


Ábra. 3.9. Az operációs rendszer ügyfél-kiszolgáló architektúrája

A rendszermeghajtás mikrokernel architektúrájú operációs rendszeren történő végrehajtásának módját a 3.10. Ábra mutatja.

Know-how, előadás, operációs rendszerek


Ábra. 3.10. Rendszerhívás végrehajtása operációs rendszerben mikrokernel segítségével

Az ábrán látható, hogy a rendszerhívás végrehajtását négy kapcsolási mód (4 t) kíséri, míg a klasszikus architektúra - kettő. Ennek következtében az operációs rendszernek egy mikrokernel architektúrával való megvalósítása, más dolgok egyenlősége alacsonyabb lesz, mint egy klasszikus maggal rendelkező operációs rendszeré.

Ugyanakkor a mikrokernel architektúra következő érdemeit ismerik fel [36]:

  • egységes felületek;
  • a nyújthatóság egyszerűsége;
  • nagyfokú rugalmasság;
  • a hordozhatóság lehetősége;
  • nagy megbízhatóság;
  • az elosztott rendszerek támogatása;
  • támogatja az objektumorientált operációs rendszert.

Paradoxnak tűnhet, de a mikronukleáris operációs rendszernek ilyen megközelítése is létezik, mint a mikrokernel csökkentése.

Az operációs rendszerek mikrokerneleinek mérete többféle forrásból [22], az alábbi adatok adódnak:

  • egy tipikus mikrokernel az első generációs - 300 KB kód és 140 interfész rendszerhívások;
  • microkernel OS L4 (második generáció) - 12 KByte kód és 7 rendszerhívás interfész.

A modern operációs rendszerekben az alábbi típusú magok különböztethetők meg.

Kapcsolódó cikkek