Giải bài tập về nhà câu 1,2,3,4 chương 7
+3
LuuDucPhu (102C)
TranThiTuyetNhung [i02c]
TranKimKhoa(102c)
7 posters
Trang 1 trong tổng số 1 trang
Giải bài tập về nhà câu 1,2,3,4 chương 7
- Code:
typedef int semaphore;
semaphore mutex=2; // mặc định đèn hiệu cho 2 xe lên cầu cùng lúc, mỗi xe lên cầu thì mutex giảm đi 1
wait (semaphore s) {
while (s<=0); // quẫn tại đây khi trên cầu đã có 2 xe
s--;
}
signal (semaphore s) {
s++; // mỗi khi có 1 xe xuống cầu thì mutex lại tăng lên
}
// đoạn code chính cho xe lên cầu
while (1) {
wait(mutex);
// đoạn code cho 1 xe lên cầu
signal(mutex);
}
nếu có sai sót mong mọi người giúp đỡ thêm nhé, thanks!
Admin
- Hiểu đúng bài toán và có lời giải bằng chương trình đúng.
- Tuy nhiên, theo thuật giải trên, xe của em "liên tục" qua cầu, nghĩa là vừa qua cầu rồi lại "lên" lần nữa !
- Cần chỉ rõ là đèn hiệu sử dụng có mấy màu ?
Được sửa bởi TranKimKhoa(102c) ngày 5/5/2011, 09:33; sửa lần 2.
TranKimKhoa(102c)- Tổng số bài gửi : 37
Join date : 17/02/2011
giải bài tập câu 2
Bài tập câu 2: Đảm bảo sao cho P1 trước P2, P2 trước P3
Giải:
ta dùng 2 đèn hiệu sau:
semaphore synch1=0, synch2=0;
Admin
Các bài tập đều giải rất đúng. Chắc có tham khảo lời giải của khóa trước ?
Giải:
ta dùng 2 đèn hiệu sau:
semaphore synch1=0, synch2=0;
Cấu trúc P1 | Cấu trúc P2 | Cấu trúc P3 |
S1 signal(synch1) | wait(synch1) S2 signal(synch2) | wait(synch2) S3 |
Admin
Các bài tập đều giải rất đúng. Chắc có tham khảo lời giải của khóa trước ?
TranKimKhoa(102c)- Tổng số bài gửi : 37
Join date : 17/02/2011
giải bài tập câu 3
Bài tập câu 3: Đảm bảo sao cho P1 trước P2 & P3
Giải:
ta dùng 1 đèn hiệu sau:
semaphore synch=0;
Tại P1, tín hiệu signal phải tăng lên 2 để P2 và P3 có thể làm việc được.
Giải:
ta dùng 1 đèn hiệu sau:
semaphore synch=0;
Cấu trúc P1 | Cấu trúc P2 | Cấu trúc P3 |
S1 signal(synch,2) | wait(synch) S2 | wait(synch) S3 |
TranKimKhoa(102c)- Tổng số bài gửi : 37
Join date : 17/02/2011
giải bài tập câu 4
Bài tập câu 4: Đảm bảo sao cho P3 sau P1 & P2
Giải:
ta dùng 1 đèn hiệu sau:
semaphore synch=-1;
Khi P1 hoặc P2 làm xong, thì synch được tăng lên 1 bằng 0 (lúc này P3 vẫn phải wait vì synch <=0), P3 phải đợi 1 trong 2 tiến trình còn lại kết thúc, lúc này synch mới được tăng lên 1 thì P3 mới có thể hoàn thành.
Giải:
ta dùng 1 đèn hiệu sau:
semaphore synch=-1;
Cấu trúc P1 | Cấu trúc P2 | Cấu trúc P3 |
S1 signal(synch) | S2 signal(synch) | wait(synch) S3 |
TranKimKhoa(102c)- Tổng số bài gửi : 37
Join date : 17/02/2011
Câu 5 chương 7
Thực thi bài toán sản xuất và tiêu thụ đồng bộ đèn hiệu:
Hai quá trình cùng chia sẻ một vùng đệm có kích thước gián hạn n. Biến semaphore mutex cung cấp sự loại trừ hỗ tương để truy xuất vùng đệm và được khởi tạo với giá trị 1. Các biến Empty và full dùng để chứa các mục quản của đèn hiệu quản lý số vùng trống và số sản phẩm trong bộ đệm. Biến Semaphore empty được khởi tạo giá trị n, biến semaphore khởi tạo với giá trị 0.
- Dữ liệu chia sẽ:
SEMAPHORE full, empty,mutex;
- Khởi tạo:
full=0;
empty = BUFFER_SIZE;
mutex=1;
Buffer xoay vòng out in
- Có gì thiếu sót các bạn bổ sung cho mình với!
Thank All!
Hai quá trình cùng chia sẻ một vùng đệm có kích thước gián hạn n. Biến semaphore mutex cung cấp sự loại trừ hỗ tương để truy xuất vùng đệm và được khởi tạo với giá trị 1. Các biến Empty và full dùng để chứa các mục quản của đèn hiệu quản lý số vùng trống và số sản phẩm trong bộ đệm. Biến Semaphore empty được khởi tạo giá trị n, biến semaphore khởi tạo với giá trị 0.
- Dữ liệu chia sẽ:
SEMAPHORE full, empty,mutex;
- Khởi tạo:
full=0;
empty = BUFFER_SIZE;
mutex=1;
Buffer xoay vòng out in
- Có gì thiếu sót các bạn bổ sung cho mình với!
Thank All!
TranThiTuyetNhung [i02c]- Tổng số bài gửi : 9
Join date : 17/02/2011
Re: Giải bài tập về nhà câu 1,2,3,4 chương 7
TranKimKhoa(102c) đã viết:Bài tập câu 3: Đảm bảo sao cho P1 trước P2 & P3
Giải:
ta dùng 1 đèn hiệu sau:
semaphore synch=0;Tại P1, tín hiệu signal phải tăng lên 2 để P2 và P3 có thể làm việc được.
Cấu trúc P1 Cấu trúc P2 Cấu trúc P3 S1
signal(synch,2)wait(synch)
S2wait(synch)
S3
Không hiểu chổ signal(synch,2) nếu như vậy thì phải xây dựng lại hàm signal(semaphore S) thành signal(semaphore S,int n)
{
S+=n;
}
theo mình hiểu là vậy không biết đúng không
Admin
Phát hiện đúng. Cần thêm tham biến mới để mở rộng hàm signal. Có thể duy trì 2 hàm signal: Một hàm chỉ có 1 tham biến, còn hàm kia có thêm tham biến n. Lập trình Hướng đối tượng gọi cơ chế cho phép 2 hàm trùng tên (nhưng với danh sách tham biến khác nhau) là Overriding ("Đạp chồng").
LuuDucPhu (102C)- Tổng số bài gửi : 40
Join date : 17/02/2011
Re: Giải bài tập về nhà câu 1,2,3,4 chương 7
Rất cảm ơn thầy và các bạn đã góp ý. Bài tập 1,2,3 là do em tự làm đấy ạ, em chỉ bị bí câu 4 nên phải tham khảo, nhờ tham khảo nên em mới biết synch=-1
TranKimKhoa(102c)- Tổng số bài gửi : 37
Join date : 17/02/2011
Các bài tập chương 7
Thanks các bạn rất nhiều và đây là các bài tập mà các bạn khóa trước đã làm mọi người có thể tham khảo tại đây
lavansan(102c)- Tổng số bài gửi : 11
Join date : 17/02/2011
Age : 36
Đến từ : Bình Định
Re: Giải bài tập về nhà câu 1,2,3,4 chương 7
Cảm ơn bạn nhiều nha. Đây là thông tin bổ ích.
nguyenthingoan (i92c)- Tổng số bài gửi : 39
Join date : 16/02/2011
Re: Giải bài tập về nhà câu 1,2,3,4 chương 7
Thanks bạn nhiều!lavansan(102c) đã viết:Thanks các bạn rất nhiều và đây là các bài tập mà các bạn khóa trước đã làm mọi người có thể tham khảo tại đây
trantanphat102C- Tổng số bài gửi : 29
Join date : 13/03/2011
Có thầy tham gia vào. Chúng ta yên tâm rồi
Có thầy tham gia vào, chúng em yên tâm những hiểu biết và những suy nghĩ của chúng em có đúng hay không. Cuối cùng chúng ta cũng có một kiến thức bổ ích. Cảm ơn thầy và các bạn cùng chung tay xây dựng một diễn đàn tri thức.LuuDucPhu (102C) đã viết:TranKimKhoa(102c) đã viết:Bài tập câu 3: Đảm bảo sao cho P1 trước P2 & P3
Giải:
ta dùng 1 đèn hiệu sau:
semaphore synch=0;
Cấu trúc P1 Cấu trúc P2 Cấu trúc P3 S1
signal(synch,2)wait(synch)
S2wait(synch)
S3
Tại P1, tín hiệu signal phải tăng lên 2 để P2 và P3 có thể làm việc được.
Không hiểu chổ signal(synch,2) nếu như vậy thì phải xây dựng lại hàm signal(semaphore S) thành signal(semaphore S,int n)
{
S+=n;
}
theo mình hiểu là vậy không biết đúng không
Admin
Phát hiện đúng. Cần thêm tham biến mới để mở rộng hàm signal. Có thể duy trì 2 hàm signal: Một hàm chỉ có 1 tham biến, còn hàm kia có thêm tham biến n. Lập trình Hướng đối tượng gọi cơ chế cho phép 2 hàm trùng tên (nhưng với danh sách tham biến khác nhau) là Overriding ("Đạp chồng").
LaiVanTan77(I91C)- Tổng số bài gửi : 60
Join date : 17/02/2011
Similar topics
» Giải bài tập thuật giải nhà băng - chương 8
» Các câu hỏi và lời giải chương 7
» Các câu hỏi và lời giải chương 8
» Các câu hỏi và lời giải chương 9
» Các câu hỏi và lời giải chương 10
» Các câu hỏi và lời giải chương 7
» Các câu hỏi và lời giải chương 8
» Các câu hỏi và lời giải chương 9
» Các câu hỏi và lời giải chương 10
Trang 1 trong tổng số 1 trang
Permissions in this forum:
Bạn không có quyền trả lời bài viết