Lecture 16: Concurrency(wip22)

 0    31 flashcards    up804653
download mp3 print play test yourself
 
Question English Answer English
what is Concurrency
start learning
Concurrency: the existence of multiple simultaneously active execution contexts.
what levels can Concurrency
start learning
Machine instruction level, Statement level, Subprogram level, Program level
what is multitasking, in relation to concurrency
start learning
When concurrency exists between multiple programs on a single computer, we call it multitasking. e.g., the way of most OSs controls multiple tasks.
what is multi threading, in relation to concurrency
start learning
When a program implements concurrency on a single computer, we called the program concurrent/parallel program. Such a program is said to be multithreaded
what is distributed program, in relation to concurrency
start learning
When a program implements concurrency on multiple computers, we called it a distributed program – a program of which different pieces are on computers connected by a network.
describe task, process or thread
start learning
A task, process or thread of a program is a program unit that can be in concurrent execution with other program units.
how does A task/processes/thread differs from ordinary subprograms
start learning
[1] A process/task may be implicitly started. [2] When a multithreaded program starts the execution of a thread, the rest of the program is not necessarily suspended. [3] When a thread’s execution is completed, control may not return to the caller.
When is a task considers disjoint
start learning
A task/thread is disjoint if it does not communicate with (or affect the execution of) any other tasks in the program in any way, otherwise it is a joint task and needs to be synchronised.
what must be done with joint tasks?
start learning
they must be synchronised
why is Inter-thread communication necessary for joint tasks
start learning
[1] exclusive access to some resource, [2] to exchange data with another thread.
what are the problems with synchronised joint tasks?
start learning
If not synchronised, joint tasks can lead to race conditions and deadlocks.
what are Race Condition
start learning
A race condition occurs when the resulting value of a variable depends on the execution order of two or more threads.
What is a deadlock?
start learning
A deadlock is a situation in which two or more competing threads are each waiting for the other to finish while holding resources that the other needs, and thus neither ever does.
what 4 conditions must ALL be true for a deadlock
start learning
Mutual exclusion, Hold and wait, No preemptionl, Circular wait
Describe Mutual exclusion
start learning
Mutual exclusion: Resources may be used only under mutual exclusion – only one process can use the resource at any time.
describe Hold and wait
start learning
Hold and wait: A process is allowed to hold resources while waiting for others which are being held by other processes.
Describe No preemption
start learning
No preemption: Resources cannot be forcibly removed once it is granted to a process.
Describe Circular wait
start learning
Circular wait: A circular chain of threads exists in which each thread holds a resource needed by the next thread in the chain.
Synchronisation requires communication among the tasks, which can be provided by?
start learning
[1] shared nonlocal variables, [2] message passing, or [3] special data types – semaphores & monitors
what is the producer-consumer problem
start learning
one task produces something that the other task has to consume.
describe Cooperation Synchronization
start learning
Two (or more) tasks have to work in a cooperative way: [1] the second task must wait for the first task to finish execution before it may proceed. [2] Usually, there are more than one unit of resources to be shared.
explain how a shared buffer contributes to Cooperation Synchronization
start learning
[1] Both must use buffer exciv'ly at any 1 time but in a cop'ative way[2] the read thread A needs the buffer to be "not empty" state before it can read. If buffer empty must wait. [3] the write thread B writes the buffer if it is not full. else must wait
describe Competition Synchronization
start learning
Competition synchronisation between tasks is required when both tasks require the use of the same, single unit, resource that must not be simultaneously used
give an example of a Competition Synchronization
start learning
E.g., a shared counter, a bank account, etc., where simultaneously access to the same resources, e.g., amount of credit, should never happen.
what is a semeohore used for
start learning
Semaphores can be used to implement both cooperation and competition synchronizations
what is are monitors
start learning
Monitors wrap the resources with the mechanism for exclusive access control and implement competition synchronization.
what are the components of a Semaphore
start learning
[1] a counter to track units of avai'le res's [2] a queue for storing the processes that req't access to the res's [3]2 operations, wait (or P) and signal (or release, or V).
what is the purpose of the operations of a semapore
start learning
two operations, wait (or P) and signal (or release, or V). The processes have to access the shared resources through these two operation – calling wait to request access and calling signal to release.
What happens when a process needs access to the resources guarded with a semaphore when it calls the wait() method.
start learning
[1] the method decrements the value of counter 1 [2] if count val >=0, access to the res granted to the calling process & it on the ready list [3] if coun val<0 the calling process/thread is added to the semaphore's waiting queue the thread is blocked
when is the signal() method called
start learning
When a process finishes the use of the resources, it must relinquish the resources by calling the signal() method.
What does the signal() method do
start learning
[1] increments the value of semaphore counter by 1. [2] if the counter value equals or less than zero (meaning there are threads on waiting queue), transfers a blocked thread from the semaphore's waiting queue to the ready list.

You must sign in to write a comment