Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
nie.docx
Скачиваний:
0
Добавлен:
24.04.2019
Размер:
424.76 Кб
Скачать

12.Очередь.

Очередь – линейная структура данных переменного размера ограниченным доступом. Доступ к элементам очереди происходит по указателю начала очереди и указателю конца очереди. Чтение начинается с головы или начала очереди. УН указывает на тот элемент, который будет первым читаться. Прочитанный элемент считается исключенным из очереди. Включение элемента возможно только в хвост или в конец очереди. УК устанавливается на свободную ячейку следующего за последним элементом очереди, в эту ячейку включается новый элемент. Данные в такой структуре обрабатываются по принципу «первый пришел, первый ушел». FIFO – First In First Out. В памяти очередь можно хранить как последовательное, так и как связанное представление. При последовательном представлении под очередь, как и под стек, резервируется блок памяти, внутри которого очередь может расти и сокращаться.

Новый элемент записывается в ячейку на которую установлен УК, после выполнения операции записи УК изменяется на единицу и перемещается на следующую свободную ячейку . Когда в результате включения новых элементов УК достигнет последней ячейки зарезервированного блока в нее записывается элемент и очередь оказывается переполненной.

Читается из очереди элемент, на который указывает УН, после чтения УН изменяется на единицу передвигаясь к концу очереди и устанавливается на следующий элемент очереди. Прочитанный элемент оказывается исключенным из очереди. Когда УН совпадет с УК очередь окажется пуста.

После выполнения операции чтения в начале очереди появляются свободные ячейки в которые можно записывать новый элемент, поэтому если в процессе записи УК достиг конца зарезервированного блока его можно перебросить на начало очереди и продолжать запись в освободившейся ячейке. Когда УК после его переброски догонит УН очередь окажется переполненной. УН в процессе чтения также может быть переброшен, если после переброски УК выполнялись операции записи в очередь. Если после переброски обоих указателей оказалось что УН догнал УК, то УН стал равен УК, то очередь пуста.

Возможны другие способы организации очереди. Очередь может иметь неизменным один из указателей, тогда при выполнении операций записи, чтения элементы потребуется перемещать.

Зафиксируем УН

При неизменном УН после операции чтения вся очередь вместе с УК передвигается на одну ячейку к началу очереди, прочитанный элемент стирается. Запись по УК. Очередь не передвигается, движется лишь УК после записи.

При неизменном УК очередь вместе с УН перемещается после выполнения каждой операции записи, в результате этого освобождается ячейка, на которую постоянно установлен УК. Чтение выполняется по УН.

При связанном представлении очереди не надо предварительно резервировать память. Записи, образующие очередь размещаются в любых свободных ячейках памяти и связываются между собой указателями. Структура очереди используется для решения различных задач, в которых обработка данных должна выполняться в порядке их поступления. Структура очереди широко используется в ОС ЭВМ. Типичным примером использования очереди является задача управления заданиями в вычислительных системах с разделением времени. В таких системах много пользователей одновременно работает с общим ресурсом, например с центральным процессором. Программы пользователей, ожидающие выполнения образуют очередь, выбранный способ организации очереди и установленные дисциплины ее обслуживания во многом определяют эффективность функционирования такой системы.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]