For sake of concurrency SQL Server has a complex hierarchy of row, page, extent and table locks. When a piece of data or SQL Server resource is locked other processes wait for release of that lock.
If I/O operations on your disk are taking excessive time for completion, the I/O resources will be held for a longer time than normal. By this way other processes will be waiting for more than normal time and chances of dead locks will increase due to I/O bottle neck.
On storage engine side query processing will become slow and if long table scans are taking place then locks will be applied for a longer time. And chances of dead locks increase.
Click here to read all posts related to SQL Server storage systems and I/O operations.