Producer and Consumer problem

6
อธิบายการทางานของโปรแกรม

Transcript of Producer and Consumer problem

Page 1: Producer and Consumer problem

อธิบายการท างานของโปรแกรม

Page 2: Producer and Consumer problem

Main.c

ฟังก์ชัน Main รับ Parameter ชื่อ runtime Sleep(runTime*1000); หน้าที่ของฟังก์ชันคือ Main

Producer Consumer

สร้าง Thread Consumer,Producer ก าหนดตัวแปร Semaphore Terminate Thread เมื่อหมดเวลา

Page 3: Producer and Consumer problem

prodcon.h

ก าหนดตัวแปร Structure เพื่อให้ไฟล์อื่นเอาไปใช้ต่อโดย .h คือไฟล์ประเภท Header ไม่มีอะไรน่าตื่นเต้นในไฟล์นี้

producer.c

ไฟล์นี้มีฟังก์ชันที่ใช้ในการสร้าง Thread Producer บรรจุไว้ในกล่อง โดยถูกสร้างสูงสุดเท่ากับจ านวน N หากไม่มีการบริโภค

Page 4: Producer and Consumer problem

consumer.c

ไฟล์นี้มีฟังก์ชันที่ใช้ในการสร้าง Thread consumer ซึ่ง consumer จะใช้ buffer โดยจะสร้างใช้สูงสุดเท่ากับจ านวนที่ producer สร้างได้ และการท างานก็ไม่จ าเป็นต้องรอให้ buffer เต็ม

Page 5: Producer and Consumer problem

การท างาน

Producer ผลิต Consumer ใช้

• Consumer กับ Producer ไมจ่ าเป็นต้องเท่ากัน

• จ านวนรวมกันเท่ากับ N เสมอ • Consumer ไม่ต้องรอให้เต็มถาด แต่ถ้าเต็มต้องใช้

Page 6: Producer and Consumer problem

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