Book Image

C++ System Programming Cookbook

By : Onorato Vaticone
Book Image

C++ System Programming Cookbook

By: Onorato Vaticone

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)

Dealing with Time Interfaces

Time is used in several forms in operating systems and applications. Typically, applications need to deal with the following categories of time:

  • Clock: The actual time and date, as you would read on your watch
  • Time point: Processing time taken to profile, monitor, and troubleshoot an application's usage (for example, a processor or resource in general)
  • Duration: Monotonic time, that is, the elapsed time for a certain event

In this chapter, we'll deal with all these aspects from both a C++ and POSIX point of view in order so that you have more tools available in your toolbox. The recipes in this chapter will teach you how to measure an event by using time points and why you should use a steady clock for that, as well as when the time overruns and how to mitigate it. You'll learn how to implement these concepts with both...