Ask Question

Considering the following algorithm, which of the following requirements are satisfied?

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;

...

} }

} }

} }

a) Mutual Exclusion

b) Bounded Waiting

c) Progress

d) None of the above

+1
Answers (1)
  1. 14 March, 22:37
    0
    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.
Know the Answer?
Not Sure About the Answer?
Find an answer to your question 👍 “Considering the following algorithm, which of the following requirements are satisfied? int currentThread = 1; bool thread1Access = true; ...” in 📗 Computers & Technology if the answers seem to be not correct or there’s no answer. Try a smart search to find answers to similar questions.
Search for Other Answers