Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы СисПО.doc
Скачиваний:
14
Добавлен:
27.09.2019
Размер:
2.93 Mб
Скачать
  1. Алгоритмы планирования, основанные на приоритетах

Алгоритм планирования, основанные на приоритетах

Приоритеты обслуживания – другая важная концепция, вытесняющих алгоритмов планирования.

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

Приоритет – число, характеризующее степень привилегированности потока при использовании ресурсов ВМ.

Значение приоритета включается в описатель процесса.

При назначении приоритета ОС учитывает:

  1. Является этот процесс системным или прикладным

  2. Каков статус пользователя, запустивший процесс

  3. Было ли явное указание пользователя на присвоение процессу определённого уровня приоритета

В большинстве современных ОС возможно изменение приоритета потоков:

  1. По инициативе самого потока

  2. По инициативе пользователя

  3. Когда ОС сама меняет приоритет в зависимости от складывающейся ситуации (изменение – динамическое)

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

Существуют 2 разновидности приоритетного обслуживания:

  1. обслуживание с относительными приоритетами

  2. обслуживание с абсолютными приоритетами

Общим для них является то, что на выполнение из очереди готовых потоков выбирается поток, имеющий наивысший приоритет.

В системах с относительными приоритетами момент смены активного потока выбирается тогда, когда поток сам покинет процессор, перейдя в состояние ожидание, либо завершится поток, либо произойдёт ошибка.

Поясняется рис. 4а

Рис. 4. Графы состояний потоков в системах с относительными и

абсолютными приоритетами

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

Рис. 4б

Для систем разделения и реального времени, абсолютные приоритеты невозможны.

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

  1. Синхронизация процессов и потоков: цели и средства синхронизации

Цели и средства синхронизации

В виду многообразия современных ОС существует достаточно обширный класс средств ОС для взаимной синхронизации процессов и потоков.

Целью синхронизации является исключение гонок и тупиков в случаях:

  1. Обмена данными между потоками

  2. При разделении данных

  3. При доступе к процессору и устройству Ввода-Вывода (ВВ)

Во многих ОС средства синхронизации называются средствами межпроцессорного взаимодействия (IPS – Inter process communication)

Эти средства делятся на 2 группы:

  1. Средства межпроцессорной синхронизации

  2. Средства межпроцессорного обмена данных

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

Таким образом, потоки в общем случае протекают независимо асинхронно друг от друга.

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

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

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