Following Contains Questions on Scheduling, Threads, and Synchronization
Provide three programming examples in which multithreading provides
better performance than a single-threaded solution
Using Amdahl’s Law, calculate the speedup gain of an application that
has a 60 percent parallel component for (a) two processing cores and (b)
four processing cores.
A web browser might have one thread display images or text while another thread retrieves data from the network.
What are two differences between user-level threads and kernel-level
threads? Under what circumstances is one type better than the other?
Describe the actions taken by a kernel to context-switch between kernel level threads.
What resources are used when a thread is created? How do they differ
from those used when a process is created?
What is thread-safety in multithreaded programming?
Question on Semaphores:
Which of the following components of program state are shared across
threads in a multithreaded process?
a. Register values
b. Heap memory
c. Global variables
d. Stack memory
Under what circumstances does a multithreaded solution using multiple kernel threads provide better performance than a single-threaded
solution on a single-processor system?
Can a multithreaded solution using multiple user-level threads
achieve better performance on a multiprocessor system than on a
single-processor system? Explain
Is it possible to have concurrency but not parallelism? Explain
Task vs. Data Parallelism
Priority Inversion (and its sol)
CPU Scheduling Relation:
CPU and Process affinity:
Where to use what synchronization tool:
Why spinlocks are not appropriate for single-processor systems yet are often used in multiprocessor systems.