Chapter 12 - I/O Systems Flashcards

1
Q

What are the basic hardware elements involved in I/O?

A

The basic hardware elements involved in I/O are buses, device controllers. and the devices themselves.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Who performs the moving of the data between devices and main memory?

A

The work of moving data between devices and main memory is performed by the CPU as programmed I/O or is offloaded to a DMA controller.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What is a device driver?

A

The kernel module that controls a device is a device driver. The system-call interface provided to applications is designed to handle several basic categories of hardware, including block devices, character-stream devices, memory-mapped files, network sockets, and programmed interval timers. The system calls usually block the processes that issue them, but nonblocking and asynchronous calls are used by the kernel itself and by applications that must not sleep while waiting for an I/O operation to complete.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What are some of kernel’s I/O subsystem’s services?

A

The kernel’s I/O subsystem provides numerous services. Among these are I/O scheduling, buffering, caching, spooling, device reservation, error handling. Another service, name translation, makes the connections between hardware devices and the symbolic file names used by applications. It involves several levels of mapping that translate from characetr-string names, to specific device drivers and device addresses, and then to physical addresses of I/O ports or bus controllers. This mapping may occur within the file-system name space, as it does in UNIX, or in a separate device name space, as it does in MS-DOS.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What is STREAMS?

A

STREAMS is an implementation and methodology that provides a framework for a modular and incremental approach to writing device drivers and network protocols. Through STREAMs, drivers can be stacked, with data passing through them sequentially and bidirectionally for processing.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Why are I/O system calls costly?

A

I/O systems calls are costly in terms of CPU consumption because of the many layers of software between a physical device and an application. These layers imply overhead from several sources: context switching to cross the kernel’s protection boundary, signal and interrupt handling to service the I/O devices, and the load on the CPU and memory system to copy data between kernel buffers and application space.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly