OS QuestionAnswer
OS QuestionAnswer
void Reader() {
wait(mutex// Enter critical section
readCount// Increment the number of readers
if (readCount == 1);// First reader
wait(writeLock); // Block writers
signal(mutex);// Exit critical section
void Producer() {
while (true) {
// Produce an item
wait(empty); // Decrement empty count
wait(mutex); // Enter critical section
void Process0() {
flag[0] = 1; // Indicate intent to enter critical section
turn = 1; // Give turn to Process 1
while (flag[1] == 1 && turn == 1); // Wait while Process 1 is interested
// Critical section