Kihagyás

Operációs rendszerek elméleti alapjai

Operációs rendszer kapcsolata a többi réteggel

Operációs rendszer fogalma

Operációs rendszernek nevezzük az olyan programok és támogató könyvtárak összességét, melyek közvetlenül kezeli a hardvert, és egy egységes környezetet biztosít a számítógépen futtatandó alkalmazásoknak, valamint komunikál a felhasználóval.

Az operációs rendszer céljai és feladatai

Komunikáció a felhasználóval (és külvilággal)

A komunikáció a preifériákon keresztül történik. A felhasználótól és más számítógépek ezeknek küldik el vagy fogalmazzák meg az utasításaikat. Ezeket a hardverekbe közvetlenül elhelyezett programok lefordítják és továbbítják a számítógép központi része felé. Az operációs rendszer ezeket a jeleket dolgozza fel. A feldolgozás során felhasználja a hardverekhez tartozó illesztőprogramokat. A kapott információt átalakítja ill. továbbitja a megfelelő szoftverek felé, de bizonyos esetben saját maga is végrehajthatja az utasításokat.

Kommunikáció az operációs rendszer segítségével

  1. a felhasználó le szeretné állítani a gépet
  2. mozgatja az egeret, majd a leállítás gombra kattint
  3. az egér optikája érzékeli a felület változását és a gomb mechanikája zárja az áramkört az egér belsejében
  4. az egérben lévő elektronika digitális jelekké alakítja az információt
  5. az operációs rendszer feldolgozza a kapott jeleket és mozgatás valamint kattintásként értelmezi
  6. az operációs rendszer jelzi a képernyő számára hogy változtassa meg a kirajzolt kurzor helyét
  7. a képernyő elektronikája analóg utasításokká alakítja a digitális jelet
  8. a kijelzőben lévő folyadékkristályok színe megváltozik

A felhasználó adatokat akar elérni egy pendrive-ról

Milyen lépések zajlanak le ebben az esetben? Iparkodjunk azonosítani az általános lépéseket az operációs rendszerrel való kommunikáció során.

Vezérli a hardvereket

Az első számítógépek esetében a programok közvetlenül a hardver elemeket irányították. A programozóknak tisztába kellett lennie, hogy melyik eszköznek milyen elektronikai igényei vannak. Ezek a programok először közvetlenül az áramkörökbe voltak kódolva (banándugó, lásd kép).

IBM 402 Könyviteli gép vezérlő felülete: "profit és kiadás összegzés" panel

Ezek később lyukkártyákkal majd még elvontabban (új absztrakciós szinten) digitális utasításokkal kerültek kifejezésre. AZ operációs rendszerek egyik fő feladata ezeket a digitális utasítások ismeret és szükség esetén továbbítása a megfelelő hardver felé.

Hogyan adunk össze két számot?

  1. A számokat bináris számrendszerbe kódoljuk, mely jelöli az előjelet és az értékét is.
  2. A memória áramkör megfelelő lábán beállítjuk az aktivitást jelölő feszültséget.
  3. Egy oszcilláló kristály segítségével, adott időközönként be-ki kapcsoljuk a feszültséget a memória lábakon, mely változást idéz elő a memória belső rendszerében és tárolja a két számot.
  4. A megfelelő feszültség beállításával a CPU lábain kiválasztjuk az összeadás műveletet.
  5. A számokat a CPU regisztereibe töltjük.
  6. A CPU a számokat jelképező elektromos impulzosokat átvezeti az áramkörein.
  7. A CPU megfelelő lábain a feszültség eléri az aktivitás szintet.
  8. A kimenő lábak állapotát megfigyelve leolvasható az eredmény bináris kódja.

Ezeket a műveleteket általában alacsony szintű vagy hardver közeli utasításoknak nevezzük. Ezeket kezelését és ismeretét vállalja át az operációs rendszer. A tényleges megvalósítás során a hardver gyártójától és egyéb helyről származó segédprogramok is fontos szerepet játszanak.

Egységes környezetet biztosít a szoftverek számára

A különböző folyamatok végrehajtása erőforrásokat igényel. A processzor csak adott számú utasítást tud végrehajtani, a memóriában nem lehet végtelen sok adatot tárolni, a háttértárnak időbe tellik mire visszaadja a tárolt adatot. A folyamatok (programok) tervezése során korábban figyelembe kellett venni az egyes erőforrások kihasználtságát.

Adat tárolása a memóriában

Cél
A program szeretne adatot tárolni a memóriában.
Kérdések
Van elég üres hely?
Tegyük fel hogy van még adat a memóriában. Elfér egyben a tárolni kíván adat?
Hova írhatja az adatot úgy hogy ne írjon felül más fontos adatokat?
Mikor törölhetjük (írhatjuk felül) a tárolt adatokat?

Virtuális memória

A memória írása és olvasása az operációs rendszeren keresztül történik. Ezért az operációs rendszer módosíthatja, hogy pontosan hova kerül a tárolni kívánt adat, vagy honnan olvassák vissza.

Eset: Amikor a programnak szüksége van adott méretű memóriára, ezt jelzi az operációs rendszernek.
Megoldás: Az operációs rendszer ellenőrizi, hogy van-e elég hely.

Eset: A program átküldi az operációs rendszernek a tárolni kívánt adatokat.
Megoldás: Az operációs rendszer szükség esetén feldarabolja az adatot és meghatározza hogy a darabok hol férnek el a fizikai memóriában.

Eset: Nincs elég memória az adatok tárolására.
Megoldás: Az operációs rendszer a memória tartalmát kimásolja egy (lassabb, de nagyobb) háttértárra, ezzel memóriát szabadít fel.

Eset: A program szeretne hozzáférni az adatokhoz a memóriából.
Megoldás: Az operációs rendszer szükség esetén visszaállítja a memória tartalmát egy (lassabb, de nagyobb) háttértárból, egyesíti az adatdarabokat és visszadja a program számára.

Milyen memóriakezeléseket hajt végre az operációs rendszer?

Az alábbi kép a fizikai memória foglaltsági állapotát mutatja. memory A program 14B adatot szeretne tárolni.
Milyen lépések végrehajtása után tudja az operációs rendszer tárolni az adatot? Hogyan alakulhatott ki a nyilakkal jelzett üres memóriaterület.

Adattárolás

A hosszútávon szükséges adatokat háttértárakon tároljuk. Ezek lehetnek különböző típusúak: merevlemez, solid-state meghajtó, stb. A rendelkezésre álló területet egyforma adatmennyiséget tároló részekre osztjuk a könnyebb kezelés miatt. Ezeket blokkoknak nevezzük. A blokkok fizikai területet jelképeznek az eszközökön. Ezeknek a kezelését is az operációs rendszer látja el.

Fájlrendszerek

A blokkok eléréséhez időre van szükség ami lassítja a számítógép működését, ezért minnél hatákonyabb módon szeretnénk rendszerezni ezket az adatokat. Ezt a memóriakezeléshez hasonlóan egy újabb absztrakció teszi lehetővé. Az operációs rendszer áthelyezheti és feldarabolhatja a tárolni kívánt adatokat a hatékonyság érdekében.

A tárolt adatokat a felhasználó számára összefüggő adathalmazonként jeleníti meg, ezek a jól ismert fájlok. A fájlokat egy hieararchikus szerekezetbe rendezve látjuk, melyet mappastruktúrának nevezünk. A fájlok fizikailag nincsenek benne a mappát alkotó tárterületben, csak azt tároljuk, hogy mely fájlok (vagy mappák) melyik mappában találhatóak. Egy fájl általában több blokkból is álhat, vagyis az operációs rendszer nem biztos hogy összefüggő tárterületen tárolja az adott fájlt.

Nézzük meg, hogy a gépünkön melyik blokkban melyik fájl található.

Töltsük le a Defraggler ingyenes verzióját és telepítsük fel. Jelöljünk ki egy meghajtót, majd kattintsunk az Analyze (átvizsgál) gombra. A középső panelen válasszunk ki egy blokkot, ekkor alul megjelenik azoknak a fájloknak a listája amelyek részben ebben a blokkban vannak. defraggler

Fájlrendszer

Azt a struktúrát ami leírja a blokkok, a fájlok és a mappák tulajdonságait, ill. a köztük lévő kapcsolatokat fájlrendszernek nevezzük.

Formázás

A fájlrendszert létrehozó műveletet formázásnak nevezzük. Mivel ez új adattároló rendszert alakít ki a meghajtón ezért minden addigi adatot törölni fog.

Gondoljunk rá úgy mintha az iskolai gyakorló füzet lapjait összefűznénk, beszámoznánk az oldalakat és meghúznánk a sorokat. A kapott füzet nyilván üres lesz, hiszen most hoztuk létre a keretet az írás (adatok) befogadására.

Töredezettség mentesítés

A töredezettség mentesítés során a fájlokat alkotó blokkokat közelebb másoljuk egymáshoz és így gyorsabban el lehet érni őket, mert kevesebbett kell az olvasó fejnek oda vissza mozognia.

SSD meghajtót nem szabad töredezettség mentesíteni

A solid state meghajtók fizikai szerkezete miatt többször lehet olvasni, mint írni. Ezért nem szabad olyan műveletet végezni rajta ami sok (fölös) írással jár, mint például a töredezettség mentesítés. Ez súlyosan csökkentheti a meghajtó élettartamát.

A legelrejedtebb fájlrendszerek az NTFS, melyet a Windows operációs rendszerek használnak, az ext4 amit a Linux rendszerek használnak és a FAT különböző változatai, melyek pendrive-okon és más solid-state meghajtókon terjedtek el.

Milyen fájlrendszert használnak az eszközeim?

Nézzük meg hogy az elérhető háttértárolók (HDD, SSD, pendrive, memóriakártya, ...) milyen fájlrendszert használnak?
Windows 10 alatt: nyissuk meg a Windows Intézőt és kattintsunk jobb gombbal az adott meghajtóra. A menüből válasszuk ki a Tulajdonságok menüpontot. Az általános fülön láthatjuk a fájlrendszer típusát. cprop

Partícionálás

Alapvetően egy fizikai eszköz csak egy féle fájlrendszert tárolhat. Gondlokjunk rá úgy, hogy a füzet lapjai nem lehetnek egyszerre csíkosak és négyzetrácsosak is. De két elkülönített részen lehet két különböző fájlrendszer. Ezek a felhasználó számára különálló háttértárakként jelennek majd meg, de fizikailag egy eszközön vannak.

Partíció

A háttértárlók egymástól elválasztott részét, melyek egy teljes fájlrendszert tartalmaznak partícióknak nevezzük.

Gondoljunk rá úgy mintha a füzetet több kisebb füzetből fűznénk össze. Egyes részei lehetnek vonalasak mások négyzetrácsosak.

Partíciós tábla

A partíciók tulajdonságait és helyét tároló adatszerkezetet partíciós táblának nevezzük.

Gondoljunk rá úgy mint egy tartalomjegyzékre, ami megadja, hogy a füzet milyen részekből van összefűzve és hányadik oldalon kezdődik és meddig tart.

Milyen partíciókra van osztva a gépünk meghajtója?

Folyamatok

A telepített programok és alkalmazások egészen addig "csak" inaktív fájlok amíg valami vagy valaki el nem indítja.

Gondoljunk rá úgy mintha egy recept ami leírja hogy hogyan kell süteményt sütni, amíg a szakácskönyvben van addig nem beszélhetünk sütésről csak adatokról (utasítások sorozatáról).

Program

A számítógép számára érthető és végrehajtható utasítások sorozatát programnak nevezzük.

Folyamat

Az elindított programot, ami éppen végrehajtás alatt áll folyamatnak hívjuk.

Milyen folyamatok futnak épp a gépeden?

Párhuzamosság

A processzor egyetlen egy magja csak egy utasítást tud egyszerre végrehajtani. Egy átlagos számítógép 4-16 magot tartalmaz, mégis a felhasználó úgy érzékeli, mintha ennél sokkal több program futna egyszerre.

Hogyan lehetséges ez? (megoldás a lenyíló részben)

Az operációs rendszer nagyon gyorsan váltogatja hogy melyik program melyik utasítását hajtja éppen végre a processzor. Az egyes programok állapotának ki- és betöltését az operációs rendszer kezeli.

Gondoljunk rá úgy mintha a vasárnapi ebédhez való levest, rántotthúst és köretet úgy készítenénk el, hogy mindegyik receptből egyszerre csak egy lépést teszünk meg majd rátérünk a következőre. Ha elég gyorsan csináljuk akkor úgy tűnne, hogy egyszerre 3 ételt készítünk el, holott mindig csak eggyel foglalkozunk egyszerre.

Hasonló módon az egyes folyamatokon belül is lehetőség van utasítások párhuzamos végrehajtására. Ekkor a végrehajtandó utasításhoz szükséges feltételekről és az utasítások közötti váltásokról általában az adott program gondoskodik, vagyis a program írójának felelőssége.

Többszálú programok

Azokat a programokat, melyek több utasítást hajtanak végre párhuzamosan többszálú programoknak nevezzük.

A mai grafikus programok általában többszálúak. Gondoljuk bele, különben amíg valamilyen hosszú ideig tartó számítást végezne a program akkor addig nem tudna reagálni a felhasználótól érkező utasításokra (mozgatni a kurzort), frissíteni a grafikus felületét (jelezni hogy hol tart a számítás).

Ütemezés

Azt hogy a végrehajtandó utasítással várakozó folyamatok közül melyik kap lehetőséget a processzor használatára különböző stratégiák alapján dönti el az operációs rendszer.

Prioritás

Azokat a folyamatokat, melyek a rendszer zavartalan működéséhez kellenek előrébb veszi az operációs rendszer a várakozási sorban. Például a kurzor mozgatásáért felelős folyamat.

Operációs rendszerek biztonsági kérdései

Az operációs rendszer felel azért, hogy illetéktelen felhasználók és folyamatok ne férhessenek hozzá tetszőleges adatokhoz. Itt nem csak a háttértárakon lévő adatokra, hanem a memóriában lévő adatokra is kell gondolni kell.

Internetes vásárlás

Tegyük fel, hogy egy internetes vásárlás során megadjuk a bankkártya adatainkat, vagyis a böngésző számára elkülönített memória területen megjelennek ezek az adatok. Ha egy rosszindulató folyamat hozzáférhetne ezekhez, akkor lehetősége lenne elkölteni a pénzedet.

Titkosság

A titkosítás a kriptográfiának az az eljárása, amellyel az információt (nyílt adat) egy algoritmus (titkosító eljárás) segítségével olyan szöveggé alakítjuk, ami olvashatatlan olyan ember vagy folyamat számára, aki vagy ami nem rendelkezik az olvasáshoz szükséges speciális tudással, amit általában kulcsnak nevezünk.

Adattitkosítás

A legtöbb operációs rendszer biztosít valamilyen lehetőséget bizonyos mappák és fájlok védelmére. Ilyen lehet például a felhasználó személyes mappája (Windows 10: C:\Users, Linux: /home/), melyet csak akkor lehet olvasni, ha a megfelelő felhasználóval léptünk be.

Rendelkezésre állás

Rendelkezésre áll egy rendszer esetében, mikor a működésének képes eleget tenni, képes feladatokat fogadni, működni. Egy rendszer nem áll rendelkezésre, ha nincs kapacitása feladatot elvégezni, vagy nem működik.

Természetesen az operációs rendszer (és a legtöbb egyéb program) esetében az a cél hogy minnél magasabb legyen a rendelkezésre állás mértéke. Vagyis hogy a rendszer minnél több időben tudja fogadni és végrehajtani a felhasználó utasításait.

Adatintegritás

Az informatikában az adatintegritás kifejezés azt jelenti, hogy az adat helyes, és semmiféle művelet, mint például adatátvitel, tárolás, visszaállítás nem károsította meg az eredeti adatot vagyis az adat helyesen áll rendelkezésre a kezelés számára.

Az operációs rendszer esetében az integritás fogalma kiterjeszthető a rendszerre is.

Rendszerintegritás

Az rendszerek integritása alatt azt értjük, hogy a tervezett felhasználás mellett a rendszer megőrzi a sértetlenségét, vagyis működősképes marad a használata során.

Elosztott és több processzoros rendszerek

Elosztott rendszer

Az elosztott számítások egy számítógépes feldolgozási módszer, ahol egy program különböző részei kettő vagy több számítógépen futnak párhuzamosan, és kommunikálnak egymással a hálózaton keresztül.

Ez feldolgozási típus megköveteli, hogy a program külön futtatható részekre legyen bontva, az elosztott számítások esetén a programrésznek figyelembe kell vennie azt is, hogy a többi részprogram különböző környezetben fog futni. Például két számítógép gyakran más hardverrel vagy fájlrendszerrel rendelkezik.

Felhő

"There is no cloud it's just someone else's computer" bögre

A több ilyen típusú rendszer közül napjainkban az átlagfelhasználók számára a felhő alapú rendszerek terjedtek el.

Felhő alapú rendszerek

A felhőalapú számítástechnika (angolul „cloud computing”) a számítástechnika egyik ágazata. Többféle felhőalapú szolgáltatást különböztethetünk meg, a közös bennük az, hogy a szolgáltatásokat nem egy meghatározott hardvereszközön üzemeltetik, hanem a szolgáltató eszközein elosztva, annak üzemeltetési részleteit a felhasználótól elrejtve. A szolgáltatásokat a felhasználók hálózaton keresztül érhetik el, publikus felhő esetében az interneten keresztül, privát felhő esetében a helyi hálózaton vagy ugyancsak az interneten.

Felhő alapú tárolás és szerkesztés


Utolsó frissítés: 2021-02-21 14:56:21