Câu 5. Phát biểu bài toán sản xuất và tiêu thụ
3 posters
Trang 1 trong tổng số 1 trang
Câu 5. Phát biểu bài toán sản xuất và tiêu thụ
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 2 tiến trình đóng vai trò người sản xuất(tạo ra dữ liệu và đưa vào vùng đệm) và tiến trình kia đóng vai trò người tiêu thụ( lấy dữ liệu ra từ vùng đệm để xử lý)
- Hai tiến trình sản xuất - tiêu thụ vần tuân thủ các quy định sau:
+ Tiến trình sản xuất không được ghi dữ liệu vào bộ đệm đã đầy
+ Tiến trình tiêu thụ không được đọc dữ liệu từ bộ đệm trống.
+ 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.
- Hai tiến trình sản xuất - tiêu thụ vần tuân thủ các quy định sau:
+ Tiến trình sản xuất không được ghi dữ liệu vào bộ đệm đã đầy
+ Tiến trình tiêu thụ không được đọc dữ liệu từ bộ đệm trống.
+ 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.
Ví dụ về bài toán sản xuất tiêu thụ
Ví dụ như một lớp sử dụng chung 1 cái bảng:
- Mỗi sinh viên là một tiến trình
- Những sinh viên nào lên bảng viết hoặc trình bày quan điểm của mình về một vấn đề nào đó thì ta gọi đó là một tiến trình sản xuất.
- Những sinh viên phía dưới tập trung lắng nghe, đọc thông tin hoặc ghi chép thì ta gọi đó là một tiến trình tiêu thụ.
-Hai tiến trình luôn xảy ra song song với nhau.Có tiêu thụ thì có sản xuất và ngược lại sản xuất ra thì cần phải có thứ để tiêu thụ.
- Mỗi sinh viên là một tiến trình
- Những sinh viên nào lên bảng viết hoặc trình bày quan điểm của mình về một vấn đề nào đó thì ta gọi đó là một tiến trình sản xuất.
- Những sinh viên phía dưới tập trung lắng nghe, đọc thông tin hoặc ghi chép thì ta gọi đó là một tiến trình tiêu thụ.
-Hai tiến trình luôn xảy ra song song với nhau.Có tiêu thụ thì có sản xuất và ngược lại sản xuất ra thì cần phải có thứ để tiêu thụ.
nguyenvanhonglac_0066- Tổng số bài gửi : 15
Join date : 16/02/2012
Re: Câu 5. Phát biểu bài toán sản xuất và tiêu thụ
nguyenvanhonglac_0066 đã viết:Ví dụ như một lớp sử dụng chung 1 cái bảng:
- Mỗi sinh viên là một tiến trình
- Những sinh viên nào lên bảng viết hoặc trình bày quan điểm của mình về một vấn đề nào đó thì ta gọi đó là một tiến trình sản xuất.
- Những sinh viên phía dưới tập trung lắng nghe, đọc thông tin hoặc ghi chép thì ta gọi đó là một tiến trình tiêu thụ.
-Hai tiến trình luôn xảy ra song song với nhau.Có tiêu thụ thì có sản xuất và ngược lại sản xuất ra thì cần phải có thứ để tiêu thụ.
vd này thầy đã nói trên lớp rồi, bạn có thể cho 1 vd mới đc ko?
Re: Câu 5. Phát biểu bài toán sản xuất và tiêu thụ
Phát biểu bài toán Sản xuất-Tiêu thụ và thuật giải với bộ đệm thực thi bằng mảng xoay vòng.
Phát biểu bài toán:
+ Giả sử có Bộ nhớ đệm (Buffer) bao gồm nhiều khoang (Items) được tiến trình Producer lần lượt đưa các sản phẩm S1, S2,... vào.
+ Tiến trình Consumer lần lượt lấy sản phẩm ra theo đúng thứ tự.
+ Công việc của Producer phải đồng bộ với Consumer: Không được đưa sản phẩm vào khi Buffer đầy, Không được lấy ra khi chưa có.
Trình bày giải thuật:
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;
}
Phát biểu bài toán:
+ Giả sử có Bộ nhớ đệm (Buffer) bao gồm nhiều khoang (Items) được tiến trình Producer lần lượt đưa các sản phẩm S1, S2,... vào.
+ Tiến trình Consumer lần lượt lấy sản phẩm ra theo đúng thứ tự.
+ Công việc của Producer phải đồng bộ với Consumer: Không được đưa sản phẩm vào khi Buffer đầy, Không được lấy ra khi chưa có.
Trình bày giải thuật:
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;
}
nguyenvanhonglac_0066- Tổng số bài gửi : 15
Join date : 16/02/2012
Re: Câu 5. Phát biểu bài toán sản xuất và tiêu thụ
nguyenvanhonglac_0066 đã viết:Phát biểu bài toán Sản xuất-Tiêu thụ và thuật giải với bộ đệm thực thi bằng mảng xoay vòng.
Phát biểu bài toán:
+ Giả sử có Bộ nhớ đệm (Buffer) bao gồm nhiều khoang (Items) được tiến trình Producer lần lượt đưa các sản phẩm S1, S2,... vào.
+ Tiến trình Consumer lần lượt lấy sản phẩm ra theo đúng thứ tự.
+ Công việc của Producer phải đồng bộ với Consumer: Không được đưa sản phẩm vào khi Buffer đầy, Không được lấy ra khi chưa có.
Trình bày giải thuật:
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;
}
Khá đầy đủ, thanks!
Câu này cậu làm tốt thiệt
Phát biểu bài toán Sản xuất-Tiêu thụ và thuật giải với bộ đệm thực thi bằng mảng xoay vòng.
Phát biểu bài toán:
+ Giả sử có Bộ nhớ đệm (Buffer) bao gồm nhiều khoang (Items) được tiến trình Producer lần lượt đưa các sản phẩm S1, S2,... vào.
+ Tiến trình Consumer lần lượt lấy sản phẩm ra theo đúng thứ tự.
+ Công việc của Producer phải đồng bộ với Consumer: Không được đưa sản phẩm vào khi Buffer đầy, Không được lấy ra khi chưa có.
Trình bày giải thuật:
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;
}
Phát biểu bài toán:
+ Giả sử có Bộ nhớ đệm (Buffer) bao gồm nhiều khoang (Items) được tiến trình Producer lần lượt đưa các sản phẩm S1, S2,... vào.
+ Tiến trình Consumer lần lượt lấy sản phẩm ra theo đúng thứ tự.
+ Công việc của Producer phải đồng bộ với Consumer: Không được đưa sản phẩm vào khi Buffer đầy, Không được lấy ra khi chưa có.
Trình bày giải thuật:
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;
}
DuongTrungQuan- Tổng số bài gửi : 57
Join date : 16/02/2012
Similar topics
» Thảo luận Bài 4
» Phát biểu bài toán Sản xuất-Tiêu thụ với giải pháp đồng bộ hóa công việc các tiến trình sãn xuất-tiêu thụ bằng 3 đèn hiệu
» Phát biểu bài toán sản xuất và tiêu thụ
» Thảo luận Bài 4
» Phát biểu bài toán sản xuất và tiêu thụ
» Phát biểu bài toán Sản xuất-Tiêu thụ với giải pháp đồng bộ hóa công việc các tiến trình sãn xuất-tiêu thụ bằng 3 đèn hiệu
» Phát biểu bài toán sản xuất và tiêu thụ
» Thảo luận Bài 4
» Phát biểu bài toán sản xuất và tiêu thụ
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