$Programmed\quad IO:$
1) CPU polls continuously while the device prepares data in the buffer.
2) CPU transfers the data to main memory.
$Interrupt\quad driven\quad IO:$
1) Device generates an interrupt when data is ready.
2) CPU handles the interrupt (interrupt overhead).
3) CPU transfers the data to main memory.
$Given:$
Device transfer rate = 10 KB/sec = 10 * 1000 = 10,000 Bytes/sec
Time per byte = $10^{-4}$ sec = $100 × 10^{-6} $ sec = 100 microseconds
$Programmed\quad IO:$
Since CPU polls continuously and the CPU to main memory transfer time is negligible (given)
CPU time per byte = device time per byte
CPU time per byte = 100 microseconds
$Interrupt\quad driven\quad IO:$
Interrupt overhead per byte = $4 * 10^{-6}$ seconds
CPU to main memory transfer time is negligible
Performance gain = Old/New
CPU time in Programmed IO = $100 * 10^{-6}$ seconds
CPU time in Interrupt driven IO = $4 * 10^{-6}$ seconds
Performance gain = $(100 * 10^{-6}) / (4 * 10^{-6})$ = 25