Process Creation

In the previous chapter, we learned how to handle a (fictional) application design and implementation requirement: getting our C program to execute (exec) another program altogether. However, the reality is that the discussion remains incomplete; this chapter on process creation will fill in several gaps, and much more.

In this chapter, you will learn about some core Unix/Linux systems programming concepts: the gory details required to correctly program the critical fork(2) system call to create a process. Along the journey, Unix aficionado terms such as blocking calls, orphans, and zombies are made clear as well. The material carefully brings out subtle points, turning the average developer into a proficient one. The reader will, in parallel, learn to write C code to implement the preceding key concepts in a Linux systems application. As usual, several code examples are used to clearly illustrate and harden the concepts taught.

The purpose of this chapter is to guide the Linux systems developer into the core system programming worlds of the Unix fork-exec-wait semantics and related areas. Briefly, we will focus upon the following areas, helping the reader learn:

  • The Unix process creation model
  • The whys and the hows of it
  • Deeper details, including:
    • How the fork affects memory allocations, open files and so on, and security implications
    • The several forms of the wait APIs
    • How these APIs are made use of practically
    • The rules of fork
    • Orphan and zombie processes

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.12.149.119