- Để nhận được đồng bộ hóa có điều kiện đòi hỏi các phương thức cung cấp trong lớp đối tượng được
Link tìm hiểu về Ada:
http://www.hvaonline.net/hvaonline/readingRoom/item/1643.hva;jsessionid=72AC 4AB98D9CE5113200E78DAECE7FEB
84
Quá trình tương tác yêu cầu phải có sự đồng thời giữa hệ điều hành và ngôn ngữ lập trình để hỗ trợ đồng bộ hóa và truyền thông nội bộ. Truyền thông có thể dựa trên một trong hai: biến chia sẻ hoặc truyền thông điệp. Chương này quan tâm với các biến được chia sẻ, cho thấy nhiều khó khăn trong đồng thời và đồng bộ hóa loại trừ tương hỗ cần thiết để đối phó với những khó khăn đó. Trong cuộc thảo luận này, các từ ngữ dưới đây đã được giới thiệu:
*Critical section : đoạn mã phải thực hiện theo loại trừ tương hỗ
*Producer - consumer system: hai hoặc nhiều tác vụ trao đổi dữ liệu thông qua một bộ đệm hữu hạn
*Busy waiting: một tác vụ liên tục kiểm tra điều kiện để xem tiến trình có thể được tham gia vào quá trình xử lý hay không
*Livelock : một điều kiện lỗi trong đó một hoặc nhiều tác vụ đều bị cấm hoạt động trong quá trình dung tăng lên mỗi chu kỳ xử lý.
86
Việc cung cấp một semaphore sơ khai có kết quả từ việc đưa ra một trạng thái mới cho một tác vụ; cụ thể là, bị đình chỉ (suspended.). Nó cũng cung cấp hai điều kiện lỗi mới:
*Deadlock: một tập hợp các tác vụ trì hoãn mà không thể tham gia vào quá trình xử lý
*Indefinite postponement: một nhiệm vụ không có khả năng tiến hành như nguồn tài nguyên không được thực hiện có sẵn dùng cho nó.
Semaphores có thể bị đánh giá là hiệu suất thấp và dễ bị lỗi trong khi sử dụng. Sau một thời gian phát triển, 5 cấu trúc tốt hơn được giới thiệu: