Ãëàâíàÿ    Ex Libris    Êíèãè    Æóðíàëû    Ñòàòüè    Ñåðèè    Êàòàëîã    Wanted    Çàãðóçêà    ÕóäËèò    Ñïðàâêà    Ïîèñê ïî èíäåêñàì    Ïîèñê    Ôîðóì   
blank
Àâòîðèçàöèÿ

       
blank
Ïîèñê ïî óêàçàòåëÿì

blank
blank
blank
Êðàñîòà
blank
Butenhof D.R. — Programming with POSIX threads
Butenhof D.R. — Programming with POSIX threads



Îáñóäèòå êíèãó íà íàó÷íîì ôîðóìå



Íàøëè îïå÷àòêó?
Âûäåëèòå åå ìûøêîé è íàæìèòå Ctrl+Enter


Íàçâàíèå: Programming with POSIX threads

Àâòîð: Butenhof D.R.

Àííîòàöèÿ:

This book offers an in-depth description of the IEEE operating system interface standard, POSIX® (Portable Operating System Interface) threads, commonly called Pthreads. Written for experienced C programmers, but assuming no previous knowledge of threads, the book explains basic concepts such as asynchronous programming, the lifecycle of a thread, and synchronization. You then move to more advanced topics such as attributes objects, thread-specific data, and realtime scheduling. An entire chapter is devoted to "real code," with a look at barriers, read/write locks, the work queue manager, and how to utilize existing libraries. In addition, the book tackles one of the thorniest problems faced by thread programmers-debugging-with valuable suggestions on how to avoid code errors and performance problems from the outset.


ßçûê: en

Ðóáðèêà: Computer science/ßçûêè ïðîãðàììèðîâàíèÿ/

Ñòàòóñ ïðåäìåòíîãî óêàçàòåëÿ: Ãîòîâ óêàçàòåëü ñ íîìåðàìè ñòðàíèö

ed2k: ed2k stats

Ãîä èçäàíèÿ: 1997

Êîëè÷åñòâî ñòðàíèö: 381

Äîáàâëåíà â êàòàëîã: 11.11.2005

Îïåðàöèè: Ïîëîæèòü íà ïîëêó | Ñêîïèðîâàòü ññûëêó äëÿ ôîðóìà | Ñêîïèðîâàòü ID
blank
Ïðåäìåòíûé óêàçàòåëü
Abort thread      361
aio_read      230
aio_write      230
Allocation domain      181—183
Amdahl's Law      21—22 297
ANSIC and cancellation      151
ANSIC and deadlocks      298
ANSIC and destructor functions      168
ANSIC and fork handlers      199—200
ANSIC and kernel entities      189—190
ANSIC and priority inversions      300
ANSIC and sequence races      296
ANSIC and signals      217
ANSIC and threading      24—25
ANSIC prototype for Pthread interfaces      310—346
ANSIC, library, runtime      284
ANSIC, void*, use of      311 See
Apple Macintosh toolbox      23
asctime_r (function)      213 339—340
Assembly language and threading      24—25
Assembly line      See Pipeline programming model
Async-signal safe functions      198 234
Asynchronous and UNIX      9—11. See also Memory visibility
Asynchronous cancelability      150—154 249
Asynchronous communication between processes      8
Asynchronous I/O operations      22—23
Asynchronous programming      8—12 15—21
Asynchronous sigwait      227—230
Asynchronous, definition of      2 4
atomicity      61 72—73 93
Attribute objects and detaching      37 43 231
Attribute objects, condition variable attributes      137—138
Attribute objects, definition of      134—135
Attribute objects, mutex attributes      135—136 185
Attribute objects, thread attributes      138—141 174 181 231
Bailing programmers, barriers analogy      242
Bailing programmers, cancellation analogy      143
Bailing programmers, condition variable analogy      71
Bailing programmers, mutex analogy      47—48
Bailing programmers, overview of      3—4
Bailing programmers, thread-specific data analogy      162—163
Barriers and synchronization, extended      242—253. See also Condition variables; Mutexes
Barriers, definition of      241
Barriers, memory      92—95
Barriers, POSIX 1003.1j      358
Blocking threads      42
Broadcast and condition variables      72—76 80—82
Broadcast and memory visibility      89
Broadcast and work crews      109
C language      See ANSI C
Cache lines      304—305
Cancellation, asynchronous      150—154 249
Cancellation, cleanup handlers      147 154—161
Cancellation, deferred      147—150 249
Cancellation, definition of      142—147
Cancellation, fail-safe in POSIX 1003.1j      361
Cancellation, interfaces      323—325
Cancellation, points in XSH5      355—356
Cancellation, points, list of      147—148
Cancellation, state      143—144
Cancellation, type      143—144
Cleanup handlers      147 154—161
Client server programming model      120—129
clock_gettime (function)      13
CLOCK_MONOTONIC (value)      360
Code      See Programs examples
Communication      See Condition variables
Computing overhead and threads      26
Concurrency and parallelism      5—6
Concurrency, and thread implementation      190. See also Asynchronous; Threads
Concurrency, benefit of threading      22—24
Concurrency, control functions, definition of      7—8
Concurrency, definition of      4—5
Concurrency, level in XSH5      351—353
Concurrency, serialization, avoidance of      302—303
Condition variables and blocked threads      42
Condition variables and client-server programming model      121
Condition variables and pipeline programming model      101
Condition variables and semaphores      237
Condition variables and thread-safety      6—7
Condition variables and work crew programming model      107. See also Barriers; Mutexes; Predicates; Signals
Condition variables, as a synchronization mechanism      4 8 30 70—73
Condition variables, attributes      137—138
Condition variables, broadcasting      81—82
Condition variables, creating and destroying      74—76
Condition variables, definition of      8
Condition variables, interfaces      319—322
Condition variables, sharing, avoidance of      300
Condition variables, signaling      81—82
Condition variables, wait clock (POSIX 1003.1j)      359—361
Condition variables, waiting on      77—81
Condition variables, waking waiters      81—82
Contention scope      181—183
Context structure      6—7
critical sections      46
ctime_r (function)      213 340
DCE threads      154 290 353
Deadlocks and lock hierarchy      63—69
Deadlocks and signals      215
Deadlocks and thread-safe libraries      284—285. See also Priority inversions
Deadlocks, avoidance of      26—27 297—299
Debugging, threads, and costs of threading      13 27—28
Debugging, threads, cache lines      304—305
Debugging, threads, concurrent serialization, avoidance of      302—303
Debugging, threads, condition variable sharing, avoidance of      300
Debugging, threads, deadlocks, avoidance of      297—299
Debugging, threads, introduction to      13
Debugging, threads, memory corrupters, avoidance of      301
Debugging, threads, mutexes, right number of      303—304
Debugging, threads, priority inversions, avoidance of      299—300
Debugging, threads, thread inertia, avoidance of      291—293
Debugging, threads, thread race, avoidance of      293—297
Debugging, threads, tools for      290 302.
Default mutexes      349—351
Deferred cancelability      147—150 249
Destructor functions      167—172
Detach and multiple threads      17—19
Detach and thread attributes      138—141
Detach, creating and using threads      37—39
Detach, termination      43
Digital UNIX, detecting memory corrupters      301
Digital UNIX, mutex error detection and reporting      311
Digital UNIX, programming examples, introduction to      12—13
Digital UNIX, SIGEV-THREAD implementation      231
Digital UNIX, thread debugging library      290
Dijkstra, Edsger W.      47
Directory searching function      212
EAGAIN (error)      314 318 326 344 353
EBUSY (error)      49 58 65 318—321 345
EDEADLK (error)      32 318—319 346
EINTR (error)      346
EINVAL (error)      312—326 343—346 351—355
Encapsulation      24 75
ENOMEM (error)      313 317—321 326 336
ENOSPC (error)      345
ENOSYS (error)      312—316 344—346
ENXIO (error)      355
EOVERFLOW (error)      355
EPERM (error)      318 345
ERANGE (error)      210 341—342
errno      31—34 117 228
errno.h (header file)      32—33
errno_abort      33—34
Error detection and reporting      310—311
Errorcheck mutexes      349—351
Errors, EAGAIN      314 318 326 344 353
Errors, EBUSY      49 58 65 318—321 345
Errors, EDEADLK      32 318—319 346
Errors, EINTR      346
Errors, EINVAL      312—326 343—346 351—355
Errors, ENOMEM      313 317—321 326 336
Errors, ENOSPC      345
Errors, ENOSYS      312—316 344—346
Errors, ENXIO      355
Errors, EOVERFLOW      355
Errors, EPERM      318 345
Errors, ERANGE      210 341—342
Errors, ESPIPE      355
Errors, ESRCH      32 314 323 343
Errors, ETIMEDOUT      78 80 86 322
errors.h (header file)      13
err_abort      33—34
ESPIPE (error)      355
ESRCH (error)      32 314 323 343
ETIMEDOUT (error)      78 80 86 322
Events and concurrency      23—24
Events as a synchronization mechanism      8
exec      204
Execution context, architectural overview      30
Execution context, definition of      7—8
fgets (function)      14
flockfile (function)      121 205—207 336—337
Fork in asynchronous program      15 19
Fork, definition of      197—198
Fork, handlers      199—203 336
FTHREAD_MUTEX_DEFAULT (value)      349—351
ftrylockfile (function)      207 337
funlockfile (function)      121 205—207 337
Gallmeister, Bill      294
getc (function)      207
getchar (function)      207
getchar_unlocked (function)      207—209 338
getc_unlocked (function)      207—208 337
getgrgid_r (function)      341
getgrnam_r (function)      341
getlogin_r (function)      210 339
getpwnam_r (function)      342
getpwuid_r (function)      342
gmtime_r (function)      340
Group and user database function      213—214
Hard realtime      172—173
I/O operations and blocked threads      42
I/O operations and cancellation points      148—149
I/O operations and concurrency      22—23
I/O operations, candidate for threads      29
I/O operations, parallel in XSH5      354—355
inheritsched (attribute)      138—141 176
Initial (main) thread and creation      40—42
Initial (main) thread, initialization, onetime      131—134
Initial (main) thread, overview of      36—37
Initial (main) thread, signal mask      216
Initialization      131—134
Invariants and condition variables      71 75
Invariants and mutexes      61—64. See also Predicates
Invariants, definition of      45—46
Join      37—39 139 145
JPOSIX_THREAD_ATTR_STACKSIZE (option)      139 308 348
Kernel entities and contention scope thread      182
Kernel entities, implementation of      189
Kernel entities, many to few (two level)      193—195
Kernel entities, many to one (user level)      190—191
Kernel entities, one to one (kernel level)      191—193
Kernel entities, setting in XSH5      351—353
Libraries for debugging      290
Libraries, implementation      190
Libraries, legacy      285—287
Libraries, thread-safe      283—285
Light weight processes      1
limits.h (file header)      308
localtime_r (function)      340
LWP      See Kernel entities
Main (initial) thread and creation      40—42
Main (initial) thread, initialization, one time      131—134
Main (initial) thread, overview of      36—37
Main (initial) thread, signal mask      216
Many to few (two level) implementation      193—195
Many to one (user level) implementation      190—191
Memory, barriers      92—95
Memory, coherence      47 92
Memory, conflict      94
Memory, corrupters, avoidance of      301
Memory, leaks      198
Memory, ordering      48 90 92—93
Memory, stack guard size in XSH5      353—354
Memory, visibility      26 88—95 294
Message queues      30
Microsoft Windows      23
MIMD (multiple instruction, multiple data)      107
MPP (Massively Parallel Processor)      5
Multiprocessors and allocation domain      182
Multiprocessors and concurrency      1 4—5
Multiprocessors and deadlock      65
Multiprocessors and parallelism      5—6 20—22
Multiprocessors and thread implementation      191—193
Multiprocessors and thread inertia      291—293
Multiprocessors and thread race      293—297
Multiprocessors, candidate for threads      29
Multiprocessors, definition of      5
Multiprocessors, memory architecture      91—95
Multithreaded programming model      See Threads
Mutexes and atomicity      61 72—73
Mutexes and blocked threads      42 51
Mutexes and client-server programming model      121
Mutexes and deadlocks      26—27 63 66—69 297—299
Mutexes and invariants      61—64
Mutexes and pipeline programming model      100—101
Mutexes and thread-safety      6—7 62
Mutexes and work crew programming model      108—110. See also Barriers; Condition variables; Memory visibility;
Mutexes, and semaphores      236
Mutexes, as a synchronization mechanism      8 30
Mutexes, attributes      135—136
Mutexes, creating and destroying      49—51
Mutexes, definition of      8 47—49
Mutexes, interfaces      316—319
Mutexes, lock chaining      70
Mutexes, lock hierarchy      63—70
Mutexes, locking and unlocking      52—58
Mutexes, multiple, use of      63—64
Mutexes, non-blocking locks      58—61
Mutexes, number of      303—304
Mutexes, priority ceiling      186—187 300
Mutexes, priority inheritance      186—188 300 307
Mutexes, priority inversions      26—27 63 184—186 299—300
Mutexes, priority-aware      185—186
Mutexes, sizing of      62—63
Mutexes, types in XSH5      349—351
Mutually exclusive      See Mutexes
Network servers and clients      22—23
Normal mutexes      349—351
NULL (value)      167
Object oriented programming and threading      25
One to one (kernel level) implementation      191—193
opaque      31 36 163
Open Software Foundation's Distributed Computing Environment      154
Paradigms      25
Parallel decomposition      See Work crews
Parallelism and asynchronous programming      11—12
Parallelism and thread-safety      6—7. See also Concurrency
Parallelism, benefit of threading      20—25
Parallelism, candidate for threads      29
Parallelism, definition of      5—6
Performance and mutexes      62—63
Performance as a benefit of threading      20—22
Performance as a cost of threading      26
Performance, problems, avoidance of      302—305
Pipeline programming model      97—105
Pipes      30
Polymorphism      24
POSIX 1003, 1 (ISO/IEC 9945-1:1996)      29—30
POSIX 1003, 1-1990      31 209
1 2 3
blank
Ðåêëàìà
blank
blank
HR
@Mail.ru
       © Ýëåêòðîííàÿ áèáëèîòåêà ïîïå÷èòåëüñêîãî ñîâåòà ìåõìàòà ÌÃÓ, 2004-2024
Ýëåêòðîííàÿ áèáëèîòåêà ìåõìàòà ÌÃÓ | Valid HTML 4.01! | Valid CSS! Î ïðîåêòå