Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
Skip header Section
Multithreaded programming with PthreadsJanuary 1998
Publisher:
  • Prentice-Hall, Inc.
  • Division of Simon and Schuster One Lake Street Upper Saddle River, NJ
  • United States
ISBN:978-0-13-680729-2
Published:01 January 1998
Pages:
382
Skip Bibliometrics Section
Reflects downloads up to 08 Feb 2025Bibliometrics
Abstract

No abstract available.

Cited By

  1. Goda K, Hayamizu Y, Yamada H and Kitsuregawa M (2020). Out-of-order execution of database queries, Proceedings of the VLDB Endowment, 13:12, (3489-3501), Online publication date: 1-Aug-2020.
  2. Demeshko I, Watkins J, Tezaur I, Guba O, Spotz W, Salinger A, Pawlowski R and Heroux M (2020). Toward performance portability of the Albany finite element analysis code using the Kokkos library, International Journal of High Performance Computing Applications, 33:2, (332-352), Online publication date: 1-Mar-2019.
  3. Whitney J, Gifford C and Pantoja M (2019). Distributed execution of communicating sequential process-style concurrency, The Journal of Supercomputing, 75:3, (1396-1409), Online publication date: 1-Mar-2019.
  4. ACM
    Leech C, Kumar C, Acharyya A, Yang S, Merrett G and Al-Hashimi B (2017). Runtime Performance and Power Optimization of Parallel Disparity Estimation on Many-Core Platforms, ACM Transactions on Embedded Computing Systems, 17:2, (1-19), Online publication date: 31-Mar-2018.
  5. Salamí E, Barrado C, Gallardo A and Pastor E (2018). General queuing model for optimal seamless delivery of payload processing in multi-core processors, The Journal of Supercomputing, 74:1, (87-104), Online publication date: 1-Jan-2018.
  6. ACM
    Thomson P, Donaldson A and Betts A (2016). Concurrency Testing Using Controlled Schedulers, ACM Transactions on Parallel Computing, 2:4, (1-37), Online publication date: 15-Mar-2016.
  7. ACM
    Thomson P, Donaldson A and Betts A (2014). Concurrency testing using schedule bounding, ACM SIGPLAN Notices, 49:8, (15-28), Online publication date: 26-Nov-2014.
  8. ACM
    Döbel B and Härtig H Can we put concurrency back into redundant multithreading? Proceedings of the 14th International Conference on Embedded Software, (1-10)
  9. ACM
    Thomson P, Donaldson A and Betts A Concurrency testing using schedule bounding Proceedings of the 19th ACM SIGPLAN symposium on Principles and practice of parallel programming, (15-28)
  10. Li T and Robinson I plrint5d Proceedings of the 2010 international conference on Computational Science and Its Applications - Volume Part II, (44-59)
  11. ACM
    Al Zain A, Hammond K, Berthold J, Trinder P, Michaelson G and Aswad M Low-pain, high-gain multicore programming in Haskell Proceedings of the 4th workshop on Declarative aspects of multicore programming, (25-36)
  12. ACM
    Leverich J, Arakida H, Solomatnikov A, Firoozshahian A, Horowitz M and Kozyrakis C (2008). Comparative evaluation of memory models for chip multiprocessors, ACM Transactions on Architecture and Code Optimization (TACO), 5:3, (1-30), Online publication date: 1-Nov-2008.
  13. Plesser H, Eppler J, Morrison A, Diesmann M and Gewaltig M Efficient parallel simulation of large-scale neuronal networks on clusters of multiprocessor computers Proceedings of the 13th international Euro-Par conference on Parallel Processing, (672-681)
  14. Ezekiel J, Lüttgen G and Ciardo G Parallelising symbolic state-space generators Proceedings of the 19th international conference on Computer aided verification, (268-280)
  15. ACM
    Leverich J, Arakida H, Solomatnikov A, Firoozshahian A, Horowitz M and Kozyrakis C (2007). Comparing memory systems for chip multiprocessors, ACM SIGARCH Computer Architecture News, 35:2, (358-368), Online publication date: 9-Jun-2007.
  16. ACM
    Leverich J, Arakida H, Solomatnikov A, Firoozshahian A, Horowitz M and Kozyrakis C Comparing memory systems for chip multiprocessors Proceedings of the 34th annual international symposium on Computer architecture, (358-368)
  17. ACM
    Saha B, Adl-Tabatabai A, Ghuloum A, Rajagopalan M, Hudson R, Petersen L, Menon V, Murphy B, Shpeisman T, Sprangle E, Rohillah A, Carmean D and Fang J (2007). Enabling scalability and performance in a large scale CMP environment, ACM SIGOPS Operating Systems Review, 41:3, (73-86), Online publication date: 1-Jun-2007.
  18. Rajagopalan M, Lewis B and Anderson T Thread scheduling for multi-core platforms Proceedings of the 11th USENIX workshop on Hot topics in operating systems, (1-6)
  19. Njoroge N, Casper J, Wee S, Teslyar Y, Ge D, Kozyrakis C and Olukotun K ATLAS Proceedings of the conference on Design, automation and test in Europe, (3-8)
  20. ACM
    Saha B, Adl-Tabatabai A, Ghuloum A, Rajagopalan M, Hudson R, Petersen L, Menon V, Murphy B, Shpeisman T, Sprangle E, Rohillah A, Carmean D and Fang J Enabling scalability and performance in a large scale CMP environment Proceedings of the 2nd ACM SIGOPS/EuroSys European Conference on Computer Systems 2007, (73-86)
  21. ACM
    Wee S, Casper J, Njoroge N, Tesylar Y, Ge D, Kozyrakis C and Olukotun K A practical FPGA-based framework for novel CMP research Proceedings of the 2007 ACM/SIGDA 15th international symposium on Field programmable gate arrays, (116-125)
  22. Ezekiel J, Lüttgen G and Siminiceanu R Can saturation be parallelised? Proceedings of the 11th international workshop, FMICS 2006 and 5th international workshop, PDMC conference on Formal methods: Applications and technology, (331-346)
  23. Shinjo Y and Pu C (2005). Achieving Efficiency and Portability in Systems Software, IEEE Transactions on Software Engineering, 31:9, (785-800), Online publication date: 1-Sep-2005.
  24. Chen S, Shyu M, Gray I and Luo H (2005). An adaptive rate-control streaming mechanism with optimal buffer utilization, Journal of Systems and Software, 75:3, (271-282), Online publication date: 1-Mar-2005.
  25. ACM
    Manson J, Pugh W and Adve S (2019). The Java memory model, ACM SIGPLAN Notices, 40:1, (378-391), Online publication date: 12-Jan-2005.
  26. ACM
    Manson J, Pugh W and Adve S The Java memory model Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, (378-391)
  27. ACM
    Hammond L, Carlstrom B, Wong V, Hertzberg B, Chen M, Kozyrakis C and Olukotun K (2004). Programming with transactional coherence and consistency (TCC), ACM SIGOPS Operating Systems Review, 38:5, (1-13), Online publication date: 1-Dec-2004.
  28. ACM
    Hammond L, Carlstrom B, Wong V, Hertzberg B, Chen M, Kozyrakis C and Olukotun K (2004). Programming with transactional coherence and consistency (TCC), ACM SIGARCH Computer Architecture News, 32:5, (1-13), Online publication date: 1-Dec-2004.
  29. ACM
    Hammond L, Carlstrom B, Wong V, Hertzberg B, Chen M, Kozyrakis C and Olukotun K (2004). Programming with transactional coherence and consistency (TCC), ACM SIGPLAN Notices, 39:11, (1-13), Online publication date: 1-Nov-2004.
  30. ACM
    Hammond L, Carlstrom B, Wong V, Hertzberg B, Chen M, Kozyrakis C and Olukotun K Programming with transactional coherence and consistency (TCC) Proceedings of the 11th international conference on Architectural support for programming languages and operating systems, (1-13)
  31. Fung Y, Cheung W, Singh G and Ercan M An empirical study of bi-level parallel computing on a PC Proceedings of the 2nd WSEAS International Conference on Electronics, Control and Signal Processing, (1-5)
  32. Kantarci A and Tunali T (2019). Design and Implementation of a Streaming System for MPEG-1 Videos, Multimedia Tools and Applications, 21:3, (261-280), Online publication date: 1-Dec-2003.
  33. Price G and Lowenthal D (2003). A comparative analysis of fine-grain threads packages, Journal of Parallel and Distributed Computing, 63:11, (1050-1063), Online publication date: 1-Nov-2003.
  34. Simmonds R, Kiddle C and Unger B Addressing blocking and scalability in critical channel traversing Proceedings of the sixteenth workshop on Parallel and distributed simulation, (17-24)
  35. ACM
    Reek K (2002). The well-tempered semaphore, ACM SIGCSE Bulletin, 34:1, (356-359), Online publication date: 1-Mar-2002.
  36. ACM
    Reek K The well-tempered semaphore Proceedings of the 33rd SIGCSE technical symposium on Computer science education, (356-359)
  37. ACM
    Zhu J and Gajski D Compiling SpecC for simulation Proceedings of the 2001 Asia and South Pacific Design Automation Conference, (57-62)
  38. ACM
    Chen S, Wang X, Rishe N and Weiss M A high-performance Web-based system design for spatial data accesses Proceedings of the 8th ACM international symposium on Advances in geographic information systems, (33-38)
  39. ACM
    Thomas D, Paul J, Peffers S and Weber S Peer-based multithreaded executable co-specification Proceedings of the seventh international workshop on Hardware/software codesign, (105-109)
  40. Kale L (1998). Programming Languages for CSE, IEEE Computational Science & Engineering, 5:2, (18-26), Online publication date: 1-Apr-1998.
Contributors
  • Sun Microsystems
  • Sun Microsystems

Reviews

Frank Lawrence Friedman

Serious programmers with an interest in or need for writing efficient programs are the audience for this book. The authors' objective is to provide a solid understanding of programming threads—what they are, how they work, and why they are useful. Once they have read this detailed book, most programmers will have a reasonably good start at writing multithreaded programs. They will also have gained a sufficient understanding of the purpose and value of threads to enable them to analyze programs and determine when multiple threads should be used. The book focuses on the POSIX multithreading model, but also provides sufficient information comparing the POSIX application programming interface (API) with the Win32 and OS/2 APIs to enable programmers to understand some of the portability issues involved in writing for different systems and system libraries. The authors first introduce shared memory multiprocessors and the interactions between threads and shared memory multiprocessors. They introduce the basic concept of a multitasking operating system and show why a multithreaded programming paradigm can be used more effectively and efficiently to write certain kinds of programs. Basic operating system support for multithreading is presented next. Invocation, lifetime, and termination details are discussed and illustrated using a small program. After this introductory material, serious details on multithreading begin with discussions of scheduling, synchronization, and signaling issues. Alternative programming designs for synchronization using threading, and complex issues such as context switching, use of synchronization variables, bounded-time termination, and program correctness are discussed. The last half of the book is concerned with less granular issues, such as the compilation of multithreaded programs, operating system libraries and related programming issues, and designs for programs and library functions (with code examples and discussions of tradeoffs). Performance and hardware issues are covered in the last few chapters. This material includes various designs for shared-memory symmetric processors (SMP machines) and discussions of how these designs affect programming design and coding decisions. Several complete programs are presented along with detailed discussions of how threads are used in these programs. References to other example programs on the Internet are given. The book is an excellent reference for serious programmers concerned with making more effective use of hardware architectures (that is, with writing faster programs better, more easily, and with fewer bugs). Many of the concepts presented are applicable to any shared memory multiprocessor architecture, although the examples and programs have a POSIX focus. In fact, many of these concepts have existed in the literature and in a number of older operating systems going back to the late 1950s or early 1960s, when coroutines first appeared on the horizon. To say that the book is intended for serious C and Unix programmers may not be specific enough. Serious readers should have had some exposure to, and perhaps some understanding of, the issues related to synchronization and scheduling, such as mutual exclusion, signals, deadlocks, critical regions, forks, and joins. This would make the book easier to read and the examples easier to understand.

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.

Recommendations