Q13. Which action would the nurse include in the plan of care for a patient with a new diagnosis of rheumatoid arthritis (RA)?
Blog
Deadlock can occur even if only two of the four necessary co…
Deadlock can occur even if only two of the four necessary conditions (mutual exclusion, hold and wait, no preemption, circular wait) are present.
Consider this attempt at thread_join using a condition varia…
Consider this attempt at thread_join using a condition variable but NO state variable: void thread_join() { mutex_lock(&m); cond_wait(&cv, &m); mutex_unlock(&m); } void thread_exit() { mutex_lock(&m); cond_signal(&cv); mutex_unlock(&m); } Under what circumstance does this implementation fail?
In Lock B, suppose ticket = 5 and turn = 3. What is the lock…
In Lock B, suppose ticket = 5 and turn = 3. What is the lock state?
Consider a system with three threads and three locks (A, B,…
Consider a system with three threads and three locks (A, B, C) (assume any locks held are eventually freed in each thread, after these operations): Thread 1: lock(A); lock(B); lock(C) Thread 2: lock(B); lock(C); unlock(B); lock(A) Thread 3: lock(C); lock(A) Which pair(s) of threads can deadlock with each other?
Consider a bounded buffer with one producer and two consumer…
Consider a bounded buffer with one producer and two consumers using a single condition variable and while loops: void *producer(void *arg) { mutex_lock(&m); while (count == MAX) cond_wait(&cv, &m); buffer_add(item); count++; cond_signal(&cv); mutex_unlock(&m); } void *consumer(void *arg) { mutex_lock(&m); while (count == 0) cond_wait(&cv, &m); item = buffer_get(); count–; cond_signal(&cv); mutex_unlock(&m); } What can go wrong with this code?
A programmer runs their multithreaded program 1000 times and…
A programmer runs their multithreaded program 1000 times and never observes a bug. What can they conclude?
Deadlock and Race Detection: True/False
Deadlock and Race Detection: True/False
Suppose all three threads are modified to use mutex_trylock…
Suppose all three threads are modified to use mutex_trylock in a loop: each thread attempts to acquire both locks, and if the second trylock fails, it releases the first lock and retries both from the beginning (with no delay). What problem can arise?
Consider a concurrent linked list with hand-over-hand (lock…
Consider a concurrent linked list with hand-over-hand (lock coupling) locking: each node has its own lock, and a thread traversing the list locks the next node before unlocking the current one. Compared to using a single coarse-grained lock for the entire list, what is the main advantage of this approach?