Dong bo hoa tien trinh- doi tt
IV/
Đồng bộ hóa tiến trình
+Những tiến trình cùng tồn tại được gọi là tiến trình đồng thời /tiến trình tương tranh
+Quản lý tiến trình đồng thời là vấn đề quan trọng:
+Liên lạc giữa các tiến trình
+Cạnh tranh và chia sẻ tài nguyên
+Phối hợp và đồng bộ hóa các tiến trình
Vấn đề bế tắc
+Đói tài nguyên (starvation)
1. Các vấn đề đối với tiến trình đồng thời
1/Tiến trình cạnh tranh tài nguyên với nhau:
+Đảm bảo loại trừ tương hỗ (mutual exclusion):
+Khi các tiến trình cùng truy nhập tài nguyên mà khả năng chia sẻ của tài nguyên đó là có hạn
+=> phải đảm bảo tiến trình này đang truy cập tài nguyên thì tiến trình khác không được truy cập
+Tài nguyên đó gọi là tài nguyên nguy hiểm. Đoạn chương trình có yêu cầu sử dụng tài nguyên nguy hiểm gọi là đoạn nguy hiểm (critical section)
+Mỗi thời điểm chỉ có 1 tiến trình nằm trong đoạn nguy hiểm => loại trừ lẫn nhau
a/Tiến trình cạnh tranh tài nguyên với nhau (tt):
+Không để xảy ra bế tắc (deadlock):
+Bế tắc: tình trạng hai hoặc nhiều tiến trình không thể thực hiện tiếp do chờ đợi lẫn nhau
+Không để đói tài nguyên (starvation):
+Tình trạng chờ đợi quá lâu mà không đến lượt sử dụng tài nguyên
b/Tiến trình hợp tác với nhau qua tài nguyên chung:
+Có thể trao đổi thông tin bằng cách chia sẻ vùng nhớ dùng chung (biến toàn thể)
+Đòi hỏi đảm bảo loại trừ tương hỗ
+Xuất hiện tình trạng bế tắc và đói
+Yêu cầu đảm bảo tính nhất quán dữ liệu
+Điều kiện chạy đua (race condition): tình huống mà một số dòng /tiến trình đọc, ghi dữ liệu sử dụng chung và kết quả phụ thuộc vào thứ tự các thao tác đọc, ghi
=> Đặt thao tác truy cập và cập nhật dữ liệu dùng chung vào đoạn nguy hiểm
c/Tiến trình có liên lạc nhờ gửi thông điệp:
+Có thể trao đổi thông tin trực tiếp với nhau bằng cách gửi thông điệp (message passing)
+Không có yêu cầu loại trừ tương hỗ
+Có thể xuất hiện bế tắc và đói
2. Yêu cầu với giải pháp cho đoạn nguy hiểm
-Loại trừ tương hỗ
-Tiến triển
-Chờ đợi có giới hạn
-Các giả thiết:
-Giải pháp không phụ thuộc vào tốc độ của các tiến trình
-Không tiến trình nào được phép nằm quá lâu trong đoạn nguy hiểm
-Thao tác đọc và ghi bộ nhớ là thao tác nguyên tử (atomic) và không thể bị xen ngang giữa chừng
+Các giải pháp được chia thành 3 nhóm chính:
-Nhóm giải pháp phần mềm
-Nhóm giải pháp phần cứng
-Nhóm sử dụng hỗ trợ của HDH hoặc thư viện ngôn ngữ lập trình
+Loại trừ tương hỗ
+Tiến triển
+Chờ đợi có giới hạn
+Các giả thiết:
+Giải pháp không phụ thuộc vào tốc độ của các tiến trình
+Không tiến trình nào được phép nằm quá lâu trong đoạn nguy hiểm
+Thao tác đọc và ghi bộ nhớ là thao tác nguyên tử (atomic) và không thể bị xen ngang
giữa chừng
Bạn đang đọc truyện trên: AzTruyen.Top