Producer and Consumer problem
-
Upload
bhuridech-sudsee -
Category
Education
-
view
86 -
download
2
Transcript of Producer and Consumer problem
อธิบายการท างานของโปรแกรม
Main.c
ฟังก์ชัน Main รับ Parameter ชื่อ runtime Sleep(runTime*1000); หน้าที่ของฟังก์ชันคือ Main
Producer Consumer
สร้าง Thread Consumer,Producer ก าหนดตัวแปร Semaphore Terminate Thread เมื่อหมดเวลา
prodcon.h
ก าหนดตัวแปร Structure เพื่อให้ไฟล์อื่นเอาไปใช้ต่อโดย .h คือไฟล์ประเภท Header ไม่มีอะไรน่าตื่นเต้นในไฟล์นี้
producer.c
ไฟล์นี้มีฟังก์ชันที่ใช้ในการสร้าง Thread Producer บรรจุไว้ในกล่อง โดยถูกสร้างสูงสุดเท่ากับจ านวน N หากไม่มีการบริโภค
consumer.c
ไฟล์นี้มีฟังก์ชันที่ใช้ในการสร้าง Thread consumer ซึ่ง consumer จะใช้ buffer โดยจะสร้างใช้สูงสุดเท่ากับจ านวนที่ producer สร้างได้ และการท างานก็ไม่จ าเป็นต้องรอให้ buffer เต็ม
การท างาน
Producer ผลิต Consumer ใช้
• Consumer กับ Producer ไมจ่ าเป็นต้องเท่ากัน
• จ านวนรวมกันเท่ากับ N เสมอ • Consumer ไม่ต้องรอให้เต็มถาด แต่ถ้าเต็มต้องใช้
อธิบาย Input,Output
Input Project1 5
ชื่อไฟล์ .exe runTime
Producer: Produce widget #46 in buffer #8 Consumer: Consumed widget #28 in buffer #8 Empty = 0 Full = 20
Output
} ส่วนที่เพิ่มเติม ใช้นับว่ามี Buffer ว่าง หรือใช้ไปแล้วกี่ตัว