So far we have discussed the underlying PA-RISC hardware and many of the various kernel data structures that make up the HP-UX operating system. The point of view of our discussions has switched between that of the kernel and that of a process. We now have a broad enough perspective to examine the life cycle of a system process from cradle to grave. We start with the birth of a process, which is the result of a system call to either fork() or vfork() and requires the establishment of a unique process table entry and the creation of the process's first thread. Then we examine the tasks performed by the kernel in the creation of the new process environment, including the creation of new memory regions and/or the attachment to existing shareable ones. Our study concludes with a discussion of the termination of a process, including breaking reference links, deconstruction of system resources, and the important role played by the parent process in the acknowledgment of the death-of-child signal. We also examine the mechanics of shared memory objects in greater depth. |