Download presentation
Presentation is loading. Please wait.
Published byFrederick Harmon Modified over 8 years ago
1
Slide 5-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 5 5 Device Management
2
Slide 5-2 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 5 Announcements Homework Set #1 due Thursday 11 am, see moodle copyright issues with lectures Program Assignment #1 coming soon Read chapters 4 and 5 –skip sections 4.7, 4.8 –skip Sections 5.4, 5.5 for now
3
Slide 5-3 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 5 Determining When I/O is Complete CPU Device Interrupt Pending CPU incorporates an “interrupt pending” flag When device.busy FALSE, interrupt pending flag is set Hardware “tells” OS that the interrupt occurred Interrupt handler part of the OS makes process ready to run
4
Slide 5-4 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 5 Control Unit with Interrupt (Hardware) PC = ; IR = memory[PC]; haltFlag = CLEAR; while(haltFlag not SET) { execute(IR); PC = PC + sizeof(INSTRUCT); IR = memory[PC]; if(InterruptRequest) { memory[0] = PC; PC = memory[1] }; memory[1] contains the address of the interrupt handler could be a trap instr.
5
Slide 5-5 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 5 Examples of Exceptions in Pentium Systems ClassCauseAsync/ Sync Return behavior TrapIntentional exception Syncalways returns to next instruction FaultPotentially recoverable error Syncmight return to current instruction Abortnonrecover- able error Syncnever returns Interruptsignal from I/O device Asyncalways returns to next instruction
6
Slide 5-6 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 5 The Trap Instruction Operation S Mode Trusted Code trap UserSupervisor Branch Table 2 31 a trap is a “software” interrupt hardware interrupts behave similarly, an interrupt gives an offset into interrupt vector table
7
Slide 5-7 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 5 Examples of Exceptions in Pentium Systems Exception Number DescriptionException Class 0Divide errorfault 13General protection fault fault 14Page faultfault 18machine checkabort 32-127OS-definedInterrupt or trap 128System callTrap 129-255OS-definedInterrupt or trap Exception Table, also called Branch Table or Jump Table or Interrupt Vector OS assigns maskable interrupts non- maskable
8
Slide 5-8 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 5 Maskable Interrupts Maskable interrupts can be turned off by CPU before execution of critical instruction sequences –are used by device controllers to talk with CPU Nonmaskable interrupts/exceptions is reserved for events such as unrecoverable memory errors and cannot be turned off by the CPU Can have multiple interrupt priority levels –high-priority interrupts can preempt execution of a low- priority interrupt
9
Slide 5-9 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 5 Disabling Maskable Interrupts saveProcessorState() { for(i=0; i<NumberOfRegisters; i++) memory[K+i] = R[i]; for(i=0; i<NumberOfStatusRegisters; i++) memory[K+NumberOfRegisters+i] = StatusRegister[i]; } PC = ; IR = memory[PC]; haltFlag = CLEAR; while(haltFlag not SET) { execute(IR); PC = PC + sizeof(INSTRUCT); IR = memory[PC]; if(InterruptRequest && InterruptEnabled) { disableInterupts(); memory[0] = PC; PC = memory[1] }; have to reenable interrupts after done
10
Slide 5-10 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 5 Classes of System Calls Invoked by trap end, abort load, execute create, terminate get attributes, set wait for time wait event, signal event allocate memory, free Process control Comm- unications File Management Device Management Information Management system call interface request device, release read, write, reposition get attributes, set logically attach or detach devices create connection, delete send messages, receive transfer status info attach remote devices, detach create, delete open, close read, write, reposition get attributes, set get time/date, set get system data, set get process, file, or device attributes, set Note Similarity
11
Slide 5-11 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 5 The Device Driver Interface Device Interface … write(…); … Terminal Driver Terminal Driver Printer Driver Printer Driver Disk Driver Disk Driver Terminal Controller Terminal Controller Printer Controller Printer Controller Disk Controller Disk Controller
12
Slide 5-12 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 5 Device Management Organization Application Process Application Process File Manager File Manager Device Controller Command Status Data Hardware Interface System Interface Device-Independent Device-Dependent e.g. write() Device Manager or I/O Subsystem drivers
13
Slide 5-13 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 5 Device System Call Interface Functions available to application programs Abstract all devices (and files) to a few interfaces Make interfaces as similar as possible –Block vs character –Sequential vs direct/random access –Blocking versus Non-Blocking I/O blocking system call: process put on wait queue until I/O completes non-blocking system call: returns immediately with partial number of bytes transferred, e.g. keyboard, mouse, network sockets –Synchronous versus asynchronous asynchronous returns immediately, but at some later time, the full number of bytes requested is transferred Device driver implements functions (one entry point per API function)
14
Slide 5-14 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 5 Example: BSD UNIX Driver open Prepare dev for operation close No longer using the device ioctl Character dev specific info read Character dev input op write Character dev output op strategy Block dev input/output ops select Character dev check for data stop Discontinue a stream output op
15
Slide 5-15 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 5 Device Independent Function Call func i (…) Trap Table dev_func_i(devID, …) { // Processing common to all devices … switch(devID) { case dev0:dev0_func_i(…); break; case dev1:dev1_func_i(…); break; … case devM:devM_func_i(…); break; }; // Processing common to all devices … }
16
Slide 5-16 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 5 Overlapping the Operation of a Device and the CPU Variable x Register Data on device... read(dev_I, “%d”, x); y = f(x)... Device dev_I Memory CPU... startRead(dev_I, “%d”, x);... While(stillReading()) ; y = f(x)...
17
Slide 5-17 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 5 Overlapping CPU-Controller Operations in a Process App I/O Ctlr t1t1 t2t2 t3t3 t4t4 t5t5 t6t6 t7t7 t8t8 t9t9 could be non-blocking or asynchronous system call
18
Slide 5-18 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 5 Overlapping Processing and I/O App 1 App 2 I/O Ctlr t1t1 t2t2 t3t3 t4t4 App1 makes a blocking or synchronous system call
19
Slide 5-19 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 5 Device Manager I/O Strategies Underneath the blocking/non-blocking synchronous/asynchronous system call API, OS can implement several strategies for I/O with devices –direct I/O with polling –direct I/O with interrupts –DMA with interrupts
20
Slide 5-20 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 5 Polling I/O Read Operation read(device, …); Data Device Controller Command Status Data read driver write driver 1 234 5 Hardware Interface System Interface
21
Slide 5-21 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 5 Interrupt-driven I/O Operation read(device, …); Data Device Controller Command Status Data read driver write driver 1 2 3 4 5 Hardware Interface System Interface Device Status Table Device Handler Device Handler Interrupt Handler Interrupt Handler 6 7 8a 8b 9
22
Slide 5-22 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 5 Driver-Kernel Interface Drivers are distinct from main part of kernel Kernel makes calls on specific functions, drivers implement them Drivers use kernel functions for: –Device allocation –Resource (e.g., memory) allocation –Scheduling –etc. (varies from OS to OS)
23
Slide 5-23 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 5 DMA with Interrupts Example CPU Memory DMA/bus/interrupt Controller Disk Controller I/O Bus CPU/Memory Bus 1. device driver told to transfer bytes from disk to memory 2. dev driver informs disk controller 3. disk controller initiates DMA 4. disk controller sends each byte to DMA controller 5. DMA sends each byte to memory 6. DMA interrupts CPU when done
24
Slide 5-24 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 5 Handling Interrupts int read(…) { // Prepare for I/O save_state(J); outdev# // Done (no return) } Device driver J Device Controller Interrupt Handler void dev_handler(…) { get_state(J); //Cleanup after op signal(dev[j]); return_from_sys_call(); } Device interrupt handler J J Device status table
25
Slide 5-25 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 5 Handling Interrupts(2) int read(…) { … outdev# // Return after interrupt wait(dev[J}); return_from_sys_call(); } Device driver J Device Controller Interrupt Handler void dev_handler(…) { //Cleanup after op signal(dev[j]); } Device interrupt handler J
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.