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

Bài Giảng Hệ Điều Hành-Chương 6: Deadlocks ppt

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 (489.47 KB, 42 trang )

Chương
Chương
6: Deadlocks
6: Deadlocks
7.2
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts - 7
th
Edition, Feb 14, 2005
N
N


I DUNG
I DUNG
 Vấn Deadlock
 Mô hình hệ thống
 Đặctrưng Deadlock
 Các phương pháp quản lý Deadlocks
 Phòng ngừa Deadlock
 Tránh Deadlock
 Phát hiện Deadlock
 Phụchồitừ Deadlock
7.3
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts - 7
th
Edition, Feb 14, 2005
M
M



C TIÊU
C TIÊU
 Phát triểnmộtmôtả deadlocks, hiệntượng ngăncản
tập các giao dịch cạnh tranh hoàn tất nhiệmvụ của
chúng
 Giớithiệumộtsố phương pháp khác nhau để ngăn
ngừa, tránh deadlocks trong hệ thống máy tính.
 Giớithiệuphương pháp phát hiệnvàphụchồitừ
deadlocks
7.4
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts - 7
th
Edition, Feb 14, 2005
V
V


N Đ
N Đ


Deadlock
Deadlock
 Mộttập các quá trình bị nghẽn, mỗimộtchiếmgiữ mộttài
nguyên và chờđợitậu tài nguyên bị chiếmgiữ bởi quá trình
khác trong tậphợp.
 VD.
z Hệ thống có hai ổđĩa.

z P
1
và P
2
mỗimộtchiếmgiữ một ổđĩavàmỗimộtcần ổđĩa
kia.
 VD.
z semaphores A và B, đượckhởi động là 1
P
0
P
1
wait (A); wait(B)
wait (B); wait(A)
7.5
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts - 7
th
Edition, Feb 14, 2005
V
V
Í
Í
D
D


QUA C
QUA C



U
U
 Lưu thông chỉ theo mộtchiều.
 Mỗiphầncủacầu được xem như một tài nguyên.
 Nếu deadlock xảyranósẽ đượcgiảiquyếtnếumộtxelùi
lại(trưng các tài nguyên và cuộnlại).
 Một vài xe có thể bị lùi lại khi deadlock xảyra.
 Có thể xảyra“sự chết đói”.
7.6
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts - 7
th
Edition, Feb 14, 2005
MÔ HÌNH H
MÔ HÌNH H


TH
TH


NG
NG
 Các kiểu tài nguyên: R
1
, R
2
, . . ., R
m

Các chu kỳ CPU, không gian bộ nhớ, các thiếtbị I/O
 Mỗi tài nguyên kiểu R
i
có W
i
thể hiện.
 Mỗi quá trình sử dụng một tài nguyên như sau:
z Yêu cầu tài nguyên
z Sử dụng tài nguyên
z Giải phóng tài nguyên
7.7
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts - 7
th
Edition, Feb 14, 2005
Đ
Đ


C TRƯNG DEADLOCK
C TRƯNG DEADLOCK
 Loạitrừ tương hỗ (Mutual exclusion): chỉ một quá trình
sử dụng một tài nguyên tạimộtthời điểm.
 Giữ và chờ (Hold and wait): một quá trình chiếmgiữ ít
nhấtmột tài nguyên và chờ tậu các tài nguyên bổ xung bị
chiếmgiữ bởi các quá trình khác.
 Không có trưng dụng: một tài nguyên chỉ có thểđượcgiải
phóng bởisự tình nguyệncủa quá trình chiếmgiữ nó (sau
khi quá trình đã hoàn thành nhiệmvụ củanó).
 Chờđợi vòng tròn: Tồntạimộttập{P

0
, P
1
, …, P
0
} các quá
trình chờđợi sao cho P
0
chờ một tài nguyên bị chiếmgiữ
bởi P
1
, P
1
chờ một tài nguyên bị chiếmgiữ bởi P
2
, …, P
n–1
chờ một tài nguyên bị chiếmgiữ bởi P
n
, và P
n
chờ mộttài
nguyên bị chiếmgiữ bởi P
0
.
Điềukiệncần để deadlock xảyra:
7.8
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts - 7
th

Edition, Feb 14, 2005
Đ
Đ


TH
TH


C
C


P PH
P PH
Á
Á
T T
T T
À
À
I NGUYÊN
I NGUYÊN
 V được phân hoạch thành hai kiểu:
z P = {P
1
, P
2
, …, P
n

}, gồmtấtcả các quá trình trong hệ
thống.
z R = {R
1
, R
2
, …, R
m
}, gồmtấtcả các kiểu tài nguyên
trong hệ thống.
 Cung yêu cầu – cung hướng từ P
i
đếnR
j
: P
i
→ R
j
 Cung gán – hướng từ R
j
đếnP
i
: R
j
→ P
i
Mộttậpcácđỉnh V và mộttập các cung E.
7.9
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts - 7

th
Edition, Feb 14, 2005
Đ
Đ


TH
TH


C
C


P PH
P PH
Á
Á
T T
T T
À
À
I NGUYÊN (Cont.)
I NGUYÊN (Cont.)
 Quá trình
 Kiều tài nguyên với 4 thể hiện
 P
i
yêu cầuthể hiệncủa R
j

 P
i
đang chiếmgiữ mộtthể hiệncủakiểu tài nguyên R
j
P
i
P
i
R
j
R
j
7.10
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts - 7
th
Edition, Feb 14, 2005
V
V
Í
Í
D
D


Đ
Đ


TH

TH


C
C


P PH
P PH
Á
Á
T T
T T
À
À
I NGUYÊN
I NGUYÊN
7.11
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts - 7
th
Edition, Feb 14, 2005
Đ
Đ


TH
TH



C
C


P PH
P PH
Á
Á
T T
T T
À
À
I NGUYÊN V
I NGUYÊN V


I DEADLOCK
I DEADLOCK
7.12
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts - 7
th
Edition, Feb 14, 2005
Đ
Đ


TH
TH



C
C
Ó
Ó
CHU TRÌNH NHƯNG KHÔNG
CHU TRÌNH NHƯNG KHÔNG
C
C
Ó
Ó
Deadlock
Deadlock
7.13
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts - 7
th
Edition, Feb 14, 2005
C
C
Á
Á
C S
C S


KI
KI



N CƠ S
N CƠ S


 Nếu đồ thị không có chu trình ⇒ không có deadlock.
 Nếu đồ thị có chu trình ⇒
z Nếumỗikiểu tài nguyên chỉ có mộtthể hiệnthìcó
deadlock.
z Nếumỗikiểutàinguyêncómộtvàithể hiệnthìcó
thể có deadlock.
7.14
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts - 7
th
Edition, Feb 14, 2005
C
C
Á
Á
C PHƯƠNG PH
C PHƯƠNG PH
Á
Á
P QU
P QU


N LÝ DEADLOCKS
N LÝ DEADLOCKS
 Đảmbảohệ thống không bao giờ rơivàotrạng thái

deadlock.
 Chophéphệ thống rơivàotrạng thái deadlock sau đóphát
hiệnvàphụchồi.
 Bỏ lơ vấn đề và xem như deadlocks không bao giờ xảyra
(đượcsử dụng trong hầuhếtcác HĐH kể cả UNIX).
7.15
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts - 7
th
Edition, Feb 14, 2005
NGĂN NG
NGĂN NG


A DEADLOCK
A DEADLOCK
 Loạitrừ tương hỗ (Mutual Exclusion) : không đượcyêu
cầu đốivới các tài nguyên có thể chia sẻ nhưng có hiệulực
đốivới tài nguyên có thể chia sẻ.
 Giữ và chờ (Hold and Wait) : Phải đảmbảorằng mỗikhi
quá trình yêu cầumột tài nguyên nó không chiếmgiữ một
tài nguyên nào.
z Đòi hỏi quá trình yêu cầuvàđượccấp phát tấtcả các
tài nguyên cầnthiếttrướckhibắt đầuthựchiện/ chỉ
cho phép quá trình yêu cầu các tài nguyên khi nó không
chiếmgiữ một tài nguyên nào.
z Hiệusuấtsử dụng tài nguyên thấp, có thể xảyrachết
đói.
Ngăncảnmột trong bốn điềukiệncần để xảy ra deadlock
7.16

Silberschatz, Galvin and Gagne ©2005
Operating System Concepts - 7
th
Edition, Feb 14, 2005
Deadlock Prevention (Cont.)
Deadlock Prevention (Cont.)
 Không có trưng dụng (no preemption):
z Nếumột quá trình đang chiếmgiữ mộtsố tài nguyên yêu
cầu tài nguyên khác nhưng không thể đượccấp phát
ngay, các tài nguyên bị chiếmgiữ bởi quá trình bị trưng
dụng.
z Các tài nguyên bị trưng dụng được thêm vào danh sách
các tài nguyên quá trình (bị trưng dụng) chờ.
z Quá trình sẽ đượckhởi động lạichỉ khi nó có thể tậulại
các tài nguyên cũ cũng như các tài nguyên mớiyêucầu.
 Chờđợi vòng tròn (Circular Wait) –ápđặtmộtthứ tự toàn
phầntrêncáckiểu tài nguyên và đòi hỏimỗi quá trình yêu cầu
tài nguyên theo thứ tự tăng.
7.17
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts - 7
th
Edition, Feb 14, 2005
TR
TR
Á
Á
NH Deadlock
NH Deadlock
 Mô hình đơngiảnnhấtvàhữudụng nhấtlàđòi hỏimỗi quá

trình phải khai báo số lượng tối đa các tài nguyên cầnthiết
củamỗikiểu.
 Thuật toán tránh deadlock kiểmtratrạng thái cấp phát tài
nguyên và đảmbảorằng không xảyrachờđợi vòng tròn.
 Trạng thái cấp phát tài nguyên được định nghĩabởisố tài
nguyên sẵncó, số tài nguyên đã đượccấp phát và các đòi
hỏitối đacủa các quá trình.
Đòi hỏihệ thống phải có thông tin tiên quyết.
7.18
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts - 7
th
Edition, Feb 14, 2005
TR
TR


NG TH
NG TH
Á
Á
I AN TO
I AN TO
À
À
N
N
 Khi một quá trình yêu cầumột tài nguyên sẵncó, hệ thống phải
xác định nếucấp phát ngay, hệ thống vẫn trong trạng thái an
toàn.

 Hệ thống trong trạng thái an toàn nếutồntạimộtdãy<P
1
, P
2
, …,
P
n
> củaTẤT CẢ các quá trình trong hệ thống sao cho đốivới
mỗiP
i
, tấtcả các tài nguyên mà P
i
cần đượcthỏamãnbởicác
tàinguyênnóhiện có + các tài nguyê
n bị chiếmgiữ bởicácP
j
,
với j < i.
 Đólà:
z NếutàinguyênmàP
i
cầnchưacósẵn, P
i
có thể chờđếnkhi
tấtcả các P
j
(j <i) hoàn tất
z Khi P
j
hoàn tất, P

i
có thể nhận được các tài nguyên cầnthiết,
thựchiện, trả lại các tài nguyên đượccấp phát và kết thúc.
z Khi P
i
kết thúc, P
i +1
nhận được các tài nguyên cầnthiếtvà
cứ như vậy
7.19
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts - 7
th
Edition, Feb 14, 2005
S
S


KI
KI


N CƠ S
N CƠ S


 Nếuhệ thống trong trạng thái an toàn ⇒ không có
deadlocks.
 Nếuhệ thống không trong trạng thái an toàn ⇒ có thể có
deadlock.

 Tránh ⇒ đảmbảohệ thống không bao giờ rơivàotrạng
thái không an toàn.
7.20
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts - 7
th
Edition, Feb 14, 2005
TR
TR


NG TH
NG TH
Á
Á
I AN TO
I AN TO
À
À
N, KHÔNG AN TO
N, KHÔNG AN TO
À
À
N &
N &
Deadlock
Deadlock
7.21
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts - 7

th
Edition, Feb 14, 2005
THU
THU


T TO
T TO
Á
Á
N TR
N TR
Á
Á
NH DEADLOCK
NH DEADLOCK
 Mỗikiểu tài nguyên có đúng mộtthể hiện. Sử dụng đồ thị
cấp phát tài nguyên.
 Mỗikiểu tài nguyên có mộtvàithể hiện. Sử dụng thuật toán
banker
7.22
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts - 7
th
Edition, Feb 14, 2005
SƠ Đ
SƠ Đ


Đ

Đ


TH
TH


C
C


P PH
P PH
Á
Á
T T
T T
À
À
I NGUYÊN
I NGUYÊN
 Cung Claim (Claim edge) P
i
→ R
j
chỉ ra rằng P
j
có thể yêu
cầu tài nguyên R
j

; đượcbiểudiễnbởi đường đứt quãng.
 Cung Claim đượcchuyển thành cung Request khi quá trình
yêu cầu tài nguyên.
 Cung Request đượcchuyển thành cung Assignment khi tài
nguyên đượccấp cho quá trình.
 Khi tài nguyên đượcgiải phóng, cung Assignment được
chuyển thành cung Claim.
 Các tài nguyên phải được khai báo trước.
7.23
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts - 7
th
Edition, Feb 14, 2005
Đ
Đ


TH
TH


C
C


P PH
P PH
Á
Á
T T

T T
À
À
I NGUYÊN
I NGUYÊN
7.24
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts - 7
th
Edition, Feb 14, 2005
TR
TR


NG TH
NG TH
Á
Á
I KHÔNG AN TO
I KHÔNG AN TO
À
À
N TRONG Đ
N TRONG Đ


TH
TH



C
C


P PH
P PH
Á
Á
T T
T T
À
À
I NGUYÊN
I NGUYÊN
7.25
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts - 7
th
Edition, Feb 14, 2005
THU
THU


T TO
T TO
Á
Á
N Đ
N Đ



TH
TH


C
C


P PH
P PH
Á
Á
T T
T T
À
À
I NGUYÊN
I NGUYÊN
 Giả sử quá trình P
i
yêu cầumột tài nguyên R
j
 Yêu cầucóthểđượccấpchỉ nếuviệcchuyểncung
Request thành cung Assignment không gây ra chu
trình trong đồ thị cấp phát tài nguyên

×