1. Trang chủ
  2. » Công Nghệ Thông Tin

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

42 1,3K 10

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 42
Dung lượng 489,47 KB

Nội dung

7.4 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 14, 2005„ Một tập các quá trình bị nghẽn, mỗi một chiếm giữ một tài nguyên và chờ đợi tậu tài nguyê

Trang 1

Chương 6: Deadlocks

Trang 2

7.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 14, 2005

Trang 3

MỤC TIÊU

„ Phát triển một mô tả deadlocks, hiện tượng ngăn cản

tập các giao dịch cạnh tranh hoàn tất nhiệm vụ củachúng

„ Giới thiệu một số phương pháp khác nhau để ngăn

ngừa, tránh deadlocks trong hệ thống máy tính

„ Giới thiệu phương pháp phát hiện và phục hồi từ

deadlocks

Trang 4

7.4 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 14, 2005

„ Một tập các quá trình bị nghẽn, mỗi một chiếm giữ một tài

nguyên và chờ đợi tậu tài nguyên bị chiếm giữ bởi quá trìnhkhác trong tập hợp

Trang 5

VÍ DỤ QUA CẦU

„ Lưu thông chỉ theo một chiều

„ Mỗi phần của cầu được xem như một tài nguyên

„ Nếu deadlock xảy ra nó sẽ được giải quyết nếu một xe lùilại (trưng các tài nguyên và cuộn lại)

„ Một vài xe có thể bị lùi lại khi deadlock xảy ra

„ Có thể xảy ra “sự chết đói”

Trang 6

7.6 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 14, 2005

„ Các kiểu tài nguyên: R1, R2, , Rm

Các chu kỳ CPU, không gian bộ nhớ, các thiết bị I/O

„ Mỗi tài nguyên kiểu Ri có Wi 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

Trang 7

ĐẶC TRƯNG DEADLOCK

„ Loại trừ tương hỗ (Mutual exclusion): chỉ một quá trình

sử dụng một tài nguyên tại một thời điểm

„ Giữ và chờ (Hold and wait): một quá trình chiếm giữ ít

nhất một tài nguyên và chờ tậu các tài nguyên bổ xung bịchiếm giữ 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ể được giải

phóng bởi sự tình nguyện của quá trình chiếm giữ nó (saukhi quá trình đã hoàn thành nhiệm vụ của nó)

„ Chờ đợi vòng tròn: Tồn tại một tập {P0, P1, …, P0} các quá

trình chờ đợi sao cho P0 chờ một tài nguyên bị chiếm giữ

bởi P1, P1 chờ một tài nguyên bị chiếm giữ bởi P2, …, P n–1 chờ một tài nguyên bị chiếm giữ bởi Pn, và Pn chờ một tài

Điều kiện cần để deadlock xảy ra:

Trang 8

7.8 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 14, 2005

„ V được phân hoạch thành hai kiểu:

z P = {P1, P2, …, P n}, gồm tất cả các quá trình trong hệthống

z R = {R1, R2, …, R m}, gồm tất cả các kiểu tài nguyêntrong hệ thống

„ Cung yêu cầu – cung hướng từ Pi đến Rj : Pi → R j

„ Cung gán – hướng từ Rjđến Pi : R j → P i

Một tập các đỉnh V và một tập các cung E.

Trang 9

ĐỒ THỊ CẤP PHÁT TÀI NGUYÊN (Cont.)

„ Quá trình

„ Kiều tài nguyên với 4 thể hiện

„ P i yêu cầu thể hiện của R j

„ P i đang chiếm giữ một thể hiện của kiểu tài nguyên R j

P i

P i

R j

Trang 10

7.10 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 14, 2005

Trang 11

ĐỒ THỊ CẤP PHÁT TÀI NGUYÊN VỚI DEADLOCK

Trang 12

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

Trang 14

7.14 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 14, 2005

CÁC PHƯƠNG PHÁP QUẢN LÝ DEADLOCKS

„ Đảm bảo hệ thống không bao giờ rơi vào trạng thái

deadlock

„ Cho phép hệ thống rơi vào trạng thái deadlock sau đó phát

hiện và phục hồi

„ Bỏ lơ vấn đề và xem như deadlocks không bao giờ xảy ra

(được sử dụng trong hầu hết các HĐH kể cả UNIX)

Trang 15

NGĂN NGỪA DEADLOCK

„ Loại trừ tương hỗ (Mutual Exclusion) : không được yêu

cầu đối với các tài nguyên có thể chia sẻ nhưng có hiệu lựcđối với tài nguyên có thể chia sẻ

„ Giữ và chờ (Hold and Wait) : Phải đảm bảo rằng mỗi khi

quá trình yêu cầu một tài nguyên nó không chiếm giữ mộttài nguyên nào

z Đòi hỏi quá trình yêu cầu và được cấp phát tất cả cáctài nguyên cần thiết trước khi bắt đầu thực hiện / chỉcho phép quá trình yêu cầu các tài nguyên khi nó khôngchiếm giữ một tài nguyên nào

z Hiệu suất sử dụng tài nguyên thấp, có thể xảy ra chếtđói

Ngăn cản một trong bốn điều kiện cần để xảy ra deadlock

Trang 16

7.16 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 14, 2005

Deadlock Prevention (Cont.)

„ Không có trưng dụng (no preemption):

z Nếu một quá trình đang chiếm giữ một số tài nguyên yêucầu tài nguyên khác nhưng không thể được cấp phátngay, các tài nguyên bị chiếm giữ bởi quá trình bị trưngdụng

z Các tài nguyên bị trưng dụng được thêm vào danh sáchcác tài nguyên quá trình (bị trưng dụng) chờ

z Quá trình sẽ được khởi động lại chỉ khi nó có thể tậu lạicác tài nguyên cũ cũng như các tài nguyên mới yêu cầu

„ Chờ đợi vòng tròn (Circular Wait) – áp đặt một thứ tự toàn

phần trên các kiểu tài nguyên và đòi hỏi mỗi quá trình yêu cầutài nguyên theo thứ tự tăng

Trang 17

TRÁNH Deadlock

„ Mô hình đơn giản nhất và hữu dụng nhất là đòi hỏi mỗi quátrình phải khai báo số lượng tối đa các tài nguyên cần thiếtcủa mỗi kiểu

„ Thuật toán tránh deadlock kiểm tra trạng thái cấp phát tàinguyên và đảm bảo rằng không xảy ra chờ đợi vòng tròn

„ Trạng thái cấp phát tài nguyên được định nghĩa bởi số tàinguyên sẵn có, số tài nguyên đã được cấp phát và các đòihỏi tối đa của các quá trình

Đòi hỏi hệ thống phải có thông tin tiên quyết

Trang 18

7.18 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 14, 2005

TRẠNG THÁI AN TOÀN

„ Khi một quá trình yêu cầu một tài nguyên sẵn có, hệ thống phảixác định nếu cấ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ếu tồn tại một dãy <P 1 , P 2 , …,

P n> của TẤT CẢ các quá trình trong hệ thống sao cho đối vớimỗi Pi, tất cả các tài nguyên mà Pi cần được thỏa mãn bởi các

tài nguyên nó hiện có + các tài nguyên bị chiếm giữ bởi các P j,

Trang 19

„ Tránh ⇒ đảm bảo hệ thống không bao giờ rơi vào trạng

thái không an toàn

Trang 20

7.20 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 14, 2005

TRẠNG THÁI AN TOÀN, KHÔNG AN TOÀN &

Deadlock

Trang 21

THUẬT TOÁN TRÁNH DEADLOCK

„ Mỗi kiểu tài nguyên có đúng một thể hiện Sử dụng đồ thị

cấp phát tài nguyên

„ Mỗi kiểu tài nguyên có một vài thể hiện Sử dụng thuật toán

banker

Trang 22

7.22 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 14, 2005

„ 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 ; được biểu diễn bởi đường đứt quãng

„ Cung Claim được chuyển thành cung Request khi quá trình

yêu cầu tài nguyên

„ Cung Request được chuyển thành cung Assignment khi tài

nguyên được cấp cho quá trình

„ Khi tài nguyên được giả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

Trang 23

ĐỒ THỊ CẤP PHÁT TÀI NGUYÊN

Trang 24

7.24 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 14, 2005

TRẠNG THÁI KHÔNG AN TOÀN TRONG ĐỒ THỊ

CẤP PHÁT TÀI NGUYÊN

Trang 25

THUẬT TOÁN ĐỒ THỊ CẤP PHÁT TÀI NGUYÊN

„ Giả sử quá trình P i yêu cầu một tài nguyên R j

„ Yêu cầu có thể được cấp chỉ nếu việc chuyển cung

Request thành cung Assignment không gây ra chutrình trong đồ thị cấp phát tài nguyên

Trang 26

7.26 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 14, 2005

THUẬT TOÁN Banker

„ Đa thể hiện

„ Mỗi quá trình phải khai báo số tố đa các thể hiện của mỗi

kiểu tài nguyên cần thiết

„ Khi quá trình yêu cầu một tài nguyên, có thể nó phải chờ

„ Khi quá trình nhận được tất cả các tài nguyên cần thiết nó

phải trả lại chúng sau một khoảng thời gian hữu hạn

Trang 27

CẤU TRÚC DỮ LIỆU CHO THUẬT TOÁN

Banker’s

„ Available : Vector độ dài m available [j] = k, có nghĩa là có

sẵn k thể hiện của kiểu tài nguyên R j

„ Max : ma trận n x m Max [i,j] = k, có nghĩa là quá trình P i

có thể yêu cầu nhiều nhất k thể hiện của kiểu tài nguyên R j

„ Allocation : ma trận n x m Allocation[i,j] = k có nghĩa là P i

hiện được cấp phát k thể hiện của R j.

„ Need : ma trận n x m Need[i,j] = k có nghĩa là P i có thể cần

thêm k thể hiện nữa của R j

Need [i,j] = Max[i,j] – Allocation [i,j].

n = số quá trình, m = số các kiểu tài nguyên

Trang 28

7.28 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 14, 2005

THUẬT TOÁN AN TOÀN

1. WorkFinish là các vectors độ dài m và n, tương ứng

Khởi động:

Work = Available Finish [i] = false for i = 0, 1, …, n- 1.

2 Tìm i sao cho hai điều kiện sau thỏa mãn:

(a) Finish [i] = false (b) Need i ≤ Work

Nếu không tìm thấy, go to 4

3 Work = Work + Allocation i

Finish[i] = true

go to 2

4 Nếu Finish [i] == true với mọi i, hệ thông trong trạng thái an toàn.

Trang 29

THUẬT TOÁN YÊU CẦU TÀI NGUYÊN ĐỐI VỚI

QUÁ TRÌNH Pi

Request = vector Request đối với quá trình P i Nếu Request i [j]

= k có nghĩa P i muốn k thể hiện của kiểu tài nguyên R j.

1 Nếu Request i ≤ Need i go to 2 Nếu không thông báo lỗi

“tiêu thụ tài nguyên vượt quá khai báo”

2 Nếu Request i ≤ Available, go to 3 Nếu không P i phải chờ, (tài nguyên không có sẵn)

3 Giả định cấp phát các tài nguyên được yêu cầu cho P i bằngcách sủa đổi trạng thái như sau:

Available = Available – Request;

Allocation i = Allocation i + Request i;

Need i = Need i – Request i ;

z Nếu trạng thái mới là an toànCấp phát tài nguyên cho Pi

z Nếu trạng thái mới không an toànPi phải chờ, trạng

Trang 30

7.30 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 14, 2005

„ 5 quá trình P0, P1, P2, P3, và P4

3 Kiểu tài nguyên:

A (10 thể hiện), B (5 thể hiện), và C (7 thể hiện).

„ Tức cảnh tại thời điểm T0:

Trang 31

„ Thuật toán an toàn cho ra dãy an toàn < P1, P3, P4, P2, P0>, như vậy

hệ thống trong trạng thái an toàn

Trang 32

7.32 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 14, 2005

„ Kiểm tra Request1 ≤ Need1 ((1,0,2) ≤ (1, 2, 2) ⇒ true )

„ Kiểm tra Request1 ≤ Available ( (1,0,2) ≤ (3,3,2) ⇒ true ).

„ Giả định cấp phát theo yêu cầu của P0

„ Chạy thuật toán an toàn, tìm được dãy an toàn < P1, P3, P4, P0, P2>;

như vậy có thể cấp theo yêu cầu của P0

„ Yêu cầu (3,3,0) bởi P4 được cấp?

„ Yêu cầu (0,2,0) bời P0 được cấp?

Trang 33

PHÁT HIỆN DEADLOCKS

„ Cho phép hệ thống rơi vào trạng thái deadlock

„ Thuật toán phát hiện deadlock

„ Sơ đồ phục hồi

Trang 34

7.34 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 14, 2005

MỖI KIỂU TÀI NGUYÊN CHỈ CÓ MỘT THỂ HIỆN

„ Thuật toán phát hiện chu trình trong một đồ thị có độ phức

tạp thời gian O(n2) , n = số đỉnh của đồ thị.

Trang 35

ĐỒ THỊ CẤP PHÁT TÀI NGUYÊN & ĐỒ THỊ CHỜ

Đồ thị cấp phát tài nguyên Đồ thị chờ tương ứng

Trang 36

7.36 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 14, 2005

MỖI KIỂU TÀI NGUYÊN CÓ MỘT VÀI THỂ HIỆN

„ Available : vector độ dài m, available[j]=k : kiểu tài nguyên Rj

còn k thể hiện

„ Allocation : ma trận n x m, Allocation[i, j] = k : quá trình i

được cấp k thể hiện của kiểu tài nguyên j

„ Request : ma trận n x m, Request [i, j] = k : P i yêu cầu thêm

k thể hiện của kiểu tài nguyên R j

Trang 37

THUẬT TOÁN PHÁT HIỆN

Initialize:

(a) Work = Available

Finish[i] = false; otherwise, Finish[i] = true.

2 Tìm một chỉ số i sao cho:

(a) Finish[i] == false

Nếu không tìm thấy, go to 4

Finish[i] = true

go to 2.

Trang 38

7.38 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 14, 2005

VD THUẬT TOÁN PHÁT HIỆN

„ 5 quá trình : P0, P1, P2, P3 và P4;

3 kiểu tài nguyên

A (7 thể hiện), B (2 thể hiện), và C (6 thể hiện).

„ Tức cảnh tại thời điểm T0:

„ Chạy thuật toán ta được dãy an toàn <P0, P2, P3, P1, P4> ;

finish[i] == true với mọi i; hệ thống không trong trạng thái deadlock

Trang 40

7.40 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 14, 2005

„ Cuộn lại tất cả các quá trình bị deadlock

„ Lần luợt cuộn lại từng quá trình bị deadlock đến tận khi chu trình

deadlock bị loại bỏ

„ Chọn quá trình “nạn nhân”?

z Độ ưu tiên của quá trình

z Quá trình đã chạy được bao lâu, còn bao lâu nữa nó sẽ hoàntất

z Lượng tài nguyên quá trình chiếm giữ

z Lượng tài nguyên quá trình cần thêm

z Bao nhiêu quá trình bị cuộn lại

z Quá trình ở dạng trao đổi hay bó?

Trang 41

PHỤC HỒI TỪ DEADLOCK

„ Tối thiểu hóa “giá”

„ Chết đói : một quá trình luôn bị chọn là “nạn nhân”

Trang 42

End of Chapter 6

Ngày đăng: 28/06/2014, 15:20

HÌNH ẢNH LIÊN QUAN

Đồ thị cấp phát tài nguyên Đồ thị chờ tương ứng - Bài Giảng Hệ Điều Hành-Chương 6: Deadlocks ppt
th ị cấp phát tài nguyên Đồ thị chờ tương ứng (Trang 35)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w