After playing our giving implementation, your task is to implement Dinning Philosophers with semaphore in C, by including and 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`.

C++ Programming: From Problem Analysis to Program Design
8th Edition
ISBN:9781337102087
Author:D. S. Malik
Publisher:D. S. Malik
Chapter18: Stacks And Queues
Section: Chapter Questions
Problem 16PE: The implementation of a queue in an array, as given in this chapter, uses the variable count to...
icon
Related questions
Question
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`.
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
steps

Step by step

Solved in 2 steps

Blurred answer
Recommended textbooks for you
C++ Programming: From Problem Analysis to Program…
C++ Programming: From Problem Analysis to Program…
Computer Science
ISBN:
9781337102087
Author:
D. S. Malik
Publisher:
Cengage Learning
C++ for Engineers and Scientists
C++ for Engineers and Scientists
Computer Science
ISBN:
9781133187844
Author:
Bronson, Gary J.
Publisher:
Course Technology Ptr
EBK JAVA PROGRAMMING
EBK JAVA PROGRAMMING
Computer Science
ISBN:
9781337671385
Author:
FARRELL
Publisher:
CENGAGE LEARNING - CONSIGNMENT
Systems Architecture
Systems Architecture
Computer Science
ISBN:
9781305080195
Author:
Stephen D. Burd
Publisher:
Cengage Learning
New Perspectives on HTML5, CSS3, and JavaScript
New Perspectives on HTML5, CSS3, and JavaScript
Computer Science
ISBN:
9781305503922
Author:
Patrick M. Carey
Publisher:
Cengage Learning
EBK JAVA PROGRAMMING
EBK JAVA PROGRAMMING
Computer Science
ISBN:
9781305480537
Author:
FARRELL
Publisher:
CENGAGE LEARNING - CONSIGNMENT