Interrupts and Interrupt Handling

Slides:



Advertisements
Similar presentations
Tutorial 3 - Linux Interrupt Handling -
Advertisements

Exceptional Control Flow Processes Today. Control Flow Processors do only one thing: From startup to shutdown, a CPU simply reads and executes (interprets)
Chapter 6 Limited Direct Execution
Home: Phones OFF Please Unix Kernel Parminder Singh Kang Home:
I/O Tanenbaum, ch. 5 p. 329 – 427 Silberschatz, ch. 13 p
Exception and Interrupt Handling
Introduction to Embedded Systems
Protection and the Kernel: Mode, Space, and Context.
1 CS/COE0447 Computer Organization & Assembly Language Chapter 5 part 4 Exceptions.
CSC 2405 Computer Systems II Exceptions Mini-Lecture Traps & Interrupts.
1 CSE451 Architectural Supports for Operating Systems Autumn 2002 Gary Kimura Lecture #2 October 2, 2002.
Exceptional Control Flow Topics Exceptions except1.ppt CS 105 “Tour of the Black Holes of Computing”
Operating Systems 1 K. Salah Module 1.2: Fundamental Concepts Interrupts System Calls.
University of Washington Exceptional Control Flow The Hardware/Software Interface CSE351 Winter 2013.
Managing Processors Jeff Chase Duke University. The story so far: protected CPU mode user mode kernel mode kernel “top half” kernel “bottom half” (interrupt.
9/20/6Lecture 3 - Instruction Set - Al1 Exception Handling.
How & When The Kernel Runs David Ferry, Chris Gill Department of Computer Science and Engineering Washington University, St. Louis MO
Interrupts and Exception Handling. Execution We are quite aware of the Fetch, Execute process of the control unit of the CPU –Fetch and instruction as.
Interrupts and Interrupt Handling David Ferry, Chris Gill CSE 522S - Advanced Operating Systems Washington University in St. Louis St. Louis, MO
Introduction to Exceptions 1 Introduction to Exceptions ARM Advanced RISC Machines.
Chapter 6 Limited Direct Execution Chien-Chung Shen CIS/UD
University of Washington Roadmap 1 car *c = malloc(sizeof(car)); c->miles = 100; c->gals = 17; float mpg = get_mpg(c); free(c); Car c = new Car(); c.setMiles(100);
Introduction to Operating Systems Concepts
Input / Output Chapter 9.
Computer System Structures Interrupts
Exceptional Control Flow
CS 3214 Computer Systems Lecture 9 Godmar Back.
Introduction to Kernel
Linux Kernel Development - Robert Love
Processes and threads.
Linux Details: Device Drivers
Interrupts and signals
Exceptional Control Flow
Interfacing with Hardware
Microprocessor Systems Design I
Basic Processor Structure/design
How & When The Kernel Runs
Midterm Review Chris Gill CSE 422S - Operating Systems Organization
Timer and Interrupts.
Exceptional Control Flow
Anton Burtsev February, 2017
Midterm Review David Ferry, Chris Gill
Mechanism: Limited Direct Execution
Exceptional Control Flow
Exceptional Control Flow
Processes David Ferry, Chris Gill
Semester Review Chris Gill CSE 422S - Operating Systems Organization
Chapter 3 Top Level View of Computer Function and Interconnection
Direct Memory Access Disk and Network transfers: awkward timing:
CS 501: Software Engineering Fall 1999
BIC 10503: COMPUTER ARCHITECTURE
COMPUTER PERIPHERALS AND INTERFACES
Exceptions Control Flow
Architectural Support for OS
Linux Details: Device Drivers
Interrupts and Exception Handling
Top Half / Bottom Half Processing
Kernel Synchronization I
CSE 451: Operating Systems Autumn 2003 Lecture 2 Architectural Support for Operating Systems Hank Levy 596 Allen Center 1.
CSE 451: Operating Systems Autumn 2001 Lecture 2 Architectural Support for Operating Systems Brian Bershad 310 Sieg Hall 1.
Interrupt handling Explain how interrupts are used to obtain processor time and how processing of interrupted jobs may later be resumed, (typical.
How & When The Kernel Runs
CSE 451: Operating Systems Winter 2007 Module 2 Architectural Support for Operating Systems Brian Bershad 562 Allen Center 1.
Kernel Tracing David Ferry, Chris Gill, Brian Kocoloski
CSE 451: Operating Systems Winter 2003 Lecture 2 Architectural Support for Operating Systems Hank Levy 412 Sieg Hall 1.
Architectural Support for OS
Interrupts and Interrupt Handling
Processes David Ferry, Chris Gill, Brian Kocoloski
Interrupts and System Calls
Chapter 13: I/O Systems “The two main jobs of a computer are I/O and [CPU] processing. In many cases, the main job is I/O, and the [CPU] processing is.
Presentation transcript:

Interrupts and Interrupt Handling David Ferry, Chris Gill CSE 422S - Operating Systems Organization Washington University in St. Louis St. Louis, MO 63130

CSE 422S – Operating Systems Organization Why Interrupts? Interrupts allow a currently executing process to be preempted Without interrupts, a process could only be removed from the processor when it ended or voluntarily yielded Interrupt use cases: The timer interrupt controls the scheduling frequency of a system Peripheral devices use interrupts to request CPU attention Processors use interrupts to communicate in multi-processor systems (e.g. for load balancing or synchronization) CSE 422S – Operating Systems Organization

CSE 422S – Operating Systems Organization Interrupt Mechanisms On the ARM architecture, there are three physical types of interrupts: SWI: software interrupts (i.e. exceptions) IRQ: regular hardware interrupts FIQ: fast hardware interrupts Linux has three interrupt semantics: Software interrupts routed via SWI table Hardware interrupts routed via the IDT Inter-processor interrupts CSE 422S – Operating Systems Organization

Software vs. Hardware Interrupts Software interrupts we saw before: User mode initiates system calls with the SWI instruction (or on x86, the INT instruction) Illegal instructions are trapped Occurs synchronously with processor instructions Hardware interrupts are from devices: Indicated by an electrical signal to a processor On ARM, multiplexed by the Generic Interrupt Controller (GIC) Asynchronous with instruction stream CSE 422S – Operating Systems Organization

Hardware Interrupt Interface Register new handlers with request_irq(), using three key attributes: IRQ number IRQ handler function Whether the IRQ is shared Handler functions execute in interrupt context: Disables own interrupt line (optionally all interrupts) May be interrupted by other interrupts Does not need to be re-entrant Cannot sleep CSE 422S – Operating Systems Organization

Hardware Interrupt Tension Handlers must be fast no matter what a task requires: Can preempt more important work Disables own interrupt line (bad for shared lines), and may disable all lines Must perform potentially large amounts of work to service hardware Cannot sleep/block, so cannot call functions that can sleep/block (such as kmalloc()) Strategy: Service hardware immediately but defer as much work as possible till later. CSE 422S – Operating Systems Organization

Top Half / Bottom Half Processing Modern interrupt handlers are split into top half (fast) and bottom half (slow) components Top half: Does minimum work to service hardware Sets up future execution of bottom half Clears interrupt line Bottom half: Performs deferred processing (more about this next time) Example: Network card – top half clears card buffer while bottom half processes and routes packets CSE 422S – Operating Systems Organization

Hardware Interrupt Implementation Sequence of events: Someone registers a handler on specific IRQ line Device raises interrupt line with GIC GIC de-multiplexes and interrupts CPU CPU jumps to interrupt descriptor table (IRQ table or FIQ table) in entry_armv.S via svn_entry and irq_handle C code starts at asm_do_irq() generic_handle_irq() (architecture independent, found in kernel/irq/irqdesc.c) Proceeds to specific handlers from there Returns after executing all handlers CSE 422S – Operating Systems Organization

Inter-processor Interrupts (IPIs) Modern multi-core machines need a way for cores to communicate. Start/stop/sleep/wakeup other cores Request task migration Request remote function call (synchronization) Implemented differently from traditional interrupts, see smp_cross_call() in arch/arm/kernel/smp.c CSE 422S – Operating Systems Organization