Hakim Weatherspoon CS 3410 Computer Science Cornell University

Similar documents
Anne Bracy CS 3410 Computer Science Cornell University

Syscalls, exceptions, and interrupts, oh my!

Anne Bracy CS 3410 Computer Science Cornell University

Traps, Exceptions, System Calls, & Privileged Mode

Prof. Kavita Bala and Prof. Hakim Weatherspoon CS 3410, Spring 2014 Computer Science Cornell University. P&H Chapter 4.9, pages , appendix A.

Traps, Exceptions, System Calls, & Privileged Mode

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

Hardware OS & OS- Application interface

Traps, Exceptions, System Calls, & Privileged Mode!

Anne Bracy CS 3410 Computer Science Cornell University

Anne Bracy CS 3410 Computer Science Cornell University

Lecture 11: Interrupt and Exception. James C. Hoe Department of ECE Carnegie Mellon University

Prof. Kavita Bala and Prof. Hakim Weatherspoon CS 3410, Spring 2014 Computer Science Cornell University. See P&H 2.8 and 2.12, and A.

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

Virtual Memory. P & H Chapter 5.4 (up to TLBs) Hakim Weatherspoon CS 3410, Spring 2013 Computer Science Cornell University

The Kernel Abstraction

Anne Bracy CS 3410 Computer Science Cornell University

Hakim Weatherspoon CS 3410 Computer Science Cornell University

P & H Chapter 5.7 (up to TLBs) Prof. Hakim Weatherspoon CS 3410, Spring 2015 Computer Science Cornell University

Virtual Memory 3. Hakim Weatherspoon CS 3410, Spring 2012 Computer Science Cornell University. P & H Chapter 5.4

The Kernel Abstraction. Chapter 2 OSPP Part I

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

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

Inf2C - Computer Systems Lecture 16 Exceptions and Processor Management

Prelim 3 Review. Hakim Weatherspoon CS 3410, Spring 2012 Computer Science Cornell University

Prelim 3 Review. Hakim Weatherspoon CS 3410, Spring 2013 Computer Science Cornell University

CSE 153 Design of Operating Systems

Protection and System Calls. Otto J. Anshus

Dan Noé University of New Hampshire / VeloBit

Review: Hardware user/kernel boundary

EE 457 Unit 8. Exceptions What Happens When Things Go Wrong

Virtual Memory. CS 3410 Computer System Organization & Programming

Calling Conventions. Hakim Weatherspoon CS 3410, Spring 2012 Computer Science Cornell University. See P&H 2.8 and 2.12

TCSS 422: OPERATING SYSTEMS

Architectural Support for Operating Systems

Administrivia. Lab 1 due Friday 12pm. We give will give short extensions to groups that run into trouble. But us:

The UtePC/Yalnix Memory System

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

a) Do exercise (5th Edition Patterson & Hennessy). Note: Branches are calculated in the execution stage.

CS24: INTRODUCTION TO COMPUTING SYSTEMS. Spring 2018 Lecture 24

CSE 120 Principles of Operating Systems

CS 550 Operating Systems Spring Interrupt

Sandboxing Untrusted Code: Software-Based Fault Isolation (SFI)

What are Exceptions? EE 457 Unit 8. Exception Processing. Exception Examples 1. Exceptions What Happens When Things Go Wrong

CSE 153 Design of Operating Systems Fall 18

Architectural Support for Operating Systems

RISC Pipeline. Kevin Walsh CS 3410, Spring 2010 Computer Science Cornell University. See: P&H Chapter 4.6

Anti-Inspiration. It s true hard work never killed anybody, but I figure, why take the chance? Ronald Reagan, US President

Architectural Support for OS

CS5460: Operating Systems

Interrupts and System Calls

John Wawrzynek & Nick Weaver

Interrupts Peter Rounce

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

EE 109 Unit 15 Subroutines and Stacks

19: I/O. Mark Handley. Direct Memory Access (DMA)

CSE 120 Principles of Operating Systems

CSC369 Lecture 2. Larry Zhang, September 21, 2015

Virtual Memory. CS 3410 Computer System Organization & Programming. [K. Bala, A. Bracy, E. Sirer, and H. Weatherspoon]

Operating Systems CMPSCI 377 Spring Mark Corner University of Massachusetts Amherst

Caches (Writing) P & H Chapter 5.2 3, 5.5. Hakim Weatherspoon CS 3410, Spring 2013 Computer Science Cornell University

Interrupts & System Calls

CS 104 Computer Organization and Design

Hakim Weatherspoon CS 3410 Computer Science Cornell University

Calling Conventions. See P&H 2.8 and Hakim Weatherspoon CS 3410, Spring 2013 Computer Science Cornell University

Cache Organizations for Multi-cores

This section covers the MIPS instruction set.

POLITECNICO DI MILANO. Exception handling. Donatella Sciuto:

CS24: INTRODUCTION TO COMPUTING SYSTEMS. Spring 2018 Lecture 18

Main Memory: Address Translation

There are different characteristics for exceptions. They are as follows:

Caches and Memory. Anne Bracy CS 3410 Computer Science Cornell University. See P&H Chapter: , 5.8, 5.10, 5.13, 5.15, 5.17

OS lpr. www. nfsd gcc emacs ls 1/27/09. Process Management. CS 537 Lecture 3: Processes. Example OS in operation. Why Processes? Simplicity + Speed

CSC369 Lecture 2. Larry Zhang

Virtual Memory II CSE 351 Spring

CS333 Intro to Operating Systems. Jonathan Walpole

Address spaces and memory management

Computer architecture. A simplified model

Notes Interrupts and Exceptions. The book uses exception as a general term for all interrupts...

Chapter 5 B. Large and Fast: Exploiting Memory Hierarchy

Virtual Memory 2. Hakim Weatherspoon CS 3410, Spring 2012 Computer Science Cornell University. P & H Chapter 5.4

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

CS 5460/6460 Operating Systems

CS 333 Introduction to Operating Systems. Class 1 - Introduction to OS-related Hardware and Software

Virtual Machines & the OS Kernel

OS Extensibility: SPIN and Exokernels. Robert Grimm New York University

Virtual Machines & the OS Kernel

Instruction Set Architecture of MIPS Processor

Slides for Lecture 15

CS510 Operating System Foundations. Jonathan Walpole

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

Background: Operating Systems

Virtual memory Paging

Virtual Machines & the OS Kernel

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

Fast access ===> use map to find object. HW == SW ===> map is in HW or SW or combo. Extend range ===> longer, hierarchical names

COMPUTER ORGANIZATION AND DESIGN

Lecture 2: Architectural Support for OSes

Process Time. Steven M. Bellovin January 25,

Systems Programming and Computer Architecture ( ) Timothy Roscoe

Transcription:

Hakim Weatherspoon CS 3410 Computer Science Cornell University The slides are the product of many rounds of teaching CS 3410 by Deniz Altinbuken, Professors Weatherspoon, Bala, Bracy, and Sirer.

C practice assignment Due Monday, April 23rd P4-Buffer Overflow is due tomorrow Due Wednesday, April 18th P5-Cache Collusion! Due Friday, April 27th

How do we protect processes from one another? Skype should not crash Chrome. How do we protect the operating system (OS) from other processes? Chrome should not crash the computer! How does the CPU and OS (software) handle exceptional conditions? Division by 0, Page Fault, Syscall, etc.

How do we protect processes from one another? Skype should not crash Chrome. Operating System How do we protect the operating system (OS) from other processes? Chrome should not crash the computer! Privileged Mode How does the CPU and OS (software) handle exceptional conditions? Division by 0, Page Fault, Syscall, etc. Traps, System calls, Exceptions, Interrupts

Operating System

Manages all of the software and hardware on the computer. Many processes running at the same time, requiring resources CPU, Memory, Storage, etc. The Operating System multiplexes these resources amongst different processes, and isolates and protects processes from one another!

Operating System (OS) is a trusted mediator: Safe control transfer between processes Isolation (memory, registers) of processes untrusted trusted P1 P2 P3 P4 VM filesystem net OS MMU CPU driver driver disk netw card software hardware

How do we protect processes from one another? Skype should not crash Chrome. Operating System How do we protect the operating system (OS) from other processes? Chrome should not crash the computer! Privileged Mode How does the CPU and OS (software) handle exceptional conditions? Division by 0, Page Fault, Syscall, etc. Traps, System calls, Exceptions, Interrupts

Privileged (Kernel) Mode

You are what you execute. Brain Personalities: hailstone_recursive Microsoft Word Minecraft Linux yes, this is just software like every other program that runs on the CPU Are they all equal? 11

Only trusted processes should access & change important things Editing TLB, Page Tables, OS code, OS $sp, OS $fp If an untrusted process could change the OS $sp/$fp/$gp/etc., OS would crash! 12

CPU Mode Bit in Process Status Register Many bits about the current process Mode bit is just one of them Mode bit: 0 = user mode = untrusted: Privileged instructions and registers are disabled by CPU 1 = kernel mode = trusted All instructions and registers are enabled 13

1. Boot sequence load first sector of disk (containing OS code) to predetermined address in memory Mode 1; PC predetermined address 2. OS takes over initializes devices, MMU, timers, etc. loads programs from disk, sets up page tables, etc. Mode 0; PC program entry point User programs regularly yield control back to OS 14

If an untrusted process does not have privileges to use system resources, how can it Use the screen to print? Send message on the network? Allocate pages? Schedule processes? Solution: System Calls 15

putc(): Print character to screen Need to multiplex screen between competing processes send(): Send a packet on the network Need to manipulate the internals of a device sbrk(): Allocate a page Needs to update page tables & MMU sleep(): put current prog to sleep, wake other Need to update page table base register 16

System call: Not just a function call Don t let process jump just anywhere in OS code OS can t trust process registers (sp, fp, gp, etc.) SYSCALL instruction: safe transfer of control to OS MIPS system call convention: Exception handler saves temp regs, saves ra, but: $v0 = system call number, which specifies the operation the application is requesting

Compilers do not emit SYSCALL instructions Compiler doesn t know OS interface Libraries implement standard API from system API libc (standard C library): getc() syscall sbrk() syscall write() syscall gets() getc() printf() write() malloc() sbrk()

char *gets(char *buf) { while (...) { buf[i] = getc(); } } int getc() { asm("addiu $v0, $0, 4"); asm("syscall"); } 20

0xfffffffc system reserved 0x80000000 0x7ffffffc stack dynamic data (heap) 0x10000000 0x00400000 0x00000000 code (text) static data (user) gets (library) getc system reserved?? 21

In its own address space? Syscall has to switch to a different address space Hard to support syscall arguments passed as pointers... So, NOPE In the same address space as the user process? Protection bits prevent user code from writing kernel Higher part of virtual memory Lower part of physical memory... Yes, this is how we do it. 22

0xfffffffc 0x80000000 0x7ffffffc system reserved stack top 0x10000000 0x00400000 0x00000000 dynamic data (heap) static data code (text) system reserved.data.text bottom

All kernel text & most data: At same virtual address in every address space OS is omnipresent, available to help user-level applications Typically in high memory 0xfffffffc 0x80000000 0x7ffffffc 0x10000000 0x00400000 0x00000000 OS Stack OS Heap OS Data OS Text stack dynamic data (heap) static data code (text) system reserved 24 Virtual Memory

0xfffffffc 0x80000000 0x7ffffffc OS Stack OS Heap OS Data OS Text stack 0x10000000 0x00400000 0x00000000 dynamic data (heap) static data code (text) system reserved Virtual Memory 0x00...00 OS Stack OS Heap OS Data OS Text Physical Memory

0xfffffffc 0x80000000 0x7ffffffc system reserved implementation of getc() syscall stack 0x10000000 0x00400000 0x00000000 dynamic data (heap) static data code (text) gets getc system reserved 26

Which statement is FALSE? A) OS manages the CPU, Memory, Devices, and Storage. B) OS provides a consistent API to be used by other processes. C) The OS kernel is always present on Disk. D) The OS kernel is always present in Memory. E) Any process can fetch and execute OS code in user mode. 27

Which statement is FALSE? A) OS manages the CPU, Memory, Devices, and Storage. B) OS provides a consistent API to be used by other processes. C) The OS kernel is always present on Disk. D) The OS kernel is always present in Memory. E) Any process can fetch and execute OS code in user mode. 28

SYSCALL instruction does an atomic jump to a controlled location (i.e. MIPS 0x8000 0180) Switches the sp to the kernel stack Saves the old (user) SP value Saves the old (user) PC value (= return address) Saves the old privilege mode Sets the new privilege mode to 1 Sets the new PC to the kernel syscall handler 29

Kernel system call handler carries out the desired system call Saves callee-save registers Examines the syscall number Checks arguments for sanity Performs operation Stores result in v0 Restores callee-save registers Performs a return from syscall (ERET) instruction, which restores the privilege mode, SP and PC

It is necessary to have a privileged (kernel) mode to enable the Operating System (OS): provides isolation between processes protects shared resources provides safe control transfer

How do we protect processes from one another? Skype should not crash Chrome. Operating System How do we protect the operating system (OS) from other processes? Chrome should not crash the computer! Privileged Mode How does the CPU and OS (software) handle exceptional conditions? Division by 0, Page Fault, Syscall, etc. Traps, System calls, Exceptions, Interrupts

Anything that isn t a user program executing its own user-level instructions. System Calls: just one type of exceptional control flow Process requesting a service from the OS Intentional it s in the executable! 33

Trap Intentional Examples: System call (OS performs service) Breakpoint traps Privileged instructions Fault Unintentional but Possibly recoverable Examples: Division by zero Page fault Abort Unintentional Not recoverable Examples: Parity error One of many ontology / terminology trees. 34

Exception program counter (EPC) 32-bit register, holds addr of affected instruction Syscall case: Address of SYSCALL Cause register Register to hold the cause of the exception Syscall case: 8, Sys Special instructions to load TLB Only do-able by kernel 36

Code Stored in Memory (also, data and stack) memory PC +4 new pc Instruction Fetch inst compute jump/branch targets $0 (zero) $1 ($at) register file $29 ($sp) $31 ($ra) control extend detect hazard Instruction Decode imm B A ctrl EPC Cause alu forward unit Execute d in addr d out memory Memory Write- Back IF/ID ID/EX EX/MEM MEM/WB B D ctrl Stack, Data, Code Stored in Memory D M ctrl

Precise exceptions: Hardware guarantees (similar to a branch) Previous instructions complete Later instructions are flushed EPC and cause register are set Jump to prearranged address in OS When you come back, restart instruction Disable exceptions while responding to one Otherwise can overwrite EPC and cause

AKA Exceptions Hardware interrupts Asynchronous = caused by events external to CPU Software exceptions Synchronous = caused by CPU executing an instruction Maskable Can be turned off by CPU Example: alert from network device that a packet just arrived, clock notifying CPU of clock tick Unmaskable Cannot be ignored Example: alert from the power supply that electricity is about to go out 39

No SYSCALL instruction. Hardware steps in: Saves PC of exception instruction (EPC) Saves cause of the interrupt/privilege (Cause register) Switches the sp to the kernel stack Saves the old (user) SP value Saves the old (user) PC value Saves the old privilege mode Sets the new privilege mode to 1 Sets the new PC to the kernel syscall hander interrupt/exception handler SYSCALL 40

interrupt/exception handler handles event Kernel system call handler carries out system call all Saves callee-save registers Examines the syscall number cause Checks arguments for sanity Performs operation Stores result in v0 all Restores callee-save registers Performs a ERET instruction (restores the privilege mode, SP and PC) 41

What else requires both Hardware and Software? A) Virtual to Physical Address Translation B) Branching and Jumping C) Clearing the contents of a register D) Pipelining instructions in the CPU E) What are we even talking about?

What else requires both Hardware and Software? A) Virtual to Physical Address Translation B) Branching and Jumping C) Clearing the contents of a register D) Pipelining instructions in the CPU E) What are we even talking about?

Virtual physical address translation! Hardware has a concept of operating in physical or virtual mode helps manage the TLB raises page faults keeps Page Table Base Register (PTBR) and ProcessID Software/OS manages Page Table storage handles Page Faults updates Dirty and Reference bits in the Page Tables keeps TLB valid on context switch: Flush TLB when new process runs (x86) Store process id (MIPS) 44

1. TLB miss 2. Trap to kernel 3. Walk Page Table 4. Find page is invalid 5. Convert virtual address to file + offset 6. Allocate page frame Evict page if needed 7. Initiate disk block read into page frame 8. Disk interrupt when DMA complete 9. Mark page as valid 10. Load TLB entry 11. Resume process at faulting instruction 12. Execute instruction 45

Internet Worm attacks thousands of Internet hosts Best Wikipedia quotes: According to its creator, the Morris worm was not written to cause damage, but to gauge the size of the Internet. The worm was released from MIT to disguise the fact that the worm originally came from Cornell. The worm determined whether to invade a new computer by asking whether there was already a copy running. But just doing this would have made it trivially easy to kill: everyone could run a process that would always answer "yes. To compensate for this possibility, Morris directed the worm to copy itself even if the response is "yes" 1 out of 7 times. This level of replication proved excessive, and the worm spread rapidly, infecting some computers multiple times. Morris remarked, when he heard of the mistake, that he "should have tried it on a simulator first. Computer Virus TV News Report 1988 46

Which of the following is not a viable solution to protect against a buffer overflow attack? (There are multiple answers, just pick one of them.) (A) Prohibit the execution of anything stored on the Stack. (B) Randomize the starting location of the Stack. (C) Use only library code that requires a buffer length to make sure it doesn t overflow. (D) Write only to buffers on the OS Stack where they will be protected. (E) Compile the executable with the highest level of optimization flags. 47