In-class notes for 10/26/2020
CS 273 (OS), Fall 2020
-
Next steps (for HW11): research/plan new non-clone system call(s)
HW10, due today (at least a first submission).
Linux source code
Ongoing exploration of kernel code...
I/O (Input/Output)
Last time - I/O device types; kernel support needed
Goals for I/O in the kernel
Device independence
Uniform block size among different types of block devices (e.g., flash drive vs hard disk)
Uniform naming
File descriptors (used for I/O via sockets or standard input/output as well as for file-related I/O operations)
Handle errors as close to hardware as possible
Both synchronous (blocking) and asynchronous (interrupt-driven) transfers
Effective use of buffering
Both sharable and dedicated devices
Layered view of I/O architecture (structural design of I/O support in the OS). E.g.,
User-level code (including user-level libraries)
Device driver (in kernel)
Device controller (hardware)
Device (hardware)
Exercise: goals for I/O software
For each of the following goals for I/O software, identify one or two examples that illustrate that goal. Some example answers are provided in this font.
< >