Command queue
In computer science, a command queue is a queue for enabling the delay of command execution, either in order of priority, on a first-in first-out basis, or in any order that serves the current purpose. Instead of waiting each command to be executed before sending the next one, the program just puts all the commands in the queue and goes on doing other things while the queue is processed by the executor component (e.g. hard drive).
This delegation not only frees the program from handling the queue, but also allows a more optimized execution in some situations. For instance, when handling multiple requests from several users, a network server's hard drive reorder all the requests in its queue to minimize the mechanical movement. It's like an elevator, that instead of serving the users in the order of solicitation serves them in order of floors.
Examples
- Native Command Queuing (NCQ) in Serial ATA (SATA)
- Tagged Command Queuing (TCQ) in Parallel ATA and SCSI