Giao tiếp giữa các tiến trình - Một số khái niệm cơ bản

28 596 3
Giao tiếp giữa các tiến trình - Một số khái niệm cơ bản

Đ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

Một số khái niệm bản*  Tiến trình độc lập không ảnh hưởng và không bị ảnh hưởn g bởi việc thực thi của các tiến trình khác.g  Tiến trình hợp tác (không độc lập) 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í h d l hó  Tính module hóa  Tiện lợi 2 Một số khái niệm 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à sở dữ liệu dùng chung. ể Thao tác ghi phải độc lập từng đôi một để ngăn ngừa tình trạng đụng độ, thể dẫn đến tính không toàn vẹndữ liệuvẹn dữ liệu.  Các miền găng dùng để cung cấp sự toàn vẹn dữ liệu.  Mộttiếntrìnhđòi hỏimiềngăng phải không bị chờMột tiến trình đòi hỏi miền găng phải không bị chờ mãi mãi: deadlock 3 Đụng độ (race condition)  Race condition: tình huống mà nhiều tiến trình cùng tru y cập và thao tác dữ liệu chia sẻ một cách đồng y p g thời. Dữ liệu cuối cùng phụ thuộc vào tiến trình cuối cùng. ể ế ồ Để ngăn ngừa đụng độ, các tiến trình đồng hành phải được đồng bộ hóa. 4 Đụng độ (race condition) 5 Miền găng (critical section)  n tiến trình đấu tranh với nhau để sử dụng một số dữ liệu nào đó. ế ề Mỗi tiến trình một đoạn mã, gọi là miền găng (critical section (CS)), tại đó dữ liệu chia sẻ được truy cậptruy cập.  Vấn đề: bảo đảm rằng khi một tiến trình đang thực thi tron g miền găng của nó, không tiến trình nào g g g ,g khác được quyền thực thi trong miền găng của nó. 6 Ngữ cảnh miền găng  Khi một tiến trình thi hành đ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 ìhđó đ iề ă ủ ótrình đó đang trong miền găng của nó.  Việc thực thi các miền găng phải tính duy nhất: tại bấtkỳ thời điểm nào chỉ duy nhấtmộttiếntrìnhbất kỳ thời điểm nào, chỉ 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ý).  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. 7 Ngữ cảnh miền găng  Đoạn mã thể hiện yêu cầu này được gọi làEntry Section (ES).()  Miền găng (CS) thể theo sau là Leave/Exit Section (LS).Section (LS).  Phần đoạn mã còn lại là Remainder Section (RS).  Vấn đề củamiềngăng là thiếtkế mộtgiaothứcmà Vấn đề của miền găng là thiết kế một giao thức mà các tiến trình thể sử dụng để hành động của chúng sẽ không phụ thuộcvàothứ tự mà sự thi hành củasẽ không phụ thuộc vào thứ tự mà sự thi hành của chúng được chen vào. 8 Giải pháp cho vấn đề miền găng  3 yêu cầu mà một giải pháp đúng cần phải thỏa mãn: ế1. Mutual Exclusion: không 2 tiến trình cùng ở trong miền găng một lúc 2 PMộttiế tìhbê ài iề ă2. Progress: Một tiến trình bên ngoài miền găng không được ngăn cản các tiến trình khác vào mi ền găngg g 3. Bounded Waiting: không tiến trình nào phải chờ vô hạn để vào miền găng  Chỉ cần một trong ba điều kiện trên sai thì giải há đ là i 9 pháp đưa ra là sai. 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 i (P j ) do {{ entry section critical section leave section remainder section } hil (1)} while (1);  Lưu ý: Các tiến trình thể chia sẻ các biến dùng chung để đồng bộ hóa hoạt động của chúngchung để đồng bộ hóa hoạt động của chúng. 10 Phân loại các giải pháp cho CS  Giaûi phaùp busy-waiting  Alg. 1 & 2, Peterson, Dekker, Bakery, g y  TSL, Interrupt  Giaûi phaùp sleep and wake-up  Semaphore  Monitor 11 [...]... process Pi nhận một con số Process nào giữ 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ố:  Neu Nếu i < j thì Pi được vao trươc, ngươc lại Pj đươc vao đươc vào trước ngược lai được vào trước  Khi ra khỏi CS, Pi đặt lại số của mình bằng 0  chếá cấáp số cho các process thường tạo các số theo chếá tăng dần, ví dụ 1,2,3,3,3,3,4,5 16 Lệnh TSL (Test-and-Set Lock) ... while S 0 do no-op; S ; signal (S): S++;  Để t á h “busy waiting”: khi một tiến t ì h phải đ i nó sẽ tránh “b iti ” ột tiế trình hải đợi, ó ẽ được đặt vào hàng đợi block  Khi một tiến trình phải đợi một semaphore S, nó sẽ bị block ộ p ợ ộ p , ị 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 ở t à t d...  Assignment edge: cạnh hướng từ Rj đến Pi -8 .2 6- Resource Allocation Graph (tt) Ký hiệu     Process: P P i Loại tài nguyên với 4 thực thể: Pi yêu cầu một thực thể của Rj : R j R Pi Pi đang giữ một thực thểå củûa Rj : P i j R j -8 .2 7- Ví dụ về RAG R3 R1 P1 P3 P2 R2 R4 -8 .2 8- Ví dụ về RAG (tt) R3 R1 P1 P3 P2 Deadlock û D dl k xảy ra! ! R2 R4 -8 .2 9- ... và đợi thêm tài nguyên do quá trình khác đang giữ -8 .2 4- Điều kiện cần để xảy ra deadlock (tt) 3 No preemption: tài nguyên không thể bò lấy lại, mà chỉ thể được trả lại từ process đang giữ tài nguyen đó nguyên đo khi no muốn nó muon 4 4 Circular wait: tồn tai một chu trình của các yêu cầu ton tại cua cac yeu cau tài nguyên và tài nguyên đã được cấp phát P1 P2 -8 .2 5- Resource Allocation Graph  Resource... semaphore;  Giả sử 2 thao tác cơ bản:   Block tạm cho tiến trình chờ wakeup(P) khơi phục lại sự thi hành của tiến trình bị block bl k P 20 Semaphores wait(S): S.value ; if (S.value < 0) { add this process to S.L; block; bl k } signal(S): S.value++; if (S.value . Một số khái niệm cơ bản*  Tiến trình độc lập không ảnh hưởng và không bị ảnh hưởn g bởi việc thực thi của các tiến trình khác.g  Tiến trình hợp. module hóa  Tiện lợi 2 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.

Ngày đăng: 29/09/2013, 17:20

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan