The operating system uses lists and queues extensively. One of the most common usages of these structures is to hold in an orderly manner the control blocks that represent the tasks that are in various stages of execution. (A task can run, it can wait for an external event such as an input/output operation, or it can be ready to run but held because its priority is not high enough). The control blocks are moved in and out of these stages. Discuss how you would implement these structures. Would you use lists or queues? Please consider aspects of efficiency and robustness.