Принципы функционирования очереди.

      Комментарии к записи Принципы функционирования очереди. отключены

Очередь – это последовательность постановки процессов на выполнение (конкуренции за ресурс).

1. Есть следующие типы очередей: FIFO (first input first output) – в очереди не играет роли, какая задача по объему, по приоритету, по ресурсам, главное – ее момент появления в очереди (караван, буфер). Самая важная заявка – первая.

2. LIFO (last input first output). Стэк.

Если в момент обслуживания (n-1) заявки поступила еще одна, то она встает сразу за (n-1). Такой тип обслуживания называется стеком.

Согласно LIFO самая важная заявка, которая пришла последней, а в FIFO – первой.

3. Очередь с использованием приоритетов. Заявки на обслуживание при появлении в очереди имеют разные значения приоритетов. Чем ниже число, тем выше уровень приоритета.

Приоритеты могут быть динамическими – при нахождении в очереди заявка получает либо больший приоритет, либо меньший. Динамический приоритет зависит о того, какие из ресурсов являются приоритетными по обслуживанию.

Приоритеты зависят от объема задачи – чем меньше задача, тем быстрее она обслужится.

4. Планирование возможно с разделением тактов машинного времени – круговая диспетчеризация.

Между этими задачами делится машинное время.

Работает система приоритетов – чем больше время переключения, тем больше теряем время процессора.

Многоуровневые очереди.

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

Если нет ни одного процесса в первой очереди, на обслуживание берется процесс с меньшим приоритетом, то есть из второй очереди и т.д. Это позволяет выделить наиболее важные процессы по приоритетам и, прежде всего, обслуживать именно их.

Например, в качестве первой очереди могут выступать какие-либо системные процессы (например, нажать комбинацию клавиш Alt+Ctrl+Del).

В качестве второй очереди могут выступать программы пользователя, в качестве третьей – какие-либо фоновые задачи (например, печать документа на принтере).

Планирование с использованием многоуровневой очереди с обратными связями.

Принцип данного планирования состоит в том, что каждому из процессов дается определенное количество времени на обслуживание.

Замечание: в основном этот механизм используется в системах реального времени.

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

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

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

Замечание: наиболее перспективным считается последний тип очереди, который сочетает в себе динамику приоритетов и по опыту считается наиболее перспективным в ОС.

Все реальное состояние процесса определяется блоком PCB.

Управление памятью.

Управление памятью необходимо для распределения памяти между отдельными задачами, программами, буферами (например, буферами файлов, обменов) и один из методов – это перемещение процесса (программы на выполнение) в оперативной памяти.

Данный механизм называется SWAP и делится на два этапа:

Процесс называется SWAP

Проблемы:

1) процессы могут быть независимыми, тогда проблема в том, чтобы участки памяти не пересекались. Должен быть предусмотрен такой механизм, чтобы начальный адрес процесса не попадал в область ОС.

2)При работе взаимосвязанных процессов.

Один процесс может инициировать загрузку с диска еще каких-либо процессов. При SWAP OUT этого процесса должна быть освобождена память не только то самого процесса, но и от тех, которые были вызваны данным процессом.

Самая большая проблема – фрагментация памяти – это явление, которое возникает при загрузке и удалении процессов и может привести к тому, что при сильной фрагментации памяти нет достаточно большого участка, чтобы загрузить очередной процесс, особенно в случае взаимосвязанных процессов.

.del – динамически связанные библиотеки – наиболее проблематичны.

Msvb60.dll – 1.6 мб.

Статьи к прочтению:

Ясновидящая | Серия 19 | Наследница первой очереди


Похожие статьи: