Download Process Description and Control

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

RSTS/E wikipedia , lookup

Copland (operating system) wikipedia , lookup

VS/9 wikipedia , lookup

CP/M wikipedia , lookup

Unix security wikipedia , lookup

Distributed operating system wikipedia , lookup

DNIX wikipedia , lookup

Burroughs MCP wikipedia , lookup

Process management (computing) wikipedia , lookup

Transcript
Process Description and
Control
Chapter 3
Process Requirements of
an Operating System
Interleave execution of several processes
to maximize processor utilization while
providing reasonable response time
Allocate resources to processes
Support interprocess communication and
user creation of processes
Process
Also called a task or job
It is a program in execution
it is an active entity
Two-State Process Model
Dispatch
Enter
Not
Running
Running
Exit
Pause
State transition diagram
Queue
Enter
Dispatch
Exit
Processor
Pause
Queuing diagram
Reasons for Process
Creation
Submission of a batch job
User logs on
Created by OS to provide a service such
as printing
Spawned by an existing process
Reasons for Process
Termination
Normal completion
e.g., user logs off, requests termination
Error and fault conditions
e.g., time limit exceeded, memory
unavailable
OS intervention
e.g., when deadlock occurs
Parent request
Processes
Ready
prepared to execute
Blocked
waiting for I/O
Dispatcher cannot just select the process
that has been in the queue the longest
because it may be blocked
A Five-State Model
Running
process currently being executed
Ready
prepared to execute
Blocked
waiting for some event to occur
New
created but not admitted to job pool
Exit
released from job pool
Five-State Process Model
Dispatch
New
Admit
Ready
Release
Running
Time-out
Event
Occurs
Blocked
Event
Wait
Exit
Single Blocked Queue
Ready Queue
Release
Dispatch
Admit
Processor
Time-out
Event Wait
Event
Occurs
Blocked Queue
Multiple Blocked Queues
Ready Queue
Release
Dispatch
Admit
Processor
Time-out
Event 1 Wait
Event 1
Occurs
Event 1 Queue
...
Event n Wait
Event n
Occurs
Event n Queue
Suspended Processes
Processor is faster than I/O so all
processes could be waiting for I/O
Swap these processes to disk to free up
more memory
Blocked state becomes suspend state
when swapped to disk
Two new states
Blocked, suspend
Ready, suspend
Process State Transition Diagram
with Two Suspend States
Ne
w
Admit
Admit
Suspend
Dispatch
Activate
Ready,
suspend
Ready
Suspend
Time out
Event
Occurs
Event
Occurs
Activate
Blocked,
suspend
Running
Blocked
Event
Wait
Exit
Operating System Control
Structures
Tables are constructed for each entity the
operating system manages
memory tables
I/O tables
file tables
process tables
Memory Tables
Allocation of main memory to processes
Allocation of secondary memory to
processes
Protection attributes for main or virtual
memory
Information needed to manage virtual
memory
I/O Tables
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
File Tables
Existence of files
Location on secondary memory
Current Status (e.g., open)
Attributes (e.g., permissions)
Sometimes this information is maintained
by a file-management system
Process Table
Process image is a collection:
user program
program or set of programs to be executed
user data
locations for local and global variables, defined
constants
run-time stack
LIFO stack to keep track of procedure calls,
parameters passed
process control block (PCB)
attributes used by the OS for process control
Contents of the Process
Control Block
Process identification
user id, process id, id of parent
Process state information
user visible registers
control and status registers
stack pointers
Contents of PCB (cont’d)
Process control information
scheduling and state information
data structuring
interprocess communication
process privileges
memory management
resource ownership and utilization
Typical Functions of an
Operating System Kernel
Process management
Memory management
I/O management
Support functions
Process Management
Process creation and termination
Process scheduling and dispatching
Process switching
Process synchronization and support for
inter-process communication
Management of process control blocks
Memory Management
Allocation of address space to processes
Swapping
Page and segment management
I/O Management and
Support Functions
Buffer management
Allocation of I/O channels and devices
to processes
Interrupt handling
Accounting
Monitoring
Steps in Process Creation
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
Other
maintain an accounting file
When to Context Switch
Interrupts
react to an asychronous external event
e.g., clock, I/O, memory fault
Trap
associated with execution of current
instruction
e.g, handle error or exceptional condition
Supervisor call
explicit request, e.g., open file
Steps in a Context Switch
Save context of “old” process
Update “old” PCB with the new state and
any accounting information
Move “old” PCB to appropriate queue
Select a “new’’ process for execution
Update PBC of “new” process
Update memory management tables
Restore context of “new” process
Execution of the OS
Nonprocess 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
Process-based operating system
major kernel functions are separate
processes
UNIX Process State
Transition Diagram
fork
Created
Preempted
return
to user
not enough memory
(swapping system only)
enough
memory
User
Running
preempt
return
system call,
interrupt
interrupt,
interrupt return
swap out
reschedule
process
Ready to Run
in Memory
Ready to Run
Swapped
swap in
Kernel
Running
sleep
wakeup
wakeup
exit
Zombie
Asleep in
Memory
swap out
Sleep,
Swapped