4. (10pt) Consider a computer system where the CPU needs to communicate with various I/O devices. The system supports polling, interrupt-driven I/O, and Direct Memory Access (DMA). An application requires frequent data transfers between a storage device and the system memory. The data transfer size is typically large. The system has the capability to use polling, interrupt-driven I/O, or DMA for handling these data transfers.
(a) Describe the operational differences between polling, interrupt-driven I/O, and DMA in the context of data transfer between the CPU and the storage device.
(b) Analyze the CPU utilization for each method during the data transfer process.
(c) Recommend which method (polling, interrupt-driven I/O, or DMA) would be most suitable for this scenario. Justify your recommendation based on factors such as data transfer size, CPU efficiency, and overall system performance.