What you are referring is called I/O scheduling

I/O schedulers can have many purposes depending on the goal of the I/O scheduler, some common goals are:
To minimize time wasted by hard disk seeks.
To prioritize a certain processes' I/O requests.
To give a share of the disk bandwidth to each running process.
To guarantee that certain requests will be issued before a particular deadline.