Chapter 13 Flashcards
When is a concurrent program scalable?
when the speed of its execution increases when more processors are available.
What are the motivations to use on concurrent machines?
Who suggested a categorization of computer architectures?
How many types of computer architectures are there?
What level of program concurrency is best supported by MIMD computers?
What is the producer-consumer problem?
What is the job of a scheduler?
What is a thread of control in a program?
Why are coroutines called quasi-concurrent?
What is a virtually multithreaded program?
What are four reasons for studying language support for concurrency?
What is a heavyweight task? What is a lightweight task.
Define task, synchronization, competition, and cooperation synchronization, liveness, race condition, and dead lock.
What kind of tasks do not require any kind of synchronization?
Describe the five different states in which a task can be.
new, ready, running, blocked, dead
What is a task descriptor?
a data structure that stores all of the relevant information about the execution state of a task.
In the context of language support for concurrency, what is a guard?
? a linguistic device that allows the guarded code to be executed only when a specified condition is true.
What is the purpose of a task-ready queue?
Mention two programming languages that support concurrency.
What is a guard in a semaphore?
What is a binary semaphore? What is a counting semaphore?
Binary Semaphore: a semaphore that requires only a binary-valued counter
Counting Semaphore: has a counter, but no queue for storing thread descriptors
What are the primary problems with using semaphores to provide synchronization?
What advantages do monitors have over semaphores?
In what three common languages can monitors be implemented?