OS Lab 5 23102C0019
OS Lab 5 23102C0019
A.Y-2024-25
Lab Work – Course _Operating System___ – Semester _4__- Program _CMPN SE____ P age |1
Department of Computer Engineering
A.Y-2024-25
Philosopher(int philosopherId) {
this.philosopherId = philosopherId;
}
@Override
public void run() {
for (int i = 0; i < 3; i++) {
try {
System.out.println("Philosopher " +
philosopherId + " is thinking.");
Thread.sleep((int)
(Math.random() * 2000) + 1000);
System.out.println("Philosopher " +
philosopherId + " is hungry.");
waiter.acquire();
int leftFork =
philosopherId;
int rightFork =
(philosopherId + 1) % N;
forks[leftFork].acquire();
System.out.println("Philosopher " +
philosopherId + " picked up left fork " +
leftFork);
forks[rightFork].acquire();
System.out.println("Philosopher " +
Lab Work – Course _Operating System___ – Semester _4__- Program _CMPN SE____ P age |2
Department of Computer Engineering
A.Y-2024-25
System.out.println("Philosopher " +
philosopherId + " is eating.");
Thread.sleep((int)
(Math.random() * 2000) + 1000);
forks[leftFork].release();
System.out.println("Philosopher " +
philosopherId + " put down left fork " +
leftFork);
forks[rightFork].release();
System.out.println("Philosopher " +
philosopherId + " put down right fork " +
rightFork);
waiter.release();
} catch (InterruptedException
e) {
Thread.currentThread().interrupt();
}
}
}
}
Lab Work – Course _Operating System___ – Semester _4__- Program _CMPN SE____ P age |3
Department of Computer Engineering
A.Y-2024-25
Thread.currentThread().interrupt();
}
}
System.out.println("\nAll philosophers
have finished eating.");
}
}
Output
Lab Work – Course _Operating System___ – Semester _4__- Program _CMPN SE____ P age |4
Department of Computer Engineering
A.Y-2024-25
Lab Work – Course _Operating System___ – Semester _4__- Program _CMPN SE____ P age |5
Department of Computer Engineering
A.Y-2024-25
Lab Work – Course _Operating System___ – Semester _4__- Program _CMPN SE____ P age |6
Department of Computer Engineering
A.Y-2024-25
Lab Work – Course _Operating System___ – Semester _4__- Program _CMPN SE____ P age |7