Custodial staff needing to clean bathrooms in a building that is not closed often use some version of the following process: first, they set up a sign or marker indicating that the bathroom is closed; then, they wait for everybody using the bathroom to finish and leave; once it's empty, they clean the room; and finally they reopen it for general use. Obviously, nobody that's already in the bathroon gets kicked out, but someone arriving after the sign is up will have to go find another batbroom even if the cleaning hasn't started yet. This algorithm is a solution to a resource access-synchronisation problem: specifically, the controlled resource is the bathroom, and the problem and solution are related to the readers-writers problem. Pseudocode: We can describe this algorithm using two semaphores: a binary semaphore called "mutex" and a counting semaphore called "empty" -When the custodial staff enters the bathroom, they acquire the mutex semaphore to ensure that they have exclusive access to the bathroom. -They then set the "closed" sign and release the mutex semaphore. -Any person who wants to enter the bathroom checks the sign. and if it says "closed", they wait until the sign is changed. -Once the bathroom is empty, the custodial staff acquires the mutex semaphore again to ensure exclusive access to the bathroom. -They then acquire the "empty" semaphore to ensure that no one enters the bathroom while it is being cleaned. -They clean the bathroom and release both the mutex and "empty" semaphores. -Finally, they remove the "closed" sign and release the mutes semaphore so that others can use the bathroom again. a) write a short description of the algorithm (1-2 sentences) b) fix the algorithm pseudocode (either maintaining the bullet-point style or transferring it to a more classic pseudocode layout) so that its references to semaphores and patterns are correct and consistent and actually map to the custodians' process as described.
Custodial staff needing to clean bathrooms in a building that is not closed often use some version of the following process: first, they set up a sign or marker indicating that the bathroom is closed; then, they wait for everybody using the bathroom to finish and leave; once it's empty, they clean the room; and finally they reopen it for general use.
Obviously, nobody that's already in the bathroon gets kicked out, but someone arriving after the sign is up will have to go find another batbroom even if the cleaning hasn't started yet.
This
Pseudocode:
We can describe this algorithm using two semaphores: a binary semaphore called "mutex" and a counting semaphore called "empty"
-When the custodial staff enters the bathroom, they acquire the mutex semaphore to ensure that they have exclusive access to the bathroom.
-They then set the "closed" sign and release the mutex semaphore.
-Any person who wants to enter the bathroom checks the sign. and if it says "closed", they wait until the sign is changed.
-Once the bathroom is empty, the custodial staff acquires the mutex semaphore again to ensure exclusive access to the bathroom.
-They then acquire the "empty" semaphore to ensure that no one enters the bathroom while it is being cleaned.
-They clean the bathroom and release both the mutex and
"empty" semaphores.
-Finally, they remove the "closed" sign and release the mutes semaphore so that others can use the bathroom again.
a) write a short description of the algorithm (1-2 sentences)
b) fix the algorithm pseudocode (either maintaining the bullet-point style or transferring it to a more classic pseudocode layout) so that its references to semaphores and patterns are correct and consistent and actually map to the custodians' process as described.
Trending now
This is a popular solution!
Step by step
Solved in 3 steps