Processzusok (Processes), Szálak (Threads), Kommunikáció (IPC, Inter-Process Communication)

Hasonló dokumentumok
Processzusok (Processes), Szálak (Threads), Kommunikáció (IPC, Inter-Process Communication)

Matematikai és Informatikai Intézet. 4. Folyamatok

Uniprogramozás. várakozás. várakozás. Program A. Idő. A programnak várakoznia kell az I/Outasítások végrehajtására mielőtt továbbfuthatna

Operációs rendszerek. Az Executive és a kernel Policy és mechanizmusok szeparálása Executive: policy - objektum kezelés Kernel: mechanizmusok:

OPERÁCIÓS RENDSZEREK 1. PROCESSZKEZELÉS

(kernel3d vizualizáció: kernel245_graph.mpg)

Operációs rendszerek Folyamatok 1.1

Ütemezés (Scheduling),

Operációs rendszerek. Folyamatok kezelése a UNIX-ban

Windows ütemezési példa

OPERÁCIÓS RENDSZEREK I. BEVEZETÉS Koczka Ferenc -

Ütemezés (Scheduling),

Operációs Rendszerek II.

Operációs Rendszerek II.

A mai program OPERÁCIÓS RENDSZEREK. A probléma. Fogalmak. Mit várunk el? Tágítjuk a problémát: ütemezési szintek

Feladatok (task) kezelése multiprogramozott operációs rendszerekben

2. Folyamatok. Operációs rendszerek. Folyamatok. Bevezetés Folyamatkezelés multiprogramozott rendszerekben. Folyamatok modellezése

Vé V g é r g e r h e a h j a tá t s á i s s z s ál á ak a Runnable, Thread

C# Szálkezelés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Szálkezelés / 21

Operációs rendszerek. Az NT folyamatok kezelése

Informatikai rendszerek alapjai (Informatika I.)

Folyamatok. 6. előadás

Bevezetés az informatikába

Számítógépes alapismeretek

Operációs rendszerek MINB240

Operációs rendszerek

Operációs rendszerek Memóriakezelés 1.1

386 processzor címzés

Operációs rendszerek. 3. előadás Ütemezés

Architektúra, megszakítási rendszerek

Operációs rendszerek

Konkurens TCP Szerver

Előadás_#02. Előadás_02-1 -

Operációs rendszerek II. Folyamatok ütemezése

Léteznek nagyon jó integrált szoftver termékek a feladatra. Ezek többnyire drágák, és az üzemeltetésük sem túl egyszerű.

Számítógépek felépítése

Előadás_#03. Előadás_03-1 -

Operációs rendszerek

OPERÁCIÓS RENDSZEREK II GYAKORLAT

Tartalom. Operációs rendszerek Bevezetés CPU ütemezés. Középtávú ütemezés. Hosszútávú ütemezés

Operációs rendszerek. Az NT memóriakezelése

Operációs rendszerek. Bemutatkozás

Operációs rendszerek 1. kidolgozott tételsor Verzió: 1.0 (Build: )

Operációs rendszerek MINB240

Szenzorhálózatok programfejlesztési kérdései. Orosz György

Számítógép architektúra

Processzus. Operációs rendszerek MINB240. Memória gazdálkodás. Operációs rendszer néhány célja előadás Memóriakezelés

A számítógép egységei

Operációs rendszerek. A Windows NT

3Sz-s Kft. Tisztelt Felhasználó!

Operációs rendszerek III.

Párhuzamosság a modern operációs rendszerekben

Magas szintű optimalizálás

Operációs rendszerek MINB240

Az informatika alapjai. 10. elıadás. Operációs rendszer

Dr. Illés Zoltán

Operációs rendszerek. Folyamatok ütemezése

Az MTA Cloud a tudományos alkalmazások támogatására. Kacsuk Péter MTA SZTAKI

Operációs rendszerek

Feladatok (task) kezelése multiprogramozott operációs rendszerekben

Mértékegységek a számítástechnikában

Autóipari beágyazott rendszerek. Komponens és rendszer integráció

Operációs rendszerek. A Windows NT felépítése

Programozási nyelvek és módszerek Java Thread-ek

Hozzáférés a HPC-hez, kezdő lépések (előadás és demó)

Nyíregyházi Egyetem Matematika és Informatika Intézete. Input/Output

OPERÁCIÓS RENDSZEREK. Elmélet

Operációsrendszerek. 2. elıadás. Standard ismeretek II.

Az előadás magáncélra szabadon felhasználható. Köz- és felsőoktatásban felhasználható, csak előtte kérlek írj egy t nekem.

1. Fejezet: Számítógép rendszerek. Tipikus számítógép hirdetés

TestLine - GINOP teszt Minta feladatsor

Tartalom. Történeti áttekintés. Történeti áttekintés Architektúra DCOM vs CORBA. Szoftvertechnológia

Operációs rendszerek MINB240

SZOFTVER = a számítógépet működtető és az azon futó programok összessége.

Magic xpi 4.0 vadonatúj Architektúrája Gigaspaces alapokon

Virtualizáció. egy hardveren több virtuális rendszer működik egyszerre, virtuális gépekben futó önálló vendég (guest) operációs rendszerek formájában

Alternatív processz állapot és statisztika lekérdezési módszer a Linux kernelben

Programok, statikus linkelés

Szoftver labor III. Tematika. Gyakorlatok. Dr. Csébfalvi Balázs

Condor rendszer röviden. IKTA NI-2000/0008 munkaszkasz zárókonferencia

Balogh Ádám Lőrentey Károly

Tartalom 1 BIZTONSÁGI UTASÍTÁSOK 2 2 CSOMAG TARTALMA 3 3 A TERMÉK NÉZETEI 4 4 RENDSZERCSATLAKOZTATÁS 5

Digitális rendszerek. Digitális logika szintje

Informatikai Rendszerek Intézete Gábor Dénes Foiskola. Operációs rendszerek oldal LINUX

Párhuzamos és Grid rendszerek

UNIX folyamatok kommunikációja

Számítógép Architektúrák

Bevitel-Kivitel. Eddig a számítógép agyáról volt szó. Szükség van eszközökre. Processzusok, memória, stb

Nyíregyházi Egyetem Matematika és Informatika Intézete. Fájl rendszer

Operációs rendszerek. 1. Bevezetö. Operációs rendszer: nincs jó definíció

Operációs rendszerek MINB240 V2+2+0

Operációs rendszerek MINB240 V kredit KF Nagyváradi Anett 0. előadás Bevezetés

OPERÁCIÓS RENDSZEREK. A mai program. Fogalmak. Ütemezés és a Context Switch

Folyamatok kezelése. Az operációs rendszerek egyik legfontosabb feladata a folyamatok kezelése.

Operációs rendszerek Folyamatközi kommunikáció 1.1

Analitikai megoldások IBM Power és FlashSystem alapokon. Mosolygó Ferenc - Avnet

MPLAB IDE - SIM - - Rövid ismertető a használathoz - Kincses Levente 3E22 89/ November 14. Szabadka

Operációs rendszerek 1.

Operációs rendszerek előadás Multiprogramozott operációs rendszerek

Számítógépek felépítése, alapfogalmak

Átírás:

1 Processzusok (Processes), Szálak (Threads), Kommunikáció (IPC, Inter-Process Communication) 1. A folyamat (processzus, process) fogalma 2. Folyamatok: műveletek, állapotok, hierarchia 3. Szálak (threads) 4. Ütemezés (scheduling) 5. Kommunikáció

2 A folyamat (processzus, process) fogalma A program - a háttértárolón várakozó, végrehajtható fájl. A folyamat - a program egy memóriában futó példánya + az adott példány végrehajtásával kapcsolatos OS tevékenysége. Def: a program végrehajtása + vele (azzal) kapcsolatos teendők. Példa: Tortasütés +Darázscsípés

3 A teendők: ahol PCB Process Control Block folyamat leíró blokk

4 PCB struktúrája

5 Műveletek: 1. A folyamat létrehozása (rendszer inicializáció, felhasználó kérés, kötegelt csomag indítása) 2. A folyamat befejezése (normális, belső hiba, kritikus/javíthatatlan hiba, erőteljes/erőszakos befejezése, azaz killing) 3. Megszakítása (magasabb rangú folyamat indítása miatt, várakozás) 4. Gyermek (child) létrehozása Hierarchia: Egy folyamatnak lehet gyermeke. Gyermek-folyamatnak lehet saját gyermeke. Minden gyermeknek csak egy szülő-folyamata van. Együtt csoportot (UNIX/LINUX - group) alkotnak. Windowsban ilyen hierarchia nincsen.

6 Állapot (state): 1. Futásra kész (ready) 2. Fut (running) 3. Várakozik (blocked)

7 Processzus állapot információk: UNIX/LINUX: ps, top; Windows: Task manager (Ctrl-Al-Del) vagy What Process, stb % ps -ef more UID PID PPID C STIME TTY TIME CMD root 0 0 0 Sep 18? 0:17 sched root 418 1 0 Sep 18? 0:00 /usr/lib/saf/sac -t 300 daemon 156 1 0 Sep 18? 0:00 /usr/lib/nfs/statd % top load averages: 0.01, 0.03, 0.05 22:46:49 81 processes: 80 sleeping, 1 on cpu CPU states: 99.4% idle, 0.4% user, 0.2% kernel, 0.0% iowait, 0.0% swap Memory: 256M real, 27M free, 61M swap in use, 451M swap free PID USERNAME THR PRI NICE SIZE RES STATE TIME CPU COMMAND 13066 boris 1 33 0 1472K 1384K cpu 0:00 0.16% top 164 root 6 7 0 7952K 4088K sleep 25:32 0.15% automountd 13072 www 4 24 0 5928K 3288K sleep 0:00 0.09% httpd

8

9 Angol nyelvű környezetben Task Manager

10 Free process manager for Windows

11 Megvalósítás - Folyamat tábla mezei (process table)

12 Linux PCB tábla

13 Command.Com (Dos) Tasklist

14

15 Szálak folyamatokhoz hasonló fogalom. A folyamaton belül több tevékenység végezhető párhuzamosan (ha egy processzor van) vagy párhuzamosan (ha több processzor van). Def: (http://hu.wikipedia.org/wiki/szál_(programozás) A végrehajtási szál (angolul thread) a számítógép-programozás során létrehozott, önálló végrehajtási egységként működő program, objektum, szekvenciálisan végrehajtható utasítás-sorozat, egy adott probléma véges számú lépésben történő megoldása (algoritmus). Nincs saját memória, saját erőforrás csak a regiszterek, program címszámláló (PC Program Counter) és a verem sajátja (+állapot) minden más közös a folyamatával (fájlok, nyomtatók, stb.)

16 Előny: Gyors váltást tesz lehetővé Osztott erőforrások (memória!) Párhuzamosság Időszelet kvantum (quantum): az a maximális idő, ameddig az OS futni engedi a szálat. A kvantum értéke a szálakhoz van rendelve, szálanként változhat.

17 Példák: Szövegszerkesztő, táblázatkezelő, Web-szerver, Nagy méretű adatok feldolgozása, stb.: Szöveg formálása Mentés Billentyűzet, egér Helyesírás ellenőrzés még egy szál?

18 Sok adat esetén: Folyamat 2. szál: Feldolgozás 1. szál: az adatok beolvasása 3. szál: Az eredmények mentése

19 Problémák Természetes megoldás: párhuzamos kód több folyamat (hiszen erre való!) Ez így jó (is volt sokáig), de: Létrehozásuk, megszűntetésük drága (regiszterek, memória, adatok) Kommunikáció, együttműködés (drága) kernel műveletekkel lehetséges Kell szálállapot-tábla (Hol? Programban? Kernelben?) Folyamatok közötti váltás költséges (szálakat is kell lekezelni!) Általában: kernel funkciók futtatása drága!

20 Megvalósítás: Kernel által támogatott szálak (Machintosh és OS/2)

21 Felhasználói szintű szálak (Windows NT-tól)

22 Vegyes (hibrid) megközelítés: kernel- és felhasználói szintű szálak (Solaris 2)

23 Ütemezés (scheduling) Cél: mindig legyen legalább egy processzus, amelyik képes és kész a processzort lefoglalni. Processzus ütemezési sorok (queue): job queue (munka sor) ready queue (készenléti sor) device queue (berendezésre váró sor) Folyamat migráció az egyes sorok között: FIFO First In First Out, FILO First In Last Out,

24 Folyamat ütemezők: 1. Hosszútávú ütemező (long term scheduler, job scheduler) Feladat: a job queue kezelése 2. Rövidtávú ütemező (short term scheduler, CPU scheduler) Feladat: melyik folyamat kapja meg következő alkalommal a CPU-t, gyorsaság lényeges Szempontok: A. I/O igényes és CPU igényes folyamatok B. Context switch tartalma (process context a várakozó processzus további indításához vagy folytatásához szükséges összes információ rendszerezve) C.

25 Kommunikáció szükséges a következő szituációkban: 1. Adatok átadása az egyik folyamatból a másiknak (Pipelining) 2. Közös erőforrások használata (memória, nyomtató, stb.) Példa: Az eredmény: az a.txt fájl a nyomtatási sorba nem kerül.

26 Versenyhelyzet race condition Kritikus szekció (Critical section): a program (vagy folyamat) az a része, ahol előfordulhat versenyhelyzet. Megoldás: Egyszerre csak egy folyamat lehet kritikus szekcióban. Amíg a folyamat kritikus szekcióban van, azt nem szabad megszakítani. Ebből a megoldásból származhatnak új problémák