Bài giảng Hệ điều hành - Chương 3 cung cấp cho người học các kiến thức về Sự bế tắc (Deadlock) bao gồm các kiến thức: Dẫn nhập về sự bế tắc, các khái niệm về bế tắc, xử lý bế tắc. Mời các bạn cùng tham khảo nội dung chi tiết.
Trang 2B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
Trang 3B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
Bài 3.1 – D n nh p ẫ ậ
Khi có hai ho c nhi u ti n trình tác đ ng ặ ề ế ộ
l n nhau, chúng có th gây ra xung đ t và ẫ ể ộ
không gi i quy t đả ế ược. Hi n tệ ượng đó
được g i là s b t c (deadlock). ọ ự ế ắ
Trang 4B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
Khoa CNTT
H đi u hành ệ ề 3 4
Trang 5B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
Trang 6B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
C hai ti n trình cùng ph i ch đ đ ả ế ả ờ ể ượ ấ c c p
n t tài nguyên còn l i, quá trình ch đ i là ố ạ ờ ợ mãi mãi
B t c x y ra!ế ắ ả
Trang 7B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
Trang 8B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
Khoa CNTT
H đi u hành ệ ề 3 8
Đ nh nghĩa b t c ị ế ắ
M t t p h p các ti n trình b coi là b t c ộ ậ ợ ế ị ế ắ
n u m i ti n trình trong t p h p ph i ch ế ỗ ế ậ ợ ả ờ
m t s ki n, mà s ki n đó l i ch có th ộ ự ệ ự ệ ạ ỉ ể
do m t ti n trình khác trong t p h p t o ộ ế ậ ợ ạ
ra
Trang 9B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
B n đi u ki n x y ra b t c ố ề ệ ả ế ắ
M i tài nguyên ho c đ ỗ ặ ượ ở ữ c s h u b i m t ti n ở ộ ế
trình duy nh t, ho c đang r nh r i ấ ặ ả ỗ
Các ti n trình đang n m gi tài nguyên đ ế ắ ữ ượ ấ c c p
tr ướ c đó có th g i yêu c u đòi c p tài nguyên ể ử ầ ấ
m i ớ
Không th l y l i các tài nguyên đã đ ể ấ ạ ượ ấ c c p
tr ướ c đó cho ti n trình. Chúng ph i đ ế ả ượ c chính
ti n trình đó gi i phóng ế ả
Ph i có m t hàng đ i vòng tròn g m hai ho c ả ộ ợ ồ ặ
nhi u ti n trình, m i ti n trình l i đang ch m t ề ế ỗ ế ạ ờ ộ
tài nguyên đ ượ ở ữ c s h u b i chính thành viên ti p ở ế theo trong hàng đ i ợ
Trang 10B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
Khoa CNTT
H đi u hành ệ ề 3 10
N u không h i t đ b n đi u ki n nói ế ộ ụ ủ ố ề ệ
trên thì s không có b t c! ẽ ế ắ
Trang 11B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
Mô hình hoá s b t c ự ế ắ
Holt đã đ a ra cách mô hình hoá b n đi u ư ố ề
ki n trên b ng các s đ nút (năm 1972) ệ ằ ơ ồ
Nút ti n trình đế ược khoanh tròn
Nút tài nguyên được đóng khung vuông
Trang 12B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
Khoa CNTT
H đi u hành ệ ề 3 12
Trang 13B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
Mũi tên được n i t nút tài nguyên t i nút ố ừ ớ
ti n trình nghĩa là tài nguyên đó do ti n ế ế
trình đó yêu c u, và đã đầ ược phân cho ti n ế
trình, ti n trình hi n đang s h u nó ế ệ ở ữ (hình
a)
Mũi tên được n i t ti n trình t i tài ố ừ ế ớ
nguyên, nghĩa là ti n trình đó hi n đang b ế ệ ị
d ng đ ch nh n đừ ể ờ ậ ược tài nguyên đó
(hình b)
Trang 14B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
Khoa CNTT
H đi u hành ệ ề 3 14
Xét hình c:
Ti n trình C đang ch tài nguyên T ế ờ
Tài nguyên T l i do ti n trình D n m gi ạ ế ắ ữ
Ti n trình D không th gi i phóng T vì nó ế ể ả
đang ch tài nguyên U ờ
Tài nguyên U l i đang thu c v C ạ ộ ề
T o thành m t vòng khép kín, b t c x y ạ ộ ế ắ ả
ra!
Trang 15B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
Ví d : x y ra b t c ụ ả ế ắ
Trang 16B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
Trang 17B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
Sau bước (q) có th ti p t c ch y ti n ể ế ụ ạ ế
trình B và c p cho nó tài nguyên S mà ấ
không gây ra b t cế ắ
Trang 18B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
Khoa CNTT
H đi u hành ệ ề 3 18
N u vi c th c hi n m t yêu c u c a ti n ế ệ ự ệ ộ ầ ủ ế
trình có nguy c d n đ n b t c, h đi u ơ ẫ ế ế ắ ệ ề
hành có th treo ti n trình mà không c n th c ể ế ầ ự
hi n yêu c u đó cho t i khi th y an toàn! ệ ầ ớ ấ
Trang 19B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
Bài 3.3 – X lý b t c ử ế ắ
B n chi n lố ế ược x lý b t c ử ế ắ
Phát hi n b t cệ ế ắ
Gi i quy t b t cả ế ế ắ
Trang 20B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
Ngăn ch n, b ng cách lo i b s t n t i ặ ằ ạ ỏ ự ồ ạ
c a m t trong b n đi u ki n c n thi t gây ra ủ ộ ố ề ệ ầ ế
b t cế ắ
(*) Ta s t p trung ch y u vào v n đ này ẽ ậ ủ ế ấ ề
Trang 21B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
Phát hi n b t c ệ ế ắ
Ví d :ụ
Xét h th ng g m có b y ti n trình (t A ệ ố ồ ả ế ừ
đ n G), và có sáu tài nguyên (t R đ n W). ế ừ ế(Tr ng thái c a các tài nguyên và ti n trình ạ ủ ế
được trình bày trang sau)ở
“H th ng này có b b t c không? và n u ệ ố ị ế ắ ế
có thì s bao g m nh ng ti n trình nào?” ẽ ồ ữ ế
Trang 22B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
Khoa CNTT
H đi u hành ệ ề 3 22
Ti n trình A đang n m tài nguyên R và mu n có ế ắ ố thêm S.
Trang 23B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
Trang 24B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
S có th để ược phân ph i cho chúng, khi ố
dùng xong chúng có th tr l i đ ti n trình ể ả ạ ể ếkhác s d ng ử ụ
Trang 25B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
Gi i thu t phát hi n vòng kín ả ậ ệ
Có r t nhi u gi i thu t khác nhau đ t ấ ề ả ậ ể ự
đ ng phát hi n ra vòng kín, dộ ệ ưới đây ta ch ỉxem xét m t gi i thu t đ n gi nộ ả ậ ơ ả
Trang 26B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
Khoa CNTT
H đi u hành ệ ề 3 26
1. Gi s có N nút trong s đ ả ử ơ ồ L n l ầ ượ t th c ự
hi n 5 b ệ ướ c sau đây cho t ng nút ừ
2. Kh i t o L (là m t danh sách r ng), và đ m ở ạ ộ ỗ ả
b o r ng t t c các mũi tên đ u ch a b đánh ả ằ ấ ả ề ư ị
d u.ấ
3. Đ t nút hi n hành vào cu i danh sách L và ặ ệ ố
ki m tra xem li u nút này có xu t hi n trong ể ệ ấ ệdanh sách hai l n không. N u có thì t c là đã ầ ế ứ
t o thành vòng kín, gi i thu t k t thúc.ạ ả ậ ế
Các b ướ ủ c c a gi i thu t ả ậ
Trang 27B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
4. Ki m tra nút hi n hành xem có mũi tên nào đi ra mà ể ệ
l i ch a đ ạ ư ượ c đánh d u không. N u có thì chuy n ấ ế ể sang b ướ c 5, n u không có thì chuy n sang b ế ể ướ c 6.
5. Ch n ng u nhiên m t mũi tên (trong s các mũi tên ọ ẫ ộ ố
ch a đ ư ượ c đánh d u) r i ti n hành đánh d u nó. Đi ấ ồ ế ấ theo h ướ ng mũi tên đó đ đ n m t nút m i, r i quay ể ế ộ ớ ồ
tr l i b ở ạ ướ c 3.
6. Ta đã đi đ n đi m cu i. Xoá b nó và quay tr l i ế ể ố ỏ ở ạ nút tr ướ c đó, ti p t c áp d ng b ế ụ ụ ướ c 3. N u nút này ế chính là nút ban đ u, s đ đó s không có b t c ầ ơ ồ ẽ ấ ứ
vòng kín nào, và thu t toán k t thúc. ậ ế
Trang 28B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
Trang 29B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
Trang 30B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
Khoa CNTT
H đi u hành ệ ề 3 30
B t đ u t nút R: ắ ầ ừ
Ban đ u L là m t danh sách r ng ầ ộ ỗ
Đ t R vào danh sách r i đi t i nút ti p theo là A, ặ ồ ớ ế
thêm A vào danh sách. Nh v y ư ậ L = [R, A].
T A ta đi t i S, và ừ ớ L = [R, A, S].
S không có mũi tên đi ra nào, nó là m t đi m cu i, ộ ể ố nên ta s quay tr l i A. Do A không có mũi tên đi ẽ ở ạ
ra nào ch a đ ư ượ c đánh d u, nên ta s quay l i R, ấ ẽ ạ
hoàn thành vi c ki m tra v i nút R. ệ ể ớ
Trang 31B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
Ti p theo s b t đ u t A: ế ẽ ắ ầ ừ
Danh sách L được làm r ngỗ
Đ t A vào danh sách r i đi t i nút ti p theo ặ ồ ớ ế
là S, thêm S vào danh sách. Nh v y ư ậ L = [A, S].
S là m t đi m cu i, nên ta s quay tr l i A, ộ ể ố ẽ ở ạhoàn thành vi c ki m tra v i nút A.ệ ể ớ
Trang 32B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
T i đây ta s ph i l a ch n ng u nhiên nút ti p ạ ẽ ả ự ọ ẫ ế
theo. N u ch n nút S, đó là m t đi m cu i, và ta ế ọ ộ ể ố
s quay l i D. ẽ ạ
Sau đó ta ch n đ ọ ượ c T và đ t vào danh sách: ặ L =
[B, T , E, V, G, U, D, T] , t i đi m này ta đã phát ạ ể
hi n ra vòng l p kín, gi i thu t k t thúc! ệ ặ ả ậ ế
Trang 33B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
Gi i quy t b t c ả ế ế ắ
Sau khi phát hi n b t c c n làm gì đ h ệ ế ắ ầ ể ệ
th ng ho t đ ng tr l i? ố ạ ộ ở ạ
Bi n pháp gi i phóng tài nguyên ệ ả
Bi n pháp quay tr l i ệ ở ạ
Bi n pháp hu b ti n trình ệ ỷ ỏ ế
Trang 34B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
Khoa CNTT
H đi u hành ệ ề 3 34
Trong m t s trộ ố ường h p, ta có th t m ợ ể ạ
l y tài nguyên c a m t ti n trình nào đó và ấ ủ ộ ếgiao cho ti n trình khác ế
Bi n pháp này ph thu c r t nhi u vào ệ ụ ộ ấ ề
thu c tính c a tài nguyên đó, và không d ộ ủ ễ
th c hi n. ự ệ
Trang 35B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
Bi n pháp quay tr l i ệ ở ạ
Ti n trình đang s h u tài nguyên s b “reset” ế ở ữ ẽ ị
v th i đi m tr ề ờ ể ướ c khi nó giành đ ượ c tài nguyên.
T t c các công vi c đã làm sau th i đi m đó s ấ ả ệ ờ ể ẽ
b m t ị ấ
Tài nguyên đó có th đ ể ượ c phân ph i cho m t ố ộ
ti n trình khác đang b t c. ế ế ắ
Khi ti n trình đ ế ượ c kh i đ ng tr l i, n u nó ở ộ ở ạ ế
mu n giành l y tài nguyên, nó s ph i ch cho ố ấ ẽ ả ờ
t i khi tài nguyên đó s n sàng ớ ẵ
C n có c ch l u tr tr ng thái c a ti n trình ầ ơ ế ư ữ ạ ủ ế
trong quá kh , đ có th quay tr l i ứ ể ể ở ạ
Trang 36B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
Khoa CNTT
H đi u hành ệ ề 3 36
Bi n pháp hu b ti n trình ệ ỷ ỏ ế
Bi n pháp thô b o nh t, nh ng cũng đ n ệ ạ ấ ư ơ
gi n nh t đ gi i quy t b t c là hu b ả ấ ể ả ế ế ắ ỷ ỏ
m t ho c nhi u ti n trình. ộ ặ ề ế
Có th hu b m t ti n trình trong vòng ể ỷ ỏ ộ ế
kín. N u may m n thì các ti n trình còn l i ế ắ ế ạ
có th ti p t c ho t đ ng. Còn n u ch a ể ế ụ ạ ộ ế ư
được thì có th ti p t c hu b các ti n ể ế ụ ỷ ỏ ế
trình khác cho t i khi vòng kín b phá v ớ ị ỡ
Trang 37B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
Các v n đ ấ ề Phòng tránh b t c ế ắ , Ngăn
ch n b t c ặ ế ắ sinh viên t nghiên c u ự ứ
trong cu n Modern Operating Systems.ố
Trang 38B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
Khoa CNTT
H đi u hành ệ ề 3 38