POSIX mutexes are clearly not the only mechanism you can use to synchronize access to a shared resource. This recipe will show you how to use another POSIX tool to achieve the same result. Semaphores are different from mutexes, and this recipe will teach you their basic usage, while the next will show you more advanced ones. A semaphore is a notification mechanism between threads and/or processes. As a rule of the thumb, try to use a mutex as a synchronization mechanism and semaphores as a notification mechanism. In this recipe, we'll develop a program that's similar to the one we built in the Using POSIX mutexes recipe, but this time, we'll protect the critical section with semaphores.
C++ System Programming Cookbook
By :
C++ System Programming Cookbook
By:
Overview of this book
C++ is the preferred language for system programming due to its efficient low-level computation, data abstraction, and object-oriented features. System programming is about designing and writing computer programs that interact closely with the underlying operating system and allow computer hardware to interface with the programmer and the user. The C++ System Programming Cookbook will serve as a reference for developers who want to have ready-to-use solutions for the essential aspects of system programming using the latest C++ standards wherever possible.
This C++ book starts out by giving you an overview of system programming and refreshing your C++ knowledge. Moving ahead, you will learn how to deal with threads and processes, before going on to discover recipes for how to manage memory. The concluding chapters will then help you understand how processes communicate and how to interact with the console (console I/O). Finally, you will learn how to deal with time interfaces, signals, and CPU scheduling.
By the end of the book, you will become adept at developing robust systems applications using C++.
Table of Contents (13 chapters)
Preface
Getting Started with System Programming
Free Chapter
Revisiting C++
Dealing with Processes and Threads
Deep Dive into Memory Management
Using Mutexes, Semaphores, and Condition Variables
Pipes, First-In First-Out (FIFO), Message Queues, and Shared Memory
Network Programming
Dealing with Console I/O and Files
Dealing with Time Interfaces
Managing Signals
Scheduling
Other Books You May Enjoy
Customer Reviews