Nyíregyházi Főiskola Matematika és Informatika Intézete
02
Processzusok (Processes), Szálak (Threads), Kommunikáció (IPC, Inter-Process Communication) 1. 2. 3. 4. 5.
A folyamat (processzus, process) fogalma Folyamatok: műveletek, állapotok, hierarchia Szálak (threads) Ütemezés (scheduling) Kommunikáció
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
1
Nyíregyházi Főiskola Matematika és Informatika Intézete
02
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
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
2
Nyíregyházi Főiskola Matematika és Informatika Intézete
02
A teendők:
ahol PCB – Process Control Block – folyamat leíró blokk
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
3
Nyíregyházi Főiskola Matematika és Informatika Intézete
02
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.
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
4
Nyíregyházi Főiskola Matematika és Informatika Intézete
02
Állapot (state):
1. 2. 3.
Futásra kész (ready) Fut (running) Várakozik (blocked)
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
5
Nyíregyházi Főiskola Matematika és Informatika Intézete
02
6
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 root 0 0 root 418 1 daemon 156 1
C 0 0 0
STIME TTY Sep 18 ? Sep 18 ? Sep 18 ?
TIME 0:17 0:00 0:00
CMD sched /usr/lib/saf/sac -t 300 /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 13066 boris 1 33 0 1472K 1384K cpu 164 root 6 7 0 7952K 4088K sleep 13072 www 4 24 0 5928K 3288K sleep Dr. Bajalinov Erik
TIME 0:00 25:32 0:00
CPU 0.16% 0.15% 0.09%
COMMAND top automountd httpd
Operációs rendszerek (PMB1206)
Nyíregyházi Főiskola Matematika és Informatika Intézete
02
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
7
Nyíregyházi Főiskola Matematika és Informatika Intézete
02
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
8
Nyíregyházi Főiskola Matematika és Informatika Intézete
02
Megvalósítás - Folyamat tábla mezei (process table)
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
9
Nyíregyházi Főiskola Matematika és Informatika Intézete
02
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). 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.) 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. Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
10
Nyíregyházi Főiskola Matematika és Informatika Intézete
02
11
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? Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
Nyíregyházi Főiskola Matematika és Informatika Intézete
02
12
Sok adat esetén: Folyamat
1. szál: az adatok beolvasása
Dr. Bajalinov Erik
2. szál: Feldolgozás
3. szál: Az eredmények mentése
Operációs rendszerek (PMB1206)
Nyíregyházi Főiskola Matematika és Informatika Intézete
02
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!
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
13
Nyíregyházi Főiskola Matematika és Informatika Intézete
02
Megvalósítás: Kernel által támogatott szálak (Machintosh és OS/2)
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
14
Nyíregyházi Főiskola Matematika és Informatika Intézete
02
Felhasználói szintű szálak (Windows NT-tól)
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
15
Nyíregyházi Főiskola Matematika és Informatika Intézete
02
Vegyes (hibrid) megközelítés: kernel- és felhasználói szintű szálak (Solaris 2)
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
16
Nyíregyházi Főiskola Matematika és Informatika Intézete
02
Ü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, Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
17
Nyíregyházi Főiskola Matematika és Informatika Intézete
02
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. Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
18
Nyíregyházi Főiskola Matematika és Informatika Intézete
02
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. Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
19
Nyíregyházi Főiskola Matematika és Informatika Intézete
02
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…
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
20