Các bạn có thể xem câu này để giải thích cho câu 5 nhé
3 posters
Trang 1 trong tổng số 1 trang
Các bạn có thể xem câu này để giải thích cho câu 5 nhé
#define BUFFER_SIZE 50
HANDLE semEmpty, semFull;
semEmpty=CreateSemaphore(0, BUFFER_SIZE, BUFFER_SIZE, "SemEmpty");
semFull=CreateSemaphore(0, 0, BUFFER_SIZE, "SemFull");
WaitForSingleObject(semEmpty, INFINITE);
printf(“semEmpty Handle=%d”, semEmpty);
WaitForSingleObject(semFull, INFINITE);
printf(“semFull Handle=%d”, semFull);
Trả lời:
1. Khai báo kích thước bộ nhớ đệm bằng 50 (cho bài toán Sản xuất-Tiêu thụ).
2. Khai báo 2 biến semEmpty và semFull dùng chứa mục quản (Handle) của 2 đèn hiệu (Semaphore).
3. Yêu cầu hệ điều hành tạo lập đèn hiệu liên tiến trình tên là SemEmpty với giá trị ban đầu và tối đa bằng 50 (BUFFER_SIZE). Mục quản của đèn hiệu gửi vào biến semEmpty.
4. Yêu cầu hệ điều hành tạo lập đèn hiệu liên tiến trình tên là SemFull với giá trị ban đầu bằng 0 và giá trị tối đa bằng 50 (BUFFER_SIZE). Mục quản của đèn hiệu gửi vào biến semFull.
5. Chờ vô hạn (INFINITE) đến khi giá trị của đèn SemEmpty lớn hơn 0 (hiện bằng 50 nên qua được, sau đó giá trị của SemEmpty còn 49).
6. Lệnh printf() đưa ra Mục quản của đèn hiệu SemEmpty.
7. Lời gọi chờ tại SemFull sẽ chuyển luồng hiện hành sang trạng thái chờ đến khi giá trị của đèn này lớn hơn 0 (hiện bằng 0).
8. Lệnh printf() đưa ra Mục quản của đèn hiệu SemFull, nhưng hiện tại không thực hiện, do luồng hiện hành phải chờ đến khi giá trị của SemFull lớn hơn 0.
HANDLE semEmpty, semFull;
semEmpty=CreateSemaphore(0, BUFFER_SIZE, BUFFER_SIZE, "SemEmpty");
semFull=CreateSemaphore(0, 0, BUFFER_SIZE, "SemFull");
WaitForSingleObject(semEmpty, INFINITE);
printf(“semEmpty Handle=%d”, semEmpty);
WaitForSingleObject(semFull, INFINITE);
printf(“semFull Handle=%d”, semFull);
Trả lời:
1. Khai báo kích thước bộ nhớ đệm bằng 50 (cho bài toán Sản xuất-Tiêu thụ).
2. Khai báo 2 biến semEmpty và semFull dùng chứa mục quản (Handle) của 2 đèn hiệu (Semaphore).
3. Yêu cầu hệ điều hành tạo lập đèn hiệu liên tiến trình tên là SemEmpty với giá trị ban đầu và tối đa bằng 50 (BUFFER_SIZE). Mục quản của đèn hiệu gửi vào biến semEmpty.
4. Yêu cầu hệ điều hành tạo lập đèn hiệu liên tiến trình tên là SemFull với giá trị ban đầu bằng 0 và giá trị tối đa bằng 50 (BUFFER_SIZE). Mục quản của đèn hiệu gửi vào biến semFull.
5. Chờ vô hạn (INFINITE) đến khi giá trị của đèn SemEmpty lớn hơn 0 (hiện bằng 50 nên qua được, sau đó giá trị của SemEmpty còn 49).
6. Lệnh printf() đưa ra Mục quản của đèn hiệu SemEmpty.
7. Lời gọi chờ tại SemFull sẽ chuyển luồng hiện hành sang trạng thái chờ đến khi giá trị của đèn này lớn hơn 0 (hiện bằng 0).
8. Lệnh printf() đưa ra Mục quản của đèn hiệu SemFull, nhưng hiện tại không thực hiện, do luồng hiện hành phải chờ đến khi giá trị của SemFull lớn hơn 0.
Buivanhieu_I83C- Tổng số bài gửi : 42
Join date : 11/09/2009
Sang-I83C- Tổng số bài gửi : 46
Join date : 22/11/2009
Re: Các bạn có thể xem câu này để giải thích cho câu 5 nhé
Xem ra vẫn chưa có lời giải chính xác cho câu 5 hả bạn. Nhìn cách chú thích trên không giống như ý của thầy rồi. Mình cũng giải tương tự, và biết là sai so với đáp án thầy chấm
trankhanhtram_I83C_2106- Tổng số bài gửi : 32
Join date : 10/09/2009
Similar topics
» SJFS Khong tiem quyen
» Thảo luận Bài 6
» co ai giai thich duoc chuoi an toan trong thuat giai nha bang ko,giup minh voi! thanks!
» GIẢI THÍCH VÍ DỤ THUẬT GIẢI NHÀ BĂNG (trong tài liệu)
» GIẢI THÍCH VÍ DỤ THUẬT GIẢI NHÀ BĂNG (trong tài liệu)
» Thảo luận Bài 6
» co ai giai thich duoc chuoi an toan trong thuat giai nha bang ko,giup minh voi! thanks!
» GIẢI THÍCH VÍ DỤ THUẬT GIẢI NHÀ BĂNG (trong tài liệu)
» GIẢI THÍCH VÍ DỤ THUẬT GIẢI NHÀ BĂNG (trong tài liệu)
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