1.7 Process Concepts
1.7 Process Concepts
A process is a sequential program in execution. The components of a process are the following:
• The data on which the program will execute (obtained from a file or interactively from the
process's user)
• Resources required by the program ( for example, files containing requisite information)
Process Management
Multiprogramming systems explicitly allow multiple processes to exist at any given time, where
only one is using the CPU at any given moment, while the remaining processes are performing
I/O or are waiting.
The process manager is of the four major parts of the operating system. It implements the
process abstraction. It does this by creating a model for the way the process uses CPU and any
system resources. Much of the complexity of the operating system stems from the need for
multiple processes to share the hardware at the same time. As a conseuence of this goal, the
process manager implements CPU sharing ( called scheduling ), process synchronization
mechanisms, and a deadlock strategy. In addition, the process manager implements part of the
operating system's protection and security.
Process States
During the lifespan of a process, its execution status may be in one of four states: (associated
with each state is usually a queue on which the process resides)
• Waiting: the process is currently able to run, but must wait until a CPU becomes
available
• Blocked: the process is currently waiting on I/O, either for input to arrive or output to be
sent
• Suspended: the process is currently able to run, but for some reason the OS has not
placed the process on the ready queue
• Ready: the process is in memory, will execute given CPU time.
If the OS supports multiprogramming, then it needs to keep track of all the processes. For each
process, its process control block PCB is used to track the process's execution status, including
the following: