TAILIEUCHUNG - Các vấn đề cổ điển của đồng bộ hóa

Vấn đề: hai tiến trình cùng chia sẻ một bộ đệm có kích thước giới hạn. Một trong hai tiến trình đóng vai trò người sản xuất – tạo ra dữ liệu và đặt dữ liệu vào bộ đệm- và tiến trình kia đóng vai trò người tiêu thụ – lấy dữ liệu từ bộ đệm ra để xử lý. | III. CÁC VấN Đề Cổ ĐIểN CủA ĐồNG Bộ HOÁ Nguồn . Vấn đề Người sản xuất - Người tiêu thụ Producer-Consumer vấn đề hai tiến trình cùng chia sẻ một bộ đệm có kích thước giới hạn. Một trong hai tiến trình đóng vai trò người sản xuất - tạo ra dữ liệu và đặt dữ liệu vào bộ đệm- và tiến trình kia đóng vai trò người tiêu thụ - lấy dữ liệu từ bộ đệm ra để xử lý. Hình Producer và Consumer Để đồng bộ hóa hoạt động của hai tiến trình sản xuất tiêu thụ cần tuân thủ các quy định sau Tiến trình sản xuất producer không được ghi dữ liệu vào bộ đệm đã đầy. synchronisation Tiến trình tiêu thụ consumer không được đọc dữ liệu từ bộ đệm đang trống. synchronisation Hai tiến trình sản xuất và tiêu thụ không được thao tác trên bộ đệm cùng lúc . exclusion mutuelle Giải pháp . Semaphore Sử dụng ba semaphore full đếm số chỗ đã có dữ liệu trong bộ đệm empty đếm số chỗ còn trống trong bộ đệm và mutex kiểm tra việc Producer và Consumer không truy xuất đồng thời đến bộ đệm. Buffersize 3 số chỗ trong bộ đệm semaphore mutex 1 kiểm soát truy xuất độc quyền semaphore empty Buffersize số chỗ trống semaphore full 0 số chỗ đầy Producer int item while TRUE produce_item item down empty down mutex enter_item item up mutex up full tạo dữ liệu mới giảm số chỗ trống báo hiệu vào miền găng đặt dữ liệu vào bộ đệm ra khỏi miền găng tăng số chỗ đầy Consumer int item while TRUE down full giảm số chỗ đầy down mutex báo hiệu vào miền găng remove_item item lấy dữ liệu từ bộ đệm up mutex ra khỏi miền găng up empty consume_item item tăng số chỗ trống xử lý dữ liệu . Monitor Định nghĩa một monitor ProducerConsumer với hai thủ tục enter và remove thao tác trên bộ đệm. Xử lý của các thủ tục này phụ thuộc vào các biến điều kiện full và empty. monitor Producerconsumer condition full empty int count procedure enter if count N wait full nếu bộ đệm đầy phải chờ enter_item item đặt dữ liệu vào bộ đệm count tăng số chỗ đầy if count 1 nếu bộ đệm không trống signal empty procedure remove if count

TỪ KHÓA LIÊN QUAN
TAILIEUCHUNG - Chia sẻ tài liệu không giới hạn
Địa chỉ : 444 Hoang Hoa Tham, Hanoi, Viet Nam
Website : tailieuchung.com
Email : tailieuchung20@gmail.com
Tailieuchung.com là thư viện tài liệu trực tuyến, nơi chia sẽ trao đổi hàng triệu tài liệu như luận văn đồ án, sách, giáo trình, đề thi.
Chúng tôi không chịu trách nhiệm liên quan đến các vấn đề bản quyền nội dung tài liệu được thành viên tự nguyện đăng tải lên, nếu phát hiện thấy tài liệu xấu hoặc tài liệu có bản quyền xin hãy email cho chúng tôi.
Đã phát hiện trình chặn quảng cáo AdBlock
Trang web này phụ thuộc vào doanh thu từ số lần hiển thị quảng cáo để tồn tại. Vui lòng tắt trình chặn quảng cáo của bạn hoặc tạm dừng tính năng chặn quảng cáo cho trang web này.