Producer and Consumer problem

Post on 19-Jul-2015

86 views 2 download

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 ว่าง หรือใช้ไปแล้วกี่ตัว