CSE 120 Principles of Operating Systems Fall 2004 Lecture 3 Architectural Support for Operating Systems Geoffrey M Voelker Administrivia z Mailing list z Homework 1 z Due 10 5 Project groups z You should be getting mail on the list If not let me know Send your group info to Charles cplucas cs ucsd edu Office hours Mon 3 4pm Thu 4 5pm September 28 2004 CSE 120 Lecture 3 Architectural Support for OSes 2 1 Why Start With Architecture z z Operating system functionality fundamentally depends upon the architectural features of the computer 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 28 2004 CSE 120 Lecture 3 Architectural Support for OSes 3 Architectural Features for OS z 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 atomic instructions September 28 2004 CSE 120 Lecture 3 Architectural Support for OSes 4 2 Types of Arch Support z Manipulating privileged machine state z 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 September 28 2004 CSE 120 Lecture 3 Architectural Support for OSes 5 Protected Instructions z A subset of instructions of every CPU is restricted to use only by the OS z 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 28 2004 CSE 120 Lecture 3 Architectural Support for OSes 6 3 OS Protection z 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 z Mode is indicated by a status bit in a protected control register User programs execute in user mode OS executes in kernel 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 September 28 2004 CSE 120 Lecture 3 Architectural Support for OSes 7 Memory Protection z z z z 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 Memory management hardware provides memory protection mechanisms z Base and limit registers Page table pointers page protection TLB Virtual memory Segmentation Manipulating memory management hardware uses protected privileged operations September 28 2004 CSE 120 Lecture 3 Architectural Support for OSes 8 4 Events z An event is an unnatural change in control flow z The kernel defines a handler for each event type z Events immediately stop current execution Changes mode context machine state or both 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 28 2004 CSE 120 Lecture 3 Architectural Support for OSes 9 Categorizing Events z z Two kinds of events interrupts and exceptions Exceptions are caused by executing instructions z Interrupts are caused by an external event z z Device finishes I O timer expires etc Two reasons for events unexpected and deliberate Unexpected events are well unexpected z CPU requires software intervention to handle a fault or trap What is an example Deliberate events are scheduled by OS or application Why would this be useful September 28 2004 CSE 120 Lecture 3 Architectural Support for OSes 10 5 Categorizing Events 2 z This gives us a convenient table Unexpected Deliberate Exceptions sync fault syscall trap Interrupts async interrupt software interrupt z 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 28 2004 CSE 120 Lecture 3 Architectural Support for OSes 11 Faults z Hardware detects and reports exceptional conditions z Upon exception hardware faults verb z Must save state PC regs mode etc so that the faulting process can be restarted Modern OSes use VM faults for many functions z Page fault unaligned access divide by zero Debugging distributed VM GC copy on write Fault exceptions are a performance optimization Could detect faults by inserting extra instructions into code at a significant performance penalty September 28 2004 CSE 120 Lecture 3 Architectural Support for OSes 12 6 Handling Faults z Some faults are handled by fixing the exceptional condition and returning to the faulting context z 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 NT user mode Async Procedure Calls APCs SIGALRM SIGHUP SIGTERM SIGSEGV etc September 28 2004 CSE 120 Lecture 3 Architectural Support for OSes 13 Handling Faults 2 z The kernel may handle unrecoverable faults by killing the user process z 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 September 28 2004 CSE 120 Lecture 3 Architectural Support for OSes 14 7 System Calls z For a user program to do something privileged e g I O it must call an OS procedure z Known as crossing the
View Full Document
Unlocking...