4A. Tétel: Operációs rendszerek
Operációs rendszerek fogalma, felépítése, osztályozásuk.
Operációs rendszerek fogalma
Az operációs rendszer olyan programrendszer, amely a számítógépes rendszerben a programok végrehajtását vezérli: így például ütemezi a programok végrehajtását, elosztja az erőforrásokat, biztosítja a felhasználó és a számítógépes rendszer közötti kommunikációt.
Az operációs rendszer felépítése
rendszermag
Feladata a hardver optimális kihasználásának irányítása, a kért programok futtatása, alkalmazói kéréseknek kiszolgálása.
API
Olyan szabálygyűjtemény, mely leírja hogyan kell kérni a szolgáltatásokat a kerneltől, és a kernel válaszát hogyan kapjuk meg.
Rendszerhéj
Feladata a parancsértelmezés. Lehet a shell parancssoros vagy grafikus felületű.
Szerviz- és segédprogramok
a felhasználói "élményt" fokozó kiegészítő programok, amelyek nem képzik a rendszer elválaszthatatlan részét.
Az operációs rendszerek osztályozása:
- Felhasználók szempontjából: egyfelhasználós többfelhasználós
- Egyidőben futtatható programok száma: egyfeladatos, többfeladatos
- Megvalósítás szerint: interaktív, nem interaktív
- A gép méretétől függő: mikrogépes, kisgépes, nagygépes
- Terjesztési licenc alapján: kereskedelmi, szabad
Fájlok és fájlrendszerek.
Fájl
A számítógépen lévő információtárolási egysége a fájl. Egy fájl tartalma a gép szempontjából vagy adat, vagy program. A fájlok alapvető jellemzői: fájlnév, kiterjesztés, méret, dátum, idő.
Fájlrendszer
Egy fájlrendszer absztrakt adattípusok halmaza, amelyeket adatok tárolására, hierarchikus rendezésére, kezelésére, megtalálására, illetve navigálásra, hozzáférésre, és visszakeresésére hoztak létre
Speciális fájlok Unix alatt.
A linnkel: hivatkozni lehet más fájlra.
A nevesített csővezeték folyamatok közötti kommunikációra ad lehetőséget, oly módon, hogy az egyik alkalmazás kimenetét egy másik alkalmazás bemenetére köti. Egyszerű FIFO pufferekről van szó, amikbe írni és amikből olvasni lehet .
A socket: egy speciális fájl, melyet a pipeokhoz hasonlóan, folyamatok közötti kommunikációra használnak, de immár hálózatos környezetbe szerver-kliens kommunikáció során.
Az eszköz fájlok: a hardver elemeit reprezentálják a fájlrendszerben így hozzáférési jogokat adhatunk az egyes elemeknek, és utasításokban használhatjuk közvetlenül magát az eszközöket.
Átirányítás, csővezetékek.
Mind a bemenet, mind pedig a kimenet (hibakimenet) átirányítható egy tetszőleges állományba: <, >, >>, 2>, &>
A cső vagy csővezeték a programok egy olyan sorozata, amelyek a szabványos folyamaik által vannak összekötve, azaz a Program1 kimenetét a Program2 bemenetére köti.
Folyamatkezelés.
A Linux többfeladatos és többfelhasználós rendszer. Ebből következik, hogy akár egy felhasználó egy időben több programot is futtathat. Az elindított program a processz, azaz folyamat. A folyamatok jól definiált hierarchiát alkotnak. Minden folyamatnak pontosan egy szülője van, és egy vagy több gyermek folyamata lehet. A folyamat hierarchia tetején az init folyamat helyezkedik el. A Linux minden egyes feladathoz két számot, feladat azonosítót és szülő azonosítót rendel.
Folyamatkezelő parancsok pl: pstree: Az initből induló folyamathierarchiát lehet a parancs segítségével megtekinteni fa szerkezetű ábrázolásban. A top a kill és a ps parancs egyesített változata mely folyamatosan futva listázza az éppen aktív folyamatokat, információt nyújt a rendszer állapotáról és terheltségi mutatóiról, illetve lehetőséget ad szignálok küldésére folyamatok számára.
Jelzések, szignálok.
A Linux rendszer a folyamatok vezérlését a folyamatoknak küldött ún. szignálok segítségével végzi: a Ctrl+Z billentyű például egy STOP szignált küld az előtérben futó processznek. A kill a nevével ellentétben nem csak folyamatok megölésére használható, hanem tetszőlegese signalt küldhetünk vele bármely folyamatnak melynek tudjuk a tudjuk a PID számát és rendelkezünk a folyamat kezeléséhez megfelelő jogokkal.
Ütemezett végrehajtás.
A UNIX multitaszking képessége nem korlátozódik csak a jelenben a futó folyamatokra. Tartalmaz programokat, amelyek lehetővé teszik a programok ütemezett futtatását, akár egyszeri, akár ismétlődő időközönként. Egy adott időben az at program segítségével indíthatunk el folyamatokat, ismétlődő esetekben pedig a crontab alkalmazással.