cisc 3320 i/o subsystem · •examples: the programs are almost identical when you •write to a...
TRANSCRIPT
![Page 1: CISC 3320 I/O Subsystem · •Examples: the programs are almost identical when you •write to a file, or ... •Commands include read, write, seek •Raw I/O, direct I/O, or file-system](https://reader033.vdocuments.us/reader033/viewer/2022050416/5f8c1a07f231bb56702f09f4/html5/thumbnails/1.jpg)
CISC 3320
I/O SubsystemHui Chen
Department of Computer & Information Science
CUNY Brooklyn College
11/20/2019 1CUNY | Brooklyn College
![Page 2: CISC 3320 I/O Subsystem · •Examples: the programs are almost identical when you •write to a file, or ... •Commands include read, write, seek •Raw I/O, direct I/O, or file-system](https://reader033.vdocuments.us/reader033/viewer/2022050416/5f8c1a07f231bb56702f09f4/html5/thumbnails/2.jpg)
Acknowledgement
• These slides are a revision of the slides
provided by the authors of the textbook
via the publisher of the textbook
11/20/2019 CUNY | Brooklyn College 2
![Page 3: CISC 3320 I/O Subsystem · •Examples: the programs are almost identical when you •write to a file, or ... •Commands include read, write, seek •Raw I/O, direct I/O, or file-system](https://reader033.vdocuments.us/reader033/viewer/2022050416/5f8c1a07f231bb56702f09f4/html5/thumbnails/3.jpg)
Outline
• Application I/O Interface
• Kernel I/O Subsystem
• Transforming I/O Requests to Hardware
Operations
• Performance
11/20/2019 CUNY | Brooklyn College 3
![Page 4: CISC 3320 I/O Subsystem · •Examples: the programs are almost identical when you •write to a file, or ... •Commands include read, write, seek •Raw I/O, direct I/O, or file-system](https://reader033.vdocuments.us/reader033/viewer/2022050416/5f8c1a07f231bb56702f09f4/html5/thumbnails/4.jpg)
Application I/O Interface
• I/O system calls encapsulate device
behaviors in generic classes
• Examples: the programs are almost
identical when you
• write to a file, or
• write to a terminal
11/20/2019 CUNY | Brooklyn College 4
![Page 5: CISC 3320 I/O Subsystem · •Examples: the programs are almost identical when you •write to a file, or ... •Commands include read, write, seek •Raw I/O, direct I/O, or file-system](https://reader033.vdocuments.us/reader033/viewer/2022050416/5f8c1a07f231bb56702f09f4/html5/thumbnails/5.jpg)
Device Driver and I/O
Subsystem• Each OS has its own I/O subsystem
structures and device driver frameworks
• Device independent
• Device-driver layer hides differences among
I/O controllers from the kernel
• New devices talking already-implemented
protocols need no extra work
11/20/2019 CUNY | Brooklyn College 5
Applications
OS Kernel (I/O subsystem)Hardware
System Call Interface
![Page 6: CISC 3320 I/O Subsystem · •Examples: the programs are almost identical when you •write to a file, or ... •Commands include read, write, seek •Raw I/O, direct I/O, or file-system](https://reader033.vdocuments.us/reader033/viewer/2022050416/5f8c1a07f231bb56702f09f4/html5/thumbnails/6.jpg)
A Kernel I/O Structure
11/20/2019 CUNY | Brooklyn College 6
![Page 7: CISC 3320 I/O Subsystem · •Examples: the programs are almost identical when you •write to a file, or ... •Commands include read, write, seek •Raw I/O, direct I/O, or file-system](https://reader033.vdocuments.us/reader033/viewer/2022050416/5f8c1a07f231bb56702f09f4/html5/thumbnails/7.jpg)
Devices Vary
• Need to understand general characteristics to achieve device independent
• Characterize them along a couple of dimensions
• Size of transfer: Character-stream or block
• Access order: sequential or random access
• Predictability and responsiveness: Synchronous and asynchronous
• Shared or dedicated
• Speed of operation, e.g., latency, seek time, transfer rate
• Read-write, read only, or write only
• Questions: what are example devices for each?
11/20/2019 CUNY | Brooklyn College 7
![Page 8: CISC 3320 I/O Subsystem · •Examples: the programs are almost identical when you •write to a file, or ... •Commands include read, write, seek •Raw I/O, direct I/O, or file-system](https://reader033.vdocuments.us/reader033/viewer/2022050416/5f8c1a07f231bb56702f09f4/html5/thumbnails/8.jpg)
11/20/2019 CUNY | Brooklyn College 8
![Page 9: CISC 3320 I/O Subsystem · •Examples: the programs are almost identical when you •write to a file, or ... •Commands include read, write, seek •Raw I/O, direct I/O, or file-system](https://reader033.vdocuments.us/reader033/viewer/2022050416/5f8c1a07f231bb56702f09f4/html5/thumbnails/9.jpg)
Questions?
• I/O subsystem structure?
• Application, kernel, I/O subsystem (device
driver), device controller and hardware
• Kernel provides I/O services to applications
• I/O system call examples?
• Different types of devices
• Why do we need to characterize I/O devices?
How do we characterize these devices?
11/20/2019 CUNY | Brooklyn College 9
![Page 10: CISC 3320 I/O Subsystem · •Examples: the programs are almost identical when you •write to a file, or ... •Commands include read, write, seek •Raw I/O, direct I/O, or file-system](https://reader033.vdocuments.us/reader033/viewer/2022050416/5f8c1a07f231bb56702f09f4/html5/thumbnails/10.jpg)
Need to Categorizing I/O
Devices• Subtleties of devices handled by device
drivers
• Applications and Kernel want to
communicate with drivers in very limited
but well defined fashion
11/20/2019 CUNY | Brooklyn College 10
SATA Controller
USB Controller
Device Driver Device Driver
OS Kernel
![Page 11: CISC 3320 I/O Subsystem · •Examples: the programs are almost identical when you •write to a file, or ... •Commands include read, write, seek •Raw I/O, direct I/O, or file-system](https://reader033.vdocuments.us/reader033/viewer/2022050416/5f8c1a07f231bb56702f09f4/html5/thumbnails/11.jpg)
Categorizing I/O Devices
• Broadly I/O devices can be grouped by the OS into
• Block I/O
• Character I/O (Stream)
• Memory-mapped file access
• Network sockets
• Thus, common functionalities can be defined.
• For direct manipulation of I/O device specific characteristics, usually via an escape / back door
• Example: UNIX ioctl() call to send arbitrary bits to a device control register and data to device data register
11/20/2019 CUNY | Brooklyn College 11
![Page 12: CISC 3320 I/O Subsystem · •Examples: the programs are almost identical when you •write to a file, or ... •Commands include read, write, seek •Raw I/O, direct I/O, or file-system](https://reader033.vdocuments.us/reader033/viewer/2022050416/5f8c1a07f231bb56702f09f4/html5/thumbnails/12.jpg)
Questions?
• The need to categorize different I/O
devices
11/20/2019 CUNY | Brooklyn College 12
![Page 13: CISC 3320 I/O Subsystem · •Examples: the programs are almost identical when you •write to a file, or ... •Commands include read, write, seek •Raw I/O, direct I/O, or file-system](https://reader033.vdocuments.us/reader033/viewer/2022050416/5f8c1a07f231bb56702f09f4/html5/thumbnails/13.jpg)
Block Devices
• Block devices include disk drives
• Commands include read, write, seek
• Raw I/O, direct I/O, or file-system access
• Memory-mapped file access possible
• File mapped to virtual memory and clusters
brought via demand paging
• DMA
11/20/2019 CUNY | Brooklyn College 13
![Page 14: CISC 3320 I/O Subsystem · •Examples: the programs are almost identical when you •write to a file, or ... •Commands include read, write, seek •Raw I/O, direct I/O, or file-system](https://reader033.vdocuments.us/reader033/viewer/2022050416/5f8c1a07f231bb56702f09f4/html5/thumbnails/14.jpg)
Block Devices: Examples
• Naming
• Examples on Linux
• by label, by uuid, by id, and by path
• Running examples
• lsblk –f
• ls /dev/disk/
• Read and write a block a time
• Essential behavior
• read(), write()
• For random-access block devices
• seek()
11/20/2019 CUNY | Brooklyn College 14
![Page 15: CISC 3320 I/O Subsystem · •Examples: the programs are almost identical when you •write to a file, or ... •Commands include read, write, seek •Raw I/O, direct I/O, or file-system](https://reader033.vdocuments.us/reader033/viewer/2022050416/5f8c1a07f231bb56702f09f4/html5/thumbnails/15.jpg)
Character Devices
• Character devices include keyboards,
mice, serial ports
• Read and write a character a time
• Essential behavior
• get(), put()
• Libraries layered on top allow line editing
11/20/2019 CUNY | Brooklyn College 15
![Page 16: CISC 3320 I/O Subsystem · •Examples: the programs are almost identical when you •write to a file, or ... •Commands include read, write, seek •Raw I/O, direct I/O, or file-system](https://reader033.vdocuments.us/reader033/viewer/2022050416/5f8c1a07f231bb56702f09f4/html5/thumbnails/16.jpg)
Network Devices
• Varying enough from block and character to have own interface
• Linux, Unix, Windows and many others include socket interface
• Separates network protocol from network operation
• Includes select() functionality
• Approaches vary widely (pipes, FIFOs, streams, queues, mailboxes)
11/20/2019 CUNY | Brooklyn College 16
![Page 17: CISC 3320 I/O Subsystem · •Examples: the programs are almost identical when you •write to a file, or ... •Commands include read, write, seek •Raw I/O, direct I/O, or file-system](https://reader033.vdocuments.us/reader033/viewer/2022050416/5f8c1a07f231bb56702f09f4/html5/thumbnails/17.jpg)
Clocks and Timers
• Provide current time, elapsed time, timer
• Normal resolution about 1/60 second
• Some systems provide higher-resolution
timers
• Programmable interval timer used for
timings, periodic interrupts
• ioctl() (on UNIX) covers odd aspects of
I/O such as clocks and timers
11/20/2019 CUNY | Brooklyn College 17
![Page 18: CISC 3320 I/O Subsystem · •Examples: the programs are almost identical when you •write to a file, or ... •Commands include read, write, seek •Raw I/O, direct I/O, or file-system](https://reader033.vdocuments.us/reader033/viewer/2022050416/5f8c1a07f231bb56702f09f4/html5/thumbnails/18.jpg)
Nonblocking and
Asynchronous I/O• Blocking - process suspended until I/O completed
• Easy to use and understand
• Insufficient for some needs
• Nonblocking - I/O call returns as much as available
• User interface, data copy (buffered I/O)
• Implemented via multi-threading
• Returns quickly with count of bytes read or written
• select() to find if data ready then read() or write() to transfer
• Asynchronous - process runs while I/O executes
• Difficult to use
• I/O subsystem signals process when I/O completed
11/20/2019 CUNY | Brooklyn College 18
![Page 19: CISC 3320 I/O Subsystem · •Examples: the programs are almost identical when you •write to a file, or ... •Commands include read, write, seek •Raw I/O, direct I/O, or file-system](https://reader033.vdocuments.us/reader033/viewer/2022050416/5f8c1a07f231bb56702f09f4/html5/thumbnails/19.jpg)
Two I/O Methods
11/20/2019 CUNY | Brooklyn College 19
Synchronous Asynchronous
![Page 20: CISC 3320 I/O Subsystem · •Examples: the programs are almost identical when you •write to a file, or ... •Commands include read, write, seek •Raw I/O, direct I/O, or file-system](https://reader033.vdocuments.us/reader033/viewer/2022050416/5f8c1a07f231bb56702f09f4/html5/thumbnails/20.jpg)
Vectored I/O
• Vectored I/O allows one system call to perform multiple I/O operations
• For example, Unix readve()/Linux readv() accepts a vector of multiple buffers to read into or write from
• This scatter-gather method better than multiple individual I/O calls
• Decreases context switching and system call overhead
• Some versions provide atomicity
• Avoid for example worry about multiple threads changing data as reads / writes occurring
11/20/2019 CUNY | Brooklyn College 20
![Page 21: CISC 3320 I/O Subsystem · •Examples: the programs are almost identical when you •write to a file, or ... •Commands include read, write, seek •Raw I/O, direct I/O, or file-system](https://reader033.vdocuments.us/reader033/viewer/2022050416/5f8c1a07f231bb56702f09f4/html5/thumbnails/21.jpg)
Questions
• Different types of I/O devices and
examples
• Related system calls?
11/20/2019 CUNY | Brooklyn College 21
![Page 22: CISC 3320 I/O Subsystem · •Examples: the programs are almost identical when you •write to a file, or ... •Commands include read, write, seek •Raw I/O, direct I/O, or file-system](https://reader033.vdocuments.us/reader033/viewer/2022050416/5f8c1a07f231bb56702f09f4/html5/thumbnails/22.jpg)
Kernel I/O Subsystem:
Scheduling• Some I/O request ordering via per-
device queue
• Some operating systems try fairness
• Some implement Quality Of Service (i.e.
IPQOS)
11/20/2019 CUNY | Brooklyn College 22
![Page 23: CISC 3320 I/O Subsystem · •Examples: the programs are almost identical when you •write to a file, or ... •Commands include read, write, seek •Raw I/O, direct I/O, or file-system](https://reader033.vdocuments.us/reader033/viewer/2022050416/5f8c1a07f231bb56702f09f4/html5/thumbnails/23.jpg)
Kernel I/O Subsystem:
Buffering• Store data in memory while transferring between
devices
• To cope with device speed mismatch
• To cope with device transfer size mismatch
• To maintain “copy semantics”
• Double buffering – two copies of the data
• Kernel and user
• Varying sizes
• Full / being processed and not-full / being used
• Copy-on-write can be used for efficiency in some cases
11/20/2019 CUNY | Brooklyn College 23
![Page 24: CISC 3320 I/O Subsystem · •Examples: the programs are almost identical when you •write to a file, or ... •Commands include read, write, seek •Raw I/O, direct I/O, or file-system](https://reader033.vdocuments.us/reader033/viewer/2022050416/5f8c1a07f231bb56702f09f4/html5/thumbnails/24.jpg)
Questions
• I/O subsystem design issues
• Scheduling
• buffering
11/20/2019 CUNY | Brooklyn College 24
![Page 25: CISC 3320 I/O Subsystem · •Examples: the programs are almost identical when you •write to a file, or ... •Commands include read, write, seek •Raw I/O, direct I/O, or file-system](https://reader033.vdocuments.us/reader033/viewer/2022050416/5f8c1a07f231bb56702f09f4/html5/thumbnails/25.jpg)
Device Status Table
11/20/2019 CUNY | Brooklyn College 25
![Page 26: CISC 3320 I/O Subsystem · •Examples: the programs are almost identical when you •write to a file, or ... •Commands include read, write, seek •Raw I/O, direct I/O, or file-system](https://reader033.vdocuments.us/reader033/viewer/2022050416/5f8c1a07f231bb56702f09f4/html5/thumbnails/26.jpg)
Questions?
• Data structures in I/O subsystem
11/20/2019 CUNY | Brooklyn College 26
![Page 27: CISC 3320 I/O Subsystem · •Examples: the programs are almost identical when you •write to a file, or ... •Commands include read, write, seek •Raw I/O, direct I/O, or file-system](https://reader033.vdocuments.us/reader033/viewer/2022050416/5f8c1a07f231bb56702f09f4/html5/thumbnails/27.jpg)
Sun Enterprise 6000 Device-
Transfer Rates
11/20/2019 CUNY | Brooklyn College 27
![Page 28: CISC 3320 I/O Subsystem · •Examples: the programs are almost identical when you •write to a file, or ... •Commands include read, write, seek •Raw I/O, direct I/O, or file-system](https://reader033.vdocuments.us/reader033/viewer/2022050416/5f8c1a07f231bb56702f09f4/html5/thumbnails/28.jpg)
Question for Designers
• How do we deal with (or take advantage
of) the disparity of the vastly different
transfer rates?
• What if a device can only fulfill one
request at a time?
11/20/2019 CUNY | Brooklyn College 28
![Page 29: CISC 3320 I/O Subsystem · •Examples: the programs are almost identical when you •write to a file, or ... •Commands include read, write, seek •Raw I/O, direct I/O, or file-system](https://reader033.vdocuments.us/reader033/viewer/2022050416/5f8c1a07f231bb56702f09f4/html5/thumbnails/29.jpg)
Caching
• Faster device holding copy of data
• Always just a copy
• Key to performance
• Sometimes combined with buffering
11/20/2019 CUNY | Brooklyn College 29
![Page 30: CISC 3320 I/O Subsystem · •Examples: the programs are almost identical when you •write to a file, or ... •Commands include read, write, seek •Raw I/O, direct I/O, or file-system](https://reader033.vdocuments.us/reader033/viewer/2022050416/5f8c1a07f231bb56702f09f4/html5/thumbnails/30.jpg)
Spooling
• Spooling - hold output for a device
• If device can serve only one request at a
time
• i.e., Printing
11/20/2019 CUNY | Brooklyn College 30
![Page 31: CISC 3320 I/O Subsystem · •Examples: the programs are almost identical when you •write to a file, or ... •Commands include read, write, seek •Raw I/O, direct I/O, or file-system](https://reader033.vdocuments.us/reader033/viewer/2022050416/5f8c1a07f231bb56702f09f4/html5/thumbnails/31.jpg)
Device reservation
• Provides exclusive access to a device
• System calls for allocation and de-allocation
• Watch out for deadlock (to be discussed in
the class)
11/20/2019 CUNY | Brooklyn College 31
![Page 32: CISC 3320 I/O Subsystem · •Examples: the programs are almost identical when you •write to a file, or ... •Commands include read, write, seek •Raw I/O, direct I/O, or file-system](https://reader033.vdocuments.us/reader033/viewer/2022050416/5f8c1a07f231bb56702f09f4/html5/thumbnails/32.jpg)
Questions?
• I/O Transfer rate?
• Concurrent access to I/O devices?
11/20/2019 CUNY | Brooklyn College 32
![Page 33: CISC 3320 I/O Subsystem · •Examples: the programs are almost identical when you •write to a file, or ... •Commands include read, write, seek •Raw I/O, direct I/O, or file-system](https://reader033.vdocuments.us/reader033/viewer/2022050416/5f8c1a07f231bb56702f09f4/html5/thumbnails/33.jpg)
Error Handling
• OS can recover from disk read, device
unavailable, transient write failures
• Retry a read or write, for example
• Some systems more advanced – Solaris FMA, AIX
• Track error frequencies, stop using device with
increasing frequency of retry-able errors
• Most return an error number or code when
I/O request fails
• System error logs hold problem reports
11/20/2019 CUNY | Brooklyn College 33
![Page 34: CISC 3320 I/O Subsystem · •Examples: the programs are almost identical when you •write to a file, or ... •Commands include read, write, seek •Raw I/O, direct I/O, or file-system](https://reader033.vdocuments.us/reader033/viewer/2022050416/5f8c1a07f231bb56702f09f4/html5/thumbnails/34.jpg)
Questions?
• Dealing with errors?
11/20/2019 CUNY | Brooklyn College 34
![Page 35: CISC 3320 I/O Subsystem · •Examples: the programs are almost identical when you •write to a file, or ... •Commands include read, write, seek •Raw I/O, direct I/O, or file-system](https://reader033.vdocuments.us/reader033/viewer/2022050416/5f8c1a07f231bb56702f09f4/html5/thumbnails/35.jpg)
Need for I/O Protection
• User process may accidentally or
purposefully attempt to disrupt normal
operation via illegal I/O instructions
11/20/2019 CUNY | Brooklyn College 35
![Page 36: CISC 3320 I/O Subsystem · •Examples: the programs are almost identical when you •write to a file, or ... •Commands include read, write, seek •Raw I/O, direct I/O, or file-system](https://reader033.vdocuments.us/reader033/viewer/2022050416/5f8c1a07f231bb56702f09f4/html5/thumbnails/36.jpg)
I/O Protection
• All I/O instructions defined to be
privileged
• I/O must be performed via system calls
• Memory-mapped and I/O port memory
locations must be protected too
11/20/2019 CUNY | Brooklyn College 36
![Page 37: CISC 3320 I/O Subsystem · •Examples: the programs are almost identical when you •write to a file, or ... •Commands include read, write, seek •Raw I/O, direct I/O, or file-system](https://reader033.vdocuments.us/reader033/viewer/2022050416/5f8c1a07f231bb56702f09f4/html5/thumbnails/37.jpg)
Use of a System Call to
Perform I/O
11/20/2019 CUNY | Brooklyn College 37
![Page 38: CISC 3320 I/O Subsystem · •Examples: the programs are almost identical when you •write to a file, or ... •Commands include read, write, seek •Raw I/O, direct I/O, or file-system](https://reader033.vdocuments.us/reader033/viewer/2022050416/5f8c1a07f231bb56702f09f4/html5/thumbnails/38.jpg)
Questions?
• Design for I/O protection
11/20/2019 CUNY | Brooklyn College 38
![Page 39: CISC 3320 I/O Subsystem · •Examples: the programs are almost identical when you •write to a file, or ... •Commands include read, write, seek •Raw I/O, direct I/O, or file-system](https://reader033.vdocuments.us/reader033/viewer/2022050416/5f8c1a07f231bb56702f09f4/html5/thumbnails/39.jpg)
Kernel Data Structures for
I/O• Kernel keeps state info for I/O components, including
open file tables, network connections, character device state
• Many, many complex data structures to track buffers, memory allocation, “dirty” blocks
• Some use object-oriented methods and message passing to implement I/O
• Windows uses message passing
• Message with I/O information passed from user mode into kernel
• Message modified as it flows through to device driver and back to process
• Pros / cons?
11/20/2019 CUNY | Brooklyn College 39
![Page 40: CISC 3320 I/O Subsystem · •Examples: the programs are almost identical when you •write to a file, or ... •Commands include read, write, seek •Raw I/O, direct I/O, or file-system](https://reader033.vdocuments.us/reader033/viewer/2022050416/5f8c1a07f231bb56702f09f4/html5/thumbnails/40.jpg)
UNIX I/O Kernel Structure
11/20/2019 CUNY | Brooklyn College 40
![Page 41: CISC 3320 I/O Subsystem · •Examples: the programs are almost identical when you •write to a file, or ... •Commands include read, write, seek •Raw I/O, direct I/O, or file-system](https://reader033.vdocuments.us/reader033/viewer/2022050416/5f8c1a07f231bb56702f09f4/html5/thumbnails/41.jpg)
Questions?
• Kernel data structures for I/O
11/20/2019 CUNY | Brooklyn College 41
![Page 42: CISC 3320 I/O Subsystem · •Examples: the programs are almost identical when you •write to a file, or ... •Commands include read, write, seek •Raw I/O, direct I/O, or file-system](https://reader033.vdocuments.us/reader033/viewer/2022050416/5f8c1a07f231bb56702f09f4/html5/thumbnails/42.jpg)
Power Management
• Not strictly domain of I/O, but much is I/O related
• Computers and devices use electricity, generate heat, frequently require cooling
• OSes can help manage and improve use
• Cloud computing environments move virtual machines between servers
• Can end up evacuating whole systems and shutting them down
• Mobile computing has power management as first class OS aspect
11/20/2019 CUNY | Brooklyn College 42
![Page 43: CISC 3320 I/O Subsystem · •Examples: the programs are almost identical when you •write to a file, or ... •Commands include read, write, seek •Raw I/O, direct I/O, or file-system](https://reader033.vdocuments.us/reader033/viewer/2022050416/5f8c1a07f231bb56702f09f4/html5/thumbnails/43.jpg)
Power Management:
Examples• For example, Android implements
• Component-level power management
• Understands relationship between components
• Build device tree representing physical device topology
• System bus -> I/O subsystem -> {flash, USB storage}
• Device driver tracks state of device, whether in use
• Unused component – turn it off
• All devices in tree branch unused – turn off branch
• Wake locks – like other locks but prevent sleep of device when lock is held
• Power collapse – put a device into very deep sleep
• Marginal power use
• Only awake enough to respond to external stimuli (button press, incoming call)
11/20/2019 CUNY | Brooklyn College 43
![Page 44: CISC 3320 I/O Subsystem · •Examples: the programs are almost identical when you •write to a file, or ... •Commands include read, write, seek •Raw I/O, direct I/O, or file-system](https://reader033.vdocuments.us/reader033/viewer/2022050416/5f8c1a07f231bb56702f09f4/html5/thumbnails/44.jpg)
Questions?
• I/O and power management?
11/20/2019 CUNY | Brooklyn College 44
![Page 45: CISC 3320 I/O Subsystem · •Examples: the programs are almost identical when you •write to a file, or ... •Commands include read, write, seek •Raw I/O, direct I/O, or file-system](https://reader033.vdocuments.us/reader033/viewer/2022050416/5f8c1a07f231bb56702f09f4/html5/thumbnails/45.jpg)
Life Cycle of An I/O Request
• Consider reading a file from disk for a
process:
• Determine device holding file
• Translate name to device representation
• Physically read data from disk into buffer
• Make data available to requesting process
• Return control to process
11/20/2019 CUNY | Brooklyn College 45
![Page 46: CISC 3320 I/O Subsystem · •Examples: the programs are almost identical when you •write to a file, or ... •Commands include read, write, seek •Raw I/O, direct I/O, or file-system](https://reader033.vdocuments.us/reader033/viewer/2022050416/5f8c1a07f231bb56702f09f4/html5/thumbnails/46.jpg)
11/20/2019 CUNY | Brooklyn College 46
![Page 47: CISC 3320 I/O Subsystem · •Examples: the programs are almost identical when you •write to a file, or ... •Commands include read, write, seek •Raw I/O, direct I/O, or file-system](https://reader033.vdocuments.us/reader033/viewer/2022050416/5f8c1a07f231bb56702f09f4/html5/thumbnails/47.jpg)
Questions?
• I/O request operation from beginning to
end (life cycle)?
11/20/2019 CUNY | Brooklyn College 47
![Page 48: CISC 3320 I/O Subsystem · •Examples: the programs are almost identical when you •write to a file, or ... •Commands include read, write, seek •Raw I/O, direct I/O, or file-system](https://reader033.vdocuments.us/reader033/viewer/2022050416/5f8c1a07f231bb56702f09f4/html5/thumbnails/48.jpg)
I/O and Performance
• I/O a major factor in system
performance:
• Demands CPU to execute device driver,
kernel I/O code
• Context switches due to interrupts
• Data copying
• Network traffic especially stressful
11/20/2019 CUNY | Brooklyn College 48
![Page 49: CISC 3320 I/O Subsystem · •Examples: the programs are almost identical when you •write to a file, or ... •Commands include read, write, seek •Raw I/O, direct I/O, or file-system](https://reader033.vdocuments.us/reader033/viewer/2022050416/5f8c1a07f231bb56702f09f4/html5/thumbnails/49.jpg)
IPC
Consideration
11/20/2019 CUNY | Brooklyn College 49
![Page 50: CISC 3320 I/O Subsystem · •Examples: the programs are almost identical when you •write to a file, or ... •Commands include read, write, seek •Raw I/O, direct I/O, or file-system](https://reader033.vdocuments.us/reader033/viewer/2022050416/5f8c1a07f231bb56702f09f4/html5/thumbnails/50.jpg)
Improving Performance
• Reduce number of context switches
• Reduce data copying
• Reduce interrupts by using large transfers, smart controllers, polling
• Use DMA
• Use smarter hardware devices
• Balance CPU, memory, bus, and I/O performance for highest throughput
• Move user-mode processes / daemons to kernel threads
11/20/2019 CUNY | Brooklyn College 50
![Page 51: CISC 3320 I/O Subsystem · •Examples: the programs are almost identical when you •write to a file, or ... •Commands include read, write, seek •Raw I/O, direct I/O, or file-system](https://reader033.vdocuments.us/reader033/viewer/2022050416/5f8c1a07f231bb56702f09f4/html5/thumbnails/51.jpg)
Device-Functionality
Progression
11/20/2019 CUNY | Brooklyn College 51
![Page 52: CISC 3320 I/O Subsystem · •Examples: the programs are almost identical when you •write to a file, or ... •Commands include read, write, seek •Raw I/O, direct I/O, or file-system](https://reader033.vdocuments.us/reader033/viewer/2022050416/5f8c1a07f231bb56702f09f4/html5/thumbnails/52.jpg)
Design Consideration: Access
Right• A design consideration
• What kind of access right should we give to device drivers?
• Unrestricted
• Kernel mode
• Relatively easier to design, can affect the others
• Restricted
• User mode
• More difficult to design, isolated from the others
11/20/2019 CUNY | Brooklyn College 52
![Page 53: CISC 3320 I/O Subsystem · •Examples: the programs are almost identical when you •write to a file, or ... •Commands include read, write, seek •Raw I/O, direct I/O, or file-system](https://reader033.vdocuments.us/reader033/viewer/2022050416/5f8c1a07f231bb56702f09f4/html5/thumbnails/53.jpg)
Design Consideration:
Loading Device Drivers• Relink the kernel with the new deriver
• Require reboot
• Add to the kernel an entry indicating a
new driver is needed
• Load the driver during reboot
• Install and run the device driver on the
fly
• Hot-pluggable
11/20/2019 CUNY | Brooklyn College 53
![Page 54: CISC 3320 I/O Subsystem · •Examples: the programs are almost identical when you •write to a file, or ... •Commands include read, write, seek •Raw I/O, direct I/O, or file-system](https://reader033.vdocuments.us/reader033/viewer/2022050416/5f8c1a07f231bb56702f09f4/html5/thumbnails/54.jpg)
Questions?
• System performance and I/O
• Device-function progression
• Access right
• Loading device drivers
11/20/2019 CUNY | Brooklyn College 54