H
I U HÀNH
(OPERATING SYSTEM)
Trình bày:Nguy n Hoàng Vi t
Khoa Công Ngh Thông Tin
i H c C n Th
3.1
Ch
ng 3: Quá trình (Process)
̇ Khái ni m v quá trình
̇ nh th i cho quá trình
̇ Các thao tác trên quá trình
̇ Giao ti p liên quá trình
Nguy n Hoàng Vi t – Khoa Công Ngh Thông Tin HCT (2007)
3.2
Khái ni m v quá trình (1)
nh ngh a
̇ H đi u hành có th th c thi nhi u d ng ch
• Các ch ng trình H H – system calls
• H th ng bó – các công vi c (jobs)
• H th ng chia th i gian - ch ng trình ng
•
hay tác v (task)
H th ng m t ng
i dùng – các ch
ng trình:
i dùng (user program)
ng trình ng d ng khác nhau
̇ Quá trình - là m t ch
̇
ng trình đang th c thi. S
quá trình di n ra theo cách th c tu n t .
M t quá trình bao g m:
•
•
•
•
•
th c thi c a
Mã l nh ch ng trình (program code)
B đ m ch ng trình (program counter) và các thanh ghi c a CPU
Ng n x p (stack)
Ph n d li u (data section)
Có th g m ph n b nh c p phát đ ng khi quá trình ch y (heap)
Nguy n Hoàng Vi t – Khoa Công Ngh Thông Tin HCT (2007)
3.3
Khái ni m v quá trình (2)
Tr ng thái c a quá trình (Process state)
M t quá trình có th có m t trong các tr ng thái sau:
̇ new: quá trình đang đ c kh i t o.
̇ running: các ch th c a quá trình đang đ c th c thi.
̇ waiting: quá trình đang ch đ i m t s ki n nào đó xu t
hi n (hoàn thành xu t/nh p, ch đ i m t tín hi u).
̇ ready: quá trình đang đ i đ đ c s d ng CPU.
̇ terminated: quá trình đã k t thúc.
Nguy n Hoàng Vi t – Khoa Công Ngh Thông Tin HCT (2007)
3.4
Khái ni m v quá trình (3)
L u đ tr ng thái c a quá trình
Nguy n Hoàng Vi t – Khoa Công Ngh Thông Tin HCT (2007)
3.5
Khái ni m v quá trình (4)
Kh i đi u khi n quá trình (PCB - Process Control Block)
Là thông tin k t h p v i m i quá trình:
̇
̇
̇
̇
̇
̇
̇
Tr ng thái c a quá trình
B đ m ch ng trình
Các thanh ghi
Thông tin v đ nh th i s d ng
CPU
Thông tin v qu n lý b nh
Thông tin v chi phí
Thông tin v tr ng thái nh p/xu t
Nguy n Hoàng Vi t – Khoa Công Ngh Thông Tin HCT (2007)
3.6
Khái ni m v quá trình (5)
Chuy n CPU ph c v các quá trình
̇ PCB đ
c xem
nh m t n i c t
gi các thông tin
cho các quá trình.
̇ Thông tin tr ng
thái ph i đ c l u
tr
khi
m t
interrupt xu t hi n,
nh m cho phép
quá trình có th
ti p t c chính xác
v sau.
Nguy n Hoàng Vi t – Khoa Công Ngh Thông Tin HCT (2007)
3.7
Khái ni m v quá trình (6)
Chuy n ng c nh (Context Switch)
̇ Khi CPU chuy n sang m t quá trình khác, h th ng ph i l u l i
tr ng thái c a quá trình c và n p tr ng thái đã l u tr
c a quá trình. Tác v này g i là context switch.
c đây
̇ Th i gian cho context switch là m t phí t n – h th ng th c
hi n công vi c vô ích.
̇ Th i gian này ph thu c vào h tr c a ph n c ng:
• T c đ chuy n ph thu c vào t c đ b nh , s l
•
•
ng thanh ghi
ph i đ c sao chép và các ch th đ c bi t (nh ch th dùng n p và
l u tr t t c các thanh ghi)
T c đ thông th ng t 1 đ n 1000 s
Th i gian này có th là m t th t c chai (bottleneck) trong H H
ph c t p
Nguy n Hoàng Vi t – Khoa Công Ngh Thông Tin HCT (2007)
3.8
nh th i cho quá trình (1)
(Process Scheduling)
Các hàng đ i đ nh th i:
̇ Hàng đ i công vi c (Job queue):
̇
̇
̇
t p h p t t c các quá trình trong
h th ng.
Hàng đ i s n sàng (Ready
queue): t p h p t t c các quá
trình đang n m trong b nh , s n
sàng và đang ch đ th c thi.
Hàng đ i thi t b (Device queue):
t p h p các quá trình đang đ i
s d ng m t thi t b xu t/nh p.
Quá trình có th di chuy n gi a
các hàng đ i khác nhau.
Nguy n Hoàng Vi t – Khoa Công Ngh Thông Tin HCT (2007)
3.9
nh th i cho quá trình (2)
Hàng đ i s n sàng và nhi u hàng đ i thi t b
Nguy n Hoàng Vi t – Khoa Công Ngh Thông Tin HCT (2007)
3.10
nh th i cho quá trình (3)
Các b đ nh th i
̇ B đ nh th i dài k (Long-term scheduler/job scheduler) – ch n
̇
̇
quá trình nào s đ c đ t vào hàng đ i s n sàng (n p vào b
nh ).
B đ nh th i ng n k (Short-term scheduler/CPU scheduler) –
ch n ra quá trình s đ c th c thi k ti p và c p CPU cho nó.
B đ nh th i trung k (Medium-term scheduling) – th c hi n
hoán v (swapping) các quá trình ra/vào b nh /đ a do c nh
tranh CPU, b nh .
Nguy n Hoàng Vi t – Khoa Công Ngh Thông Tin HCT (2007)
3.11
nh th i cho quá trình (4)
B đ nh th i trung k
Nguy n Hoàng Vi t – Khoa Công Ngh Thông Tin HCT (2007)
3.12
nh th i cho quá trình (5)
Các b đ nh th i
̇ B đ nh th i ng n k đ
⇒ (ph i nhanh).
̇ B đ nh th i dài k đ
c g i r t th
ng xuyên (milliseconds)
c g i r t không th
minutes) ⇒ (có th ch m).
ng xuyên (seconds,
̇ B đ nh th i dài k kh ng ch c p đ đa ch
ng (degree of
multiprogramming).
Nguy n Hoàng Vi t – Khoa Công Ngh Thông Tin HCT (2007)
3.13
Các thao tác trên quá trình (1)
T o quá trình
Quá trình cha t o ra quá trình con, đ n l t quá trình con này l i
t o ra nh ng quá trình khác, t o nên cây quá trình.
Cây quá trình
trong h th ng
UNIX.
Nguy n Hoàng Vi t – Khoa Công Ngh Thông Tin HCT (2007)
3.14
Các thao tác trên quá trình (2)
T o quá trình (tt)
̇ Chia s tài nguyên – có nhi u l a ch n:
• Quá trình cha và con chia s t t c tài nguyên.
• Quá trình con chia s m t ph n tài nguyên c a quá trình cha.
• Quá trình cha và con không chia s tài nguyên nào c .
̇ D li u kh i t o:
•
c chuy n theo t quá trình cha sang con.
̇ Th c thi:
• Quá trình cha và con th c thi song song.
• Quá trình cha đ i đ n khi quá trình con hoàn thành.
̇ Không gian đ a ch :
• Quá trình con sao chép không gian đ a ch c a quá trình cha
•
(cùng ch ng trình và d li u).
Quá trình con t n p ch ng trình riêng c a nó.
Nguy n Hoàng Vi t – Khoa Công Ngh Thông Tin HCT (2007)
3.15
Các thao tác trên quá trình (3)
T o quá trình (tt)
̇ UNIX:
• fork – là l i g i h th ng dùng t o quá trình m i
• execlp – là l i g i h th ng đ c s d ng sau fork b i m t trong 2
quá trình đ thay th không gian đ a ch c a quá trình đã g i execlp
b ng m t quá trình m i.
̇ Windows NT: h tr c hai mô hình
• Quá trình con sao chép t quá trình cha.
• Quá trình cha xác đ nh tên c a m t ch ng trình cho h đi u hành
n p vào không gian đ a ch c a quá trình m i.
Nguy n Hoàng Vi t – Khoa Công Ngh Thông Tin HCT (2007)
3.16
Các thao tác trên quá trình (4)
Minh h a l nh fork trong UNIX
#include <stdio.h>
#include <unistd.h>
int main(int argc, char *argv[])
{
int pid;
/* fork another process */
pid = fork();
if (pid < 0) { /* error occurred */
fprintf(stderr, “Fork Failed”);
exit(-1);
}
else if (pid ==0) { /* child process */
execlp(“/bin/ls”, “ls”, NULL);
{
else { /* parent process will wait for the child to complete */
wait(NULL);
printf(“Child complete”);
exit (0);
}
}
Nguy n Hoàng Vi t – Khoa Công Ngh Thông Tin HCT (2007)
3.17
Các thao tác trên quá trình (5)
K t thúc quá trình
̇ Quá trình th c hi n câu l nh cu i cùng và yêu c u H H xóa nó
(dùng exit).
• Xu t d li u t quá trình con lên quá trình cha (dùng wait).
• Tài nguyên c a quá trình b thu h i l i b i h đi u hành.
̇ Quá trình cha có th k t thúc s th c thi c a quá trình con
(dùng abort).
• Quá trình con đã v t quá s tài nguyên đ c c p.
• Công vi c giao cho quá trình con nay không còn c n thi t n a.
• Quá trình cha đang thoát.
X H đi u hành không cho phép quá trình con ti n hành khi quá
trình cha c a nó k t thúc.
X S k t thúc hàng lo t các quá trình con (cascading termination).
Nguy n Hoàng Vi t – Khoa Công Ngh Thông Tin HCT (2007)
3.18
Các thao tác trên quá trình (6)
H p tác quá trình
̇ Quá trình đ c l p không th
h
nh h ng ho c không b
ng b i s th c thi c a quá trình khác.
̇ H p tác quá trình có th
nh h
s th c thi c a quá trình khác.
ng ho c b
nh h
nh
ng b i
̇ Thu n l i c a s h p tác quá trình:
•
•
•
•
Chia s thông tin
Gia t ng t c đ tính toán (n u máy có nhi u CPU)
Module hóa
Ti n d ng
̇ Các bài toán h p tác quá trình: ng
th , b đ c – b ghi, …
i s n xu t – ng
Nguy n Hoàng Vi t – Khoa Công Ngh Thông Tin HCT (2007)
i tiêu
3.19
Giao ti p liên quá trình (1)
(IPC – Interprocess Communication)
̇ IPC cung c p c ch cho phép giao ti p và đ ng b h at đ ng
c a các quá trình không chia s cùng không gian đ a ch (có th
n m trên các máy khác nhau).
• H u ích cho môi tr
̇ IPC dùng h
ng phân tán (ví d chat trên www).
th ng chuy n thông đi p (Message Passing
System).
̇ H th ng chuy n thông đi p có th đ
c đ nh ngh a theo nhi u
cách.
Nguy n Hoàng Vi t – Khoa Công Ngh Thông Tin HCT (2007)
3.20
Giao ti p liên quá trình (2)
H th ng chuy n thông đi p
̇ H th ng chuy n thông đi p cho phép các quá trình giao ti p
v i nhau mà không c n tham kh o đ n các bi n dùng chung.
̇ Cung c p ít nh t 2 thao tác (operation):
• send (message) – kích th c thông đi p c đ nh/bi n đ i.
• receive(message)
̇ N u P và Q giao ti p v i nhau, chúng c n:
• Thi t l p n i k t giao ti p (communication link) gi a chúng;
• Trao đ i thông đi p thông qua send/receive.
̇ Cài đ t n i k t giao ti p:
• Thu c tính v t lý: b nh chia s , bus ph n c ng, …
• Thu c tính lu n lý: giao ti p tr c hay gián ti p, đ i x ng hay
b t đ i x ng, b ng b n sao hay tham chi u, kích th
đi p c đ nh hay bi n đ i.
Nguy n Hoàng Vi t – Khoa Công Ngh Thông Tin HCT (2007)
c thông
3.21
Giao ti p liên quá trình (3)
Giao ti p tr c ti p
̇ Các quá trình ph i đ
c đ t tên rõ ràng:
• Send (P, message) – g i thông đi p t i quá trình P.
• Receive(Q, message) – nh n thông đi p t quá trình Q.
̇ Thu c tính c a n i k t giao ti p:
•
•
•
•
•
•
Các n i k t đ c thi t l p t đ ng;
M t n i k t k t h p v i chính xác m t c p quá trình;
Gi a m i c p quá trình t n t i chính xác m t n i k t;
N i k t có th m t h ng (unidirectional), nh ng thông th ng là
hai h ng (bi-directional);
i x ng trong vi c đánh đ a ch : 2 quá trình ph i bi t tên nhau đ
giao ti p;
Thay đ i đ th c hi n tính b t đ i x ng trong đánh đ a ch :
X Send (P, message) – g i thông đi p t i quá trình P.
X Receive(id, message) – nh n thông đi p t quá trình b t k .
Nguy n Hoàng Vi t – Khoa Công Ngh Thông Tin HCT (2007)
3.22
Giao ti p liên quá trình (4)
Giao ti p gián ti p
̇ Các thông đi p đ
c ng đ
c g i và nh n thông qua h p th (mailbox),
c xem nh c ng (port).
• M i mailbox có m t đ nh danh (id) duy nh t;
• Các quá trình ch có th giao ti p n u chúng dùng chung mailbox.
X Send (A, message) – g i thông đi p t i h p th A.
X Receive(A, message) – nh n thông đi p t h p th A.
̇ Thu c tính c a n i k t giao ti p:
• N i k t ch đ
•
•
•
c thi t l p n u các quá trình chia s m t h p th
chung;
M t n i k t có th k t h p v i nhi u quá trình;
M i c p quá trình có th dùng chung nhi u n i k t giao ti p.
N i k t có th m t h ng hay hai h ng.
Nguy n Hoàng Vi t – Khoa Công Ngh Thông Tin HCT (2007)
3.23
Giao ti p liên quá trình (5)
Giao ti p gián ti p
̇ Các thao tác:
• T o h p th m i;
• G i và nh n thông đi p thông qua h p th ;
• Xóa h p th .
̇ Chia s h p th :
• P1, P2, and P3 chia s h p th A.
• P1, g i; P2 and P3 đang nh n t A
• Quá trình nào nh n thông đi p? Tùy vào ch n 1 trong các gi i
pháp.
̇ Gi i pháp:
• Cho phép m t n i k t k t h p v i nhi u nh t 2 quá trình.
• Cho phép ch 1 quá trình th c hi n thao tác nh n t i m t th i đi m.
• Cho phép h th ng ch n m t cách b t k quá trình nh n (không
ph i c hai). Bên g i s đ
c thông báo ai đã nh n.
Nguy n Hoàng Vi t – Khoa Công Ngh Thông Tin HCT (2007)
3.24
Giao ti p liên quá trình (6)
ng b hóa (Synchronization)
̇ Chuy n thông đi p có th
̇
̇
ngh n ho c không ngh n
(blocking/non-blocking).
Ngh n đ c xem là đ ng b , không ngh n là không đ ng b .
Send và Receive có th là ngh n ho c không ngh n:
• Send ngh n: quá trình g i b ngh n đ n khi thông đi p đ c nh n.
• Send không ngh n: quá trình g i g i thông đi p và ti p t c h at
•
•
đ ng.
Receive ngh n: quá trình nh n ngh n cho đ n khi thông đi p s n
dùng.
Receive không ngh n: quá trình nh n nh n l i m t thông đi p h p
l hay r ng.
Nguy n Hoàng Vi t – Khoa Công Ngh Thông Tin HCT (2007)
3.25