Rotational Latency
In 1 min. we have 3000 revolutions. Therefore, for one rotation we need
$Rotational Latency = 60/3000 = 20ms$
Sector Read/Write Time
In 20ms we can read 512 sectors. Therefore, for reading/writing one sector is
$Time \ to \ read/write \ a \ sector = 20 \ ms / 512 = 39.06 \mu s$
To transfer 1KB of data from the disk to the memory
The transfer happens byte-wise as mentioned in the question for disk to memory.
The time to transfer 1KB of data using DMA with 40ns cycle time is
$DMA \ Transfer \ Time = 40ns * 1024 = 40.96 \mu s$
The % time where the CPU will be blocked is
$ \% CPU\ Block= DMA\ Transfer\ Time\ / Total\ Transfer\ Time$
$\% CPU\ Block = \frac{DMA\ Transfer\ Time}{DMA\ Transfer\ Time\ + Sector\ Read\ Time}$
$ \% CPU\ Block = 40.96 \mu s / (40.96 \mu s + 39.96 \mu s ) \\ \% CPU\ Block = 51.18 = (approx) 50 %$
If we consider transfer from memory to disk, since DMA transfers 4 byes in each DMA cycle, the CPU wait time is much less (about 10%)
Therefore, the answer is (D) 50%