1 / 18

Processes, Interrupts, and System Calls

Processes, Interrupts, and System Calls. Process. Main purpose of an operating system is to facilitate the execution of user application programs. Useful and Important Concept: Process = program in execution

harlan-sosa
Download Presentation

Processes, Interrupts, and System Calls

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Processes, Interrupts, and System Calls

  2. 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?

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

  4. 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)

  5. 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, ...

  6. 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?

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

  8. 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 Handler 0 clock 1 disk 2 tty 3 dev 4 soft 5 other

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

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

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

  12. 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 priority Disk Network Devices Terminals Lower Priority Software interrupts Typical Interrupt Levels

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

  14. 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)

  15. 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!

  16. User vs. System Mode • case • i-call • System(or kernel)memory • “trap”toO.S. • l : • n : • code for read • 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! • User Program • (text) • trap n

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

  18. System Call Scenario (cont.) • File system • Userprogram • I/Odevices • memory • Operating System • User program is confined!

More Related