
- Operating System Tutorial
- OS - Home
- OS - Overview
- OS - Components
- OS - Types
- OS - Services
- OS - Properties
- OS - Processes
- OS - Process Scheduling
- OS - Scheduling algorithms
- OS - Multi-threading
- OS - Memory Management
- OS - Virtual Memory
- OS - I/O Hardware
- OS - I/O Software
- OS - File System
- OS - Security
- OS - Linux
- OS - Exams Questions with Answers
- OS - Exams Questions with Answers
- Operating System Useful Resources
- OS - Quick Guide
- OS - Useful Resources
- OS - Discussion
Process Synchronization in Windows
Windows operating system is a multithreaded kernel that provide support for real time application and multiprocessors. On uniprocessor system, Windows provides interrupt masks to protect access to global resources. It protects access to global resource using spinlock. The kernel uses spinlocks only to protect short code segment like Solaris. The kernel ensures that while holding a spinlock, a thread will never be preempted.
Windows provide dispatcher object for thread synchronization according to several different mechanisms including mutexes, semaphores, events and timers. The system protects shared data by requiring a thread to gain ownership of a mutex for accessing the data and when it is finished, releases the ownership.
Events acts as a conditional variable to notify a waiting thread when desired condition occurs.
Timers are used to notify one or more thread when time expired.
Dispatcher objects may be either signaled state or a non-signaled state.
Signaled state indicates that an object is available and a thread will not block when acquiring the object.
Non-signaled state indicates that an object is not available and a thread will block when trying to acquire the object.
The below figure shows the state transitions of a mutex lock dispatcher object −
Fig: Mutex Dispatcher Object
- Related Articles
- Process Synchronization in Linux
- Process Synchronization in Solaris
- Process Synchronization in C/C++
- Windows 8 task managers running process
- What are the process states in Windows and Linux?
- Hardware Synchronization
- Thread Synchronization in C#
- Channel synchronization in Golang
- Synchronization of ArrayList in C#
- Method and Block Synchronization in Java
- Threads and Thread Synchronization in C#
- Synchronization and Pooling of processes in Python
- Print numbers in sequence using thread synchronization
- Synchronization and Pooling of processes in C#
- Synchronization of Alternators by Synchroscope
