What is an Operating System?
Download
Report
Transcript What is an Operating System?
University of Pennsylva
Processes, Interrupts, and System Calls
CSE 380
Lecture Note 2
Insup Lee
9/12/00
CSE 380
1
University of Pennsylva
Process
•
•
•
•
•
Main purpose of an operating system is to facilitate the execution
of user application programs.
Useful and Important Concept:
Process = program in execution
A process is not the same as a program. Program is a passive
entity, whereas process is active. Process consists of an
executable program, associated data, and execution context.
Modern (multiprogramming) operating systems are structured
around the concept of a process.
Multiprogramming OS supports execution of many concurrent
processes. OS issues tend to revolve around management of
processes:
– How are processes created/destroyed?
– How to manage resource requirements of a process during its
execution: cpu time, memory, I/O, communication, ... ?
– How to avoid interference between processes?
– How to achieve cooperation between processes?
9/12/00
CSE 380
2
Program Creation
University of Pennsylva
• Program (say, C program) is edited
• It is compiled into assembly language, which may consist of
several modules.
• Assembly language modules are assembled into machine code.
• External references (i.e., to procedures and data in another
module) are resolved. This is called linking, which creates a
load module.
• Load module is stored as a file in file system and may be
executed at a later time by loading into memory to be
executed.
9/12/00
CSE 380
3
University of Pennsylva
Process creation and termination
•
•
•
•
•
•
•
Consider a simple disk operating system (like MS-DOS)
User types command like “run foo” at Keyboard (I/O device driver
for keyboard, screen)
Command is parsed by command shell
Executable program file (load module) “foo” is located on disk (file
system, I/O device driver for disk)
Contents are loaded into memory and control transferred ==>
process comes alive! (device driver for disk, relocating loader,
memory management)
During execution, process may call OS to perform I/O: console,
disk, printer, etc. (system call interface, I/O device drivers)
When process terminates, memory is reclaimed (memory
management)
9/12/00
CSE 380
4
University of Pennsylva
Process Context
• The context (or image) of a process can be described by
– contents of main memory
– contents of CPU registers
– other info (open files, I/O in progress, etc.)
• Main memory -- three logically distinct regions of memory:
– text region: contains executable code (typically readonly)
– data region: storage area for dynamically allocated data
structure, e.g., lists, trees (typically heap data structure)
– stack region: run-time stack of activation records
• CPU registers: general registers, PC, SP, PSW, segmentation
registers
• Other information:
– open files table, status of ongoing I/O
– process status (running, ready, blocked), user id, ...
9/12/00
CSE 380
5
University of Pennsylva
Multiprogramming/Timesharing Systems
• They provide interleaved execution of several processes to
give an illusion of many simultaneously executing processes.
• Computers can be a single-processor or multi-processor
machine.
• The OS must keep track of the state for each active
process and make sure that the correct information is
properly installed when a process is given control of the CPU.
• Many resource allocation issues to consider:
– How to give each process a chance to run?
– How is main memory allocated to processes?
– How are I/O devices scheduled among processes?
9/12/00
CSE 380
6
University of Pennsylva
Interrupts (fundamental concept)
•
•
•
•
•
•
An interruption of the normal processing of processor.
Interrupts are a mechanism for causing the CPU to suspend its
current computation and take up some new task. Control may be
returned to the original task at some time later.
Reasons for interrupts (or traps):
– control of asynchronous I/O devices
– CPU scheduling
– exceptional conditions (e.g., div. by zero, page fault, illegal
instruction) arising during execution
– user process requests for OS services
Interrupts are essentially what drives an OS. We can view the OS
as an event-driven system, where an interrupt is an event.
By their very nature, interrupts need to be serviced carefully and
quickly by the OS.
Bounding interrupt handling latency is important for real-time
systems.
9/12/00
CSE 380
7
Interrupt Handling
•
•
•
•
University of Pennsylva
The servicing of an interrupt is known as interrupt handling.
An integer is associated with each type of interrupt. When an
interrupt occurs, the corresponding integer is supplied to the OS
usually by the hardware (in a register).
The OS maintains a table, known as the interrupt vector, that
associates each interrupt's id with the starting address of its
service routine.
Example interrupt vector:
Interrupt No.
0
1
2
3
4
5
9/12/00
Interrupt Handler
clock
disk
tty
dev
soft
other
CSE 380
8
University of Pennsylva
Typical interrupt handling sequence
Interrupt initiated by I/O device signaling CPU, by
exceptional condition arising, through execution of special
instruction, etc.
CPU suspends execution of current instruction stream and
saves the state of the interrupted process (on hardware
stack).
State typically refers to contents of registers: PC, PSW, SP,
general-purpose registers.
The cause of the interrupt is determined (and the unit no. of
the interrupt, if applicable) and the interrupt vector is
consulted in order to transfer control to the appropriate
interrupt handler.
Interrupt handler performs whatever processing is
necessary to deal with the interrupt.
Previous CPU state is restored (popped) from system stack,
and CPU returns control to interrupted task.
9/12/00
CSE 380
9
University of Pennsylva
Example: Servicing a Timer Interrupt
• Timer device is used in CPU scheduling to make sure control
is returned to system every so often (e.g., 1/60 sec.)
• Typically, timer has a single register that can be loaded with
an integer indicating a particular time delay (# of ticks).
• Once loaded, timer counts down and when 0 is reached, an
interrupt is generated.
• Interrupt handler might do the following:
– update time-of-day information
– signal any processes that are "asleep" and awaiting this
alarm
– call the CPU scheduler
• Control returns to user mode, possibly to a different
process than the one executing when the interrupt occurred.
9/12/00
CSE 380
10
University of Pennsylva
Example: Servicing a Disk Interrupt
• When disk controller completes previous transfer, it
generates an interrupt.
• Interrupt handler changes the state of a process that was
waiting for just-completed transfer from wait-state to
ready-state.
• It also examines queue of I/O requests to obtain next
request.
• I/O is initiated on next request.
• CPU scheduler called.
• Control returned to user mode.
9/12/00
CSE 380
11
Priority Interrupts
•
•
•
•
University of Pennsylva
Some fast devices (e.g. disk, timer) must be serviced with stringent
real-time constraints.
Other, slower devices (e.g. TTY) need not be serviced as quickly.
Failure to service fast devices soon enough may result in lost
interrupts.
The priority interrupt mechanism allows the interrupt handler of a
slow device to be interrupted by a faster device, while blocking out
interrupts from slower devices during execution of interrupt
handler of a fast device.
Machine Errors
Clock
Higher priority
Disk
Network Devices
Terminals
Lower Priority
Software interrupts
Typical Interrupt Levels
9/12/00
CSE 380
12
Priority Interrupt Mechanism
University of Pennsylva
• How it works:
– CPU status register (PSW) contains bits
specifying processor priority (or execution)
level.
– Each device has an associated device priority
level. A device may cause an interrupt only when
its priority level is higher than the current
processor priority level.
– Interrupt handler for a device executes at
processor priority equal to device priority.
– Effect: An interrupt handler can only be
interrupted by devices of higher priority.
9/12/00
CSE 380
13
University of Pennsylva
System Calls
• Provide "direct access" to operating system services (e.g.,
file system, I/O routines, memory allocate & free routines)
by user programs.
• As we will see, system calls are special, and in fact, are
treated as a special case of interrupts.
• Programs that make system calls were traditionally called
"system programs" and were traditionally implemented in
assembly language.
• Each system call had a particular number. Instruction set
has a special instruction for making system calls:
SVC
(IBM 360/370)
trap
(PDP 11)
tw
(PowerPC) - trap word
tcc
(Sparc)
break
(MIPS)
9/12/00
CSE 380
14
System Calls (cont.)
University of Pennsylva
• Now, system calls can be made from high-level
languages, such as C and Modula-2 (to a degree).
• Makes life easier:
SVC 15
vs.
Read (file-d, buffer, n-bytes)
• System calls execute instructions that control the
resources of the computer system, e.g., I/O
instructions for devices.
• We want such privileged instructions to be
executed only by a system routine, under the
control of the OS!
9/12/00
CSE 380
15
University of Pennsylva
User vs. System Mode
case
“trap”
to
O.S.
i-call
System
(or kernel)
memory
l:
n:
code for read
trap n
User Program
(text)
Special mode-bit set in PSW register:
mode-bit = 0 => user program executing
mode-bit = 1 => system routine executing
Privileged instructions possible only when mode-bit = 1!
9/12/00
CSE 380
16
System Call Scenario
University of Pennsylva
• User program executing (mode-bit = 0)
• User makes a system call
hardware sets mode-bit to 1
system saves state of user process
branch to case statement in system code
branch to code for system routine based on
system call number
copy parameters from user stack to U area
execute system call (using privileged
instructions)
restore state of user program
hardware resets mode-bit
return to user process
9/12/00
CSE 380
17
System Call Scenario (cont.)
University of Pennsylva
File system
User
program
I/O
devices
memory
Operating System
User program is confined!
9/12/00
CSE 380
18