Something like a hard drive.
Answer:
b) Bounded Waiting
Explanation:
int currentThread = 1;
bool thread1Access = true;
bool thread2Access = true;
thread1 { thread2 {
While (true) {
While (true)
{
while(thread2Access == true)
{
while(thread1Access == true)
{
If (currentThread == 2) {
If (currentThread == 1)
{
thread1Access = false; thread2Access = false;
While (currentThread == 2);
While (currentThread == 1);
thread1Access = true; thread2Access = true;
} }
/* start of critical section */ /* start of critical section */
currentThread = 2 currentThread = 1
… ...
/* end of critical section */ /* end of critical section */
thread1Access = false; thread2Access = false;
… ...
} }
} }
} }
It can be seen that in all the instances, both threads are programmed to share same resource at the same time, and hence this is the bounded waiting. For Mutual exclusion, two threads cannot share one resource at one time. They must share simultaneously. Also there should be no deadlock. For Progress each thread should have exclusive access to all the resources. Thus its definitely the not the Progress. And hence its Bounded waiting.
Here you go. I added a constructor and a toString overload to make the object creation and printing as easy as possible.
public class student {
private String _id;
private String _name;
private String _address;
public student(String id, String name, String address) {
_id = id;
_name = name;
_address = address;
}
public String toString() {
return "Id: " + _id + "\nName: " + _name + "\nAddress: "+ _address;
}
public static void main(String[] args) {
student s1 = new student("S12345", "John Doe", "Some street");
System.out.println(s1);
}
}