I/O buffering and its Various Techniques - GeeksforGeeks (2024)

Improve Article

Save Article

Like Article

  • Difficulty Level :Medium
  • Last Updated :15 May, 2020
  • Read
  • Discuss
  • Improve Article

    Save Article

    Like Article

    A buffer is a memory area that stores data being transferred between two devices or between a device and an application.

    Uses of I/O Buffering :

    • Buffering is done to deal effectively with a speed mismatch between the producer and consumer of the data stream.
    • A buffer is produced in main memory to heap up the bytes received from modem.
    • After receiving the data in the buffer, the data get transferred to disk from buffer in a single operation.
    • This process of data transfer is not instantaneous, therefore the modem needs another buffer in order to store additional incoming data.
    • When the first buffer got filled, then it is requested to transfer the data to disk.
    • The modem then starts filling the additional incoming data in the second buffer while the data in the first buffer getting transferred to disk.
    • When both the buffers completed their tasks, then the modem switches back to the first buffer while the data from the second buffer get transferred to the disk.
    • The use of two buffers disintegrates the producer and the consumer of the data, thus minimizes the time requirements between them.
    • Buffering also provides variations for devices that have different data transfer sizes.

    Types of various I/O buffering techniques :

    1. Single buffer :
    A buffer is provided by the operating system to the system portion of the main memory.

    Block oriented device –

    • System buffer takes the input.
    • After taking the input, the block gets transferred to the user space by the process and then the process requests for another block.
    • Two blocks works simultaneously, when one block of data is processed by the user process, the next block is being read in.
    • OS can swap the processes.
    • OS can record the data of system buffer to user processes.

    Stream oriented device –

    • Line- at a time operation is used for scroll made terminals. User inputs one line at a time, with a carriage return signaling at the end of a line.
    • Byte-at a time operation is used on forms mode, terminals when each keystroke is significant.

    I/O buffering and its Various Techniques - GeeksforGeeks (1)

    2. Double buffer :

    Block oriented –

    • There are two buffers in the system.
    • One buffer is used by the driver or controller to store data while waiting for it to be taken by higher level of the hierarchy.
    • Other buffer is used to store data from the lower level module.
    • Double buffering is also known as buffer swapping.
    • A major disadvantage of double buffering is that the complexity of the process get increased.
    • If the process performs rapid bursts of I/O, then using double buffering may be deficient.

    Stream oriented –

    • Line- at a time I/O, the user process need not be suspended for input or output, unless process runs ahead of the double buffer.
    • Byte- at a time operations, double buffer offers no advantage over a single buffer of twice the length.

    I/O buffering and its Various Techniques - GeeksforGeeks (2)

    3. Circular buffer :

    • When more than two buffers are used, the collection of buffers is itself referred to as a circular buffer.
    • In this, the data do not directly passed from the producer to the consumer because the data would change due to overwriting of buffers before they had been consumed.
    • The producer can only fill up to buffer i-1 while data in buffer i is waiting to be consumed.

    I/O buffering and its Various Techniques - GeeksforGeeks (3)

    My Personal Notesarrow_drop_up

    Like Article

    Save Article

    I/O buffering and its Various Techniques - GeeksforGeeks (2024)
    Top Articles
    Latest Posts
    Article information

    Author: Neely Ledner

    Last Updated:

    Views: 6410

    Rating: 4.1 / 5 (62 voted)

    Reviews: 85% of readers found this page helpful

    Author information

    Name: Neely Ledner

    Birthday: 1998-06-09

    Address: 443 Barrows Terrace, New Jodyberg, CO 57462-5329

    Phone: +2433516856029

    Job: Central Legal Facilitator

    Hobby: Backpacking, Jogging, Magic, Driving, Macrame, Embroidery, Foraging

    Introduction: My name is Neely Ledner, I am a bright, determined, beautiful, adventurous, adventurous, spotless, calm person who loves writing and wants to share my knowledge and understanding with you.