A bus is a shared communication link, which uses a set of wires to connect multiple subsystems.
Advantages of buses are:
THis is the typical bus configuration in low cost computer systems.
IO commands, CPU instructions and data fetches are multiplexed together on the same bus.
Used by high performance computers so that I/O transactions do not slow down the memory access.
- The operating system (OS) plays a major role in handling I/O
- The OS handles the interrupts generated by I/O devices
- The OS tries to provide equitable access to the shared I/O resources, as well as schedule accesses to enhance system throughput
The way CPU sends and recieves data from the I/O device
Programmed I/O (Polling)
The CPU monitors the I/O controller and hence the CPU is not free to work on other things, which is very inefficient, and hence, not used today.
Interrupt Driven I/O
It is used by todays computer systems, because it allows the CPU to work on other proccesses while waiting for the I/O device, and during the actual transfer, the CPU is only halted.
Direct Memory Access
In an Interrupt-Driven system, the CPU spends a lot of cycles during the transfer of data, hence a Direct Memory Access(DMA) is added to most computer systems to allow transfer of large number of words without the intervention of CPU.
In any large data transfer, DMA is preferable over Interrupt Driven I/O.
There also exists a DMA controller because since memory is a slave device, it cannot initiate bus transfers. Hence the DMA controller then acts as a memory master.
Redundant Array of Independent Disks
RAID 0
It offers no redundancy (duplication), but it improves disk access.
RAID 1
It creates a mirror for every disk giving 100% redundancy, but at 2x the cost. 2 reads can be done in parallel but writing also needs to be done on both disks.
RAID 2
RAID 2 strips each byte into 1 bit per disk and uses additional disks to store Hamming codes for redundancy
• Hamming code information is time consuming to generate, so
RAID 2 is not used, instead RAID 3 uses the same idea but only stores parity information for redundancy
RAID 3
RAID 3 uses parity information for redundancy, and hence it is most suitable for small computer systems that require some but not total redundancy.