Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
А2_Zabolotnikov_9373.docx
Скачиваний:
25
Добавлен:
20.06.2023
Размер:
30.48 Кб
Скачать
  1. Состояния задачи. События, вызывающие смену состояний

Состояние характеризует способность задачи выполняться процессором. Любая задача в системе может находиться в одном из четырех состояний:

  1. Подвешенность – задача находится в этом состоянии, когда начинается или завершается. Такая задача не может исполняться процессором.

  2. Готовность – состояние задачи, которая готова к выполнению, но ещё не выполняется.

  3. Исполнение – состояние задачи, называемое активным. В любой момент времени на одном процессоре может исполняться только одна задача.

  4. Ожидание – задача чего-либо ожидает, обычно, завершения ввода-вывода, и при этом не может исполняться. [3]

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

- истёк выделенный ему квант времени;

- процесс заблокирован, например, ждет завершения операции ввода/вывода;

- процесс завершился;

- вытеснен другим процессом, имеющим более высокий приоритет, например, обработчиком прерываний.

Результатом совершения асинхронных событий являются системные прерывания. Внешние прерывания вызываются асинхронными событиями, которые происходят вне прерываемого процесса, например: прерывания от таймера; прерывания от внешних устройств (прерывания по вводу/выводу); прерывания по нарушению питания; прерывания с пульта оператора вычислительной системы; прерывания от другого процессора или другой вычислительной системы.

Внутренние прерывания вызываются событиями, которые связаны с работой процессора и являются синхронными с его операциями. Примерами являются следующие запросы на прерывания: при нарушении адресации (в адресной части выполняемой команды указан запрещенный или несуществующий адрес, обращение к отсутствующему сегменту или странице при организации механизмов виртуальной памяти); при наличии в поле кода операции незадействованной двоичной комбинации; при делении на нуль; при переполнении или исчезновении порядка; при обнаружении ошибок четности, ошибок в работе различных устройств аппаратуры средствами контроля. [4]

  1. Очереди задач. Приоритетное управление

Так как задачи на обработку в систему поступают обычно в большом количестве, необходимо выстраивать так называемые очереди этих задач. Очередь задач – это порядок задач, в котором они распределены по какой-то приоритетности выполнения, либо без приоритета.

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

  1. очередь готовых для исполнения задач;

  2. очередь задач, заблокированных отсутствием необходимых ресурсов.

Принцип приоритетного управления заключается в следующем. Для управления последовательностью выполнения задач (т.е. порядком размещения в очереди) им присваиваются числовые приоритеты. Чем выше приоритет, тем ближе к голове очереди располагается задача. Основное правило: если в очереди появляется задача с приоритетом выше, чем приоритет исполняющейся в настоящий момент задачи, то текущая задача немедленно прекращает выполнение, а выполняться начинает новая, более приоритетная задача. Алгоритм, в соответствии с которым операционная система назначает приоритеты и передает управление от одной задачи к другой, называется «дисциплиной диспетчеризации». [5] Основной алгоритм приоритетного управления напоминает "карусельную" многозадачность, однако круговая очередь активных процессов формируется отдельно для каждого уровня приоритета. Пока есть хоть один активный процесс в очереди с самым высоким приоритетом, процессы с более низкими приоритетами не могут получить управление. Только когда все процессы с высшим приоритетом заблокированы либо завершены, диспетчер выбирает процесс из очереди с более низким приоритетом. [6]