A proc jegyzékben a processz kontroll rendszerhívásokra találunk példákat:
system-syscall-pelda.c - system( ) rendszerhívásokra,
szulo-gyermek-egyutt-fut.c - fork( ) hívásra,
fork-exec-villak.c & echoall.c - fork után execle( ) és execlp( ) hívásokra példa.
A következõ fájlok processz terminálódási példák:
processz-terminalodasok.c - különbözõ terminálódások,
processz-terminalodas2.c - terminálódó processz gyermekei esete,
zombie-processz.c - zombie elõállítás.
A proc jegyzékben van egy Makefile is, mely segítségével elõállíthatók a futtaható példaprogramok.
A némelyik futtatható programnak szüksége van az a lib/prexit.c fájlból elõállított tárgymodulra. A proc/Makefile szerint ezt a $OBJ/mylib.a könytárba csomagoltuk. A prexeit.c-beli pr_exit( ) a terminálódás jellemzõjét és a visszatérési értéket írja ki.
A signals jegyzékben a szignálozásra találunk példákat.
Az alarm-ado1.c SIGALRM szignált küld az argumentumában megadott azonosítójú (pid-û) processznak, SVID stílusban, a kill( ) rendszerhívással.
Az alarm-ado2.c szintén SIGALRM szignált küld az argumentumában megadott azonosítójú processznek, de a sigsend( ) rendszerhívással.
Az alarmra-var1.c a SIGALRM szignál kezelését beállítja saját kezelõre. Ezt a signal( ) rendszerhívással teszi.
Végül az alarmra-var2.c szintén a saját kezelõ beállítását mutatja, de itt a POSIX sigaction( ) rendszerhívással történik a diszponálás.
Az abort.c önmagában nem futtatható
függvény. Azt mutatja be, milxyen is lehetne egy POSIX stílusú
abort( ) rendszerhívás. Hívása során nem
lehet a SIGABRT szignált ignorálni, nem lehet kezelését
átvenni, és nem lehet blokkolni.
Hogy mindezeket biztosítsuk, ezt mutatná be az abort.c fájl.
POSIX stílusú szinálkezelõ hívásokat
tanulmányozhatunk benne. Érdemes megnézni!
Az ipc/msg jegyzékben a klasszikus üzentsor használatára találhatunk példákat.
Három C program van a jegyzékben.
Az msgletrehozas.c üzenetsort hoz
létre, ha az még nem létezik, beazonosítja, ha az
adott kulcsú sor már létezik.
Ezután megnézi, az üzenetsorban van-e üzenet, Kiírja
az esetleges üzeneteket, ezzel ki is üríti a sort.
Az msgkuldes.c beazonosítja az adott kulcsú üzenetsort, illeteve, ha az nem létezik, létrehozza. Ezután a szabványos kimenetre "készenléti jelet ad, azt jelezve, hogy egy sort beolvasna. A beolvasott sort beteszi az üzenetsor következõ üzenetének.
Az msgmegszuntetes.c program az adott kulcsú üzenetsort törli, feltéve, hogy az üres.
A Makefile segíthet a gyors fordításokban.
Az ipc/shm jegyzékben az osztott memória szegmens használatára van egyetlen példa:
az osztott-mem-jmp.c fájl.
Az ipc/sem jegyzéket is érdemes megnézni.
Három összetartozó, nagyon egyszerû példaprogramot találunk a mutex-creator.c, a mutex-hasznalo.c és a mutex-takarito.c fájlokban. Ezekhez is szükséges a mysem.h nevû beleértett fájl. E három programmal az egyszerû, egyetlen elemi szemafort tartamazó, a kölcsönös kizárást biztosító (mutex) szemafor kezelést mutatjuk be.
A további négy C nyelvû program rendre a term-fogy-inicializalas.c, a term-fogy-fogyaszto.c, a term-fogy-termelo.c és a term-fogy-takarito.c fájlokban található meg. Ezek is használják a mysem.h beleértett fájlt. Ezekkel az elõadáson is szereplõ termelõ-fogyasztó probléma egy megoldását mutatjuk be: a korlátlan számú termelõ processzt, szintén korlátlan fogyasztót, a korlátozott raktárt és az egyetlen ki-berakó-gépes modellt. Ha megnézzük a programokat, láthatjuk, hogy a szükséges három szemafort egyetelen, de három elemi szemaforból alkotott szemaforral valósítjuk meg.
Ugyanitt a Makefile segíthet a gyors fordításokban.