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

Giao tiếp giữa các tiến trình

61 1,2K 5
Tài liệu được quét OCR, nội dung có thể không chính xác
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Giao tiếp giữa các tiến trình
Trường học Trường Đại Học
Chuyên ngành Công Nghệ Thông Tin
Thể loại Bài luận
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 61
Dung lượng 473,01 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

HỆ ĐIỀU HÀNH Giao tiếp giữa các tiến trình

Trang 1

HE DIEU HANH

Giao ti€p gitta cac tién trình

Trang 2

Một sô khái niệm cơ bản”

= Tién trinh độc lập không ảnh hưởng và không bị ảnh

hưởng bởi việc thực thị của các tiễn trình khác

"7jến frình hợp tác (không độc lập) có thê ảnh hưởng

và bị ảnh hưởng bởi việc thực thi của các tiễn trình

khác

" Ưu điểm của việc hợp tác tiễn trình:

Chia sẻ thông tin

Tăng tốc tính toán (xử lý song song)

Tính module hóa

Tiện lợi

Trang 3

1

Một sô khái niệm cơ bản”

" Các tiên trình sử dụng và cập nhập dữ liệu chia sẻ như các biến, file và cơ sở dữ liệu dùng chung

= Thao tac ghi phải độc lập từng đôi một để ngăn ngừa tình trạng đụng độ, có thê dẫn đến tính không toàn

vẹn dữ liệu

4 |i" Cac mién găng dùng để cung cấp sự toàn vẹn dữ liệu

Vx l[= Một tiến trình đòi hỏi miền găng phải không bị chờ

mãi mãi: deadlock

Trang 4

Dung do (race condition)

= Race condition: tinh huông mà nhiêu tiên trình cùng

truy cập và thao tác dữ liệu chia sẻ một cách đồng

thời Dữ liệu cuôi cùng phụ thuộc vào tiên trình cuối

củng

= Dé ngăn ngừa đụng độ, các tiễn trình đồng hành phải

được đồng bộ hóa

Trang 5

Dung do (race condition)

Trang 6

1

Mién gang (critical section)

= n tién trinh dau tranh véi nhau dé sử dung mot số dữ

liệu nào đó

| “Mỗi tiên trình có một đoạn mã, gọi là miễn găng

A (critical section (CS)), tai do dtr ligu chia se được

= Van đề: bao dam rang khi mot tién trinh đang thực

thi trong miễn găng của nó, không co tién trinh nao

khác được quyên thực thi trong miễn găng của nó

Trang 7

Net canh mién gang

= Khi m6ét tién trinh thi hanh đoạn mã thao tác trên dữ liệu chia sẻ (hay tài nguyễn), chúng ta nói răng tiên trình đó đang trong miền căng của nó

“Việc thực thi các miên găng phải có tính duy nhất: tại I} bat ky thời điểm nào, chỉ có duy nhất một tiên trình

được quyền thực thi trong miên găng của nó (ngay cả

với nhiêu bộ xử lý)

"m VỊ vậy mỗi tiên trình phải yêu câu quyên trước khi vào miền găng

Trang 8

Net canh mién gang

= Doan mã thể hiện yêu cau nay được gọi làEntry Section (ES)

= Mién găng (CS) có thê theo sau là Leave/Exit

Section (LS)

= Phan đoạn mã còn lại là Remainder Section (RS)

= Van dé của miên găng là thiết kê một giao thức mà các tiên trình có thể sử dụng đề hành động của chúng

sẽ không phụ thuộc vào thứ tự mà sự thi hành của

chung duoc chen vao

Trang 9

: Giải pháp cho van dé mién gang

= C63 yéu cau ma mét giai phap ding can phải thỏa

man:

1 Mutual Exclusion: khong co 2 tiễn trình cùng ở

trong miên gang mot lic

2 Progress: Một tiễn trình bên ngoài miên gang

không được ngăn cản các tiên trình khác vào mién gang

3 Bounded Waiting: khong có tiễn trình nào phải

chờ vô hạn để vào miền găng

= Chi can một trong ba điêu kiện trên sai thì giải

pháp đưa ra là sa

Trang 10

Cầu trúc của các tiên trình

“Câu trúc tông quát của tiên trình P, (P,)

do { entry section

critical section leave section

remainder section

‘ while (1);

" Lưu ý: Các tiễn trình có thê chia sẻ các biên dùng

chung đề đông bộ hóa hoạt động của chúng

10

Trang 11

Phân loại các øiái pháp cho CS

" Giai phap busy-waiting

« Alg 1 & 2, Peterson, Dekker, Bakery,

Trang 12

Giải thuật 1

= Bién chia sé

- néu turn =i= P, dudc phép vao critical section

= Thoa man mutual exclusion (1)

" Progress (2) & bounded-waiting (3) ?

12

Trang 13

Giải thuật 1

Process PO:

do while(turn !=0 );

Nếu turn=0, P0 được vào CS và sau đó thực thi vùng RS (turn=1)

Đến PI vào CS và sau đó thực thi RS (turn=0) và tìm cách vào CS một lần

nữa nhưng yêu cầu bị từ chối !!! P1 phải chờ P0 !!!

13

Trang 14

Giải thuật 2

" Biến chia sẻ

: boolean flag[2]; /* khởi đầu flag [0] = flag [1] = false */

: Néu flag [i] = true > P, san sang vao critical section

Trang 15

Giải thuật 3 (Peterson)

= Bién chia sẻ: kết hợp cả giải thuật 1 và 2

Trang 16

Giải thuật Bakery: N process

Trước khi vào CS, process Pi nhận một con sé Process nao giff

con số nhỏ nhất thì được vào CS

Trường hợp Pi và Pj cùng nhận được một chỉ số:

= Néui <j thi Pi duoc vào trước, ngược lại PỊ được vào trước

Khi ra khói CS, Pi đặt lại số của mình bằng 0

Cơ chế cấp số cho các process thường tạo các số theo cơ chế tăng

dan, vi du 1,2,3,3,3,3,4,5

16

Trang 17

lock = false;

Remainder Section;

17

Trang 18

= wait(S)

= signal(S)

18

Trang 19

= Dé tranh “busy waiting”: khi một tiễn trình phải đợi, nó sẽ

được đặt vào hàng đợi block

" Khi mội tiên trình phải đợi một semaphore S, nó sẽ bị bloek

và đặt vào hàng đợi của semaphore tương ứng

“ Thao tác signal lây một tiễn trình từ trong hàng đợi và đặt nó vào trong danh sách các tiên trình ở trạng thái săn sàng

19

Trang 20

=" Gia su co 2 thao tac co ban:

= Block tam cho tién trinh cho

- wakeup(P) khôi phục lại sự thi hành của tiễn trình bị block P

20

Trang 22

Van đề deadlock trong hệ thống

a 7? huống: một tập các process bị blocked, mỗi process giữ tài

nguyên và đang chờ tài nguyên mà process khác trong tập đang giữ

oO Ví dụ †

— Giả sử hệ thống có 2 file trên đĩa

— P1 và P2 mỗi process đang mở một file và yêu cầu mở file kia

Trang 23

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

Hệ thống gồm các loại /2/ nguyên, kí hiệu #4, #%, , /?„, 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 /#,có I⁄,thực thể (instance)

Process thường sử dụng tài nguyên theo thứ tự sau

— Yêu cầu (request): process phải chờ nếu yêu câu không được đáp

ứng ngay

— Su dung (use): process su dung tai nguyén

— Hoan tra (release): process hoan tra tai nguyén

Cac tac vu yéu cau (request) va hoan tra (release) déu là

Trang 24

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

Bốn điều kiện cần (necessary condition) để xảy ra

deadlock

Mutual exclusion: it nhat mot tai nguyén được giữ theo nonsharable mode

Hold and wait: mot process đang giữ ít nhất một tài

nguyên và đợi thêm tài nguyên do quá trình khác đang giữ

Trang 25

-8.24-Điều kiện cần để xảy ra deadlock (tt)

3 No preemption: tai nguyên không thé bị lấy lại, mà

chỉ có thể được trả lại từ process đang giữ tài

nguyên đó khi nó muốn

‘| 4 Circular wait: ton tai một chu trình của các yêu cầu

tài nguyên và tài nguyên đã được cấp phái

-8.25-

Trang 26

Hesource Allocation Graph

a Resource allocation graph (RAG) la do thị có hướng, với tập đỉnh và tập cạnh E

— Tap đỉnh gồm 2 loại:

= P={P,, P, ,P,} — (Tất cả process trong hệ thống)

" Z={”, ñ,, „} (Tất cả tài nguyên trong hệ thống)

- Tập cạnh E gồm 2 loại:

" /eqguesí edøe: cạnh có hướng từ 7Ø, đến #?,

" Assignment edge: cạnh có hướng tu A, dén P,

Trang 27

-8.26-Resource Allocation Graph (tt)

Trang 31

-8.30-RAG va deadlock (tt)

RAG khong chứa chu trình (cycle) = khong co

deadlock

RAG chứa một (hay nhiêu) chu trình

— Nếu mỗi loại tài nguyên chỉ có một thực thể — deadlock

— Nếu mỗi loại tài nguyên có nhiều thực thể — có thể xảy ra

deadlock

-8.31-

Trang 32

Các phương pháp giải quyết deadlock

a Dùng một giao thức (protocol) để ngan (preventing)

hoac ¢ranh (avoiding) deadlock, bao dam rang hé

thống không rơi vao tinh trang deadlock

a Cho phép hé thong vao trang thai deadlock, nhung

Í sau đó phát hiện deadlock và phục hồi hệ thống

n Bỏ qua mọi vấn đề, xem như deadlock không bao giờ xảy ra trong hệ thống

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

— Deadlock khéng được phát hiện, dẫn đến việc giả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 được khởi động lại

Trang 33

-8.32-Ngan deadlock

Ngan deadlock bằng cách ngăn một trong 4 điều

kien gay deadlock

1 Ngan mutual exclusion

— ddi vdi nonsharable resource (vd: printer): không làm được

— ddi vdi sharable resource (vd: read-only file): không cân

thiết

-8.33-

Trang 34

Ngan deadlock (tt)

2 Ngan Hold and Wait

— Cách 1: moi process yêu cầu toàn bộ tài nguyên cần thiết

một lân Nếu có đủ tài nguyên thì hệ thông sẽ cấp phát, néu không đủ tài nguyên thì process phai bi blocked

— Cách 2: khi yêu cầu tài nguyên, process không được giữ

bất kỳ tài nguyên nào Nêu đang có thì phải trả lại trước khi

yêu câu

— Khuyết điểm của các cách trên:

= Hiéu suat su dung tai nguyén (resource utilization) thấp

= Qua trinh cé thé bi starvation

Trang 35

-8.34-Ngan deadlock (tt)

Ngan No Preemption: néu process A co git tài nguyên và

dang yéu cau tai nguyén khac nhung tai nguyén nay chua cap

phát ngay được thì

— Cách 1: Hệ thống lấy lại mọi tài nguyên mà A đang giữ

“A chỉ bắt đầu lại được khi có được các tài nguyên đã bị

lấy lại cùng với tài nguyên đang yêu câu

- Cách 2: Hệ thống sẽ xem tài nguyên mà A yêu cầu

“ Nếu tài nguyên được giữ bởi một process khác đang

đợi thêm tài nguyên, tài nguyên này được hệ thống lấy lại và cấp phát cho A

“ Nếu tài nguyên được giữ bởi process không đợi tài nguyên, A phải đợi và tài nguyên của A bị lấy lại Tuy nhiên hệ thống chỉ lấy lại các tài nguyên mà process khác yêu cầu

-8.35-

Trang 36

Ngan deadlock (tt)

4 Nga@n Circular Wait: tap các loại tài nguyên trong hệ thống

được gán một thứ tự hoàn toàn

—_ Ví dụ: F(tape drive) = 1, F(disk drive) = 5, F(printer) = 12

= F la ham dinh nghĩa thứ tự trên tập các loại tài nguyên

Trang 37

Ngan deadlock (tt)

4 Ngan Circular Wait (tt)

Cách 1: mỗi process chỉ có thể yêu cầu thực thể của một loại tài

nguyên theo thứ tự tăng dân của loại tài nguyên Ví dụ

= Chudi yéu cau thực thể hợp lệ: tape drive —> disk drive —

printer

= Chudi yêu cầu thực thể không hợp |é: disk drive > tape drive

Cách 2: Khi một process yêu cầu một thực thể của loại tài nguyên

H, thì nó phải trả lại các tài nguyên R, với F(R;) > F(R))

"_ Vậy F(R„) < F(R„), mâu thuẩn# 2

Trang 38

-8.37-Deadlock avoidance

Deadlock prevention su dung tai nguyén khéng hiéu qua

Deadlock avoidance vẫn đảm bảo hiệu suất sử dụng tài nguyên

tối đa đến mức có thể

Yêu cầu mỗi process khai báo số lượng tài nguyên tối đa cần

đề thực hiện công việc

Giải thuật deadlock-avoidance sẽ kiểm tra trang thai cấp phát

tai nguyén (resource-allocation state) dé bao dam hệ thống không bao gid roi vao deadlock

Trạng thái cấp phát tài nguyên được định nghĩa dựa trên số tài

nguyên còn lại, số tài nguyên đã được cấp phát và yêu cầu tối

đa của các process

Trang 39

-8.38-Trang thai safe va unsafe

na Một trạng thái của hệ thống được gọi là an foan (safe)

néu ton tai mot chud/ an toan (safe sequence)

-8.39-

Trang 40

Chuỗi an toàn

a Một chuỗi quá trình <P-, P¿, , P„> là mét chud/ an

toan néu

— Với mọi ¡ = 1, , n, tài nguyên (mà P,còn có thể yêu cầu) có

thể được thỏa bởi tài nguyên đang sẵn sàng (available)

cùng với tài nguyên mà tât cả P,, j < i, dang gil

a Một trạng thái của hệ thống được gọi là &/ông a7

foân (unsafe) nếu không tồn tại một chuôi an toàn

Trang 41

-8.40-Chuỗi an toàn (tt)

Ví dụ: Hệ thống có 12 tape drives và 3 quá trình Pạ, P.,

P

a Tai thdi diém t,

cần tốiđa đang giữ

— Con 8 tape drive san sang

— Chuỗi <P;, Pạ, P¿> là chuỗi an toàn — hệ thống là an toàn

-8.41-

Trang 43

na Khi một process yêu cầu một tài nguyên đang sẵn sàng (available), hệ thống sẽ kiểm tra: nếu việc cấp phát này không dẫn đến tình trạng unsafe thì sẽ cấp

phát ngay

Trang 44

-8.43-Trạng thái safe/unsafe và deadlock

a Nếu hệ thống đang ở trạng thái safe — không deadlock

a Nếu hệ thống đang ở trạng thái unsafe — có khả năng dẫn đến

deadlock

a Tránh deadlock bang cách bảo đảm hệ thống không đi đến

trang thai unsafe

Trang 45

Giải thuật banker

ag Áp dụng cho hệ thống cấp phát tài nguyên trong đó

mỗi loại tài nguyên có thể có nhiều instance

a Bắt chước nghiệp vụ ngân hàng (banking)

na Điều kiện

— Mỗi process phải khai báo số lượng thực thể (instance) tối

đa của mỗi loại tài nguyên mà nó cần

— Khi process yêu cầu tài nguyên thì có thể phải đợi mặc dù tài nguyên được yêu cầu đang có sẵn

— Khi process đã có được đầy đủ tài nguyên thì phải hoàn trả trong một khoảng thời gian hữu hạn nào đó

Trang 46

Giải thuật banker (tt)

/: SỐ process, / số loại tài nguyên

Các cấu trúc dữ liệu

Available: vector do dai ™

Available[ /] = 4 <= loai tai nguyen Aco x instance san sang

Need[i, j] = k <= Pi can thém k instance cua Rj

Nhận xét: Need [i, j] = Max[i, j] — Allocation [i, j]

Trang 47

-8.46-Giải thuật kiểm tra trạng thái an toàn

Tìm một chuỗi an toàn

1 Gọi Work và Finish là hai vector độ dài là m và n Khởi tạo

Work := Available Finish[i] := false, ¡ = †1, , n

2 Tìm ¡ thỏa

(a) Finish [i] = false

(b) Need, <Work (hang thu i cua Need) Nếu không tôn tại ¡ như vậy, đến bước 4

3.Work := Work + Allocation,

Finish[i] := true quay về bước 2

4 Nếu Finish[i] = true, ¡ = 1, , n, thì hệ thống đang ở trạng thái

safe

Thời gian chạy của giải thuật là (X7?)

Trang 48

-8.47-Giải thuật cấp phát tài nguyên

Goi Request, la request vector cua process P

Request, [j] = k <= P, can k instance cua tai nguyén R

1 Nếu Request; < Need, thì đến bước 2 Nếu không, báo lỗi vì process đã vượt yêu câu tối đa

2 Nếu Request, < Available thì qua bước 3 Nếu không,

P, phải chờ vì tài nguyên không còn đủ để cấp phat

Trang 49

Giải thuật cấp phát tài nguyên (tt)

3 Giả định cấp phát tài nguyên đáp ứng yêu câu của

P, bằng cách cập nhật trạng thái hệ thống như sau:

Available := Available — Request, Allocation, := Allocation, + Request, Need, = Need; — Request,

Ap dung giai thuật kiểm tra trạng thái an toàn lên trạng thái trên

“" Nếu trạng thái là safe thì tài nguyên được cấp thực sự cho

P;

= Néu trang thai là unsafe thì P; phải đợi, va

¢ phục hồi trạng thái:

Available := Available + Request,

Allocation, := Allocation; — Request, Need, ‘= Need, + Request,

Ngày đăng: 12/09/2012, 14:38

TỪ KHÓA LIÊN QUAN

w