Answer:
A) The 3 control problems associated with competing processes are:
(a) Mutual Exclusion
(b) Deadlock
(c) Starvation
B) Requirements for Mutual Exclusion
A process that is halting should do so without interfering with other processes
No Deadlock or Starvation
A process should not be denied access to a critical section when there is no other process using it
A process must remain inside its critical section for a finite time only
C) Difference between Semaphore and Monitor
Semaphore is an integer value used for signaling among processes
Monitor is a programming language construct that encapsulates variables, access procedures, and initialization code within an abstract data type
Only 3 operations is performed on Semaphore, all of which are atomic: initialize, decrement and increment
Only 1 operation may be actively accessed via its access procedures
D) Three conditions that must be present for deadlock to be possible:
Mutual Exclusion
Hold and Wait or Partial Allocation
No pre-emption
Resource Waiting or Circular Wait
By ensuring that at least one of the above conditions cannot hold, we can prevent the occurrence of a deadlock.
Step-by-step explanation: