Ask Question
17 October, 08:59

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

+4
Answers (1)
  1. 17 October, 12:10
    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?
Get 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 there is no answer or all answers are wrong, use a search bar and try to find the answer among similar questions.
Search for Other Answers