Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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