|
|
Àâòîðèçàöèÿ |
|
|
Ïîèñê ïî óêàçàòåëÿì |
|
|
|
|
|
|
|
|
|
|
Duffy J. — Concurrent Programming on Windows |
|
|
Ïðåäìåòíûé óêàçàòåëü |
Mutexes, acquiring and releasing 216—217
Mutexes, avoiding registering waits for 376
Mutexes, care when using APCs with 210
Mutexes, creating and opening 212—216
Mutexes, defined 42
Mutexes, designing library locks 874
Mutexes, example of semaphores and 224—226
Mutexes, overview of 211—212
Mutexes, process shutdown and 564 568 571
Mutexes, signaled/nonsignaled state transition 186
Mutexes, Vista thread pool completion tasks 350—351
mutexSecurity argument 214
Mutual exclusion mechanisms, avoiding deadlocks with 576
Mutual exclusion mechanisms, causing deadlocks 575
Mutual exclusion mechanisms, data synchronization see "Critical sections Win32" "Locks CLR"
Mutual exclusion mechanisms, Dekker's and Dijkstra's algorithm 50—53
Mutual exclusion mechanisms, executing interlocked operations 492—493
Mutual exclusion mechanisms, hardware CAS instructions 55—58
Mutual exclusion mechanisms, implementing critical regions 47—48
Mutual exclusion mechanisms, Lamport's bakery algorithm 54—55
Mutual exclusion mechanisms, Peterson's algorithm 53—54
Mutual exclusion mechanisms, strict alternation 49—50
MWMO-WAITALL value 202
m_head 535 537
m_value class 521—527
NA (neutral apartments) 834—835
Natural scalability, of algorithms 760—761
Nested parallelism 757
Nesting loops, data parallelism and 677—678
Neutral Apartments (NA) 834—835
new Singleton ( ) statement 521 524
NodeInfoArray, WCT 596
Non-const pointer 36—38
Non-Uniform Memory Access (NUMA) machines 178—179
Nonatomic software 22
Nonblocking programming see also "Lock-free data structures"
Nonblocking programming, ABA problem 536—537
Nonblocking programming, defined 477
Nonblocking programming, implementing custom nonblocking stack 534—536
Nonblocking programming, parallel containers and 615
Nonblocking programming, Win32 singly linked lists 538—540
Nonlinear pipelines 711
Nonlocal transfer of control, in Windows 84
Nonsignaled events 67
NotBuffered merge, PLINQ 913
NP-hard problems, parallelism 718
NULL value, CreateThread failure 92
NUMA (Non-Uniform Memory Access) machines 178—179
Object header inflation 284—285
Object headers, CLR objects 283—285
Object invariants 548
object state argument, TPL 890
Objects, overlapped 788—792
Obstruction freedom 518
Online debugging symbols 139
OpenEvent(Ex) APIs 228—230
OpenExisting method, closing mutexes 215—216
OpenExisting method, opening events 230
OpenExisting method, opening existing semaphore 221
OpenSemaphore 220—222
OpenThread 95
OpenThreadWaitChainSession, WCT 595—596
optimistic concurrency 625—626
Order preservation, PLINQ 914—915
Orderly shutdown 569—570
Orphaned locks 45 561—562
Orphaning, abandoned mutexes and 218
OS threads 879—880
OutOfMemoryException 143
Output dependence 485—486
Overflow, stack 140—145
Overlapped class 369—370
Overlapped class, CLR thread pool I/O completion ports 369—371
Overlapped I/O see also "Asynchronous I/O"
Overlapped I/O, overlapped objects 788—792
Overlapped I/O, overview of 786—788
Overtaking race 654
Ownership, asserting lock 872
Ownership, CLR thread pool and 377
Ownership, debugging CLR monitor ownership 285—287
Ownership, debugging legacy RWLs 303—304
Ownership, defined 32
Ownership, mutex 211—212
Ownership, overview of 33—34
Ownership, Vista thread pool 352—353
P (taking), semaphores 42
P/Invoking 881
Pack method, CLR thread pool 370
PAGE_GUARD attribute 134 137
Parallel class, TPL 904—908
Parallel containers 613—655
Parallel containers, approaches to 614—616
Parallel containers, coordination containers 640—650
Parallel containers, fine-grained locking 616—632
Parallel containers, lock-free data structures 632—640
Parallel containers, phased computations with barriers 650—654
Parallel containers, sequential containers vs. 613—614
Parallel execution, cancellation 729—731
Parallel execution, concurrent exceptions 721—729
Parallel execution, data parallelism see "Data parallelism"
Parallel execution, message-based parallelism 719—720
Parallel execution, overview of 657—659
Parallel execution, task parallelism see "Task parallelism"
Parallel extensions to .NET 887—930
Parallel extensions to .NET, concurrent collections 924—929
Parallel extensions to .NET, further reading 930
Parallel extensions to .NET, overview of 887—888
Parallel extensions to .NET, parallel LINQ 910—915
Parallel extensions to .NET, synchronization primitives see "Synchronization primitives"
Parallel extensions to .NET, TPL see "TPL (task parallel library)"
Parallel hardware architecture 736—756
Parallel hardware architecture, cache coherence 742—750
Parallel hardware architecture, cache layouts 740—742
Parallel hardware architecture, locality 750—751
Parallel hardware architecture, memory hierarchy 739
Parallel hardware architecture, overview of 736
Parallel hardware architecture, profiling in Visual Studio 754—756
Parallel hardware architecture, sharing access to locations 751—754
Parallel hardware architecture, SMP, CMP, and HT 736—738
Parallel hardware architecture, superscalar execution 738—739
Parallel hardware architecture, UMA vs. NUMA 740
Parallel LINQ see "PLINQ (Parallel LINQ)"
Parallel merge-sort 681—684
Parallel quick-sort 681
Parallel traversal 613
ParallelEnumerable class, PLINQ 910—912
Parallelism, deciding to igo paralleli 756—758
Parallelism, defined 80
Parallelism, designing reusable libraries 866—867
Parallelism, layers of 8—10
Parallelism, measuring improvement due to 758
Parallelism, overview of 5
Parallelism, structured 70—71
ParameterizedThreadStart 99
Parents, task parallel library 895—897
Partitioning 912
PE (portable executable) image 131—132
peb (!) command 146
PEB (process environment block), within TEB 145
PeekMessage 198—200
Performance counters, querying thread state 156—157
Performance, Amdahlis Law 762—764
Performance, critical paths 764—765
Performance, deciding to igo paralleli 756—758
Performance, designing reusable libraries 881—884
Performance, garbage collection and scalability 766—767
Performance, Gustafsonfs Law 764
Performance, interlocked operations 493 505—506
Performance, load imbalances and 765—766
Performance, measuring improvement due to parallelism 758
| Performance, measuring speedups and efficiency 760—762
Performance, Mellor — Crummey — Scott (MSC) locks 778—781
Performance, natural scalability vs. speedups 760—761
Performance, overview of 735—736
Performance, parallel hardware architecture see "Parallel hardware architecture"
Performance, ReaderWriterLockSlim 299
Performance, recursive lock acquires 872
Performance, speedups and efficiencies and 756
Performance, spin waiting and 766—772
Performance, spin-only locks 772—778
Performance, tuning quantum settings 163
Performance, types of speedups 758—760
Periodic polling 730
Persistent threads, Vista thread pool 352—353
Pervasive concurrency 865
Peterson's algorithm 53—54
Phased computations with barriers 650—654
pi-calculus 72
Pipelines, defined 541
Pipelines, generalized data structure 712—716
Pipelines, load balanced 716—717
Pipelines, overview of 709—712
Pipelines, pipelining output of futures or promises 698—702
PLINQ (Parallel LINQ), buffering and merging 912—914
PLINQ (Parallel LINQ), defined 887
PLINQ (Parallel LINQ), order preservation 914—915
PLINQ (Parallel LINQ), overview of 910—912
Pointer size values, store atomicity and 487
Polling, asynchronous I/O completion 798—800
Polling, canceling periodic 730
Pollution, thread 352 377
Portable executable (PE) image 131—132
Postconditions, as invariants 548
Preconditions, as invariants 547
Predictability, GUI 836
Predictability, of responsive GUIs 836
preemptive scheduling 83 154—155
Prerender event, ASP.NET 421
Priorities, custom thread pool with 387—391
Priorities, lock reliability and 878
Priorities, quantum adjustments and 164—167
Priorities, thread scheduling 159—163
Priority boosts 84 232—234
Priority class 159—160
Priority inheritance 609
Priority inversion 608—609 610 878
Priority level 159
Priority, Thread class 160
PriorityClass, Process 159
PriorityLevel, ProcessThread 160—161
Private state, shared state vs. 15—19
Privatization 15—16 33
ProbeForStackSpace method 145
ProbeForSufficientStack 144 149
Probes, stack 143—145
Process affinity masks, CPU affinity 173—174
Process class 159 175
Process environment block (PEB) 145
Process exit, threads 113—115
Process isolation 31
Process shutdown, locks and 561—571
Process shutdown, locks and, managed code 568
Process shutdown, locks and, managed code and 569—571
Process shutdown, locks and, overview of 561—563
Process shutdown, locks and, Win32: weakening and termination 563—568
Processes, assigning CPU affinity to 171—175
Processes, Windows vs. UNIX 80—81
ProcessExit event, CLR 569—570
ProcessorAffinity, CPU affinity 175
Processors, concurrency in modern 5
Processors, creating fences at level of 512—515
Processors, relationship between fibers, threads and 438
ProcessPriorityClass 159
ProcessThread class 98 160—161
Producer/consumer containers 614
producer/consumer relationship 641—642
Profilers, thread suspension in 170
Program order 480—484
Programming Windows (Petzold) 198
Programs, naturally scalable 5
progress reporting 425—426
ProgressChangedEventHandler 426
Promise style future 900
Promises, building dataflow systems 693—695
Promises, pipelining output of 698—702
Properties, ReaderWriterLockSlim 295
Pseudo-handles, CreateThread 94—95
PTEB structure 146
Publication, data ownership and 33
Pulse, .NET Framework monitors 310
Pulse, missed wake-ups 598—601
Pulse, two-step dance problems 608
PulseAll, .NET Framework monitors 310
PulseAll, missed wake-ups 598—601
PulseAll, two-step dance problems 608
PulseEvent API 231
Pulsing, .NET Framework monitors 310
Pump messages, GUI and COM 195—204
Pump messages, GUI and COM, CoWaitForMultipleHandles API 202—203
Pump messages, GUI and COM, deciding when to pump messages 203—204
Pump messages, GUI and COM, MsgWaitForMultipleObjects(Ex) 198—201
Pump messages, GUI and COM, overview of 195—198
quantums 83 163—167
QueuellserWorkItem, APM 402—403
QueuellserWorkItem, CLR thread pool 371
QueuellserWorkItem, legacy thread pool 354—356 363
QueuellserWorkItem, ThreadPool class 364—366
QueueWork functions, user-mode scheduler 463—464
Race conditions (data races) 546—555
Race conditions (data races) in library code 874—875
Race conditions (data races), benign 553—555
Race conditions (data races), composite actions and 550—553
Race conditions (data races), concurrency causing 10
Race conditions (data races), eliminating with critical regions 40
Race conditions (data races), famous bugs due to 610
Race conditions (data races), inconsistent synchronization and 26 549—550
Race conditions (data races), invariants and 548
Race conditions (data races), overview of 546—549
Race conditions (data races), patterns of critical region usage 43—45
Race conditions (data races), reasons for 26—27
Race conditions (data races), two-step dance problems due to 607—608
Radix sort, algorithms 681
Random access, linked lists 621
Randomized backoff 602—603
RCWs (runtime callable wrappers) 575
Reactive systems 61
Read-only synchronization 881—882
Read/read hazards 28 34
Read/write hazards 28
Reader/writer locks see "RWLs (reader/writer locks)"
ReaderWriterLock for read-only synchronization 881—882
ReaderWriterLock, as legacy version 300—304
ReaderWriterLock, motivating development of new lock 299—300
ReaderWriterLock, overview of 293—294
ReaderWriterLock, reliability limitation 298
ReaderWriterLockSlim, creating fences using 514
ReaderWriterLockSlim, motivation for 299—300
ReaderWriterLockSlim, overview of 293—294
ReaderWriterLockSlim, process shutdown 565
ReaderWriterLockSlim, recursive acquires 297—298
ReaderWriterLockSlim, reliability limitation 298—299
ReaderWriterLockSlim, three modes of 294—295
ReaderWriterLockSlim, upgrading 296—297
ReadFile 792
readonly fields, single assignment 35—36
readonly keyword, single assignment 35
Ready thread state 155
Recursion, avoiding lock 872
Recursion, detecting in spin waiting 773—775 777
Recursion, reentrancy and 555—558
|
|
|
Ðåêëàìà |
|
|
|