Bài tập về tiến trình và đồng bộ hóa

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down

Bài tập về tiến trình và đồng bộ hóa

Bài gửi  quocbao2021 on 7/3/2012, 09:26

Các bạn cùng nhau giải quyết nha:
1:Bài toán Qua sông

Để vượt qua sông, các nhân viên Microsof và các Linux hacker cùng sử dụng một bến sông và phải chia sẻ một số thuyền đặc biệt. Mỗi chiếc thuyền này chỉ cho phép chở 1 lần 4 người, và phải có đủ 4 người mới khởi hành được. Để bảo đảm an toàn cho cả 2 phía, cần tuân thủ các luật sau :

a. Không chấp nhận 3 nhân viên Microsoft và 1 Linux hacker trên cùng một chiếc thuyền.

b. Ngược lại, không chấp nhận 3 Linux hacker và 1 nhân viên Microsoft trên cùng một chiếc thuyền.

c. Tất cả các trường hợp kết hợp khác đều hợp pháp.
2:Bài 2. Bài toán Điều phối hành khách xe bus

Hãy tưởng tượng bạn chịu trách nhiệm kiểm soát hành khách lên xe bus tại một trạm dừng.

Mỗi xe bus có đủ chỗ cho 10 hành khách. Trong đó 4 chỗ chỉ dành cho khách ngồi xe lăn, 6 chỗ còn lại chỉ dành cho khách bình thường.

Công việc của bạn là cho khách lên xe theo đúng qui định chỗ, khi xe đầy khách sẽ khởi hành. Có thể có nhiều xe và nhiều hành khách vào bến cùng lúc, nguyên tắc điều phối sẽ xếp khách vào đầy một xe, cho xe này khởi hành rồi mới điều phối cho xe khác.

Giả sử hoạt động điều phối khách của bạn cho 1 chiếc xe bus được mô tả qua tiến trình GetPassengers(); hoạt động của mỗi hành khách tùy loại được mô tả lần lượt bằng tiến trình WheelPassenger() và NonWheelPassenger() sau đây , hãy sửa chữa các đoạn code, sử dụng cơ chế semaphore để thực hiện các nguyên tắc đồng bộ hoá cần thiết.

d. Thuyền chỉ khởihành khi đã có đủ 4 hành khách.

quocbao2021

Tổng số bài gửi : 10
Join date : 22/02/2012

Xem lý lịch thành viên

Về Đầu Trang Go down

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang


 
Permissions in this forum:
Bạn không có quyền trả lời bài viết