2. Előadás
Számítógépek hardveres felépítése
- Tárolt programok, utasítások adatok azonos módon a memóriában helyezkednek el.
- Vezérlő egység (CPU), aretmetikai-logikai egység (ALU) az utasítások végrehajtását, alapvető aritmetikai műveleteket felügyelik.
- Szükség van be/kimenetek (I/O) kezelésre.
- Összekötő kapocs: busz (sín, adat, cím, vezérlő)
Processzor utasítások
A rendszer gyakorlatilag minden eleme intelligens, de a kulcsszereplő a processzor, mikrokontroller.
Regiszterek: speciális memória a processzoron belül. (általános, jelző, )
Utasításcsoportok:
- Adatmozgató utasítások
- Ugró utasítások (abszolút, relatív)
- I/O port kezelés
- Megszakítás kezelés
Védelmi szintek
- Kernel mode (interrupt, I/O, bizonyos memória kezelése)
- User mode
Adatok, utasítások a memóriában, ezeket a CPU végrehajtja.
Számítógépek szoftveres felépítése
- Logikai áramkörök
- CPU, mikroprogram, mikroarchitektúra szint
- Számítógép, gépi elemek gépi kódja
- Operációs rendszer
- Rendszeralkalmazások
- Alkalmazások
Operációs rendszer fogalma, feladata
Operációs rendszer: Olyan program ami egyszerű felhasználói felületet nyújt, eltakarva a számítógép(rendszer) eszközeit.
- Absztrakt, virtuális gép
- pl.: mindegy hogyan, de át akarok másolni egy képet.
- Erőforrás menedzser
- Felhasználói felület biztosítása
- Kommunikáció perifériákkal
- Lekérdezéses átvitel (polling): I/O portok folyamatos lekérdezése
- Interrupt használat: A kívánt esemény bekövetkezésekor a megadott programrész kerül végrehajtásra.
- DMA, közvetlen memória elérés
Programkönyvtárak
Lehetnek gépi kódban írtak, de leggyakrabban C-API-t biztosítanak.
Jellemzően réteges szerkezetű:
- Rendszer szintű hívás (pl.: kommunákció a perifériákkal)
- Felhasználói hívás
Firmware: Hardverbe a gyártó által épített szoftver
Middleware: OS feletti réteg, pl.: JVM
POSIX
POSIX = Portable Operating System Interface for uniX (IEEE 1003, ISO 9945)
Valójában egy minimális rendszerhívás API.
Szabvány ANSI C-vel azonos függvénykönyvtár.
Manapság mindens OS POSIX kompatibilis.
Fontosabb POSIX témakörök:
- Fájl, könyvtárműveletek
- Folyamatok kezelése
- Szignálok
- Csövek
- Standard C függvénykönyvtár
- Órák, időzítők
- Szálak kezelése
Függvénycsoport példák
- Matematikai függvények: pl. sin, cos, tan, atan, atan2, log, exp stb.
- Állománykezelő függvények: pl. creat, open, fopen, close, read, write, unlink stb.
- Könyvtárkezelő függvények: pl. opendir, closedir, mkdir, rmdir, readdir stb.
- Karakterfüzér‐kezelő függvények: strcpy, strlen strcmp, strcat, strchar, strstr stb.
- Memória-kezelők: malloc, free, memcpy stb.
- Belső kommunikációs függvények: msgsnd, msgrcv, shmat, semop, signal, kill, pipe stb.