1. Consider the three conditions for a solution of critical section problem to be a correct solution: Mutual Exclusion, Progress and Bounded Waiting. Please explain
Ans:
(1) Mutual Exclusion:
If process A is executing in its critical section, then no other processes can be executing in their critical sections.
(2) Progress:
If no process is executing in its critical section and there are other processes which want to get into their critical section, then the selection of which process will enter the critical section next can’t be postponed indefinitely.
(3) Bounded Waiting:
A bound must exist on the number of times that other processes are allowed to enter their critical sections after a process has made a request to enter its critical section and before that request is granted.
2. While Peterson’s solution is correct, please discuss the situation where P1 and P2 are entering the Critical Section at about the same time. How to decide which process can enter its Critical Section?
Ans:
If both processes try to enter at the same time, turn is set to both processes at roughly the same time, but the eventual value of turn will decides which of the two processes is allowed to enter its critical section.
3. Please specify under what kind of situation where busy waiting can be considered advantageous?
Ans:
Busy waiting wastes CPU cycles that some other process might be able to use productively. This type of semaphore is also called spinlock.
4. Consider the reader program of the reader-writer problem below. Please explain
(1) why the readers need to use the semaphore “mutex” but the writers don’t.
(2) why the readers also work on the “wrt” semaphore which is used by the writers.
wait(mutex);
readcount++;
if (readcount == 1)
wait(wrt);
signal(mutex);
…
reading is performed
…
wait(mutex);
readcount--;
if (readcount == 0)
signal(wrt);
signal(mutex);
Ans:
Because reader has priority, no reader will be kept waiting unless a writers has already obtained permission to use the shared database. If readcount is 1,and the writer do not finish writing, reader will wait until waiting finish, but if readcount is 2, reader No.2 can come into WRT work with reader No.1 casue the starvation of writer.