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

61 1.2K 5
Tài liệu đã được kiểm tra trùng lặp
Giao tiếp giữa các tiến trình

Đ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

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

KHOA CÔNG NGHỆ THÔNG TINTRƯỜNG ĐẠIHỌC BÁCH KHOA TP HỒ CHÍ MINHTRƯỜNG ĐẠI HỌC BÁCH KHOA TP HỒ CHÍ MINHHỆ ĐIỀU HÀNHGiao tiếp giữa các tiến trìnhpg 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ưởng 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) 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í h d l hóTính module hóaTiện lợi2 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 tác 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ẹ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: deadlock3 Đụng độ (race condition) Race condition: tình 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 y p gthờ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 có 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 trong miền găng của nó, không có tiến trình nào g g g ,gkhá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 có tính duy nhất: tại bấtkỳ thời điểm nào chỉ có duy nhấtmộttiếntrìnhbất kỳ 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ý). 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) có 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 có 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 Có 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 có 2 tiến trình cùng ở trong miền găng một lúc2 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 g3. Bounded Waiting: không có 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à i9phá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 Pi(Pj)do{{entry sectioncritical sectionleave sectionremainder section} hil (1)} 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úngchung để đồng bộ hóa hoạt động của chúng.10 [...]... waiting”: khi một tiến trình phải đợi, nó sẽ đượ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ó àt d háhátiế tì hở t thái ẵ à 19 vào trong danh sách các tiến trình ở trạng thái sẵn sàng. Một số khái niệm cơ bản*  Các tiến trình sử dụng và... các cách trên:  Hiệu suất sử dụng tài nguyên (resource utilization) thấp  Quá trình có thể bị starvation -8.34- 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 có 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... 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 ngun), 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 có tính duy nhất: tại bấtkỳ thời điểm nào chỉ có duy nhấtmộttiếntrìnhbất kỳ 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ý).  Vì vậy mỗi tiến. .. miền găng  Có 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 có 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 ngồ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 có 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á... 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 tác 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 tồn vẹndữ liệuvẹn dữ liệu.  Các miền găng dùng để cung cấp sự tồ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 ... (ES).()  Miền găng (CS) có 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 có 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 ... Hold and Wait – Cách 1: mỗi process yêucầutoànbộtài nguyêncầnthiếtCach 1: moi process yeu cau toan bộ tai nguyen can thiet 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 phải bị 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... chờ.  wakeup(P) khơi phục lại sự thi hành của tiến trình bị bl kblock P. 20  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átnàykhông dẫnđến tình trang unsafe thì sẽ cấpphat nay khong dan đen tình trạng unsafe thì se cap phát ngay. -8.43- Giải thuật banker (tt) á á n: số process, m: số loại tài nguyên Các cấu trúc dữ liệu Available: vector độ... 3 quá trình P 0 , P 1 , P 2 Tihøiđiå  Tại thời điểm t 0 cần tối đa đan g giữ P 0 10 5 P 1 42 gg 1 P 2 92 – Còn 3 tape drive sẵn sàng. – Chuỗi <P 1 , P 0 , P 2 > là chuỗi an toàn  hệ thống là an toàn -8.41- 1 , 0 , 2 äg Semaphores  Định nghĩa cấu trúc: typedef struct {typedef struct { int value; struct process *L;p; } semaphore;  Giả sử có 2 thao tác cơ bản:  Block tạm cho tiến trình. .. tài nguyên và đang yêu cầu tài nguyên khác nhưng tài nguyên này chưa cấp phát ngay được thìpg – 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 lai đươc khi có đươc cáctài nguyênđã bị A chỉ bat đau lại được khi co được cac tai nguyen đa 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ênmà AyêucầuCach 2: Hệ thong se xem tai nguyen ma A yeu cau  Nếu . HÀNHGiao tiếp giữa các tiến trìnhpg 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ưởng 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) 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

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

Trích đoạn

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

Tài liệu liên quan