0% found this document useful (0 votes)
86 views13 pages

Process Creation & Process Termination

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
86 views13 pages

Process Creation & Process Termination

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 13

Table 3.

1 Reasons for Process Creation

New batch job The operating system is provided with a batch job control
stream, usually on tape or disk. When the operating system
is prepared to take on new work, it will read the next
sequence of job control commands.

Interactive logon A user at a terminal logs on to the system.

Created by OS to provide a service The operating system can create a process to perform a
function on behalf of a user program, without the user
having to wait (e.g., a process to control printing).

Spawned by existing process For purposes of modularity or to exploit parallelism, a user


program can dictate the creation of a number of processes.
Table 3.2 Reasons for Process Termination

Normal completion The process executes an OS service call to indicate that it has completed
running.

Time limit exceeded The process has run longer than the specified total time limit. There are a
number of possibilities for the type of time that is measured. These include total
elapsed time ("wall clock time"), amount of time spent executing, and, in the
case of an interactive process, the amount of time since the user last provided
any input.

Memory unavailable The process requires more memory than the system can provide.

Bounds violation The process tries to access a memory location that it is not allowed to access.

Protection error The process attempts to use a resource or a file that it is not allowed to use, or it
tries to use it in an improper fashion, such as writing to a read-only file.

Arithmetic error The process tries a prohibited computation, such as division by zero, or tries to
store numbers larger than the hardware can accommodate.

Time overrun The process has waited longer than a specified maximum for a certain event to
occur.

I/O failure An error occurs during input or output, such as inability to find a file, failure to
read or write after a specified maximum number of tries (when, for example, a
defective area is encountered on a tape), or invalid operation (such as reading
from the line printer).

Invalid instruction The process attempts to execute a nonexistent instruction (often a result of
branching into a data area and attempting to execute the data).

Privileged instruction The process attempts to use an instruction reserved for the operating system.

Data misuse A piece of data is of the wrong type or is not initialized.

Operator or OS intervention For some reason, the operator or the operating system has terminated the process
(for example, if a deadlock exists).

Parent termination When a parent terminates, the operating system may automatically terminate all
of the offspring of that parent.

Parent request A parent process typically has the authority to terminate any of its offspring.
Table 3.3 Reasons for Process Suspension

Swapping The operating system needs to release sufficient main


memory to bring in a process that is ready to execute.

Other OS reason The operating system may suspend a background or utility


process or a process that is suspected of causing a problem.

Interactive user request A user may wish to suspend execution of a program for
purposes of debugging or in connection with the use of a
resource.

Timing A process may be executed periodically (e.g., an


accounting or system monitoring process) and may be
suspended while waiting for the next time interval.

Parent process request A parent process may wish to suspend execution of a


descendent to examine or modify the suspended process, or
to coordinate the activity of various descendents.
Table 3.4 Typical Elements of a Process Image

User Data
The modifiable part of the user space. May include program data, a user stack area, and
programs that may be modified.

User Program
The program to be executed.

System Stack
Each process has one or more last-in-first-out (LIFO) system stacks associated with it. A
stack is used to store parameters and calling addresses for procedure and system calls.

Process Control Block


Data needed by the operating system to control the process (see Table 3.6).
Table 3.5 Typical Elements of a Process Control Block (page 1 of 2)

Process Identification

Identifiers
Numeric identifiers that may be stored with the process control block include
•Identifier of this process
•Identifier of the process that created this process (parent process)
•User identifier

Processor State Information

User-Visible Registers
A user-visible register is one that may be referenced by means of the machine language that the
processor executes. Typically, there are from 8 to 32 of these registers, although some RISC
implementations have over 100.

Control and Status Registers


These are a variety of processor registers that are employed to control the operation of the processor.
These include
•Program counter: Contains the address of the next instruction to be fetched
•Condition codes: Result of the most recent arithmetic or logical operation (e.g., sign, zero, carry,
equal, overflow)
•Status information: Includes interrupt enabled/disabled flags, execution mode

Stack Pointers
Each process has one or more last-in-first-out (LIFO) system stacks associated with it. A stack is used
to store parameters and calling addresses for procedure and system calls. The stack pointer points to
the top of the stack.
Table 3.5 Typical Elements of a Process Control Block (page 2 of 2)

Process Control Information

Scheduling and State Information


This is information that is needed by the operating system to perform its scheduling function. Typical
items of information:
•Process state: defines the readiness of the process to be scheduled for execution (e.g., running,
ready, waiting, halted).
•Priority: One or more fields may be used to describe the scheduling priority of the process. In
some systems, several values are required (e.g., default, current, highest-allowable)
•Scheduling-related information: This will depend on the scheduling algorithm used. Examples are
the amount of time that the process has been waiting and the amount of time that the process
executed the last time it was running.
•Event: Identity of event the process is awaiting before it can be resumed.

Data Structuring
A process may be linked to other process in a queue, ring, or some other structure. For example, all
processes in a waiting state for a particular priority level may be linked in a queue. A process may
exhibit a parent-child (creator-created) relationship with another process. The process control block
may contain pointers to other processes to support these structures.

Interprocess Communication
Various flags, signals, and messages may be associated with communication between two
independent processes. Some or all of this information may be maintained in the process control
block.

Process Privileges
Processes are granted privileges in terms of the memory that may be accessed and the types of
instructions that may be executed. In addition, privileges may apply to the use of system utilities and
services.

Memory Management
This section may include pointers to segment and/or page tables that describe the virtual memory
assigned to this process.

Resource Ownership and Utilization


Resources controlled by the process may be indicated, such as opened files. A history of utilization of
the processor or other resources may also be included; this information may be needed by the
scheduler.
Table 3.7 Typical Functions of an Operating System Kernel

Process Management

•Process creation and termination


•Process scheduling and dispatching
•Process switching
•Process synchronization and support for interprocess communication
•Management of process control blocks

Memory Management

•Allocation of address space to processes


•Swapping
•Page and segment management

I/O Management

•Buffer management
•Allocation of I/O channels and devices to processes

Support Functions

•Interrupt handling
•Accounting
•Monitoring
Table 3.8 Mechanisms for Interrupting the Execution of a Process

Mechanism Cause Use

Interrupt External to the execution of the Reaction to an asynchronous


current instruction external event

Trap Associated with the execution of Handling of an error or an


the current instruction exception condition

Supervisor call Explicit request Call to an operating system


function
Table 3.9 UNIX Process States

User Running Executing in user mode.

Kernel Running Executing in kernel mode.

Ready to Run, in Memory Ready to run as soon as the kernel schedules it.

Asleep in Memory Unable to execute until an event occurs; process is in main


memory (a blocked state).

Ready to Run, Swapped Process is ready to run, but the swapper must swap the process into
main memory before the kernel can schedule it to execute.

Sleeping, Swapped The process is awaiting an event and has been swapped to
secondary storage (a blocked state).

Preempted Process is returning from kernel to user mode, but the kernel
preempts it and does a process switch to schedule another process.

Created Process is newly created and not yet ready to run.

Zombie Process no longer exists, but it leaves a record for its parent
process to collect.
Table 3.10 UNIX Process Image

User-Level Context

Process Text Executable machine instructions of the program


Process Data Data accessible by the program of this process
User Stack Contains the arguments, local variables, and pointers for functions
executing in user mode
Shared Memory Memory shared with other processes, used for interprocess
communication

Register Context

Program Counter Address of next instruction to be executed; may be in kernel or


user memory space of this process
Processor Status Register Contains the hardware status at the time of preemption; contents
and format are hardware dependent
Stack Pointer Points to the top of the kernel or user stack, depending on the mode
of operation at the time or preemption
General-Purpose Registers Hardware dependent

System-Level Context

Process Table Entry Defines state of a process; this information is always accessible to
the operating system
U (user) Area Process control information that needs to be accessed only in the
context of the process
Per Process Region Table Defines the mapping from virtual to physical addresses; also
contains a permission field that indicates the type of access
allowed the process: read-only, read-write, or read-execute
Kernel Stack Contains the stack frame of kernel procedures as the process
executes in kernel mode
Table 3.11 UNIX Process Table Entry

Process Status Current state of process.

Pointers To U area and process memory area (text, data, stack).

Process Size Enables the operating system to know how much space to allocate
the process.

User Identifiers The real user ID identifies the user who is responsible for the
running process. The effective user ID may be used by a process
to gain temporary privileges associated with a particular program;
while that program is being executed as part of the process, the
process operates with the effective user ID.

Process Identifiers ID of this process; ID of parent process. These are set up when the
process enters the Created state during the fork system call.

Event Descriptor Valid when a process is in a sleeping state; when the event occurs,
the process is transferred to a ready-to-run state.

Priority Used for process scheduling.

Signal Enumerates signals sent to a process but not yet handled.

Timers Include process execution time, kernel resource utilization, and


user-set timer used to send alarm signal to a process.

P_link Pointer to the next link in the ready queue (valid if process is ready
to execute).

Memory Status Indicates whether process image is in main memory or swapped


out. If it is in memory, this field also indicates whether it may be
swapped out or is temporarily locked into main memory.
Table 3.12 UNIX U Area

Process Table Pointer Indicates entry that corresponds to the U area.

User Identifiers Real and effective user IDs. Used to determine user privileges.

Timers Record time that the process (and its descendants) spent executing
in user mode and in kernel mode.

Signal-Handler Array For each type of signal defined in the system, indicates how the
process will react to receipt of that signal (exit, ignore, execute
specified user function).

Control Terminal Indicates login terminal for this process, if one exists.

Error Field Records errors encountered during a system call.

Return Value Contains the result of system calls.

I/O Parameters Describe the amount of data to transfer, the address of the source
(or target) data array in user space, and file offsets for I/O.

File Parameters Current directory and current root describe the file system
environment of the process.

User File Descriptor Table Records the files the process has open.

Limit Fields Restrict the size of the process and the size of a file it can write.

Permission Modes Fields Mask mode settings on files the process creates.
Table 3.13 VAX/VMS Process States

Process State Process Condition

Currently Executing Running process.

Computable (resident) Ready and resident in main memory.

Computable (outswapped) Ready, but swapped out of main memory.

Page Fault Wait Process has referenced a page not in main memory and must
wait for the page to be read in.

Collided Page Wait Process has referenced a shared page that is the cause of an
existing page fault wait in another process, or a private page that
is in the process of being read in or written out.

Common Event Wait Waiting for shared event flag (event flags are single-bit
interprocess signaling mechanisms).

Free Page Wait Waiting for a free page in main memory to be added to the
collection of pages in main memory devoted to this process (the
working set of the process).

Hibernate Wait (resident) Process puts itself in a wait state.

Hibernate Wait (outswapped) Hibernating process is swapped out of main memory.

Local Event Wait (resident) Process in main memory and waiting for local event flag (usually
I/O completion).

Local Event Wait (outswapped) Process in local event wait is swapped out of main memory.

Suspended Wait (resident) Process is put into a wait state by another process.

Suspended Wait (outswapped) Suspended process is swapped out of main memory.

Resource Wait Process waiting for miscellaneous system resource.

You might also like