Àâòîðèçàöèÿ 
		         
		        
					
 
		          
		        
			          
		        
			        Ïîèñê ïî óêàçàòåëÿì 
		         
		        
			        
					 
		          
		        
			          
			
			         
       		 
			          
                
                    
                        
                     
                  
		
			          
		        
			          
		
            
	     
	    
	    
            
		
                    Butenhof D.R. — Programming with POSIX threads 
                  
                
                    
                        
                            
                                
                                    Îáñóäèòå êíèãó íà íàó÷íîì ôîðóìå    Íàøëè îïå÷àòêó? 
 
                                
                                    Íàçâàíèå:   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.
ßçûê:  Ðóáðèêà:  Computer science /ßçûêè ïðîãðàììèðîâàíèÿ /Ñòàòóñ ïðåäìåòíîãî óêàçàòåëÿ:  Ãîòîâ óêàçàòåëü ñ íîìåðàìè ñòðàíèö ed2k:   ed2k stats Ãîä èçäàíèÿ:  1997Êîëè÷åñòâî ñòðàíèö:  381Äîáàâëåíà â êàòàëîã:  11.11.2005Îïåðàöèè:  Ïîëîæèòü íà ïîëêó  |
	 
	Ñêîïèðîâàòü ññûëêó äëÿ ôîðóìà  | Ñêîïèðîâàòü ID 
                                 
                             
                        
                     
                 
                                                                
			          
                
                    Ïðåäìåòíûé óêàçàòåëü 
                  
                
                    
                        POSIX 1003, 14 (multiprocessor profile)       30 182 361—362 POSIX 1003, 1b-1993 (realtime) and condition variables 3.94 80 POSIX 1003, 1b-1993 (realtime) and semaphores 236—237 345 POSIX 1003, 1b-1993 (realtime) and signals 230—232 POSIX 1003, 1b-1993 (realtime), thread concepts 29—30 POSIX 1003, 1b-1993 (realtime), void *, use of 311 POSIX 1003, 1c-1995 (threads) and cancellation 154 POSIX 1003, 1c-1995 (threads) and realtime scheduling 173 POSIX 1003, 1c-1995 (threads), cancellation, interfaces 323—325 POSIX 1003, 1c-1995 (threads), condition variables, interfaces 319—322 POSIX 1003, 1c-1995 (threads), error detection and reporting 310—311 POSIX 1003, 1c-1995 (threads), fork handlers, interfaces 336 POSIX 1003, 1c-1995 (threads), interfaces, overview 309—310 POSIX 1003, 1c-1995 (threads), limits 308—309 POSIX 1003, 1c-1995 (threads), mutexes, interfaces 316—319 POSIX 1003, 1c-1995 (threads), options 307—308 POSIX 1003, 1c-1995 (threads), realtime scheduling, interfaces 326—335 POSIX 1003, 1c-1995 (threads), semaphores, interfaces 345—346 POSIX 1003, 1c-1995 (threads), signals, interfaces 342—345 POSIX 1003, 1c-1995 (threads), stdio, interfaces 336—338 POSIX 1003, 1c-1995 (threads), thread concepts 29—30 POSIX 1003, 1c-1995 (threads), thread-safe, interfaces 338—342 POSIX 1003, 1c-1995 (threads), thread-specific data, interfaces 325—326 POSIX 1003, 1c-1995 (threads), threads, interfaces 311—316 POSIX 1003, 1c-1995 (threads), void *, use of 311 POSIX 1003, 1j (additional realtime extension), barriers 249 356—358 POSIX 1003, 1j (additional realtime extension), read/write locks 358 POSIX 1003, 1j (additional realtime extension), spinlocks 359 POSIX 1003, 1j (additional realtime extension), thread abort 361 POSIX 1003, 1j (additional realtime extension), wait clock, condition variable 359—361 POSIX 1003. li-1995 (corrections to 1003, 1b-1993) 29—30 POSIX, architectural overview 30 POSIX, conformance document 307 308 POSIX, error checking 31—34 POSIX, realtime scheduling options 173 POSIX, signal mechanisms 40—41 81—82 POSIX, types and interfaces 30—31 POSIX_PRIOJNHERIT 186 POSIX_PRIO_NONE (value) 186 POSIX_PRIO_PROTECT 186 pread (function) 354—355 Predicates, definition of 46 Predicates, loose 80 Predicates, wakeup 80—81 Predicates, waking waiters 81. See also Condition variables printf (function) 15 prioceiling (attribute) 135—138 Priority ceiling 186—187 300 Priority inheritance and POSIX 1003.1c options 307 Priority inheritance, definition of 186 Priority inheritance, mutexes 188 Priority inheritance, priority inversion, avoidance of 300 Priority inversions, as a cost of threading 26—27 Priority inversions, as a realtime scheduling problem 184. See also Deadlocks Priority inversions, avoidance of 299—300 Priority inversions, mutexes and priority scheduling 63 Process contention 181—185 Process exit 204 Processes, asynchronous 8 Processes, lightweight 1 Processes, threads, compared to 10 20 Processes, variable weight 1 Processors and blocked threads 42 Processors and thread implementation 190—195. See also Multiprocessors; Uniprocessors Programs, examples of barriers 245—248 250—253 Programs, examples of cancellation 145—161 Programs, examples of client server 121—129 Programs, examples of condition variables, creating and destroying 74—76 Programs, examples of condition variables, timed condition wait 83—88 Programs, examples of condition variables, waiting on 78—80 Programs, examples of creating and using threads 38—39 Programs, examples of errors 32—34 Programs, examples of flockfile 205—207 Programs, examples of fork handlers 201—203 Programs, examples of initialization 133—134 Programs, examples of multiple processes 15—16 Programs, examples of multiple threads 17—19 Programs, examples of mutex attributes object 136 Programs, examples of mutexes, deadlock avoidance 66—69 Programs, examples of mutexes, dynamic 50—68 Programs, examples of mutexes, locking and unlocking 52—57 Programs, examples of mutexes, non-blocking locks 58—61 Programs, examples of mutexes, static mutex 50 Programs, examples of pipeline 99—105 Programs, examples of putchar 208—209 Programs, examples of read/write locks 255—269 Programs, examples of realtime scheduling 175—181 Programs, examples of sample information 13 Programs, examples of semaphore 238—240 Programs, examples of SIGEV_THREAD 232—234 Programs, examples of sigwait 228—230 Programs, examples of suspend and resume 218—227 Programs, examples of synchronous programming 13—15 27 Programs, examples of thread attributes 140—141 Programs, examples of thread inertia 292 Programs, examples of thread-specific 164—165 169—172 Programs, examples of user and terminal identification 211 Programs, examples of work crews 108—120 Programs, examples of work queue manager 271—283 protocol (attribute) 135—138 186 pshared (attribute) 135—138 204 pthread.h (header file) 13 PTHREADJEXPLICITJSCHED (value) 176 327—329 PTHREADJNHERIT_SCHED (value) 176 327—329 pthreadjoin (function) and attributes objects 139 pthreadjoin (function) and error checking 32 pthreadjoin (function) and memory visibility 89 pthreadjoin (function) and pthread_kill 225 pthreadjoin (function), cleaning up 158 pthreadjoin (function), creating and using threads 37—38 pthreadjoin (function), definition of 315 pthreadjoin (function), termination 43—44 128 145 pthread_abort (function) 361 pthread_atfork (function) 199 336 pthread_attr_destroy (function) 312 pthread_attr_getdetachstate (function) 312 pthread_attr_getguardsize (function) 353 pthread_attr_getinheritsched (function) 327 pthread_attr_getschedparam (function) 327 pthread_attr_getschedpolicy (function) 327—328 pthread_attr_getscope (function) 328 pthread_attr_getstackaddr (function) 312—313 pthread_attr_getstacksize (function) 135 139 313 pthread_attr_init (function) 139 313 pthread_attr_setdetachstate (function) 313 pthread_attr_setguardsize (function) 354 pthread_attr_setinheritsched (function) 176 329 pthread_attr_setschedparam (function) 175 329 pthread_attr_setschedpolicy (function) 175 329—330 pthread_attr_setscope (function) 182 330 pthread_attr_setstackaddr (function) 314 pthread_attr_setstacksize (function) 135 314 pthread_attr_t (datatype) 135 139 231 pthread_cancel (function) and pthreadjdll 217 pthread_cancel (function), asynchronous cancelability 151 pthread_cancel (function), deferred cancelability 148 pthread_cancel (function), definition of 323 pthread_cancel (function), termination 43 143—145 PTHREAD_CANCELED (value) 43 145 PTHREAD_CANCEL_ASYNCHRONOUS (value) 152 324 PTHREAD_CANCEL_DEFERRED (value) 145 147 324 PTHREAD_CANCEL_DISABLE (value) 145 149 324 PTHREAD_CANCEL_ENABLE (value) 147 324 pthread_cleanup_pop (function) 43 147 155 323 pthread_cleanup_push (function) 43 147 155 323 pthread_condattr_destroy (function) 319 pthread_condattr_getclock (function) 360 pthread_condattr_getpshared (function) 320 pthread_condattr_init (function) 137 320 pthread_condattr_setclock (function) 360 pthread_condattr_setpshared (function) 137 320 pthread_condattr_t (datatype) 135 pthread_cond_broadcast (function) 81 256 300 321 pthread_cond_destroy (function) 76 321 pthread_cond_init (function) 75 137 321 pthread_cond_signal (function) 81 300 322 pthread_cond_t (datatype) 74 137 pthread_cond_timedwait (function) 78 80 322 pthread_cond_wait (function) 77 85 322 pthread_create (function) and attributes objects 139 pthread_create (function) and multiple threads 17 pthread_create (function) and thread identifier 144—145 266 pthread_create (function), and memory visibility 89 pthread_create (function), creating and using threads 36—42 189 pthread_create (function), definition of 314 pthread_create (function), execution context 30 PTHREAD_CREATE_DETACHED (value) 44 125 139 231 312—313 PTHREAD_CREATE_JOINABLE (value) 139 231 312—313 PTHREAD_DESTRUCTORJTERATIONS (limit) 168 309 pthread_detach (function) and multiple threads 17 pthread_detach (function), cleaning up 158 pthread_detach (function), creating and using threads 37 pthread_detach (function), definition of 315 pthread_detach (function), termination 43—44 pthread_equal (function) 36 315 pthread_exit (function) and attributes objects 140 pthread_exit (function) and fork 197 pthread_exit (function) and memory visibility 89 pthread_exit (function) and multiple threads 17 pthread_exit (function), cleaning up 155 pthread_exit (function), creating and using threads 37—38 pthread_exit (function), definition of 204 315 pthread_exit (function), termination 30 40—44 53 pthread_getconcurrency (function) 352 pthread_getschedparam (function) 331 pthread_getspeciflc (function) 34 164 166 325 PTHREAD_KEYS_MAX (limit) 166 309 pthread_key_create (function) 163—166 325—326 pthread_key_delete (function) 166 326 pthread_key_t (datatype) 163—166 pthread_kill (function) 217—227 343 pthread_mutexattr_destroy (function) 316 pthread_mutexattr_getprioceiling (function) 332 pthread_mutexattr_getprotocol (function) 332—333 pthread_mutexattr_getpshared (function) 317 pthread_mutexattr_gettype (function) 350—351 pthread_mutexattr_init (function) 135 317 pthread_mutexattr_setprioceiling (function) 333 pthread_mutexattr_setprotocol (function) 186 333—334 pthread_mutexattr_setpshared (function) 136 317 pthread_mutexattr_settype (function) 351 pthread_mutexattr_t (datatype) 135 pthread_mutex_destroy (function) 51 318 350 PTHREAD_MUTEX_ERRORCHECK (value) 349 pthread_mutex_getprioceiling (function) 331 pthread_mutex_init (function) and attributes objects 135 pthread_mutex_init (function), creating and destroying mutexes 50—51 pthread_mutex_init (function), definition of 318 pthread_mutex_init (function), initialization of 132 186 pthread_mutex_init (function), standardization, future 350 PTHREAD_MUTEX_INITIALIZER (macro) 50—52 74—76 pthread_mutex_lock (function) and memory visibility 90 93 pthread_mutex_lock (function), asynchronous cancelability 151 pthread_mutex_lock (function), definition of 318 pthread_mutex_lock (function), lock hierarchy 64—65 pthread_mutex_lock (function), locking and unlocking 52 58 pthread_mutex_lock (function), mutexes, number of 303—304 pthread_mutex_lock (function), standardization, future 350 pthread_mutex_lock (function), XSHS mutex types 350 PTHREAD_MUTEX_NORMAL (value) 349 PTHREAD_MUTEX_RECURSIVE (value) 349 pthread_mutex_setprioceiling (function) 332 pthread_mutex_t (datatype) 49 62 136 pthread_mutex_trylock (function) and flockfile and funlockfile 207 pthread_mutex_trylock (function), creating and destroying mutexes 49 pthread_mutex_trylock (function), definition of 319 pthread_mutex_trylock (function), lock hierarchy 64—65 pthread_mutex_trylock (function), locking and unlocking 52 58 pthread_mutex_trylock (function), mutexes, number of 303—304 pthread_mutex_trylock (function), read/write locks 257 pthread_mutex_trylock (function), standardization, future 350 pthread_mutex_trylock (function), XSHS mutex types 350 pthread_mutex_unlock (function) and flockfile and funlockfile 207 pthread_mutex_unlock (function) and memory visibility 90 pthread_mutex_unlock (function), creating and destroying mutexes 49 pthread_mutex_unlock (function), definition of 319 pthread_mutex_unlock (function), lock hierarchy 64—65 pthread_mutex_unlock (function), locking and unlocking 52 58 pthread_mutex_unlock (function), mutexes, number of 303—304 pthread_mutex_unlock (function), standardization, future 350 pthread_mutex_unlock (function), XSHS mutex types 350 pthread_once (function) and thread races 295—296 pthread_once (function) in suspend/resume 220—221 pthread_once (function) or statically initialized mutex 132 pthread_once (function), initialization, condition variables 75 pthread_once (function), initialization, mutexes 50 pthread_once (function), thread-specific data 163—164 PTHREAD_ONCE_INIT (macro) 132 pthread_once_t (datatype) 132 PTHREAD_PRIOJNHERIT (value) 186 333—334 PTHREAD_PRIO_NONE (value) 333—334 PTHREAD_PRIO_PROTECT (value) 186 333—334 PTHREAD_PROCESS_PRTVATE (value) 136—137 317—320 PTHREAD_PROCESS_SHARED (value) 136—138 204 317—320 PTHREAD_SCOPE_PROCESS (value) 182 328—330 PTHREAD_SCOPE_SYSTEM (value) 182 328—330 pthread_self (function) 17 36—37 144—145 316 pthread_setcancelstate (function) 147 149 151 324 pthread_setcanceltype (function) 151 324 pthread_setconcurrency (function) 352—353 pthread_setschedparam (function) 334 pthread_setspecific (function) 166 326 pthread_sigmask (function) 215—216 343 pthread_spin_lock (function) 359 PTHREAD_STACK_MIN (limit) 139 309 pthread_t (datatype) and pthread_kill 217 pthread_t (datatype), creating and using threads 36—37 189 266 pthread_t (datatype), termination 43 144—145 pthread_t (datatype), thread-specific data 161—162 pthread_testcancel (function) 144—145 150 158 325 PTHREAD_THREAD_MAX (limit) 309 putc (function) 207 putchar (function) 6 207 putchar_unlocked (function) 207—209 338 putc_unlocked (function) 207—208 338 pwrite (function) 355 Races and condition variables 73 Races and memory visibility 91 Races, avoidance of 26—27 Races, overview 293—295 Races, raise (function) 217 Races, sequence race 284—285 295—297 Races, synchronization race 294—296 Races, thread inertia 291—293 Random number generation function 213 rand_r (function) 213 341 read/write locks 242 253—269 358 Read/write ordering 92—95 readdir_r (function) and work crews 107—109 readdir_r (function), definition of 339 readdir_r (function), directory searching 212 readdir_r (function), reentrancy 7 297 readdir_r (function), thread-safe function 210 Ready threads 39—42 53 Realtime scheduling and priority inversion 299—300 326 Realtime scheduling and synchronization 295 Realtime scheduling, allocation domain 181—183 Realtime scheduling, architectural overview 30 Realtime scheduling, contention scope 181—183 Realtime scheduling, definition of 7—8 172—173 
                            
                     
                  
			Ðåêëàìà