Processes and Resources
Sequence 6
P2 is blocked, waiting for the I/O allocated to P1
Pn has been swapped out (it is thus suspended)
CS240
Operating System Control
Structures
Information about the current status of
each process and resource
Tables are constructed for each entity the
operating system manages
Sequence 6
CS240
Memory Tables
Keep track of
allocation of main memory to processes
allocation of secondary memory to
processes
protection attributes for access to shared
memory regions
information needed to manage virtual
memory
Sequence 6
CS240
I/O Tables
Used by OS to manage I/O devices
I/O device is available or assigned
status of I/O operation
location in main memory being used as the
source or destination of the I/O transfer
Sequence 6
CS240
File Tables
Keep track of
existence of files
location on secondary memory
current Status
attributes
sometimes this information is maintained
by a file management system
Sequence 6
CS240
Process Table
Mange processes
where process is located
attributes in the process control block
Program
Data
Stack
Sequence 6
CS240
Process Image
Sequence 6
CS240
Memory Tables
Process
Image
Process
1
Memory
Devices
I/O Tables
Files
Processes
File Tables
Primary Process Table
Process 1
Process 2
Process 3
Process
Image
Process
n
Process n
Figure 3.11 General Structure of Operating System Control Tables
Sequence 6
CS240
Process Control Block
From Table 3.5
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
Sequence 6
CS240
Process Control Block
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 while in user mode.
Typically, there are from 8 to 32 of these
registers, although some RISC implementations
have over 100.
Sequence 6
CS240
10
Process Control Block
Processor State Information
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
Sequence 6
CS240
11
Process Control Block
Processor State Information
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.
Sequence 6
CS240
12
Process Control Block
Process Control Information
Scheduling and State Information
This is information needed by the OS to perform its
scheduling function
Sequence 6
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, highestallowable)
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
CS240
13
Process Control Block
Process Control Information
Data Structuring
A process may be linked to other process in a
queue, ring, or some other structure.
E.g., all processes in a waiting state for a particular
priority level may be linked in a queue. A process
may exhibit a parent-child relationship with another
process. The process control block may contain
pointers to other processes to support these
structures.
Sequence 6
CS240
14
Process Control Block
Process Control Information
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.
Sequence 6
CS240
15
Process Control Block
Process Control Information
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.
Sequence 6
CS240
16
Processor State Information
Consists of contents of processor registers
User-visible registers
Control and status registers
Stack pointers
Program status word (PSW)
contains status information
E.g. consider the EFLAGS register on
Pentium machines
Sequence 6
CS240
17
Pentium II EFLAGS Register
Sequence 6
CS240
18
Pentium II EFLAGS Register
Sequence 6
CS240
19
Modes of Execution
User mode
Less-privileged mode
User programs typically execute in this
mode
System mode, control mode, or kernel
mode
More-privileged mode
Kernel of the operating system
Sequence 6
CS240
20
10
Process Creation
Process creation steps:
Assign a unique process identifier
Allocate space for the process
Initialize process control block
Set up appropriate linkages
e.g. add new process to linked list used for
scheduling queue
Create or expand other data structures
e.g. maintain an accounting file
Sequence 6
CS240
21
When to Switch a Process
Clock interrupt
process has executed for the maximum
allowable time slice
I/O interrupt
Memory fault
memory address is in virtual memory so it
must be brought into main memory
Sequence 6
CS240
22
11
When to Switch a Process
Trap
error or exception occurred
may cause process to be moved to Exit state
Supervisor call
such as file open
e.g. user process calls OS function to open file
Sequence 6
CS240
23
Change of Process State
Outgoing process
save context of processor including
program counter and other registers
update the process control block of the
process that is currently in the Running
state
move process control block to appropriate
queue ready; blocked; ready/suspend
Select another process for execution
Sequence 6
CS240
24
12
Change of Process State
Incoming process
update the process control block of the
process selected
update memory-management data structures
restore context of the selected process
Sequence 6
CS240
25
Execution of the OS
Non-process Kernel
execute kernel outside of any process
OS code is executed as a separate entity that
operates in privileged mode
Execution Within User Processes
OS software within context of a user
process
Process executes in privileged mode when
executing OS code
Sequence 6
CS240
26
13
Relationship
between OS and
User Process
Sequence 6
CS240
27
part (b) of
previous
figure
Sequence 6
CS240
28
14
Execution of the Operating
System
Process-Based Operating System
part (c) of previous figure
implement OS as a collection of system
processes
useful in multi-processor or multi-computer
environment
Sequence 6
CS240
29
UNIX SVR4 Process
Management
Most of the operating system executes within
the environment of a user process
Sequence 6
CS240
30
15
UNIX Process States
Sequence 6
CS240
31
UNIX Process Image
Sequence 6
CS240
32
16
Sequence 6
CS240
33
17