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

Bài giảng hệ điều hành chương 6 deadlock (khóa chết)

49 1,6K 4

Đ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 49
Dung lượng 1,47 MB

Nội dung

Giới thiệu DeadlockĐồ thị cấp phát tài nguyên Resourece Allocation Graph – RAG Đồ Thị Cấp Phát Tài Nguyên & Deadlock I Nếu đồ thị không có chu trình: chắc chắn không có deadlock I Nếu đồ

Trang 1

CT107 Hệ Điều Hành

Chương 6 Deadlock (Khóa Chết)

Giảng viên: Trần Công Án (tcan@cit.ctu.edu.vn)

Bộ môn Mạng máy tính & Truyền thông

Khoa Công Nghệ Thông Tin & Truyền Thông

Đại học Cần Thơ

2014

Trang 3

Nội Dung

Trang 4

Giới thiệu Deadlock

I Ví dụ 1:

I Giả sử 1 hệ thống có 2 tiến trình P và Q và F1, F2 là 2 tập tin

I Tiến trình P đang giữ F1 và cần truy xuất thêm F2

I Tiến trình Q đang giữ F2 và cần truy xuất thêm F1

Trang 5

Giới thiệu Deadlock

Figure 7.10 Traffic deadlock for Exercise 7.11.

7.14 In Section 7.4.4, we describe a situation in which we prevent deadlock

by ensuring that all locks are acquired in a certain order However,

we also point out that deadlock is possible in this situation if two threads simultaneously invoke the transaction() function Fix thetransaction()function to prevent deadlocks.

7.15 Compare the circular-wait scheme with the various deadlock-avoidance schemes (like the banker’s algorithm) with respect to the following issues:

a Runtime overheads

b System throughput

7.16 In a real computer system, neither the resources available nor the demands of processes for resources are consistent over long periods (months) Resources break or are replaced, new processes come and go, and new resources are bought and added to the system If deadlock is controlled by the banker’s algorithm, which of the following changes can be made safely (without introducing the possibility of deadlock), and under what circumstances?

a Increase Available (new resources added).

b Decrease Available (resource permanently removed from system).

c Increase Max for one process (the process needs or wants more

resources than allowed).

d Decrease Max for one process (the process decides it does not need

Trang 6

Giới thiệu Deadlock

Điều kiện phát sinh deadlock

Điều Kiện Phát Sinh Deadlock

1 Loại trừ hỗ tương: ít nhất một tài nguyên được giữ ở chế độ không chia sẻ (nonsharable mode).

2 Giữ và chờ: một tiến trình đang giữ ít nhất một tài nguyên và đợi thêm tài nguyên đang bị giữ bởi tiến trình khác.

3 Không trưng dụng tài nguyên: không trưng dụng tài nguyên cấp phát tiến trình, trừ khi tiến trình tự hoàn trả.

4 Chờ đợi vòng tròn: tồn tại một tập các tiến trình {P0, P1, , Pn} đang chờ đợi như sau: P0 đợi một tài nguyên P1 đang giữ, P1 đợi một tài nguyên P2 đang giữ, , Pn đang đợi một tài nguyên P0 đang giữ.

Trang 7

Giới thiệu Deadlock

Mô hình hóa hệ thống

Mô Hình Hóa Hệ Thống

I Hệ thống gồm một tập các loại tài nguyên , kí hiệu R1, R2, , Rm

I Ví dụ: CPU cycles, memory space, I/O devices,

I Mỗi loại tài nguyên Ri có một tập các thể hiện (instances) Wi

I Tiến trình sử dụng tài nguyên theo các bước:

1 Yêu cầu (request) – phải chờ nếu không được đáp ứng ngay

2 Sử dụng (use)

3 Giải phóng (release)

I Các tác vụ yêu cầu và hoàn trả được thực hiện bằng các lời gọi hệ thống.

Trang 8

Giới thiệu Deadlock

Đồ thị cấp phát tài nguyên (Resourece Allocation Graph – RAG)

Đồ Thị Cấp Phát Tài Nguyên – RAG

I Cạnh yêu cầu (request edge): có hướng từ Pi đến Rj

I Cạnh cấp phát(assignment edge): có hướng từ RJ đến Pi

Trang 9

Giới thiệu Deadlock

Đồ thị cấp phát tài nguyên (Resourece Allocation Graph – RAG)

Trang 10

Giới thiệu Deadlock

Đồ thị cấp phát tài nguyên (Resourece Allocation Graph – RAG)

◦ One instance of resource type R1

◦ Two instances of resource type R2

◦ One instance of resource type R3

◦ Three instances of resource type R4

• Process states:

◦ Process P1is holding an instance of resource type R2and is waiting for

an instance of resource type R1

◦ Process P2 is holding an instance of R1 and an instance of R2 and is

waiting for an instance of R3

◦ Process P3is holding an instance of R3

Given the definition of a resource-allocation graph, it can be shown that, if

the graph contains no cycles, then no process in the system is deadlocked If

the graph does contain a cycle, then a deadlock may exist

If each resource type has exactly one instance, then a cycle implies that a

deadlock has occurred If the cycle involves only a set of resource types, each

of which has only a single instance, then a deadlock has occurred Each process

involved in the cycle is deadlocked In this case, a cycle in the graph is both a

necessary and a sufficient condition for the existence of deadlock

If each resource type has several instances, then a cycle does not necessarily

imply that a deadlock has occurred In this case, a cycle in the graph is a

necessary but not a sufficient condition for the existence of deadlock

To illustrate this concept, we return to the resource-allocation graph

depicted in Figure 7.1 Suppose that process P3requests an instance of resource

Trang 11

Giới thiệu Deadlock

Đồ thị cấp phát tài nguyên (Resourece Allocation Graph – RAG)

Figure 7.2 Resource-allocation graph with a deadlock.

type R2 Since no resource instance is currently available, we add a request edge

P3→ R2to the graph (Figure 7.2) At this point, two minimal cycles exist in the

system:

P1→ R1→ P2→ R3→ P3→ R2→ P1

P2→ R3→ P3→ R2→ P2

Processes P1, P2, and P3are deadlocked Process P2is waiting for the resource

R3, which is held by process P3 Process P3is waiting for either process P1or

process P2to release resource R2 In addition, process P1is waiting for process

P2to release resource R1

Now consider the resource-allocation graph in Figure 7.3 In this example,

we also have a cycle:

Trang 12

[CT107] Ch6 Deadlock

Giới thiệu Deadlock

Đồ thị cấp phát tài nguyên (Resourece Allocation Graph – RAG)

Figure 7.2 Resource-allocation graph with a deadlock.

type R2 Since no resource instance is currently available, we add a request edge

P3→ R2to the graph (Figure 7.2) At this point, two minimal cycles exist in the

system:

P1→ R1→ P2→ R3→ P3→ R2→ P1

P2→ R3→ P3→ R2→ P2

Processes P1, P2, and P3are deadlocked Process P2is waiting for the resource

R3, which is held by process P3 Process P3 is waiting for either process P1 or

process P2to release resource R2 In addition, process P1is waiting for process

P2to release resource R1

Now consider the resource-allocation graph in Figure 7.3 In this example,

we also have a cycle:

Trang 13

Giới thiệu Deadlock

Đồ thị cấp phát tài nguyên (Resourece Allocation Graph – RAG)

Đồ Thị Cấp Phát Tài Nguyên & Deadlock

I Nếu đồ thị không có chu trình: chắc chắn không có deadlock

I Nếu đồ thị có chu trình:

I Nếu mỗi loại tài nguyên chỉ có một thể hiện:chắc chắn códeadlock

I Nếu mỗi loại tài nguyên có nhiều thể hiện:có thể códeadlock

Trang 14

Các cách tiếp cận với vấn đề deadlock

Các Cách Tiếp Cận Đối Với Vấn Đề Deadlock

1 Đề ra các giao thức để đảm bảo cho hệ thống không bao giờ rơi vào trạng thái deadlock.

2 Cho phép hệ thống rơi vào trạng thái deadlock, sau đó sử dụng các giải thuật để phát hiện deadlock và phục hồi.

3 Không quan tâm và không xử lý vấn đề deadlock trong hệ thống

I Khá nhiều hệ điều hành sử dụng phương pháp này

I Tuy nhiên, nếu deadlock không được phát hiện và xử lý sẽ dẫn đến việcgiảm hiệu suất của hệ thống Cuối cùng, hệ thống có thể ngưng hoạtđộng và phải khởi động lại

Trang 15

2 Tránh deadlock (deadlock avoidance): các tiến trình cần cung cấp

thông tin về tài nguyênnó cần để hệ thống cấp phát tài nguyên mộtcách thích hợp

Trang 16

Ngăn chặn và tránh deadlock

Ngăn chặn deadlock

Ngăn Chặn Deadlock – Điều kiện 1

Ngăn một trong bốn điều kiện cần của deadlock – thắt chặt cách thức yêu cầu tài nguyên của tiến trình.

1 Ngăn Loại trừ hỗ tương (mutual exclusion):

I Tài nguyên có thể chia sẻ: không cần thiết

I Tài nguyên không thể chia sẻ:không thể thực hiệnđược do một số tàinguyên không thể được chia sẻ đồng thời cho nhiều tiến trình

Trang 17

Ngăn chặn và tránh deadlock

Ngăn chặn deadlock

Ngăn Chặn Deadlock – Điều Kiện 2

2 Ngăn Chờ và giữ (wait & hold): phải đảm bảo khi một tiến trình yêu cầu một tài nguyên, nó không đang giữ một tài nguyên nào khác.

I Cách 1: mỗi t/trìnhyêu cầu toàn bộ tài nguyêncần thiết một lần

I Cách 2: khi yêu cầu tài nguyên, tiến trìnhkhông đang giữ bất kỳ tàinguyên nào Nếu đang giữ thì phải trả lại trước khi yêu cầu

I Ví dụ: xét một tiến trình P copy dữ liệu từ băng từ sang đĩa từ, sau đósắp xếp dữ liệu trên đĩa từ rồi in kết quả ra máy in

I Khuyết điểm: hiệu suất sử dụng t/nguyên thấp + có thể bị đói

t/nguyên

Trang 18

Ngăn chặn và tránh deadlock

Ngăn chặn deadlock

Ngăn Chặn Deadlock – Điều Kiện 3

3 Ngăn Không trưng dụng (no prermption): nếu một tiến trình A có đang giữ tài nguyên và yêu cầu thêm tài nguyên đang giữ bởi tiến trình khác thì:

I Cách 1: hệ thống lấy lại mọi tài nguyên A đang giữ và A sẽ khởi độnglại khi cả tài nguyên cũ và mới sẵn sàng cho nó

I Cách 2: hệ thống xem tài nguyên mà A yêu cầu:

thêm tài nguyên, hệ thống sẽ lấy lại tài nguyên của B và cấp phát cho A

thêm tài nguyên thì A phải đợi (⇒ tài nguyên của A đang giữ sẽ bị thuhồi nếu có tiến trình khác cần – trường hợp 1)

Trang 19

Ngăn chặn và tránh deadlock

Ngăn chặn deadlock

Ngăn Chặn Deadlock – Điều Kiện 4

4 Ngăn Chờ đợi vòng tròn (circular wait):

I Mỗi tài nguyên sẽ được gán mộtthứ tự toàn cục

I Các tiến trình khiyêu cầu tài nguyên phải theo đúng thứ tự

I Thông thường, một hàm one-to-one được định nghĩa để thực hiện gánthứ tự toàn cục: F : R → N; với R là tập các tài nguyên

Trang 20

I Các giải thuật: giải thuật Đồ thị cấp phát tài nguyên và giải thuật Banker.

Trang 21

Ngăn chặn và tránh deadlock

Tránh deadlock

Trạng Thái An Toàn (Safe State)

I Một hệ thống ở trạng thái an toàn nếu tồn tại một chuỗi an toàn

I Một chuỗi tiến trình hP1, P2, , Pni là một chuỗi an toàn nếu:

I Với mọi Pi, i = 1 n, mọi yêu cầu về tài nguyên của Pi có thể được thỏamãn bởi các tài nguyên đang sẵn sàng hoặc các tài nguyên đang bị giữbởi Pj, với j < i (! ngăn chờ đợi vòng tròn)

I Một hệ thống ở trạng thái không an toàn nếu không tồn tại chuỗi an toàn.

Trang 22

Ngăn chặn và tránh deadlock

Tránh deadlock

Ví Dụ Về Chuỗi An Toàn

I Cho một hệ thống có 12 băng từ và 3 tiến trình P0, P1, P2.

I Trạng thái và nhu cầu sử dụng tài nguyên của 3 tiến trình tại thời điểm t0 được cho trong bảng sau: 7.5 Deadlock Avoidance 329

Maximum Needs Current Needs

At time t0, the system is in a safe state The sequence <P1, P0, P2>satisfies

the safety condition Process P1can immediately be allocated all its tape drivesand then return them (the system will then have five available tape drives);

then process P0can get all its tape drives and return them (the system will then

have ten available tape drives); and finally process P2can get all its tape drivesand return them (the system will then have all twelve tape drives available)

A system can go from a safe state to an unsafe state Suppose that, at time

t1, process P2 requests and is allocated one more tape drive The system is no

longer in a safe state At this point, only process P1can be allocated all its tapedrives When it returns them, the system will have only four available tape

drives Since process P0is allocated five tape drives but has a maximum of ten,

it may request five more tape drives If it does so, it will have to wait, because

they are unavailable Similarly, process P2 may request six additional tapedrives and have to wait, resulting in a deadlock Our mistake was in granting

the request from process P2for one more tape drive If we had made P2 waituntil either of the other processes had finished and released its resources, then

we could have avoided the deadlock

Given the concept of a safe state, we can define avoidance algorithms thatensure that the system will never deadlock The idea is simply to ensure that thesystem will always remain in a safe state Initially, the system is in a safe state.Whenever a process requests a resource that is currently available, the systemmust decide whether the resource can be allocated immediately or whetherthe process must wait The request is granted only if the allocation leaves thesystem in a safe state

In this scheme, if a process requests a resource that is currently available,

it may still have to wait Thus, resource utilization may be lower than it wouldotherwise be

7.5.2 Resource-Allocation-Graph Algorithm

If we have a resource-allocation system with only one instance of each resourcetype, we can use a variant of the resource-allocation graph defined in Section7.2.2 for deadlock avoidance In addition to the request and assignment edgesalready described, we introduce a new type of edge, called a claim edge

A claim edge P i → R j indicates that process P i may request resource R j atsome time in the future This edge resembles a request edge in direction but is

represented in the graph by a dashed line When process P i requests resource

R j , the claim edge P i → R j is converted to a request edge Similarly, when a

resource R j is released by P i , the assignment edge R j → P iis reconverted to a

claim edge P i → R j

Note that the resources must be claimed a priori in the system That is,

before process P i starts executing, all its claim edges must already appear inthe resource-allocation graph We can relax this condition by allowing a claim

edge P i → R j to be added to the graph only if all the edges associated with

process P iare claim edges

I Chuỗi hP1, P0, P2i là chuỗi an toàn ⇒ hệ thống an toàn

I Giả sử tại thời điểm t1, P2 yêu cầu và được cấp phát 1 băng từ ⇒ hệ thống còn 2 băng từ sẵn sàng và hệ thống trở nên không an toàn (?)

TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch6 Deadlock 22

Trang 23

[CT107] Ch6 Deadlock

Ngăn chặn và tránh deadlock

Tránh deadlock

Trạng Thái An Toàn Và Deadlock

I Nếu hệ thống đang trong trạng thái an toàn ⇒ không deadlock

I Nếu hệ thống đang ở trạng thái không an toàn ⇒ có thể có deadlock

I Ý tưởng cho giải pháp tránh deadlock:

đảm bảo hệ thống không rơi vào trạng thái

không an toàn bằng cách:

I Khi một tiến trình yêu cầu một tài nguyên

đang sẵn sàng, hệ thống sẽ kiểm tra nếu

việc cấp phátkhông dẫn đến trạng thái

không an toàn thì sẽ cấp phátngay

328 Chapter 7 Deadlocks

algorithm that ensures that the system will never enter a deadlocked state A deadlock-avoidance algorithm dynamically examines the resource-allocation state to ensure that a circular-wait condition can never exist The resource-

allocation state is defined by the number of available and allocated resources

and the maximum demands of the processes In the following sections, we explore two deadlock-avoidance algorithms.

7.5.1 Safe State

A state is safe if the system can allocate resources to each process (up to its

maximum) in some order and still avoid a deadlock More formally, a system

is in a safe state only if there exists asafe sequence A sequence of processes

<P1 , P2, , P n> is a safe sequence for the current allocation state if, for each

P i , the resource requests that P ican still make can be satisfied by the currently

available resources plus the resources held by all P j , with j < i In this situation,

if the resources that P i needs are not immediately available, then P ican wait

until all P j have finished When they have finished, P i can obtain all of its needed resources, complete its designated task, return its allocated resources,

and terminate When P i terminates, P i+1can obtain its needed resources, and

so on If no such sequence exists, then the system state is said to be unsafe.

A safe state is not a deadlocked state Conversely, a deadlocked state is

an unsafe state Not all unsafe states are deadlocks, however (Figure 7.6).

An unsafe state may lead to a deadlock As long as the state is safe, the

operating system can avoid unsafe (and deadlocked) states In an unsafe state, the operating system cannot prevent processes from requesting resources in such a way that a deadlock occurs The behavior of the processes controls unsafe states.

To illustrate, we consider a system with twelve magnetic tape drives and

three processes: P0, P1, and P2 Process P0requires ten tape drives, process P1

may need as many as four tape drives, and process P2 may need up to nine tape

drives Suppose that, at time t0, process P0 is holding five tape drives, process

P1 is holding two tape drives, and process P2 is holding two tape drives (Thus, there are three free tape drives.)

Trang 24

Ngăn chặn và tránh deadlock

Tránh deadlock

Giải Thuật Đồ Thị Cấp Phát Tài Nguyên

I Được áp dụng cho hệ thống chỉ có 1 thể hiện cho mỗi loại tài nguyên.

I Bổ sung thêm 1 loại cạnh, “cạnh dự định” yêu cầu, Pi → Rj: Pi có thể

yêu cầu Rj, được biểu diễn bằng đường ngắt khúc trên đồ thị.

I Việc yêu cầu tài nguyên phải được dự tính

Figure 7.7 Resource-allocation graph for deadlock avoidance.

graph We check for safety by using a cycle-detection algorithm An algorithm

is the number of processes in the system

If no cycle exists, then the allocation of the resource will leave the system

in a safe state If a cycle is found, then the allocation will put the system in

satisfied

To illustrate this algorithm, we consider the resource-allocation graph of

7.5.3 Banker’s Algorithm

The allocation-graph algorithm is not applicable to a allocation system with multiple instances of each resource type The deadlock-avoidance algorithm that we describe next is applicable to such a system but

resource-is less efficient than the resource-allocation graph scheme Thresource-is algorithm resource-is

the algorithm could be used in a banking system to ensure that the bank never

R1

R2

P2

P1

Figure 7.8 An unsafe state in a resource-allocation graph.

TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch6 Deadlock 24

Ngày đăng: 27/04/2016, 19:01

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w