A virtual device uses the synchronization services to coordinate the execution of threads and virtual machines. The following terms are related to synchronization:
Term | Definition |
---|---|
block ID | A programmer-defined 32-bit value associated with one or more blocked threads. |
claim | A request on the part of a virtual device to enter a critical section. |
claim count | A system-defined variable that indicates the number of times the owner of a critical section has claimed the section. |
context switch | The act of turning the CPU's "attention" from one thread to another. |
critical section | A block of program code that accesses a shared system resource. |
critical section owner | The thread or virtual machine that is currently executing in a critical section. |
must-complete count | A system-defined variable that indicates the number of times the owner of a must-complete section has claimed the section. |
must-complete section | A block of code that must be executed in its entirety before any other thread or virtual machine can run. |
mutex | A synchronization object that ensures only one thread at a time can access a shared resource. A thread must have ownership of the mutex before it can access the resource. The thread blocks if the mutex is owned by another thread. |
reentry count | A system-defined variable that indicates the number of times the owner of a mutex has called the _EnterMutex service after gaining ownership. |
semaphore | An synchronization object that maintains a token count between zero and some maximum value. The object's state is signaled when its token count is greater than zero, and not-signaled when its count is zero. |
signal | To increase the token count of a semaphore. |
semaphore token count | The value associated with a semaphore. The initial token count is set when the semaphore is created. A signal operation increments the token count, and a wait operation decrements it. |