title: how does xv6 use interrupts to schedule I/O requests to disk
body: <p>So basically Have just started studying xv6 and how it works. At the momenet I am particularity looking at interrupts and ide.c.</p>
  
  <p>I know that xv6 source code includes a working IDE driver in ide.c. Also that IDE disk presents a simple interface to the Disk system, consisting of four types of register: control, command block, status, and error. These registers are available by reading or writing to specific I/O addresses using the in and out I/O instructions. </p>
  
  <p>What I am struggling to understand is how does the xv6 operating system uses interrupts to schedule I/O requests to the disk?</p>