Operating systems can be really complex but, multitasking processors for embedded systems (microprocessor tucked away) are usually ~5 pages of c. A queue is a collection in which the elements are maintained in the order in which they are added. A queue is a fifo collection (first-in, first-out) Different than list in that there"s no access to the middle of a queue. Because elements are always added at the rear of the queue, but are retrieved and removed from the front of the queue, we should pick a data structure that permits efficient manipulation of both ends of the queue. There are no operations that insert elements into or remove elements from the middle of a queue, so efficient access to that part of the data structure is not important. An efficient way to create a queue, would be to have a singly - linked list data structure with a front and rear pointer.