Chapter 2. The Solaris Process Model


Contributions by Roger Faulkner, Phil Harman, and Rod Evans

The process is one of the most basic and fundamental abstractions provided by an operating system. A process is an executable object, occupying pages of physical memory containing specific memory segments with instructions (text), stack space, data space, and other components necessary for execution.

Borrowing from the traditional definition, a process is the executable form of a program, and a program is simply a file (or collection of files) created to solve a problem or have the computer perform specific tasks. Users connect to a Solaris system and execute commands through interpreter processes called shells. Applications execute on Solaris as one or more processes. Bundled software that provides services for network connections, system resource management tasks, service monitoring, etc., all exist as processes. The Solaris kernel provides the necessary framework and infrastructure for the creation, execution, control, monitoring, and termination of processes. Solaris extends the traditional process model with integrated support for multithreaded processes or processes with multiple threads that can be scheduled and executed independently.

In this chapter, we examine the process model, the major data structures defined and maintained by the kernel, and the key components that define the execution environment. We discuss the Solaris threads model, why it changed, and how it is implemented in Solaris today. We cover the tools and methods available for observing process and thread behavior and the process file system. Finally, we look at the signal mechanism, followed by a summary of the life cycle of a process and thread in Solaris.




SolarisT Internals. Solaris 10 and OpenSolaris Kernel Architecture
Solaris Internals: Solaris 10 and OpenSolaris Kernel Architecture (2nd Edition)
ISBN: 0131482092
EAN: 2147483647
Year: 2004
Pages: 244

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net