Inside Windows 7: Arun Kishan - Farewell to the Windows Kernel Dispatcher Lock
Why Stack Overflow recommends it
Stack Overflow users link it when explaining that Windows 7 eliminated the dispatcher lock, which matters for questions about spinlocks, wait functions and scheduler scalability on multicore machines.
Recommended by 0 people across 0 different months, 2009 to 2022.
What it is
A Channel 9 conversation with Microsoft kernel architect Arun Kishan about how Windows 7 removed the single kernel dispatcher lock and replaced it with finer-grained synchronization primitives. The change let the NT scheduler scale from about 64 to 256 processors. This upload is a 2020 re-post of the original Inside Windows 7 interview.
What people said
Cites Jason Evans · 2009-07 · Stack Overflow · on “What's the purpose of Thread.SpinWait method?”
As a side note, Microsoft have gotten rid of the thread dispatcher spinlock mechanism from Windows 7, since it didn't scale well for multicore CPU's. Have a look at this [LINK] : EDIT: As Channel9 is no more (stupid decision in my view), the link I posted no longer works. Instead you can find the video on [this video]
Cites ShadauxCat · 2017-06 · Stack Overflow · on “Windows: Event-based Overlapped IO vs IO Completion Ports, Real World Performance”
Windows Vista that still had the dispatcher lock. Starting with Windows 7, this has been resolved as pointed out in this Channel 9 video [this video] . This answer originates from Harry Johnston as a comment on the question, and with a bit of searching I found some more details that make WaitForMultipleObjects a terrifying thing. The maximum number of objects you can wait for is 64. That alone makes scalability of the WFMO approach pretty much non-existent. But looking further, I found this thread from 1999 [LINK] saying: In NT terms, to enter the wait, a wait block has to be allocated for every object, and each waitblock is queued to the object you're waiting for and then cross-linked to the thr
Cites Badasahog · 2022-07 · Stack Overflow · on “What is the official status of Windows' UMS API?”
Unfortunately it looks like UMS has been officially discontinued. This was confirmed to me by a Microsoft employee with access to the Windows Kernel. This code is currently being shipped in Windows 11: WINBASEAPI BOOL WINAPI EnterUmsSchedulingMode( __in PUMS_SCHEDULER_STARTUP_INFO SchedulerStartupInfo ) { UNREFERENCED_PARAMETER(SchedulerStartupInfo); SetLastError(ERROR_NOT_SUPPORTED); return FALSE; } While it's technically possible that this is just a temporary "hot fix" the more likely explanation according to employees who worked on the feature is that it was removed due to lack of use. source: [LINK] 1:59 PM · Apr 7, 2022 UMS was great fun to develop but a casting error. Folks who thought