Latest Posts

User-Space I/O Software
15 views
User-Space I/O Software

Though most of the I/O software is within the operating system, a small portion of it comprises libraries linked together with user programs, and even whole programs running outside the kernel. System calls, including the I/O system calls, are usually made by library procedures.

Device-Independent I/O Software
17 views
Device-Independent I/O Software

Though some of the I/O software is device specific, other parts of it are device independent. The exact boundary between the drivers and the device-independent software is system (and device) dependent, because some functions that could be done in a device-independent way

Device Drivers
27 views
Device Drivers

Earlier in this section we examined what device controllers do. We saw that each controller has some device registers used to give it commands or some device registers used to read out its status or both. The number of device registers and the nature of the commands vary

I/O SOFTWARE LAYERS
37 views
I/O SOFTWARE LAYERS

I/O software is normally organized in four layers, as illustrated in Figure 1. Each layer has a well-defined function to perform and a well-defined interface to the adjacent layers. The functionality and interfaces differ from system to system, so the discussion that follows,

PRINCIPLES OF I/O SOFTWARE
49 views
PRINCIPLES OF I/O SOFTWARE

Let us now turn our attention from the I/O hardware to the I/O software. First we will consider the goals of the I/O software and then at the various ways I/O can be done from the point of view of the operating system.

Interrupts Revisited
86 views
Interrupts Revisited

We briefly introduced interrupts in "Handheld Computer Operating Systems" but there is more to be said. In a typical personal computer system, the interrupt structure is as illustrated in Figure 1. At the hardware level, interrupts work as follows. When an I/O device has finished

Direct Memory Access (DMA)
109 views
Direct Memory Access (DMA)

Regardless of whether a CPU does or does not have memory-mapped I/O, it needs to address the device controllers to exchange data with them. The CPU can request data from an I/O controller one byte at a time but doing so wastes the CPU's time, so a different scheme, called

Memory-Mapped I/O
103 views
Memory-Mapped I/O

Each controller has a few registers that are used for communicating with the CPU. By writing into these registers, the operating system can command the device to deliver data, accept data, switch itself on or off, or otherwise perform some action. By reading from these registers,

INPUT/OUTPUT
118 views
INPUT/OUTPUT

In addition to providing abstractions such as processes (and threads), address spaces, and files, an operating system also controls all the computer's I/O (Input/Output) devices. It must issue commands to the devices, catch interrupts, and handle errors. It should also provide an

The UNIX V7 File System
132 views
The UNIX V7 File System

The early versions of UNIX had a fairly sophisticated multiuser file system since it was derived from MULTICS. Below we will talk about the V7 file system, the one for the PDP-11 that made UNIX famous. The file system is in the form of a tree starting at the root directory, with the