Debreceni Egyetem
Matematikai és Informatikai Intézet
4. Folyamatok • A folyamat (processzus) fogalma • Folyamat ütemezés (scheduling) • Folyamatokon végzett "mûveletek" • Folyamatok együttmûködése, kooperációja • Szálak (thread) • Folyamatok közötti kommunikáció
Operációs rendszerek (I 1204)
49
Dr. Fazekas Gábor
Debreceni Egyetem
Matematikai és Informatikai Intézet
• A folyamat (processzus) fogalma • A folyamat (processzus): végrehajtás alatt álló program. Betölthetô program (jellemzôi) • passzív • lemezen tárolt • betöltési cím • belépési pont • …
Processzus (jellemzôi) • aktív • a memóriában van/volt • program címszámláló értéke • regiszterek értéke • lokális/globális változók értéke • verem állapota • … core dump …
• A processzus állapotai
befejezett (terminated)
interrupt
felvéve új (new) futásra kész (ready)
I/O vagy esemény befejezôdése
Operációs rendszerek (I 1204)
ütemezô intézkedése
várakozó (waiting) 50
futó (running)
I/O eredménye vagy esemény kell Dr. Fazekas Gábor
Debreceni Egyetem
Matematikai és Informatikai Intézet
• Processzus - vezérlô blokk (Process Control Block – PCB) • processzus állapot (process state) : new, ready, running, waiting, halted, sleeping, … • Program címszámláló (PC) értéke • CPU regiszterek tartalma • memória foglalási adatok • account/user adatok • I/O státusz információ (a folyamathoz rendelt I/O erôforrások, állományok listája)
• Processzus állapot információk (UNIX: ps, top; NT: Task manager) TOP:
last pid: 9099; load averages: 0.00, 0.00, 0.01 29 processes: 28 sleeping, 1 on cpu CPU states: 99.6% idle, 0.2% user, 0.2% kernel, 0.0% iowait, Memory: 128M real, 58M free, 120M swap free PID 9099 226 4081 4084 583 1 166 8895 239 212 170 592
USERNAME THR PRI NICE SIZE RES STATE fazekas 1 58 0 2608K 1952K cpu root 1 58 0 912K 672K sleep root 1 58 0 1904K 1648K sleep fazekas 1 48 0 2600K 2160K sleep root 1 45 0 1760K 1024K sleep root 1 58 0 680K 312K sleep root 5 58 0 2720K 2144K sleep root 1 59 0 9208K 10M sleep root 5 22 0 2296K 1928K sleep root 3 22 0 1168K 848K sleep root 8 35 0 3608K 1936K sleep root 1 38 0 1560K 1120K sleep
Operációs rendszerek (I 1204)
51
TIME 0:00 0:00 0:00 0:00 3:30 0:02 0:01 0:01 0:00 0:00 0:00 0:00
CPU 0.42% 0.02% 0.02% 0.00% 0.00% 0.00% 0.00% 0.00% 0.00% 0.00% 0.00% 0.00%
11:33:35 0.0% swap
COMMAND top utmpd sshd tcsh sshd init automountd Xsun vold powerd syslogd ttymon
Dr. Fazekas Gábor
Debreceni Egyetem
Matematikai és Informatikai Intézet
PS: USER fazekasg 0s6gpT root fazekasg fazekasg fazekasg root fazekasg fazekasg fazekasg fazekasg +Wi root root root root root root root root root root root root root root root root root root root root root
PID %CPU %MEM SZ RSS TT 513 1.1 2.012192 9848 ?
S START S 15:00:12
TIME COMMAND 0:38 /usr/openwin/bin/Xsun :0 -nobanner -auth /var/dt/A:0-
989 722 719 984 3 744 620 733 636
0.2 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.0
0.2 0.4 0.7 0.7 0.0 0.7 0.4 0.7 1.0
1184 1992 3840 4528 0 3864 2472 3848 5496
1064 1784 3128 3424 0 3176 2080 3120 4896
pts/6 pts/6 ?? ? ? ?? pts/2 ?? pts/2
O R S S S S S S S
08:41:39 15:39:28 15:39:28 08:40:53 14:52:17 15:57:25 15:01:22 15:43:04 15:01:38
0:00 0:00 0:00 0:00 0:37 0:00 0:00 0:00 0:03
ps -augx /bin/tcsh /usr/openwin/bin/cmdtool /usr/openwin/bin/textedit fsflush /usr/openwin/bin/cmdtool olwm -syncpid 619 /usr/openwin/bin/cmdtool /usr/openwin/bin/filemgr -Wp 0 291 -Ws 592 439 -WP 81 833
0 1 2 119 121 127 149 154 156 174 178 189 201 211 229 232 244 259 289 298 299
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.1 0.0 0.3 0.3 0.3 0.4 0.4 0.3 0.5 0.4 0.3 0.5 0.2 0.2 0.4 0.2 0.4 0.3 0.4 0.5
0 664 0 1872 1992 1920 1928 2264 1864 2912 3712 1808 2824 2640 1152 2104 888 2248 1840 2496 3144
0 312 0 1240 1296 1488 1712 1824 1528 2488 2032 1456 2512 952 840 1696 712 1936 1376 1704 2304
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
T S S S S S S S S S S S S S S S S S S S S
14:52:16 14:52:17 14:52:17 14:53:04 14:53:04 14:53:05 14:53:18 14:53:18 14:53:18 14:53:19 14:53:20 14:53:20 14:53:21 14:53:24 14:53:27 14:53:27 14:53:28 14:53:29 14:53:35 14:53:37 14:53:38
0:00 0:00 0:00 0:00 0:00 0:00 0:00 0:00 0:00 0:00 0:00 0:00 0:00 0:00 0:00 0:00 0:00 0:01 0:00 0:00 0:00
sched /etc/init pageout /usr/sbin/rpcbind /usr/sbin/keyserv /usr/sbin/nis_cachemgr /usr/sbin/inetd -s /usr/lib/nfs/statd /usr/lib/nfs/lockd /usr/lib/autofs/automountd /usr/sbin/syslogd /usr/sbin/cron /usr/sbin/nscd /usr/lib/lpsched /usr/lib/power/powerd /usr/lib/sendmail -bd -q1h /usr/lib/utmpd /usr/sbin/vold /usr/lib/snmp/snmpdx -y -c /etc/snmp/conf /usr/lib/dmi/dmispd /usr/lib/dmi/snmpXdmid -s pader
Operációs rendszerek (I 1204)
52
Dr. Fazekas Gábor
Debreceni Egyetem
Matematikai és Informatikai Intézet
• Folyamat ütemezés (scheduling) • Cél: mindig legyen legalább egy processzus, amelyik képes és kész a processzort lefoglalni. • Processzus ütemezési sorok: • 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:
Operációs rendszerek (I 1204)
53
Dr. Fazekas Gábor
Debreceni Egyetem
Matematikai és Informatikai Intézet
• Folyamat ütemezôk: • Hosszútávú ütemezô (long term scheduler, job scheduler) • mi kerül a job queue-ba, lehet lassú, a multiprgramozás foka
• Rövidtávú ütemezô (short term scheduler, CPU scheduler) • melyik folyamat kapja meg következô alkalommal a CPU-t, gyorsaság lényeges
• Szempontok: • I/O igényes és CPU igényes folyamatok • Context switch (process context a processzus továbbindításához szükséges összes információ rendszerezve, struktúrálva – kapcsolódó adatszerkezetek.)
Operációs rendszerek (I 1204)
54
Dr. Fazekas Gábor
Debreceni Egyetem
Matematikai és Informatikai Intézet
• Folyamatokon végzett "mûveletek" (operációk) • Processzus létrehozása • (kezdeti betöltést kivéve processzust csak processzus hozhat létre!)
• Mechanizmusa: egy szülô (parent) folyamat létrehozhat gyermek (child) folyamatokat, majd a gyermekek további gyermekeket → fastruktúra • Erôforrás megosztás: • Szülô és gyermek közösen használ minden erôforrást. • A gyermek a szülô erôforrásainak egy részét használhatja. • Nincs közös erôforráshasználat.
• Végrehajtás: • Szülô és gyermek konkurens módon fut. (UNIX: parancs&) • Szülô a gyermekre vár. (UNIX: parancs )
• Címtér (address space) • A gyermek a szülô duplikáltja. • A gyermek betölt egy programot önmaga helyett .
• UNIX példák: fork, execve
Operációs rendszerek (I 1204)
55
Dr. Fazekas Gábor
Debreceni Egyetem
Matematikai és Informatikai Intézet
• Processzus megszün(tet)ése (termination) A folyamat végrehajtja az utolsó utasítását, majd megkéri az operációs rendszert, hogy törölje
Operációs rendszerek (I 1204)
56
Dr. Fazekas Gábor