CSE 120 Principles of Operating Systems

Similar documents
CSE 120 Principles of Operating Systems

Lecture 2: Architectural Support for OSes

CSE 153 Design of Operating Systems

Operating Systems ECE344

CSE 153 Design of Operating Systems Fall 18

Traps and Faults. Review: Mode and Space

Architectural Support for Operating Systems

Last 2 Classes: Introduction to Operating Systems & C++ tutorial. Today: OS and Computer Architecture

Operating Systems CMPSCI 377 Spring Mark Corner University of Massachusetts Amherst

Even coarse architectural trends impact tremendously the design of systems

Machines and Virtualization. Systems and Networks Jeff Chase Spring 2006

Operating Systems. Operating System Structure. Lecture 2 Michael O Boyle

CS 153 Design of Operating Systems

Memory Protection. Machines and Virtualization. Architectural Foundations of OS Kernels. Memory and the CPU. Introduction to Virtual Addressing

Even coarse architectural trends impact tremendously the design of systems. Even coarse architectural trends impact tremendously the design of systems

CSE 451: Operating Systems Winter Module 2 Architectural Support for Operating Systems

Even coarse architectural trends impact tremendously the design of systems

CS 5460/6460 Operating Systems

Lec 22: Interrupts. Kavita Bala CS 3410, Fall 2008 Computer Science Cornell University. Announcements

Hardware OS & OS- Application interface

CS 537 Lecture 2 Computer Architecture and Operating Systems. OS Tasks

Lecture 2: September 9

Architectural Support for OS

OS: An Overview. ICS332 Operating Systems

CS 550 Operating Systems Spring Interrupt

for Operating Systems Computer Systems Laboratory Sungkyunkwan University

Architectural Support for Operating Systems. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

Chap.6 Limited Direct Execution. Dongkun Shin, SKKU

The Kernel Abstraction

Architectural Support for Operating Systems. Jinkyu Jeong ( Computer Systems Laboratory Sungkyunkwan University

Traps, Exceptions, System Calls, & Privileged Mode

Protection and System Calls. Otto J. Anshus

Last class: Today: Course administration OS definition, some history. Background on Computer Architecture

Architectural Support for Operating Systems

CPS104 Computer Organization and Programming Lecture 17: Interrupts and Exceptions. Interrupts Exceptions and Traps. Visualizing an Interrupt

Lecture 4: Mechanism of process execution. Mythili Vutukuru IIT Bombay

Windows Interrupts

Page 1, 5/4/99 8:22 PM

Anne Bracy CS 3410 Computer Science Cornell University

Process Scheduling Queues

ECE 650 Systems Programming & Engineering. Spring 2018

CS 201. Exceptions and Processes. Gerson Robboy Portland State University

Architecture and OS. To do. q Architecture impact on OS q OS impact on architecture q Next time: OS components and structure

CSE 120 Principles of Operating Systems

Traps, Exceptions, System Calls, & Privileged Mode

Processes. Johan Montelius KTH

CS5460: Operating Systems

OS Structure. Hardware protection & privilege levels Control transfer to and from the operating system

Anne Bracy CS 3410 Computer Science Cornell University

A process. the stack

CSE 120 Principles of Operating Systems

Virtual Memory. Lecture for CPSC 5155 Edward Bosworth, Ph.D. Computer Science Department Columbus State University

Inf2C - Computer Systems Lecture 16 Exceptions and Processor Management

CPSC 341 OS & Networks. Introduction. Dr. Yingwu Zhu

Chapter 5 B. Large and Fast: Exploiting Memory Hierarchy

CSC 2405: Computer Systems II

The Kernel Abstraction. Chapter 2 OSPP Part I

Operating Systems. Introduction & Overview. Outline for today s lecture. Administrivia. ITS 225: Operating Systems. Lecture 1

Design of Operating System

Announcement. Exercise #2 will be out today. Due date is next Monday

Syscalls, exceptions, and interrupts, oh my!

3.1 Introduction. Computers perform operations concurrently

CS510 Operating System Foundations. Jonathan Walpole

CSCE Introduction to Computer Systems Spring 2019

CS24: INTRODUCTION TO COMPUTING SYSTEMS. Spring 2018 Lecture 18

EE458 - Embedded Systems Exceptions and Interrupts

Part I Introduction Hardware and OS Review

Threads Implementation. Jo, Heeseung

CS333 Intro to Operating Systems. Jonathan Walpole

Hakim Weatherspoon CS 3410 Computer Science Cornell University

CSE 120 Principles of Operating Systems Spring 2017

COS 318: Operating Systems

CSE 120 Principles of Operating Systems

Grundlagen Microcontroller Interrupts. Günther Gridling Bettina Weiss

Interrupts and System Calls

Why use an Operating System? Operating System Definition

An Overview of the BLITZ System

Operating System Review

OS and Computer Architecture. Chapter 3: Operating-System Structures. Common System Components. Process Management

Common Computer-System and OS Structures

Processes. CS439: Principles of Computer Systems January 30, 2019

Architectural Support for Operating Systems

CS370 Operating Systems

John Wawrzynek & Nick Weaver

The Process Abstraction. CMPU 334 Operating Systems Jason Waterman

Lecture 2 Fundamental OS Concepts. Bo 2018, Spring

Lecture 7: Signals and Events. CSC 469H1F Fall 2006 Angela Demke Brown

Unit 2 : Computer and Operating System Structure

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

Computer architecture. A simplified model

Project #1 Exceptions and Simple System Calls

Operating System. Chapter 3. Process. Lynn Choi School of Electrical Engineering

ECEN 449 Microprocessor System Design. Hardware-Software Communication. Texas A&M University

Introduction to the Process David E. Culler CS162 Operating Systems and Systems Programming Lecture 2 Sept 3, 2014

CSC369 Lecture 2. Larry Zhang, September 21, 2015

Shell Execution of Programs. Process Groups, Session and Signals 1

Processes. Process Management Chapter 3. When does a process gets created? When does a process gets terminated?

CS 326: Operating Systems. Process Execution. Lecture 5

CPS221 Lecture: Operating System Protection

Process Concepts. CSC400 - Operating Systems. 3. Process Concepts. J. Sumey

Transcription:

CSE 120 Principles of Operating Systems Spring 2018 Lecture 2: Architectural Support for Operating Systems Geoffrey M. Voelker

Administrivia Project 0 Due 4/9 11:59pm, done individually Homework #1 Due 4/17 Project groups We will use a Google form to collect group members Just need one submission per group Fill out even if you are working alone April 5, 2018 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 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) April 5, 2018 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 April 5, 2018 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 April 5, 2018 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?) April 5, 2018 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 April 5, 2018 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 Page table pointers, page protection, segmentation, TLB Manipulating memory management hardware uses protected (privileged) operations April 5, 2018 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 OS only executes in reaction to events April 5, 2018 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? April 5, 2018 CSE 120 Lecture 2 Architectural Support for OSes 11

Categorizing Events (2) This gives us a convenient table: Terms may vary by OSes, CPU architectures Software interrupt Unexpected Deliberate Exceptions (sync) fault syscall trap Interrupts (async) interrupt software interrupt» Asynchronous system trap (AST), asynchronous or deferred procedure call (APC or DPC) Will cover faults, system calls, and interrupts next April 5, 2018 CSE 120 Lecture 2 Architectural Support for OSes 12

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, end-of-stack, 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) April 5, 2018 CSE 120 Lecture 2 Architectural Support for OSes 13

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. April 5, 2018 CSE 120 Lecture 2 Architectural Support for OSes 14

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 April 5, 2018 CSE 120 Lecture 2 Architectural Support for OSes 15

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 Returning from system call restores this state Requires architectural support to: Restore saved state, reset mode, resume execution April 5, 2018 CSE 120 Lecture 2 Architectural Support for OSes 16

CSE 120 Lecture 2 Architectural Support for OSes 17

CSE 120 Lecture 2 Architectural Support for OSes 18

Nachos (test/start.s) CSE 120 Lecture 2 Architectural Support for OSes 19

System Call Firefox: read() User mode Kernel mode Trap to kernel mode, save state Trap handler Find read handler in vector table Restore state, return to user level, resume execution read() kernel routine April 5, 2018 CSE 120 Lecture 2 Architectural Support for OSes 20

CSE 120 Lecture 2 Architectural Support for OSes 21

System Call Questions What would happen if the kernel did not save state? What if the kernel executes 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? April 5, 2018 CSE 120 Lecture 2 Architectural Support for OSes 22

Interrupts Interrupts signal asynchronous events I/O hardware interrupts Software and hardware timers Interrupts on modern CPUs are precise CPU transfers control only on instruction boundaries April 5, 2018 CSE 120 Lecture 2 Architectural Support for OSes 23

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) April 5, 2018 CSE 120 Lecture 2 Architectural Support for OSes 24

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

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 early versions of Windows, you now know what IRQs are for April 5, 2018 CSE 120 Lecture 2 Architectural Support for OSes 26

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? April 5, 2018 CSE 120 Lecture 2 Architectural Support for OSes 27

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 atomically» XCHG instruction on x86 April 5, 2018 CSE 120 Lecture 2 Architectural Support for OSes 28

Summary Protection 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 April 5, 2018 CSE 120 Lecture 2 Architectural Support for OSes 29

Next Time Read Chapters 4-6 (Processes) Homework #1 Project 0 April 5, 2018 CSE 120 Lecture 2 Architectural Support for OSes 30