18
9/12/00 CSE 380 1 University of Pennsylv Processes, Interrupts, and System Calls CSE 380 Lecture Note 2 Insup Lee

University of Pennsylvania 9/12/00CSE 3801 Processes, Interrupts, and System Calls CSE 380 Lecture Note 2 Insup Lee

Embed Size (px)

Citation preview

Page 1: University of Pennsylvania 9/12/00CSE 3801 Processes, Interrupts, and System Calls CSE 380 Lecture Note 2 Insup Lee

9/12/00 CSE 380 1

University of Pennsylvania

Processes, Interrupts, and System Calls

CSE 380 Lecture Note 2

Insup Lee

Page 2: University of Pennsylvania 9/12/00CSE 3801 Processes, Interrupts, and System Calls CSE 380 Lecture Note 2 Insup Lee

9/12/00 CSE 380 2

University of Pennsylvania

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?

Page 3: University of Pennsylvania 9/12/00CSE 3801 Processes, Interrupts, and System Calls CSE 380 Lecture Note 2 Insup Lee

9/12/00 CSE 380 3

University of Pennsylvania

Program Creation

• 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.

Page 4: University of Pennsylvania 9/12/00CSE 3801 Processes, Interrupts, and System Calls CSE 380 Lecture Note 2 Insup Lee

9/12/00 CSE 380 4

University of PennsylvaniaProcess 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)

Page 5: University of Pennsylvania 9/12/00CSE 3801 Processes, Interrupts, and System Calls CSE 380 Lecture Note 2 Insup Lee

9/12/00 CSE 380 5

University of Pennsylvania

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 read-

only)– 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, ...

Page 6: University of Pennsylvania 9/12/00CSE 3801 Processes, Interrupts, and System Calls CSE 380 Lecture Note 2 Insup Lee

9/12/00 CSE 380 6

University of PennsylvaniaMultiprogramming/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?

Page 7: University of Pennsylvania 9/12/00CSE 3801 Processes, Interrupts, and System Calls CSE 380 Lecture Note 2 Insup Lee

9/12/00 CSE 380 7

University of PennsylvaniaInterrupts (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.

Page 8: University of Pennsylvania 9/12/00CSE 3801 Processes, Interrupts, and System Calls CSE 380 Lecture Note 2 Insup Lee

9/12/00 CSE 380 8

University of Pennsylvania

Interrupt Handling

• 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. Interrupt Handler0 clock1 disk2 tty 3 dev 4 soft 5 other

Page 9: University of Pennsylvania 9/12/00CSE 3801 Processes, Interrupts, and System Calls CSE 380 Lecture Note 2 Insup Lee

9/12/00 CSE 380 9

University of PennsylvaniaTypical 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.

Page 10: University of Pennsylvania 9/12/00CSE 3801 Processes, Interrupts, and System Calls CSE 380 Lecture Note 2 Insup Lee

9/12/00 CSE 380 10

University of Pennsylvania

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.

Page 11: University of Pennsylvania 9/12/00CSE 3801 Processes, Interrupts, and System Calls CSE 380 Lecture Note 2 Insup Lee

9/12/00 CSE 380 11

University of PennsylvaniaExample: 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.

Page 12: University of Pennsylvania 9/12/00CSE 3801 Processes, Interrupts, and System Calls CSE 380 Lecture Note 2 Insup Lee

9/12/00 CSE 380 12

University of Pennsylvania

Priority Interrupts• 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 priorityDiskNetwork DevicesTerminals Lower PrioritySoftware interrupts

Typical Interrupt Levels

Page 13: University of Pennsylvania 9/12/00CSE 3801 Processes, Interrupts, and System Calls CSE 380 Lecture Note 2 Insup Lee

9/12/00 CSE 380 13

University of Pennsylvania

Priority Interrupt Mechanism

• 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.

Page 14: University of Pennsylvania 9/12/00CSE 3801 Processes, Interrupts, and System Calls CSE 380 Lecture Note 2 Insup Lee

9/12/00 CSE 380 14

University of Pennsylvania

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)

Page 15: University of Pennsylvania 9/12/00CSE 3801 Processes, Interrupts, and System Calls CSE 380 Lecture Note 2 Insup Lee

9/12/00 CSE 380 15

University of Pennsylvania

System Calls (cont.)

• 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!

Page 16: University of Pennsylvania 9/12/00CSE 3801 Processes, Interrupts, and System Calls CSE 380 Lecture Note 2 Insup Lee

9/12/00 CSE 380 16

University of Pennsylvania

User vs. System Mode

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!

System(or kernel)memory

User Program (text)

“trap”to

O.S.

case i-call

trap n

l :

n : code for read

Page 17: University of Pennsylvania 9/12/00CSE 3801 Processes, Interrupts, and System Calls CSE 380 Lecture Note 2 Insup Lee

9/12/00 CSE 380 17

University of Pennsylvania

System Call Scenario

• 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

Page 18: University of Pennsylvania 9/12/00CSE 3801 Processes, Interrupts, and System Calls CSE 380 Lecture Note 2 Insup Lee

9/12/00 CSE 380 18

University of Pennsylvania

System Call Scenario (cont.)

Userprogram

File system

memory

Operating System

User program is confined!

I/O

devices