CSE 120 Principles of Operating

Slides:



Advertisements
Similar presentations
Lecture 2: Architectural (hardware) Support for Operating Systems
Advertisements

The Kernel Abstraction. Challenge: Protection How do we execute code with restricted privileges? – Either because the code is buggy or if it might be.
Chapter 6 Limited Direct Execution
CS 153 Design of Operating Systems Spring 2015 Lecture 3: Intro and Architectural Support for Operating Systems.
Architectural Support for OS March 29, 2000 Instructor: Gary Kimura Slides courtesy of Hank Levy.
OS Fall ’ 02 Introduction Operating Systems Fall 2002.
1 CSE451 Operating Systems Winter 2009 Module 2 Architectural Support Mark Zbikowski Gary Kimura.
OS Spring’03 Introduction Operating Systems Spring 2003.
1 Last Class: Introduction Operating system = interface between user & architecture Importance of OS OS history: Change is only constant User-level Applications.
1 OS & Computer Architecture Modern OS Functionality (brief review) Architecture Basics Hardware Support for OS Features.
CSE 451: Operating Systems Autumn 2013 Module 6 Review of Processes, Kernel Threads, User-Level Threads Ed Lazowska 570 Allen.
Protection and the Kernel: Mode, Space, and Context.
Traps and Faults. Review: Mode and Space data user mode kernel mode A B C “kernel space”
Architecture Support for OS CSCI 444/544 Operating Systems Fall 2008.
Operating Systems ECE344 Ashvin Goel ECE University of Toronto OS-Related Hardware.
CS 153 Design of Operating Systems Spring 2015 Lecture 2: Intro and Architectural Support for Operating Systems.
Lecture 3 Process Concepts. What is a Process? A process is the dynamic execution context of an executing program. Several processes may run concurrently,
Interrupt driven I/O. MIPS RISC Exception Mechanism The processor operates in The processor operates in user mode user mode kernel mode kernel mode Access.
1 CSE451 Architectural Supports for Operating Systems Autumn 2002 Gary Kimura Lecture #2 October 2, 2002.
Lecture Topics: 10/29 Architectural support for operating systems –timers –kernel mode –system calls –protected instructions.
Exceptional Control Flow Topics Exceptions except1.ppt CS 105 “Tour of the Black Holes of Computing”
CE Operating Systems Lecture 2 Low level hardware support for operating systems.
Silberschatz, Galvin and Gagne  Applied Operating System Concepts Chapter 2: Computer-System Structures Computer System Architecture and Operation.
CE Operating Systems Lecture 2 Low level hardware support for operating systems.
Chapter 6 Limited Direct Execution Chien-Chung Shen CIS/UD
Introduction to Operating Systems Concepts
Exceptional Control Flow
Virtual Machine Monitors
Introduction to Operating Systems
Chapter 2: Computer-System Structures(Hardware)
Chapter 2: Computer-System Structures
Interrupts and signals
Operating Systems CMPSC 473
Exceptional Control Flow
Protection and OS Structure
CS 6560: Operating Systems Design
CSE451 Operating Systems Winter 2012
Exceptional Control Flow
Anton Burtsev February, 2017
Protection of System Resources
Mechanism: Limited Direct Execution
Exceptional Control Flow
CSE451 Operating Systems Winter 2011
Morgan Kaufmann Publishers
CSE 451: Operating Systems Spring 2006 Module 2 Architectural Support for Operating Systems John Zahorjan 534 Allen Center.
Computer-System Architecture
Module 2: Computer-System Structures
CSE 451: Operating Systems Winter 2006 Module 2 Architectural Support for Operating Systems Ed Lazowska 570 Allen Center 1.
CSE 451: Operating Systems Spring 2012 Module 6 Review of Processes, Kernel Threads, User-Level Threads Ed Lazowska 570 Allen.
CSE 153 Design of Operating Systems Winter 18
CSE 451: Operating Systems Winter 2007 Module 2 Architectural Support for Operating Systems Ed Lazowska 570 Allen Center 1.
Exceptions Control Flow
Architectural Support for OS
CSE 451: Operating Systems Autumn 2004 Module 2 Architectural Support for Operating Systems Hank Levy 1.
CSE 451: Operating Systems Autumn 2003 Lecture 2 Architectural Support for Operating Systems Hank Levy 596 Allen Center 1.
Module 2: Computer-System Structures
CSE 451: Operating Systems Autumn 2001 Lecture 2 Architectural Support for Operating Systems Brian Bershad 310 Sieg Hall 1.
CSE 451: Operating Systems Spring 2005 Module 2 Architectural Support for Operating Systems Ed Lazowska 570 Allen Center 1.
CSE 451: Operating Systems Winter 2007 Module 2 Architectural Support for Operating Systems Brian Bershad 562 Allen Center 1.
CSE 451: Operating Systems Winter 2003 Lecture 2 Architectural Support for Operating Systems Hank Levy 412 Sieg Hall 1.
Architectural Support for OS
CSE 451: Operating Systems Winter 2004 Module 2 Architectural Support for Operating Systems Ed Lazowska 570 Allen Center 1.
Chapter 2: Computer-System Structures
Chapter 2: Computer-System Structures
Module 2: Computer-System Structures
Steve Gribble (for Hank Levy)
Module 2: Computer-System Structures
Operating Systems Structure
Interrupts and System Calls
Interrupts and Exception Handling
Presentation transcript:

CSE 120 Principles of Operating Systems Spring 2017 Lecture 2: Architectural Support for Operating Systems

Administrivia Project 0 Homework #1 Good time to get started! Out Tuesday September 29, 2015 CSE 120 – Lecture 2 – Architectural Support for OSes 2

Why Start With Architecture? Operating system functionality fundamentally depends upon the architectural features of the computer Key goals of an OS are to enforce protection and resource sharing If done well, applications can be oblivious to HW details Unfortunately for us, the OS is left holding the bag Architectural support can greatly simplify – or complicate – OS tasks Early PC operating systems (DOS, MacOS) lacked virtual memory in part because the architecture did not support it Early Sun 1 computers used two M68000 CPUs to implement virtual memory (M68000 did not have VM hardware support) September 29, 2015 CSE 120 – Lecture 2 – Architectural Support for OSes 3

Architectural Features for OS Features that directly support the OS include Protection (kernel/user mode) Protected instructions Memory protection System calls Interrupts and exceptions Timer (clock) I/O control and operation Synchronization September 29, 2015 CSE 120 – Lecture 2 – Architectural Support for OSes 4

Types of Arch Support Manipulating privileged machine state Protected instructions Manipulate device registers, TLB entries, etc. Generating and handling “events” Interrupts, exceptions, system calls, etc. Respond to external events CPU requires software intervention to handle fault or trap Mechanisms to handle concurrency Interrupts, atomic instructions September 29, 2015 CSE 120 – Lecture 2 – Architectural Support for OSes 5

Protected Instructions A subset of instructions of every CPU is restricted to use only by the OS Known as protected (privileged) instructions Only the operating system can … Directly access I/O devices (disks, printers, etc.) » Security, fairness (why?) Manipulate memory management state » Page table pointers, page protection, TLB management, etc. Manipulate protected control registers » Kernel mode, interrupt level Halt instruction (why?) September 29, 2015 CSE 120 – Lecture 2 – Architectural Support for OSes 6

CSE 120 – Lecture 2 – Architectural Support for OSes 7

OS Protection How do we know if we can execute a protected instruction? Architecture must support (at least) two modes of operation: kernel mode and user mode » VAX, x86 support four modes; earlier archs (Multics) even more » Why? Protect the OS from itself (software engineering) Mode is indicated by a status bit in a protected control register User programs execute in user mode OS executes in kernel, privileged mode (OS == “kernel”) Protected instructions only execute in kernel mode CPU checks mode bit when protected instruction executes Setting mode bit must be a protected instruction Attempts to execute in user mode are detected and prevented September 29, 2015 CSE 120 – Lecture 2 – Architectural Support for OSes 8

Memory Protection OS must be able to protect programs from each other OS must protect itself from user programs May or may not protect user programs from OS Raises question of whether programs should trust the OS Untrusted operating systems? (Intel SGX) Memory management hardware provides memory protection mechanisms Base and limit registers Page table pointers, page protection, segmentation, TLB Manipulating memory management hardware uses protected (privileged) operations September 29, 2015 CSE 120 – Lecture 2 – Architectural Support for OSes 9

Events An event is an “unnatural” change in control flow Events immediately stop current execution Changes mode, context (machine state), or both The kernel defines a handler for each event type Event handlers always execute in kernel mode The specific types of events are defined by the machine Once the system is booted, all entry to the kernel occurs as the result of an event In effect, the operating system is one big event handler September 29, 2015 CSE 120 – Lecture 2 – Architectural Support for OSes 10

Categorizing Events Two kinds of events, interrupts and exceptions Exceptions are caused by executing instructions CPU requires software intervention to handle a fault or trap Interrupts are caused by an external event Device finishes I/O, timer expires, etc. Two reasons for events, unexpected and deliberate Unexpected events are, well, unexpected What is an example? Deliberate events are scheduled by OS or application Why would this be useful? September 29, 2015 CSE 120 – Lecture 2 – Architectural Support for OSes

Categorizing Events (2) This gives us a convenient table: Unexpected Deliberate Exceptions (sync) fault syscall trap Interrupts (async) interrupt software interrupt Terms may be used slightly differently by various OSes, CPU architectures… Software interrupt – a.k.a. async system trap (AST), async or deferred procedure call (APC or DPC) Will cover faults, system calls, and interrupts next Does anyone remember from CSE 141 what a software interrupt is? September 29, 2015 CSE 120 – Lecture 2 – Architectural Support for OSes

Faults Hardware detects and reports “exceptional” conditions Page fault, unaligned access, divide by zero Upon exception, hardware “faults” (verb) Must save state (PC, regs, mode, etc.) so that the faulting process can be restarted Modern OSes use VM faults for many functions Debugging, distributed VM, garbage collection, copy-on-write Fault exceptions are a performance optimization Could detect faults by inserting extra instructions into code (at a significant performance penalty) September 29, 2015 CSE 120 – Lecture 2 – Architectural Support for OSes

Handling Faults Some faults are handled by “fixing” the exceptional condition and returning to the faulting context Page faults cause the OS to place the missing page into memory Fault handler resets PC of faulting context to re-execute instruction that caused the page fault Some faults are handled by notifying the process Fault handler changes the saved context to transfer control to a user-mode handler on return from fault Handler must be registered with OS Unix signals or Win user-mode Async Procedure Calls (APCs) » SIGALRM, SIGHUP, SIGTERM, SIGSEGV, etc. September 29, 2015 CSE 120 – Lecture 2 – Architectural Support for OSes

Handling Faults (2) The kernel may handle unrecoverable faults by killing the user process Program fault with no registered handler Halt process, write process state to file, destroy process In Unix, the default action for many signals (e.g., SIGSEGV) What about faults in the kernel? Dereference NULL, divide by zero, undefined instruction These faults considered fatal, operating system crashes Unix panic, Windows “Blue screen of death” » Kernel is halted, state dumped to a core file, machine locked up September 29, 2015 CSE 120 – Lecture 2 – Architectural Support for OSes

System Calls For a user program to do something “privileged” (e.g., I/O) it must call an OS procedure Known as crossing the protection boundary, or protected procedure call, or protected control transfer CPU ISA provides a system call instruction that: Causes an exception, which vectors to a kernel handler Passes a parameter determining the system routine to call Saves caller state (PC, regs, mode) so it can be restored » Why save mode? Returning from system call restores this state Requires architectural support to: Verify input parameters (e.g., valid addresses for buffers) Restore saved state, reset mode, resume execution September 29, 2015 CSE 120 – Lecture 2 – Architectural Support for OSes

CSE 120 – Lecture 2 – Architectural Support for OSes 17

CSE 120 – Lecture 2 – Architectural Support for OSes 18

System Call Firefox: read() Trap to kernel mode, save state User mode Restore state, return to user level, resume execution Trap handler Find read handler in vector table read() kernel routine September 29, 2015 CSE 120 – Lecture 2 – Architectural Support for OSes 19

CSE 120 – Lecture 2 – Architectural Support for OSes 20

System Call Questions What would happen if the kernel did not save state? What if the kernel executes a system call? What if a user program returns from a system call? How to reference kernel objects as arguments or results to/from system calls? A naming issue Use integer object handles or descriptors » E.g., Unix file descriptors, Windows HANDLEs » Only meaningful as parameters to other system calls Also called capabilities (more later when we do protection) Why not use kernel addresses to name kernel objects? September 29, 2015 CSE 120 – Lecture 2 – Architectural Support for OSes

Interrupts Interrupts signal asynchronous events I/O hardware interrupts Software and hardware timers Two flavors of interrupts Precise: CPU transfers control only on instruction boundaries Imprecise: CPU transfers control in the middle of instruction execution » What the heck does that mean? OS designers like precise interrupts, CPU designers like imprecise interrupts » Why? September 29, 2015 CSE 120 – Lecture 2 – Architectural Support for OSes

Timer The timer is critical for an operating system It is the fallback mechanism by which the OS reclaims control over the machine Timer is set to generate an interrupt after a period of time » Setting timer is a privileged instruction When timer expires, generates an interrupt Handled by kernel, which controls resumption context » Basis for OS scheduler (more later…) Prevents infinite loops OS can always regain control from erroneous or malicious programs that try to hog CPU Also used for time-based functions (e.g., sleep()) September 29, 2015 CSE 120 – Lecture 2 – Architectural Support for OSes

I/O Control I/O issues Initiating an I/O Completing an I/O Special instructions Memory-mapped I/O » Device registers mapped into address space » Writing to address sends data to I/O device September 29, 2015 CSE 120 – Lecture 2 – Architectural Support for OSes

I/O Completion Interrupts are the basis for asynchronous I/O OS initiates I/O Device operates independently of rest of machine Device sends an interrupt signal to CPU when done OS maintains a vector table containing a list of addresses of kernel routines to handle various events CPU looks up kernel address indexed by interrupt number, context switches to routine If you have ever installed earlier versions of Windows, you now know what IRQs are for September 29, 2015 CSE 120 – Lecture 2 – Architectural Support for OSes

I/O Example Ethernet receives packet, writes packet into memory Ethernet signals an interrupt CPU stops current operation, switches to kernel mode, saves machine state (PC, mode, etc.) on kernel stack CPU reads address from vector table indexed by interrupt number, branches to address (Ethernet device driver) Ethernet device driver processes packet (reads descriptors to find packet in memory) Upon completion, restores saved state from stack September 29, 2015 CSE 120 – Lecture 2 – Architectural Support for OSes

Interrupt Questions Interrupts halt the execution of a process and transfer control (execution) to the operating system Can the OS be interrupted? (Consider why there might be different IRQ levels) Interrupts are used by devices to have the OS do stuff What is an alternative approach to using interrupts? What are the drawbacks of that approach? September 29, 2015 CSE 120 – Lecture 2 – Architectural Support for OSes

Synchronization Interrupts cause difficult problems An interrupt can occur at any time A handler can execute that interferes with code that was interrupted OS must be able to synchronize concurrent execution Need to guarantee that short instruction sequences execute atomically Disable interrupts – turn off interrupts before sequence, execute sequence, turn interrupts back on Special atomic instructions – read/modify/write a memory address, test and conditionally set a bit based upon previous value » XCHG instruction on x86 September 29, 2015 CSE 120 – Lecture 2 – Architectural Support for OSes

Summary Protection System calls Exceptions Interrupts User/kernel modes Protected instructions System calls Used by user-level processes to access OS functions Access what is “in” the OS Exceptions Unexpected event during execution (e.g., divide by zero) Interrupts Timer, I/O September 29, 2015 CSE 120 – Lecture 2 – Architectural Support for OSes