Discussion #05
Download
Report
Transcript Discussion #05
Process Description and
Control
1
Operating System Control Structures
Information the OS needs to keep around:
Memory tables
I/O tables
File tables
Process tables
Tables are constructed for each entity the
operating system manages
The OS has to manage and protect these
tables
2
Process Control Structures
Process Image
Collection of program, data,
stack, and attributes
3
Process Control Block
Process identification
Processor State Information
User-Visible Registers
Control and Status Registers
Stack Pointers
Process Control Information
Scheduling and State Information
Process state
Priority
Scheduling-related information
Event
Data Structuring
Interprocess Communication
Process Privileges
Memory Management
Resource Ownership and Utilization
4
Process Control Block (continued…)
Process identification
Numeric identifiers that may be stored with
the process control block and include
Identifier of this process
Identifier of creator process (parent process)
User identifier
Processor State Information
User-Visible Registers
Control and Status Registers
Stack Pointers
5
Process Control Block (continued…)
Processor State Information
User-Visible Registers
A register is one that may be referenced by means of the
machine language that the processor executes. (Typically, 8 to
32)
Control and Status Registers
•Program counter: Address of the next instruction to be fetched
•Condition codes: Results of the most recent arithmetic or
logical operation (e.g., sign, zero, carry, equal, overflow)
•Status information: 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.
6
Process Control Block (continued…)
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
7
Process Control Block (continued…)
Process Control Information
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.
8
Process Control Block (continued…)
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
9
services.
Process Control Block (continued…)
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.
10
User Processes in Virtual
Memory
11
When a program ‘forks()’
We already know how new processes get
created in the UNIX/Linux environment (i.e.,
via the ‘fork()’ function or system-call)
A child-process gets constructed using the
same code and data as its parent-process
Yet each task’s memory-regions are kept
‘private’ (i.e., accessible to it alone)
So how exactly is this feat achieved?
12
Similar memory-mappings
virtual memory
virtual memory
physical memory
kernel
space
kernel
space
stack
stack
stack
data
data
user space
stack
user space
data
text
data
text
parent-process
text
child-process
13
Processor State Information
Contents of processor registers
User-visible registers
Control and status registers
Stack pointers
Program status word (PSW)
contains status information
Examples:
EFLAGS register on Pentium machines
MSR on Power PC’s
14
Pentium II EFLAGS Register
15
Motorola Power PC MSR
POW =
Power management enable
SE =
Single-step trace enable
TGPR =
Temporary GPR remapping
BE =
Branch trace enable
ILE =
Exception little-endian mode
FE1 =
EE =
External interrupt enable
PR =
Privilege level
IP =
Exception prefix
FP =
Floating-point available
IR =
Instruction address translation
ME =
Machine check enable
DR =
FE0 =
Floating-point exception mode 0
CE =
Floating-point exception mode 1
Critical interrupt exception enable
Data address translation
RI =
Recoverable exception
LE =
Little-endian mode enable
16
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
17
Process Creation
Assign a unique process identifier
Allocate space for the process
Initialize process control block
Set up appropriate linkages
Ex: add new process to linked list used for
scheduling queue
Create or expand other data structures
Ex: maintain an accounting file
18
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
Trap
error occurred
may cause process to be moved to Exit state
Supervisor call
such as file open
19
Context Switch
Saving the state of one process and loading
another process onto the CPU
Pure Overhead
length of time varies from machine to machine
somewhere between 1 and 1000 microseconds
hardware support makes it faster
Time to perform a context switch can
determine how long a process is active.
20
CPU Switch From Process to Process
21
Change of Process State
Save context of processor including program
counter and other registers
Update the process control block of the process
that is currently running
Move process control block to appropriate queue
- ready, blocked
Select another process for execution
Update the process control block of the process
selected
Update memory-management data structures
Restore context of the selected process
22
Execution of the Operating System
Non-process Kernel
execute kernel outside of any process
operating system code is executed as a separate entity
that operates in privileged mode
Execution Within User Processes
operating system software within context of a user
process
process executes in privileged mode when executing
operating system code
Process-Based Operating System
major kernel functions are separate processes
Useful in multi-processor or multi-computer environment
23
Where does the OS execute?
P1
P2
…
Pn
Kernel
P1
P1
P2
OS
functions
OS
functions
Pn
…
OS
functions
Process switching functions
P2
…
Pn
OS1
…
OSk
Process switching functions
24
UNIX SVR4 Process
Management
Most of the operating system executes
within the environment of a user process
P1
P2
P3
Pn
OS
OS
OS
OS
functions
functions
functions
functions
Process Switching Functions
25
UNIX Process States
26
Process Scheduling Queues
Job queue – set of all processes in the
system.
Ready queue – set of all processes
residing in main memory, ready and
waiting to execute.
Device queues – set of processes
waiting for an I/O device.
Process migration between the various
queues.
27
Ready Queue And Various I/O Device Queues
28
Representation of Process Scheduling
29
Schedulers
Long-term scheduler (or job scheduler)
– selects which processes should be
brought into the ready queue.
Short-term scheduler (or CPU
scheduler) – selects which process
should be executed next and allocates
CPU.
30
Addition of Medium Term Scheduling
31
Schedulers (Cont.)
Short-term scheduler is invoked very frequently
(milliseconds) (must be fast).
Long-term scheduler is invoked very infrequently
(seconds, minutes) (may be slow).
The long-term scheduler controls the degree of
multiprogramming.
Processes can be described as either:
I/O-bound process – spends more time doing
I/O than computations, many short CPU bursts.
CPU-bound process – spends more time doing
computations; few very long CPU bursts.
32
33
34