Giáo trình phân tích quy trình tập hợp các tiến trình hoạt động của hệ thống multiprocessor p6 - Pdf 19

xem có tiến trình nào đang đợi trong hàng đợi hay không, nếu có thì đưa tiến
trình trong hàng đợi vào đoạn găng. Khi tiến trình gọi Up thì hệ thống sẽ
thực hiện như sau: S:= S + 1, nếu S <= 0 đưa một tiến trình trong F(s) vào
đoạn găng. Up được cài đặt như sau:
Procedure Up(s);
Begin
S := S + 1;
If S <= 0 Then
Begin
Exit(Q,F(s) ); {đưa tiến trình ra khỏi F(S)}
Status(Q) = ready ; {chuyển tiến trình sang ready}
Enter(Q, ready-list ); {đưa tiến trình vào ready list}
End;
End;
Sau đây là sơ đồ điều độ dùng Semaphore (sự đánh tín hiệu bằng cờ) cho 2
tiến trình P1 và P2, hai tiến trình này hoạt động đồng thời cùng truy xuất đến tài
nguyên găng tương ứng với semaphore (sự đánh tín hiệu bằng cờ) S. Tài nguyên
găng này chỉ có thể đáp ứng cho một tiến trình tại một thời điểm nên S được khởi
gán bằng 1.
Program MultualExclution;
Const
n = 2;
Var
s: semaphore (sự đánh tín hiệu bằng cờ);
{ }
Procedure P(i:Integer);
Begin
Repeat
Down(s); {kiểm tra và xác lập quyền vào đoạn găng}
<Đoạn găng>;
Up(s); {rời đoạn găng và kích hoạt tiến trình

d
o
c
u
-
t
r
a
c
k
.
c
o
m
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e

V
i
e

vô nghĩa. Hai thủ tục Down(S) và Up(S) mà chúng tôi đưa ra ở trên chỉ để minh
họa cho nguyên lý hoạt động của Down và Up.
Sử dụng semaphore (sự đánh tín hiệu bằng cờ) để điều độ tiến trình, mang lại
những thuận lợi sau:
 Mỗi tiến trình chỉ kiểm tra quyền vào đoạn găng một lần, khi chờ nó
không làm gì cả, tiến trình ra khỏi đoạn găng phải đánh thức nó.
 Không xuất hiện hiện tượng chờ đợi tích cực, nên khai thác tối đa thời
gian xử lý của processor.
 Nhờ cơ chế hàng đợi mà hệ điều hành có thể thực hiện gán độ ưu tiên
cho các tiến trình khi chúng ở trong hành đợi.
 Trị tuyệt đối của S cho biết số lượng các tiến trình đang đợi trên F(S).
Nên nhớ rằng, Down và Up là các thủ tục của hệ điều hành nên sơ đồ điều độ
sẽ bị thay đổi khi thay đổi hệ điều hành. Đây là một trở ngại của việc sử dụng
semaphore (sự đánh tín hiệu bằng cờ) để tổ chức điều độ tiến trình.
Các ví dụ sau đây thay cho sự giải thích về sơ đồ điều độ ở trên:
Ví dụ 1: Sự thực hiện của hai tiến trình P1 và P2 trong sơ đồ điều độ trên
P thực
hiện
Down/Up S Trạng thái của P1/P2

1

1. P1
Down(S) 0 P1 hoạt động
2. P2 Down(S) -1 P2 chờ
3. P1 Up(S) 0 P2 hoạt động
4. P1 Down(S) -1 P1 chờ
5. P2
Down(S) 0 P1 hoạt động
Ví dụ 2: Nếu trong hệ thống có 6 tiến trình hoạt động đồng thời, cùng sử

r
a
c
k
.
c
o
m
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e

V
i
e
w
e
r
w
w
w

T Down/

Up
Tiến
trình
thực hiện

S
Tiến trình

hoạt động
Các tiến trình
trong hàng
đợi
0 - -
1
- -
1 Down A 0 A -
2 Down B -1 A B
3 Down C -2 A C B
4 Down D -3 A D C B
5 Up A -2 D C B
6 Down E -3 D C E B
7 Up D -2 C E B
8 Down F -3 C F E B
9 Up C -2 F E B
10 Up F -1 E B
11 Up E 0 B -
12 Up B
1

d
o
c
u
-
t
r
a
c
k
.
c
o
m
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e

V
i
e

3. Tại một thời điểm, chỉ có một tiến trình duy nhất được hoạt động bên
trong monitor. Các tiến trình khác đã gọi monitor phải hoãn lại để chờ
monitor rảnh.
Hai tính chất 1 và 2 tương tự như các tính chất của các đối tượng trong lập
trình hướng đối tượng. Như vậy một hệ điều hành hoặc một ngôn ngữ lập trình
hướng đối tượng có thể cài đặt monitor như là một đối tượng có các tính chất đặc
biệt.
Với tính chất thứ 3 monitor có khả năng thực hiện các cơ chế độc quyền, các
biến trong monitor có thể được truy xuất chỉ bởi một tiến trình tại một thời điểm.
Như vậy các cấu trúc dữ liệu dùng chung bởi các tiến trình có thể được bảo vệ bằng
cách đặt chúng bên trong monitor. Nếu dữ liệu bên trong monitor là tài nguyên
găng thì monitor cung cấp sự độc quyền trong việc truy xuất đến tài nguyên găng
đó.
Monitor cung cấp các công cụ đồng bộ hoá để người lập trình sử dụng trong
các sơ đồ điều độ. Công cụ đồng bộ hoá được định nghĩa để sử dụng trong các sơ
đồ điều độ như sau: Trong một monitor, có thể định nghĩa các biến điều kiện và hai
thao tác kèm theo là Wait và Signal, chỉ có wait và signal được tác động đến các
biến điều kiện.
 Giả sử C là biến điều kiện được định nghĩa trong monitor.
 Wait(c): khi một tiến trình gọi wait, thì wait sẽ chuyển tiến trình gọi
sang trạng thái blocked, và đặt tiến trình này vào hàng đợi trên biến điều kiện
c. Wait được cài đặt như sau:
Procedure Wait(c);
Begin
Status(p) = blocked;
Enter(p,f(c));
End;
 Signal(c): khi một tiến trình gọi signal, thì signal sẽ kiểm tra trong hàng
Click to buy NOW!
P

k
.
c
o
m
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e

V
i
e
w
e
r
w
w
w
.
d
o

cấu trúc một Monitor. Sau đây là cấu trúc của monitor:
Monitor <Tên monitor>
Condition <Danh sách các biến điều kiện>;
{ }
Procdure Action
1
(); {thao tác i}
Begin

End;
{ }
Procedure Action
n
(); {thao tác n}
Begin

End;
{ }
End monitor;
Mỗi tiến trình muốn sử dụng tài nguyên găng chỉ có thể thao tác thông qua
các thủ tục bên trong monitor.
Click to buy NOW!
P
D
F
-
X
C
h
a

D
F
-
X
C
h
a
n
g
e

V
i
e
w
e
r
w
w
w
.
d
o
c
u
-
t
r
a
c


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status