O'Reilly logo

Operating Systems in Depth by Thomas W. Doeppner

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Chapter 2. Multithreaded Programming

  • 2.1 Why Threads?

  • 2.2 Programming with Threads

    • 2.2.1 Thread Creation and Termination

      • 2.2.1.1 Creating POSIX Threads

      • 2.2.1.2 Creating Win-32 Threads

      • 2.2.1.3 Handling Multiple Arguments

      • 2.2.1.4 Thread Termination

      • 2.2.1.5 Attributes and Stack Size

      • 2.2.1.6 Example

    • 2.2.2 Threads and C++

    • 2.2.3 Synchronization

      • 2.2.3.1 Mutual Exclusion

      • 2.2.3.2 Beyond Mutual Exclusion

    • 2.2.4 Thread Safety

    • 2.2.5 Deviations

      • 2.2.5.1 Unix Signals

      • 2.2.5.2 POSIX Cancellation

  • 2.3 Conclusions

  • 2.4 Exercises

  • 2.5 References

In computer systems many things must go on at the same time; that is, they must be concurrent. Even in systems with just one processor, execution is generally multiplexed, providing at least the illusion that many things are happening at once. At any particular moment there may be a number of running programs, a disk drive that has completed an operation and requires service, packets that have just arrived from the network and also require service, characters that have been typed at the keyboard, etc. The operating system must divide processor time among the programs and arrange so that they all make progress in their execution. And while all this is going on, it must also handle all the other input/output activities and other events requiring attention as well.

This chapter covers multithreaded programming. The discussion here not only goes through the basics of using concurrency in user-level programs, but also introduces a number of concepts that are important in the operating system. ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required