Skip to main content

4M. Tétel: Operációs rendszerek

Operációs rendszerek fogalma, felépítése, osztályozásuk.

Operációs rendszer:

  • Olyan program, amely kezeli a számítógép hardvereit, alapvető programokat nyújt és közvetítőként működik a felhasználó és a hardverek között.
  • Tervezésénél fontos volt, hogy kényelmes és hatékony legyen.
  • Felhasználót tekintve:
    • Egyfelhasználós (DOS)
    • Többfelhasználós (UNIX,Windows)
  • Futtatható programok száma:
    • Egyfeladatos (single task): egyszerre csak egy program futhat a gépen: DOS
    • Többfeladatos (multi task): több feladat futhat egyszerre (UNIX,Windows)
  • Megvalósítás szerint:
    • Interaktív: üzenet alapú
    • Nem interaktív: végrehajtás alapú
  • Terjesztés szerint:
    • Kereskedelmi (Windows, UNIX egyes változatai)
    • Szabad (UNIX egyes változatai)

Operációs rendszer felépítése és feladatai:

  • Shell (felhasználó felület,lehet grafikus vagy szöveges)
    • Feladata a kapcsolattartás a felhasználóval
    • Alkalmazások futásának kezelése (indítás, futási feltételek biztosítása)
  • Segédprogramok
    • Felhasználó élmény fokozását kiegészítő programok (szövegszerkeztő, fordítóprogram)
  • Kernel (mag)
    • Ki és bemeneti eszközök kezelése
    • Indítási és futtatási feltételek biztosítása
    • Memóra-hozzáférés biztosítása
    • Háttértárolók kezelése
    • Rendszerhívások kiszolgálása
    • Processzor idejének elosztása

Fájlok és fájlrendszerek.

  • A számítástechnikában egy fájlrendszer alatt a számítógépes fájlok (logikailag összefüggő adatok halmaza) tárolásának és rendszerezésének a módszerét érti, ideértve a tárolt adatokhoz való hozzáférést és az adatok egyszerű megtalálását is.
  • Tárolásuk adattároló eszközökön (HDD,SSD etc..) történik. Ezek az eszközök nagy mennyiségű adat tárolására képesek és megőrzik azt a számítógép kikapcsolása után is.
  • Fájlok jellemzői:
    • Fájlnév (legalább 1 karakter hosszú, maximum 255)
    • Kiterjesztés: fájl jellegére utal
      • Szöveg (txt,doc)
      • Forráskód (java,c)
      • Futtatható (exe,bin)
      • Markup (html)
      • Library (lib)
      • Archive (zip)
      • Multimedia (mov)
      • Print (jpg)
      • Commands (bat,sh)
    • Méret: a fájl mérete bájtokban.
    • Dátum: létrehozás, módosítás, utolsó hozzáférés dátuma.
    • Idő: fájl létrehozásának ideje, utolsó módosítás ideje.
  • Fájlrendszerek:
    • A legismertebb fájlrendszerek az adattároló eszközök segítségével biztosítják, hogy elérhető legyen egy fix méretű blokkokból álló sorozata.
    • A fájlrendszer szoftvere biztosítja, hogy ezeket a szektorokat fájlokká szervezze össze és tarta nyilván, melyik szektor melyik fájlhoz tartozik, és melyik szektorok nem használhatók már tárolásra.
    • A fájlrendszer UNIX esetén egy gyökérkönyvtár (root - / ) és minden létező fájl valahol ebben a gyökértől induló struktúrában helyezkedik el.
    • Sőt, ennek a gyökérnek nem is kell tényleges fizikai hely. Nem kell az első merevlemezen lennie, még csak a gépben sem kell lennie, a Unix képes egy megosztott hálózati erőforrást gyökérkönyvtárként kezelni.
    • UNIX fájlrendszere például az ext4, mely 2008-ban került kifejlesztésre.
    • Elődei ext2,ext3.
    • Windows esetén a használt fájlrendszer az NTFS.
    • A legtöbb operáció rendszerrel ellentétben a Windows a meghajtó betűjel fogalmat felhasználó szinten használja. Két lemez vagy partició megkülönbözőtetésére.

Speciális fájlok Unix alatt.

  • Egy speciális fájl olyan típusú fájl, ami a fájlrendszerben tárolódik.
  • Célja, hogy az eszközt fájlként jelenítse meg a fájlrendszerben, ezzel egy univerzális interface-t nyújtvan a hardver eszközöknek.
  • Linuxban két fajta speciális fájl van:
    • Block special file
    • Character special file
  • Block special:
    • Úgy viselkedik, mint egy közvetlen interface.
    • Egy block eszköz bármely olyan eszköz, amely támogatja az adat input / output-ot blockegységekben.
      • Pl: /dev/sdxn - felcsatolt particiói egy fizikai eszköznek
      • Ahol az x utal a fizikai eszközre, az n pedig a particióra.
      • Pl: /dev/sda1
      • Pl:/dev/loopn
      • Loop eszközök. Ezek a speciális eszközök azok, melyek engedélyezik, hogy egy fájl a fájlrendszerben block eszközként legyen felhasználva.
      • A fájl talán tartalmazhat egy egész fájlrendszert magán.
      • Pl: ISO disk image fájl.
  • Character special files:
    • Hasonló a block eszközhöz, de egy karaktert ír egy időben.
    • Pl: /dev/stdin, /dev/stdout, /dev/stderr, /dev/null

Átirányítás, csővezetékek.

Átirányítás:

  • A programok túlnyomó többsége a billentyűzetről vár adatokat (input), majd a képernyőre küldi az eredményeket (output.)
  • Ezt a két perifériát standard ki és bemenetnek nevezzük, hivatkozás rájuk egész számmal történik. (stdin,0), (stdout,1)
  • Viszont van még a standard hibacsatorna. (stderr,2)
  • Erre való az átirányítás, hogy a kiírandó eredményt ne a billentyűzetről várja, és ne a képernyőre írja ki.
  • Linux alatt gyakorlatilag minden standard outputra író program kimenete átirányítható egy tetszőleges állományba, s hasonlóképp bármelyik program, amelyik a standard inputról olvas, tetszőleges állományból veheti inputját.
  • A bemeneti átirányítás jele “<,, a kimenetié pedig “>,,.
  • Kimenet átirányításakor, ha az állomány, amibe az átirányítást eszközöltük nem üres, akkor az újonnan beleíródó adatok felülírják a tartalmát.
  • Ennek elkerülésére szolgál a “>>,, karakterrel jelzett additív átirányítás, ekkor az átirányított adatok a meglévőkhöz fűződnek.

Csővezetékek:

  • Pipeline az üzenetátadó folyamatok mechanizmusa.
  • Olyan folyamatok együttese, amik egymáshoz vannak láncolva, szóval az összes folyamat kimenete egy bemenetként lesz megadva.
  • A második folyamat is még úgy indul el, hogy közben a legelső is fut, vagyis egyidejűleg hajtódnak végre.
  • Pl: egyidejűleg megadni, hogy hozzon létre valamit és azt rendezze is.
  • Megadáskor a folyamatok közé “|,, jelet teszünk.

Folyamatkezelés.

  • Process = folyamat.
  • A Linux/UNIX multiprogramozott operációs rendszer, így párhuzamosan több program (folyamat) fut.
  • Minden futó program egy processzt határoz meg, minden processznek van egy azonosító száma, amivel lehet rá hivatkozni.
  • INIT: a linux legfőbb szolgáltatása, ez indul elsőként, meghatározza, hogy milyen alkalmazások fognak lefutni, és milyen démonok fognak elindulni.
  • Démon: olyan program, ami valamilyen szolgáltatásért felelős, amely túlnyomórészt figyeli a kéréseket. (pl: apache, sendmail, smbd…)
  • A démonoknak átadott végrehajtási kérelmek neve a job, ezekből jön létre a queue, a sor.
  • A sorba rendezett feladatokat a rendszer egyenként hajtja végre.
  • Processek állapotai:
    • user running (felhasználói módban fut)
    • kernel running (kernel módban fut)
    • ready to run
    • sleep (valamilyen eseményre várakozik)
    • stopped (a folyamat megállítható, majd újraindítható)
    • swapping (a rendszer egy memórialapot lemezre ír/betölt)
    • zombie (exit után a folyamat elteszi a visszatérési értéket)
  • Processzek kezelése:
    • folyamat azonosító: PID (process ID)
    • egy folyamatot mindig egy másik folyamat hoz létre (kivéve az init-et) -> szülő folyamat (Parent - Process) és gyerek folyamat (Child Process), árva folyamat (orphans)
    • háttérben futó munkáink: jobs

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érbenfutó processznek. Igen sok (kb. 60 db) szignál létezik, ezek közül csak néhányat említek. Processzt megszüntetni szintén szignál(ok) segítségével lehet: az előtérben futó program a Ctrl+C megnyomására egy INT szignált kap, amely rendszerint a program elhalálozását vonja maga után. Háttérben futó folyamatainkat a kill paranccsal állíthatjuk le.
  • Kill:
    • 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. Alapértelmezés szerint (signal paraméter nélkül használva) a kill egy TERM (terminate) szignált küld a megadott folyamatnak.

Ütemezett végrehajtás.

  • 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.
  • Egyszeri (ma 7-kor):
    • At
  • Ciklikus (a hét minden napján 7-kor):
    • Cron