Consider the following code relating to condition variables from your textbook: and void thr_exit() ( Pthread_mutex lock (Gm); done = 1; Pthread_cond_signal (&c); Pthread_mutex_unlock (6m); void thr_join() { Pthread_mutex lock (4m); while (done == 0) Pthread_cond wait (&c, &m); Pthread_mutex unlock (6m); Note the presence of a • variable (done), • a mutex (m), • a condition variable (c), and • a while loop all of which are necessary to get this to work correctly. a. Please explain why we need the variable (i.e., what might occur or what additional code might be needed if we omit the variable) Please explain why we need the mutex (same comment) c. Please explain why we need the condition variable d. Please explain why we need a while loop instead of an if statement Please keep your answers short and to the point. You might wish to show a schedule that might occur without each of these, should that be the best way to explain it concisely.

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question

I need help doing problem set questions regarding concurrency.....

Consider the following code relating to condition variables from
your textbook:
and
s void thr_exit() (
6
7
8
9
18
29
20
21
22
}
Pthread_mutex_lock (6m);
done = 1;
}
Pthread_cond_signal (&c);
Pthread_mutex_unlock (6m);
void thr_join() {
Pthread_mutex_lock (&m);
while (done == 0)
Pthread_cond_wait (&c, &m);
Pthread_mutex_unlock (6m);
Note the presence of a
• variable (done),
• a mutex (m),
• a condition variable (c), and
• a while loop
all of which are necessary to get this to work correctly.
a. Please explain why we need the variable (i.e., what might occur
or what additional code might be needed if we omit the variable)
b. Please explain why we need the mutex (same comment)
c. Please explain why we need the condition variable
d. Please explain why we need a while loop instead of an if
statement
Please keep your answers short and to the point. You might wish to
show a schedule that might occur without each of these, should
that be the best way to explain it concisely.
Transcribed Image Text:Consider the following code relating to condition variables from your textbook: and s void thr_exit() ( 6 7 8 9 18 29 20 21 22 } Pthread_mutex_lock (6m); done = 1; } Pthread_cond_signal (&c); Pthread_mutex_unlock (6m); void thr_join() { Pthread_mutex_lock (&m); while (done == 0) Pthread_cond_wait (&c, &m); Pthread_mutex_unlock (6m); Note the presence of a • variable (done), • a mutex (m), • a condition variable (c), and • a while loop all of which are necessary to get this to work correctly. a. Please explain why we need the variable (i.e., what might occur or what additional code might be needed if we omit the variable) b. Please explain why we need the mutex (same comment) c. Please explain why we need the condition variable d. Please explain why we need a while loop instead of an if statement Please keep your answers short and to the point. You might wish to show a schedule that might occur without each of these, should that be the best way to explain it concisely.
Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 3 steps

Blurred answer
Knowledge Booster
Linux
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education