Home | Projects | Notes > Operating Systems > I/O Management

I/O Management

 

Techniques for Performing I/O

[!] Note: In general, block size is either equal to the frame size or multiple of frame size.

Direct Memory Access (DMA)

 

typical-dma-block-diagram

 

 

Evolution of the I/O Function

 

io-techniques

 

  1. Processor directly controls a peripheral device or directly commands an I/O module attached to that device. i.e., Programmed I/O.

  2. Processor sends instructions to devices as in (1), but interrupts are now used to eliminate busy waiting for those instructions to complete.

  3. The I/O module/device is given direct access to the memory via DMA. It can now move an entire block of data without involving the processor, once started.

  4. The I/O module is enhanced by giving it a processor with a specialized instruction set for the device it manages. Now, a single command can initiate a sequence of instructions.

  5. The I/O module is enhanced with its own local memory and ability to implement customizable driver software to control a device. This is a specialized processor we mentioned in the context of multiprocessing architectures.

전반적으로, OS의 I/O에의 개입이 점점 줄어드는 방향으로 진화해왔다고 보면 된다. 최종적으로는, OS가 다른 process들을 처리하는 중에 I/O를 전담하는 장치가 I/O 작업을 수행하는 방식으로 개선되었다.

 

Operating System Design Goals

 

I/O Buffering

 

io-buffering-schemes

 

I/O Buffering Techniques

 

 

References

Stallings, W. (2018). Operating Systems: Internals and Design Principles (9th ed.). Pearson Education, Inc.