Presentation is loading. Please wait.

Presentation is loading. Please wait.

Operating Systems 1 K. Salah Module 1.2: Fundamental Concepts Interrupts System Calls.

Similar presentations


Presentation on theme: "Operating Systems 1 K. Salah Module 1.2: Fundamental Concepts Interrupts System Calls."— Presentation transcript:

1 Operating Systems 1 K. Salah Module 1.2: Fundamental Concepts Interrupts System Calls

2 Operating Systems 2 K. Salah Dual-Mode Operation Sharing system resources requires operating system to ensure that an incorrect program cannot cause other programs to execute incorrectly. Provide hardware support to differentiate between at least two modes of operations. 1.User mode – execution done on behalf of a user. 2.Monitor mode (also supervisor mode or system mode) – execution done on behalf of operating system.

3 Operating Systems 3 K. Salah Dual-Mode Operation (Cont.) Mode bit added to computer hardware to indicate the current mode: monitor (0) or user (1). –Part of EFLAG in x86 architecture –Part of PSW in Motorola architecture When an interrupt or fault occurs hardware switches to monitor mode. Privileged instructions can be issued only in monitor mode. All I/O instructions are privileged instructions. Must ensure that a user program could never gain control of the computer in monitor mode (I.e., a user program that, as part of its execution, traps if it executes a privileged instruction). monitoruser Interrupt/fault set user mode

4 Operating Systems 4 K. Salah 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.

5 Operating Systems 5 K. Salah 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 0clock 1disk 2tty 3dev 4soft 5other

6 Operating Systems 6 K. Salah Typical interrupt handling sequence  Interrupt initiated by: I/O device signaling CPU, exceptional condition arising, 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.

7 Operating Systems 7 K. Salah 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.

8 Operating Systems 8 K. Salah 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 Operating Systems 9 K. Salah 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 ClockHigher priority Disk Network Devices TerminalsLower Priority Software interrupts Typical Interrupt Levels

10 Operating Systems 10 K. Salah 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.

11 Operating Systems 11 K. Salah System Calls Provide "direct access" to operating system services (e.g., file system, I/O routines, memory allocate & free routines) by user programs. 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! 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.

12 Operating Systems 12 K. Salah System Calls (cont.) Now, system calls can be made from high-level languages, such as C and Modula-2 (to a degree). Unix has about 32 system calls: read(), write(), open(), close(), fork(), … using trap instructions: –i = read(fd,80, buffer) push buffer push 80 push fd trap read pop i 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)

13 Operating Systems 13 K. Salah 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

14 Operating Systems 14 K. Salah 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  execute system call (using privileged instructions)  restore state of user program  hardware resets mode-bit  return to user process

15 Operating Systems 15 K. Salah System Call Scenario (cont.) User program File system memory Operating System User program is confined! I/O devices


Download ppt "Operating Systems 1 K. Salah Module 1.2: Fundamental Concepts Interrupts System Calls."

Similar presentations


Ads by Google