Bài toán SanXuatTieuThu với 2 dạng khác nhau
Trang 1 trong tổng số 1 trang
Bài toán SanXuatTieuThu với 2 dạng khác nhau
Bài 1:
PRODUCER
item nextProduced;
while (1)
{
while(((in+1)%BUFFER_SIZE)==out); //quẩn tại đây khi buffer đầy.
buffer[in] = nextProduced;
in = (in+1)%BUFFER_SIZE;
}
CONSUMER
item nextConsumed;
while (1)
{
while(in==out); //quẩn khi buffer rỗng
nextConsumed = buffer[out];
out = (out+1)%BUFFER_SIZE;
}
Bài 2:Đồng bộ hóa 2 đèn hiệu
Producer()
{ // Chờ khi bộ đệm đầy
WaitforSignal(SemFull,INITE) //SemFull : kiểm tra số Sản phẩm trong bộ đệm.
//Sản xuất sản phẩm
Releave(SemEmpty)
//Bộ đệm đã có Sản phẩm
}
Consumer()
{ // Chờ đến khi có sản phẩm
WaitforSignal(SemEmpty ,INITE) //SemEmpty: Kiểm tra số vùng trống trong bộ đệm.
//tiêu thụ sản phẩm
Releave(SemFull)
//Bộ đệm đã có chổ trống
}
PRODUCER
item nextProduced;
while (1)
{
while(((in+1)%BUFFER_SIZE)==out); //quẩn tại đây khi buffer đầy.
buffer[in] = nextProduced;
in = (in+1)%BUFFER_SIZE;
}
CONSUMER
item nextConsumed;
while (1)
{
while(in==out); //quẩn khi buffer rỗng
nextConsumed = buffer[out];
out = (out+1)%BUFFER_SIZE;
}
Bài 2:Đồng bộ hóa 2 đèn hiệu
Producer()
{ // Chờ khi bộ đệm đầy
WaitforSignal(SemFull,INITE) //SemFull : kiểm tra số Sản phẩm trong bộ đệm.
//Sản xuất sản phẩm
Releave(SemEmpty)
//Bộ đệm đã có Sản phẩm
}
Consumer()
{ // Chờ đến khi có sản phẩm
WaitforSignal(SemEmpty ,INITE) //SemEmpty: Kiểm tra số vùng trống trong bộ đệm.
//tiêu thụ sản phẩm
Releave(SemFull)
//Bộ đệm đã có chổ trống
}
MaiHuyNam(HLT3)- Tổng số bài gửi : 21
Join date : 09/03/2013
Similar topics
» Phân biệt đa luồng và đa tiến trình?(giống nhau và khác nhau)
» Thảo luận Bài 6
» Thảo luận Bài 5
» Thảo luận Bài 3
» So sánh sự giống nhau và khác nhau giữa Luồng và tiến trình
» Thảo luận Bài 6
» Thảo luận Bài 5
» Thảo luận Bài 3
» So sánh sự giống nhau và khác nhau giữa Luồng và tiến trình
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