Tải bản đầy đủ (.pdf) (33 trang)

Hệ điều hành chương 3 quá trình

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (416.04 KB, 33 trang )

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


×