TAILIEUCHUNG - Đồng bộ hóa tiến trình

Tiến trình ghi P: while (true) { while (counter==SIZE) ; buf[in] = nextItem; in = (in+1) % SIZE; counter++; } buf: Buffer SIZE: cỡ của buffer counter: Biến chung Tiến trình đọc Q: while (true) { while (counter==0) ; nextItem = buf[out]; out = (out+1) % SIZE; counter--; } Đây là bài toán vùng đệm có giới hạn | Nguyên lý hệ điều hành Nguyễn Hải Châu Khoa Công nghệ thông tin Trường Đại học Công nghệ 1 Đồng bộ hóa tiến trình Ví dụ đồng bộ hóa 1 Tiến trình ghi P while true while counter SIZE buf in nextItem in in 1 SIZE counter buf Buffer SIZE cỡ của buffer counter Biến chung Tiến trình đọc Q while true while counter 0 nextItem buf out out out 1 SIZE counter-- Đây là bài toán vùng đệm có giới hạn Ví dụ đồng bộ hóa 2 Các toán tử và -- có thể được cài đặt như sau counter register1 counter register1 register1 1 counter register1 counter-- register2 counter register2 register2 -1 counter register2 P và Q có thể nhận được các giá trị khác nhau của counter tại cùng 1 thời điểm nếu như đoạn mã xanh và đỏ thực hiện xen kẽ nhau. 4 Ví dụ đồng bộ hóa 3 Ví dụ đồng bộ hóa 4 register1 5 register1 6 register2 5 register2 4 counter 6 counter 4 Giả sử P và Q thực hiện song song với nhau và giá trị của counter là 5 register1 counter register1 register1 1 register2 counter register2 register2 -1 counter register1 counter register2 Lỗi Cho phép P và Q đồng thời thao tác trên biến chung counter. Sửa lỗi register1 counter register1 register1 1 counter register1 register2 counter register2 register2 -1 counter register2 register1 5 register1 6 counter 6 register2 6 register2 5 counter 5 1 Tương tranh và đồng bộ Tình huống xuất hiện khi nhiều tiến trình cùng thao tác trên dữ liệu chung và kết quả các thao tác đó phụ thuộc vào thứ tự thực hiện của các tiến trình trên dữ liệu chung gọi là tình huống tương tranh race condition Để tránh các tình huống tương tranh các tiến trình cần được đồng bộ theo một phương thức nào đó Vấn đề nghiên cứu Đồng bộ hóa các tiến trình 7 Khái niệm về đoạn mã găng 1 Thuật ngữ Critical section Thuật ngữ tiếng Việt Đoạn mã găng đoạn mã tới hạn. Xét một hệ có n tiến trình P0 P1 . Pn mỗi tiến trình có một đoạn mã lệnh gọi là đoạn mã găng ký hiệu là CSỉ nếu như trong đoạn mã này các tiến trình thao tác trên các biến chung đọc ghi file. tổng quát thao tác trên dữ liệu chung 8 .

TỪ KHÓA LIÊN QUAN