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