Chapter 2 ComputerSystem Structures The traditionalgeneral computersystem architecture

















- Slides: 17
Chapter 2: Computer-System Structures • The traditional/general computer-system architecture consists of one or more CPUs and a number of device controllers connected via a common bus that provides access to shared memory • The CPU(s) and device controllers execute concurrently competing for memory cycles (access synchronized by the memory controller) CEG 433/633 - Operating Systems I 2. 1 Dr. T. Doom
Computer-System Operation • • I/O devices and the CPU can execute concurrently • Device controller informs CPU that it requires attention by causing an interrupt Each device controller has a local buffer – I/O is from the device to local buffer of controller – OS provides mechanism for issuing commands to device controllers T Device driver - portion of OS which converts OS requests into controller register loads/reads T OS provides main memory “buffer” for I/O – CPU issues commands by setting device control registers – CPU moves data from/to main memory to/from local buffers T w/o DMA, CPU must transfer each word (bus size) T w/DMA, CPU is invoked once per transaction (block) CEG 433/633 - Operating Systems I 2. 2 Dr. T. Doom
Common Functions of Interrupts • When powered-up, a computer needs an initial program to run – Bootstrap program - initializes the machine – Loads the OS • The OS kernel starts the first process, after which it only processes events. – Hardware Interrupt - generally from I/O devices – Trap (Exception) - software-generated interrupt caused either by an error or a user request – An operating system is event (or interrupt) driven • An interrupt is a request to transfers control of the CPU from the current process to the OS via the interrupt service routine • Some devices do not support the interrupt structure and simply set flags in one of their local registers to request service – The OS must periodically poll such devices CEG 433/633 - Operating Systems I 2. 3 Dr. T. Doom
Interrupt Handling • An interrupt is handled by: – A hardware check against the interrupt mask to see if the interrupt is enabled – Incoming interrupts of lower priority are disabled to prevent a lost interrupt – Storing the current state of the process T The operating system preserves the state of the CPU by storing registers and the program counter – Calling the interrupt handling routine which determines the type of interrupt and determines the OS response – Re-enable interrupts and restore normal operation • Separate segments of code determine what action should be taken for each type of interrupt – The OS response is dependent upon the interrupt vector, which contains the addresses of all the service routines CEG 433/633 - Operating Systems I 2. 4 Dr. T. Doom
Interrupt Time Line For a Single Process Doing Output CEG 433/633 - Operating Systems I 2. 5 Dr. T. Doom
I/O Structure • Synchronous I/O Operation – After I/O request, OS returns control to user program only upon I/O completion – CPU is idle (wait loop) in OS until the next interrupt. – The next interrupt will be from the specified device since at most one I/O request is outstanding (No vectoring) – Simple, but not efficient T No overlapping of computation or additional I/O with I/O CEG 433/633 - Operating Systems I 2. 6 Dr. T. Doom
I/O Structure • Asynchronous I/O Operation – After I/O request, control returns without waiting for I/O to complete – Blocking I/O library function: includes a system call to to allow the user to wait for I/O completion T CPU idles or control is passed to another process – Non-Blocking I/O: The user program continues T Requires more complex user code to handle the completion of the I/O event – Pro: The OS may have multiple outstanding I/O requests T One process may make several concurrent requests T Multiple processes may make requests on multiprogrammed systems – Con: The OS must maintain a device-status table to record current and requested transactions for each I/O device CEG 433/633 - Operating Systems I 2. 7 Dr. T. Doom
Storage Structure • Main memory – only large storage media that the CPU can access directly • Secondary storage – extension of main memory that provides large nonvolatile storage capacity (requires I/O operation) • Storage systems organized in hierarchy – Speed, cost, volatility • Memory Hierarchy – Speed Vs. Cost –. . . registers, cache, main memory, disk, CD, tape. . . • Caching – copying information into faster storage system; main memory can be viewed as a last cache for secondary storage • Cache management is generally handled below the OS level by dedicated hardware – requires an policy for replacement, coherency, etc. CEG 433/633 - Operating Systems I 2. 8 Dr. T. Doom
Moving-Head Disk Mechanism CEG 433/633 - Operating Systems I 2. 9 • Magnetic disks – rigid metal or glass platters covered with magnetic recording material – Disk surface is logically divided into tracks, which are subdivided into sectors – The disk controller determines the logical interaction between the device and the computer • Transfer rate - drive to memory (MB/s) • Access time - seek time (arm movement) + rotational delay (platter movement) (ms) Dr. T. Doom
Hardware Protection • How do we keep erroneous/malicious processes from interfering with other processes on a timesharing system? • Dual-Mode Operation – Provide hardware support to differentiate between at least two modes of operations 1. User mode – execution done on behalf of a user 2. Monitor mode (also supervisor mode or system mode) – execution done on behalf of operating system – When an interrupt or fault occurs hardware switches to monitor mode Interrupt/fault monitor user set user mode CEG 433/633 - Operating Systems I 2. 10 Dr. T. Doom
Dual-Mode Operation • Mode bit added to computer hardware to indicate the current mode: monitor (0) or user (1) • The OS is called (via trap) to handle hardware-generated exceptions (ex: seg. fault) in monitor mode • Privileged instructions can be issued only in monitor mode – All I/O instructions are privileged instructions (I/O Protection) T Must ensure that a user program could never gain control of the computer in monitor mode (i. e. , a user program that, as part of its execution, stores a new address in the interrupt vector) – Load-timer is a privileged instruction (CPU Protection) T Timer – interrupts computer after specified period to ensure operating system maintains control T When timer reaches the value 0, an interrupt occurs T Timer commonly used to implement time sharing CEG 433/633 - Operating Systems I 2. 11 Dr. T. Doom
Memory Protection • Problem: We must protect the OS and other user’s routines from a deranged or malicious process without compromising the speed of memory access – Must provide memory protection at least for the interrupt vector and the interrupt service routines • In order to have memory protection, add two registers that determine the range of legal addresses a program may access: – base register – holds the smallest legal physical memory address. – Limit register – contains the size of the range • Memory outside the defined range is protected. CEG 433/633 - Operating Systems I 2. 12 Dr. T. Doom
A Base And A limit Register Define A Logical Address Space CEG 433/633 - Operating Systems I 2. 13 Dr. T. Doom
Protection Hardware • When executing in monitor mode, the operating system has unrestricted access to both monitor and user’s memory. • The load instructions for the base and limit registers are privileged instructions. CEG 433/633 - Operating Systems I 2. 14 Dr. T. Doom
General-System Architecture • Time-sharing led directly to hardware modifications to allow the OS to maintain control of the system • Problem: How do users programs access necessary privileged instructions (such as I/O)? – The user must ask the OS to perform the operation on the user’s behalf • System call – the method used by a process to request action by the operating system – Usually takes the form of a trap to a specific location in the interrupt vector – Control passes through the interrupt vector to a service routine in the OS, and the mode bit is set to monitor mode – The monitor verifies that the parameters are correct and legal, executes the request, and returns control to the instruction following the system call CEG 433/633 - Operating Systems I 2. 15 Dr. T. Doom
Use of A System Call to Perform I/O CEG 433/633 - Operating Systems I • System calls are complex – Information must be passed via registers or ordered in the stack – Library functions exist which act as wrappers for the trap – These library functions are the system functions provided in each language’s system library • Example: Memory Management – The OS only provides sbrk() which increases or decreases the address space of the process by some number of bytes – C provides the language specific malloc() and free() routines to manage the heap – Consider java 2. 16 Dr. T. Doom
System Calls • An application written to a standard set of supported system calls (such as POSIX) is dependent upon the OS, not the machine! User Interface System Programs Programmer Interface Application Code C function library System Interface System Calls Kernel Hardware Abstraction Layer Hardware CEG 433/633 - Operating Systems I 2. 17 Dr. T. Doom