GradePack

    • Home
    • Blog
Skip to content
bg
bg
bg
bg

Author Archives: Anonymous

What is the primary advantage of a thread context switch ove…

What is the primary advantage of a thread context switch over a process context switch?

Read Details

For questions 29–30, consider the following producer/consum…

For questions 29–30, consider the following producer/consumer implementation using a shared bounded buffer of size 1. There are two producer threads and two consumer threads. Assume the mutex and condition variable are correctly initialized. The variable count tracks the number of items in the buffer (initially 0). int count = 0; mutex_t m; cond_t cv; void *producer(void *arg) { while (1) { mutex_lock(&m); // P1 if (count == 1) // P2 cond_wait(&cv, &m); // P3 count = 1; // P4 fill_buffer(); // P5 cond_signal(&cv); // P6 mutex_unlock(&m); // P7 } } void *consumer(void *arg) { while (1) { mutex_lock(&m); // C1 if (count == 0) // C2 cond_wait(&cv, &m); // C3 count = 0; // C4 use_buffer(); // C5 cond_signal(&cv); // C6 mutex_unlock(&m); // C7 } }

Read Details

The wait(cv, lock) operation atomically releases the lock an…

The wait(cv, lock) operation atomically releases the lock and puts the calling thread to sleep. When the thread is later woken up, it re-acquires the lock before wait() returns.

Read Details

What is the key advantage of implementing thread_join() usin…

What is the key advantage of implementing thread_join() using a condition variable plus a done flag, compared to simply spinning on the done flag?

Read Details

With a lock-free data structure, killing one thread will not…

With a lock-free data structure, killing one thread will not cause a deadlock. With locks, killing a thread can prevent further progress.

Read Details

For questions 23–24, consider the following code snippet: i…

For questions 23–24, consider the following code snippet: int bytesLeft = MAX_HEAP_SIZE; cond_t c; mutex_t m; void* allocate(int size) { mutex_lock(&m); while (bytesLeft < size) cond_wait(&c, &m); void *ptr = ...; // get mem from heap bytesLeft -= size; mutex_unlock(&m); return ptr; } void free(void *ptr, int size) { mutex_lock(&m); bytesLeft += size; cond_signal(&c); mutex_unlock(&m); }

Read Details

Replacing signal() with broadcast() (an operation that wakes…

Replacing signal() with broadcast() (an operation that wakes all waiting threads rather than the first one) in a correct condition variable program can never introduce a correctness bug; it can only affect performance.

Read Details

In 1 – 2 sentences, explain Socrates’s approach to philosoph…

In 1 – 2 sentences, explain Socrates’s approach to philosophy.

Read Details

A nurse is providing discharge instructions about diet choic…

A nurse is providing discharge instructions about diet choices to a client with alterations in perfusion. Which statement is inappropriate for the nurse to include in the discharge instructions?

Read Details

Frog species in the genus Rana are separated by reproductive…

Frog species in the genus Rana are separated by reproductive barriers. Explain how behavioral isolation maintains species boundaries, and compare it to temporal isolation.

Read Details

Posts pagination

Newer posts 1 … 19 20 21 22 23 … 80,413 Older posts

GradePack

  • Privacy Policy
  • Terms of Service
Top