1
play

1 Exception Tables Exceptions An exception is a transfer of - PDF document

Today Exceptional Control Flow: Exceptional Control Flow Exceptions Exceptions and Processes Processes Process Control CSci 2021: Machine Architecture and Organization December 3rd, 2018 Your instructor: Stephen McCamant Based


  1. Today Exceptional Control Flow:  Exceptional Control Flow  Exceptions Exceptions and Processes  Processes  Process Control CSci 2021: Machine Architecture and Organization December 3rd, 2018 Your instructor: Stephen McCamant Based on slides originally by: Randy Bryant, Dave O’Hallaron 1 2 Bryant and O’Hallaron, Computer Systems: A Programmer’s Perspective, Third Edition Bryant and O’Hallaron, Computer Systems: A Programmer’s Perspective, Third Edition Control Flow Altering the Control Flow  Processors do only one thing:  Up to now: two mechanisms for changing control flow:  From startup to shutdown, a CPU simply reads and executes  Jumps and branches (interprets) a sequence of instructions, one at a time  Call and return  This sequence is the CPU’s control flow (or flow of control ) React to changes in program state Physical control flow  Insufficient for a useful system: <startup> Difficult to react to changes in system state inst 1  Data arrives from a disk or a network adapter inst 2  Instruction divides by zero Time inst 3  User hits Ctrl-C at the keyboard …  System timer expires inst n <shutdown>  System needs mechanisms for “exceptional control flow” 3 4 Bryant and O’Hallaron, Computer Systems: A Programmer’s Perspective, Third Edition Bryant and O’Hallaron, Computer Systems: A Programmer’s Perspective, Third Edition Exceptional Control Flow Today  Exists at all levels of a computer system  Exceptional Control Flow  Low level mechanisms  Exceptions  1. Exceptions  Processes  Change in control flow in response to a system event  Process Control (i.e., change in system state)  Implemented using combination of hardware and OS software  Higher level mechanisms  2. Process context switch  Implemented by OS software and hardware timer  3. Signals  Implemented by OS software  4. Nonlocal jumps : setjmp() and longjmp()  Implemented by C runtime library 5 6 Bryant and O’Hallaron, Computer Systems: A Programmer’s Perspective, Third Edition Bryant and O’Hallaron, Computer Systems: A Programmer’s Perspective, Third Edition 1

  2. Exception Tables Exceptions  An exception is a transfer of control to the OS kernel in response Exception to some event (i.e., change in processor state) numbers  Kernel is the memory-resident part of the OS Each type of event has a Code for   Examples of events: Divide by 0, arithmetic overflow, page fault, I/O exception handler 0 unique exception number k request completes, typing Ctrl-C Exception Code for Table exception handler 1 k = index into exception table  User code Kernel code 0 (a.k.a. interrupt vector) 1 Code for 2 exception handler 2 ... Exception Event I_current ... Handler k is called each time n-1  I_next Exception processing exception k occurs by exception handler Code for • Return to I_current exception handler n-1 • Return to I_next • Abort 7 8 Bryant and O’Hallaron, Computer Systems: A Programmer’s Perspective, Third Edition Bryant and O’Hallaron, Computer Systems: A Programmer’s Perspective, Third Edition Asynchronous Exceptions (Interrupts) Synchronous Exceptions  Caused by events that occur as a result of executing an  Caused by events external to the processor instruction:  Indicated by setting the processor’s interrupt pin  Traps  Handler returns to “next” instruction  Intentional  Examples: system calls , breakpoint traps, special instructions  Returns control to “next” instruction  Examples:  Faults  Timer interrupt  Unintentional but possibly recoverable  Every few ms, an external timer chip triggers an interrupt  Examples: page faults (recoverable), protection faults  Used by the kernel to take back control from user programs (unrecoverable), floating point exceptions  I/O interrupt from external device  Either re- executes faulting (“current”) instruction or aborts  Aborts  Hitting Ctrl-C at the keyboard  Unintentional and unrecoverable  Arrival of a packet from a network  Examples: illegal instruction, parity error, machine check  Arrival of data from a disk  Aborts current program 9 10 Bryant and O’Hallaron, Computer Systems: A Programmer’s Perspective, Third Edition Bryant and O’Hallaron, Computer Systems: A Programmer’s Perspective, Third Edition System Call Example: Opening File System Calls User calls: open(filename, options)  Calls __ open function, which invokes system call instruction syscall  Each x86-64 system call has a unique ID number   Examples: 00000000000e5d70 <__open>: ... Number Name Description e5d79: b8 02 00 00 00 mov $0x2,%eax # open is syscall #2 e5d7e: 0f 05 syscall # Return value in %rax read 0 Read file e5d80: 48 3d 01 f0 ff ff cmp $0xfffffffffffff001,%rax write 1 Write file ... e5dfa: c3 retq open 2 Open file close 3 Close file stat 4 Get info about file User code Kernel code %rax contains syscall number  fork 57 Create process Other arguments in %rdi ,  execve %rsi , %rdx , %r10 , %r8 , %r9 59 Execute a program Exception syscall _exit Return value in %rax 60 Terminate process cmp  Open file kill 62 Send signal to process Negative value is an error Returns  corresponding to negative errno 11 12 Bryant and O’Hallaron, Computer Systems: A Programmer’s Perspective, Third Edition Bryant and O’Hallaron, Computer Systems: A Programmer’s Perspective, Third Edition 2

  3. Fault Example: Invalid Memory Reference Fault Example: Page Fault int a[1000]; int a[1000]; main () User writes to memory location  main () { That portion (page) of user’s memory {  a[500] = 13; a[5000] = 13; is currently on disk } } 80483b7: c7 05 10 9d 04 08 0d movl $0xd,0x8049d10 80483b7: c7 05 60 e3 04 08 0d movl $0xd,0x804e360 User code Kernel code User code Kernel code Exception: page fault movl Exception: page fault Detect invalid address movl Copy page from Signal process disk to memory Return and reexecute movl Sends SIGSEGV signal to user process  User process exits with “segmentation fault”  13 14 Bryant and O’Hallaron, Computer Systems: A Programmer’s Perspective, Third Edition Bryant and O’Hallaron, Computer Systems: A Programmer’s Perspective, Third Edition Processes Today  Definition: A process is an instance of a running  Exceptional Control Flow program.  Exceptions  One of the most profound ideas in computer science  Not the same as “program” or “processor”  Processes  Process Control  Process provides each program with two key Memory abstractions: Stack  Logical control flow Heap  Each program seems to have exclusive use of the CPU Data  Provided by kernel mechanism called context switching Code  Private address space CPU  Each program seems to have exclusive use of main memory. Registers  Provided by kernel mechanism called virtual memory 15 16 Bryant and O’Hallaron, Computer Systems: A Programmer’s Perspective, Third Edition Bryant and O’Hallaron, Computer Systems: A Programmer’s Perspective, Third Edition Multiprocessing: The Illusion Multiprocessing Example Memory Memory Memory Stack Stack Stack Heap Heap Heap … Data Data Data Code Code Code CPU CPU CPU Registers Registers Registers  Computer runs many processes simultaneously  Applications for one or more users  Web browsers, email clients, editors, …  Running program “top” on Mac  Background tasks  System has 123 processes, 5 of which are active  Monitoring network & I/O devices  Identified by Process ID (PID) 17 18 Bryant and O’Hallaron, Computer Systems: A Programmer’s Perspective, Third Edition Bryant and O’Hallaron, Computer Systems: A Programmer’s Perspective, Third Edition 3

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend