C++ Programming: From Problem Analysis to Program Design
C++ Programming: From Problem Analysis to Program Design
8th Edition
ISBN: 9781337102087
Author: D. S. Malik
Publisher: Cengage Learning
expand_more
expand_more
format_list_bulleted
Bartleby Related Questions Icon
Related questions
Question
Transcribed Image Text:After playing our giving implementation, your task is to implement Dinning Philosophers
with semaphore in C, by including <pthread.h> and <semaphore.h>
Your implementation will require creating five philosophers, each identified by a number
0.4. Each philosopher will run as a separate thread. Create threads using Pthreads
as discussed in the Lecture slides on Chapter 4 and Practice Lab on Threads.
Your solution needs to accomplish the following:
Implement in C (15 points)
1. dp1.c - You are to provide your solution to this assignment as a single C program
named 'dp1.c using semaphore. Explain in you code (as comments) that the dead
lock will happen or not. If there is a possible deadlock, you can simply solve the
deadlock by pick the fork in order like the first solution in our slides.
Solve Deadlock by Footman (15 points)
1. Here is a new solution to overcome the deadlock. The Dining Philosophers decide to
hire a footman whose task to allow only four philosophers to sit on the table. When
entering and exiting the dining hall, the philosophers have to check with the footman.
Define two functions `enter_room` and `exit_room` before and after philosophers'
eating.
Hint: footman can be implemented by a semaphore
2. dp2.c - You are to provide your solution to this assignment as a single C program
named dp2.c using semaphore, based on your `dp1.c`.
Expert Solution
Check MarkThis question has been solved!
Explore an expertly crafted, step-by-step solution for a thorough understanding of key concepts.
bartleby
Step by stepSolved in 2 steps
Knowledge Booster
Background pattern image
Recommended textbooks for you
- Text book imageC++ Programming: From Problem Analysis to Program...Computer ScienceISBN:9781337102087Author:D. S. MalikPublisher:Cengage LearningText book imageC++ for Engineers and ScientistsComputer ScienceISBN:9781133187844Author:Bronson, Gary J.Publisher:Course Technology PtrText book imageEBK JAVA PROGRAMMINGComputer ScienceISBN:9781337671385Author:FARRELLPublisher:CENGAGE LEARNING - CONSIGNMENT
- Text book imageSystems ArchitectureComputer ScienceISBN:9781305080195Author:Stephen D. BurdPublisher:Cengage LearningText book imageNew Perspectives on HTML5, CSS3, and JavaScriptComputer ScienceISBN:9781305503922Author:Patrick M. CareyPublisher:Cengage LearningText book imageEBK JAVA PROGRAMMINGComputer ScienceISBN:9781305480537Author:FARRELLPublisher:CENGAGE LEARNING - CONSIGNMENT
Text book image
C++ Programming: From Problem Analysis to Program...
Computer Science
ISBN:9781337102087
Author:D. S. Malik
Publisher:Cengage Learning
Text book image
C++ for Engineers and Scientists
Computer Science
ISBN:9781133187844
Author:Bronson, Gary J.
Publisher:Course Technology Ptr
Text book image
EBK JAVA PROGRAMMING
Computer Science
ISBN:9781337671385
Author:FARRELL
Publisher:CENGAGE LEARNING - CONSIGNMENT
Text book image
Systems Architecture
Computer Science
ISBN:9781305080195
Author:Stephen D. Burd
Publisher:Cengage Learning
Text book image
New Perspectives on HTML5, CSS3, and JavaScript
Computer Science
ISBN:9781305503922
Author:Patrick M. Carey
Publisher:Cengage Learning
Text book image
EBK JAVA PROGRAMMING
Computer Science
ISBN:9781305480537
Author:FARRELL
Publisher:CENGAGE LEARNING - CONSIGNMENT