YOMEDIA
Hệ điều hành Chương VI: Tắc nghẽn (Deadlock)
Chia sẻ: Lê Tẹt
| Ngày:
| Loại File: PPT
| Số trang:55
121
lượt xem
9
download
Download
Vui lòng tải xuống để xem tài liệu đầy đủ
Các loại tài nguyên, kí hiệu R1, R2,…, Rm , bao gồm:
CPU cycle, không gian bộ nhớ, thiết bị I/O, file, semaphore,…
Mỗi loại tài nguyên Ri có Wi thực thể (instance).
Giả sử tài nguyên tái sử dụng theo kỳ (Serially Reusable Resources)
Yêu cầu (request): process phải chờ nếu yêu cầu không được đáp ứng ngay
Sử dụng (use): process sử dụng tài nguyên
Hoàn trả (release): process hoàn trả tài nguyên
Các tác vụ yêu cầu (request) và hoàn trả (release) đều là system call. Ví dụ
Request / release device
Open / close file
Allocate / free memory
Wait / signal...
AMBIENT/
Chủ đề:
Nội dung Text: Hệ điều hành Chương VI: Tắc nghẽn (Deadlock)
- Chöông 6 : Taéc ngheõn(Deadlock)
Baøi toaùn deadlock
Moâ hình heä thoáng
Caùc tính chaát cuûa deadlock
Phöông phaùp giaûi quyeát deadlock
Deadlock prevention
Deadlock avoidance
Deadlock detection
Deadlock recovery
Khoa KTMT 1
- Chapter Objectives
To develop a description of deadlocks,
which prevent sets of concurrent
processes from completing their tasks
To present a number of different methods
for preventing or avoiding deadlocks in a
computer system
- Vaán ñeà deadlock
Tình huoáng: Moät taäp caùc process bò blocked, moãi process
giöõ taøi nguyeân vaø ñang chôø taøi nguyeân maø process
khaùc trong taäp ñang giöõ.
Ví duï 1
– Heä thoáng coù 2 file treân ñóa.
– P1 vaø P2 moãi process ñang môû moät file vaø yeâu caàu môû file
kia.
Ví duï 2
– Semaphore A vaø B, khôûi taïo baèng 1
P0 P1
wait(A); wait(B);
wait(B); wait(A);
Khoa KTMT 3
- Bridge Crossing Example
Traffic only in one direction
Each section of a bridge can be viewed as a resource
If a deadlock occurs, it can be resolved if one car backs up (lui l ại)
(preempt (dành quyền) resources and rollback)
Several cars may have to be backed up if a deadlock occurs
Starvation is possible
Note – Most OSes do not prevent or deal with deadlocks
- Moâ hình hoùa heä thoáng
Caùc loaïi taøi nguyeân, kí hieäu R1, R2,…, Rm , bao goàm:
– CPU cycle, khoâng gian boä nhôù, thieát bò I/O, file, semaphore,…
Moãi loaïi taøi nguyeân Ri coù Wi thöïc theå (instance).
Giaû söû taøi nguyeân taùi söû duïng theo kyø (Serially
Reusable Resources)
– Yeâu caàu (request): process phaûi chôø neáu yeâu caàu khoâng
ñöôïc ñaùp öùng ngay
– Söû duïng (use): process söû duïng taøi nguyeân
– Hoaøn traû (release): process hoaøn traû taøi nguyeân
Caùc taùc vuï yeâu caàu (request) vaø hoaøn traû (release)
ñeàu laø system call. Ví duï
– Request / release device
– Open / close file
– Allocate / free memory
– Wait / signal
Khoa KTMT 5
- Ñònh nghóa
Moät tieán trình goïi laø deadlocked neáu noù ñang
ñôïi moät söï kieän maø seõ khoâng bao giôø xaûy ra.
– Thoâng thöôøng, coù nhieàu hôn moät tieán trình bò lieân quan trong moät
deadlock.
Moät tieán trình goïi laø trì hoaõn voâ haïn ñònh (starvation)
(indefinitely postponed) neáu noù bò trì hoaõn moät khoaûng thôøi
gian daøi laëp ñi laëp laïi trong khi heä thoáng ñaùp öùng cho
nhöõng tieán trình khaùc .
– i.e. Moät tieán trình saün saøng ñeå xöû lyù nhöng noù
khoâng bao giôø nhaän ñöôïc CPU.
Khoa KTMT 6
- Ñieàu kieän caàn ñeå xaûy ra deadlock
Boán ñieàu kieän caàn (necessary condition) ñeå
xaûy ra deadlock
1. Loaïi tröø hoã töông (Mutual exclusion): ít nhaát moät taøi
nguyeân ñöôïc giöõ theo nonsharable mode.
• Ví duï: printer;
• Ví dụ: sharable resource read-only files.
2. Giöõ vaø chôø caáp theâm taøi nguyeân (Hold and wait): moät
process ñang giöõ ít nhaát moät taøi nguyeân vaø ñôïi theâm taøi
nguyeân do quaù trình khaùc ñang giöõ.
Khoa KTMT 7
- Ñieàu kieän caàn ñeå xaûy ra deadlock (tt)
3. Khoâng tröng duïng (No preemption): (=no resource preemption)
taøi nguyeân khoâng theå bò laáy laïi, maø chæcoù theå ñöôïc traû
laïi töø process ñang giöõ taøi nguyeân ñoù khi noù muoán.
4. Chu trình ñôïi (Circular wait): toàn taïi moät taäp {P0,…,Pn}
caùc quaù trình ñang ñôïi sao cho
P0 ñôïi moät taøi nguyeân maø P1 ñang giöõ
P1 ñôïi moät taøi nguyeân maø P2 ñang giöõ
…
Pn ñôïi moät taøi nguyeân maø P0 ñang giöõ
Khoa KTMT 8
- Ñoà thò caáp phaùt taøi nguyeân
( Resource Allocation Graph)
Laø ñoà thò coù höôùng, vôùi taäp ñænh V vaø taäp caïnh
E
Taäp ñænh V goàm2 loaïi:
– P ={P1, P2,…, Pn } (Taát caû process trong heä thoáng)
– R ={R1, R2,…, Rm } (Taát caû caùc loaïi taøi nguyeân trong
heä thoáng)
Taäp caïnh E goàm2 loaïi:
– Caïnh yeâu caàu (Request edge): ø Pi Rj
– Caïnh caáp phaùt (Assignment edge): Rj Pi
Khoa KTMT 9
- Resource Allocation Graph (tt)
Process: Pi
Rj
Loaïi taøi nguyeân vôùi 4 thöïc theå:
Rj
Pi
Pi yeâu caàu moät thöïc theå cuûa Rj :
Rj
Pi
Pi ñang giöõ moät thöïc theå cuûa Rj :
Khoa KTMT 10
- Ví duï veà RAG
R1 R3
P1 P2 P3
R2 R4
Khoa KTMT 11
- Resource Allocation Graph With A Deadlock
R1 R3
P1 P2 P3
Deadlock xaûy ra!
R2 R4
Khoa KTMT 12
- Graph With A Cycle But No Deadlock
Ví duï moät RAG chöùa chu trình nhöng khoâng xaûy
ra deadlock: P4 coù theå traû laïi instance cuûa R2.
R1 P2
P1 R2 P3
P4
Khoa KTMT 13
- Basic Facts
RAG khoâng chöùa chu trình (cycle) ⇒ khoâng coù
deadlock
RAG chöùa moät (hay nhieàu) chu trình
– Neáu moãi loaïi taøi nguyeân chæ coù moät thöïc theå ⇒
deadlock
– Neáu moãi loaïi taøi nguyeân coù nhieàu thöïc theå ⇒ coù
theå xaûy ra deadlock
Khoa KTMT 14
- Caùc phöông phaùp giaûi quyeát deadlock
• Ba phöông phaùp
• 1) Baûo ñaûm raèng heä thoáng khoâng rôi
vaøo tình traïng deadlock baèng caùch ngaên
(preventing) hoaëc traùnh (avoiding) deadlock.
• Khaùc bieät
– Ngaên deadlock: khoâng cho pheùp (ít nhaát) moät
trong 4 ñieàu kieän caàn cho deadlock
– Traùnh deadlock: caùc quaù trình caàn cung caáp
thoâng tin veà taøi nguyeân noù caàn ñeå heä thoáng
caáp phaùt taøi nguyeân moät caùch thích hôïp
Khoa KTMT 15
- Caùc phöông phaùp giaûi quyeát deadlock
• 2) Cho pheùp heä thoáng vaøo traïng thaùi
deadlock, nhöng sau ñoù phaùt hieän deadlock
vaø phuïc hoài heä thoáng.
• 3) Boû qua moïi vaán ñeà, xem nhö deadlock
khoâng bao giôø xaûy ra trong heä thoáng.
Khaù nhieàu heä ñieàu haønh söû duïng phöông
phaùp naøy.
– Deadlock khoâng ñöôïc phaùt hieän, daãn ñeán
vieäc giaûm hieäu suaát cuûa heä thoáng. Cuoái
cuøng, heä thoáng coù theå ngöng hoaït ñoäng
vaø phaûi ñöôïc khôûi ñoäng laïi.
Khoa KTMT 16
- 1. Ngaên deadlock (deadlock prevention)
Ngaên deadlock baèng caùch ngaên moät trong 4
ñieàu kieän caàn cuûa deadlock
1. Mutual exclusion
– Đoái vôùi nonsharable resource (vd: printer): khoâng laøm
ñöôïc
– Đoái vôùi sharable resource (vd: read-only file): khoâng
caàn thieát
Khoa KTMT 17
- Ngaên deadlock (tt)
2. Hold and Wait
– Caùch 1: Moãi process yeâu caàu toaøn boä taøi nguyeân
caàn thieát moät laàn. Neáu coù ñuû taøi nguyeân thì heä
thoáng seõ caáp phaùt, neáu khoâng ñuû taøi nguyeân thì
process phaûi bò blocked.
– Caùch 2: Khi yeâu caàu taøi nguyeân, process khoâng ñöôïc
giöõ baát kyø taøi nguyeân naøo. Neáu ñang coù thì phaûi
traû laïi tröôùc khi yeâu caàu.
– Ví duï ñeå so saùnh hai caùch treân: moät quaù trình copy
döõ lieäu töø DVD drive sang 1 file treân disk, saép xeáp
file treân disk, roài in keát quaû ra printer.
– Khuyeát ñieåm:
Hieäu suaát söû duïng taøi nguyeân (resource
utilization) thaáp Khoa KTMT 18
- Ngaên deadlock (tt)
3. No Preemption: neáu process A coù giöõ taøi nguyeân vaø
ñang yeâu caàu taøi nguyeân khaùc nhöng taøi nguyeân naøy
chöa caáp phaùt ngay ñöôïc thì
– Caùch 1: Heä thoáng laáy laïi moïi taøi nguyeân maø A
ñang giöõ
A chæ baét ñaàu laïi ñöôïc khi coù ñöôïc caùc taøi
nguyeân ñaõ bò laáy laïi cuøng vôùi taøi nguyeân ñang
yeâu caàu
– Caùch 2: Heä thoáng seõ xem taøi nguyeân maø A yeâu
caàu
Neáu taøi nguyeân ñöôïc giöõ bôûi moät process khaùc
ñang ñôïi theâm taøi nguyeân, taøi nguyeân naøy ñöôïc
heä thoáng laáy laïi vaø caáp phaùt cho A.
Neáu taøi nguyeân ñöôïc giöõ bôûi process khoâng ñôïi
taøi nguyeân, A phaûi ñôïi vaø taøi nguyeân cuûa A bò
Khoa KTMT 19
- Ngaên deadlock (tt)
4. Circular Wait: gaùn moät thöù töï cho taát caû caùc taøi
nguyeân trong heä thoáng.
– Taäp hôïp loaïi taøi nguyeân: R={R1, R2,…,Rm }
Haøm aùnh xaï: F: R->N
– Ví duï: F(tape drive) = 1, F(disk drive) = 5, F(printer) = 12
F laø haøm ñònh nghóa thöù töï treân taäp caùc loaïi taøi
nguyeân.
Khoa KTMT 20
Thêm tài liệu vào bộ sưu tập có sẵn:
Báo xấu
LAVA
ERROR:connection to 10.20.1.100:9315 failed (errno=111, msg=Connection refused)
ERROR:connection to 10.20.1.100:9315 failed (errno=111, msg=Connection refused)
Đang xử lý...