Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Операционные системы ответы.docx
Скачиваний:
3
Добавлен:
16.01.2025
Размер:
50 Кб
Скачать

Распределение прерываний по уровням приоритета

Могут ещё существовать прерывания в связи с попыткой выполнить команду, которая сейчас запрещена. Во многих частях компьютера команда должна выполняться только кодом самой операционной системы, но не прикладными программами. Это делается с целью повышения защищенности выполняемых на компьютере вычислени. На процессоре предусмотрены различные режимы работы и пользовательские команды выполняются в режиме, в котором некоторое множество команд, называемых привилегированных, исполняются. К привилегированным командам, помимо команд ввода\вывода относятся команды переключения режима работы ЦП и команды инициализации некоторых системных регистров процессора. При попытке использовать команду, запрещенную в данном режиме, происходит внутреннее прерывание и управление передается самой операционной системе.

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

Планирование заданий процессов и потоков

Основная цель планирования вычислительного процесса заключается в распределении времени процессора или процессоров между выполняющимеся заданиями пользователей таким образом, чтобы удовлетворять требования, предъявляемые пользователями к вычислительной системе. Все виды планирования, используемые в современных операционных системах делятся на долгосрочное, среднесрочное, короткосрочное и планирование ввода\вывода. Рассматривания частоты работы планироващика, можно сказать, что долгосрочное планирование выполняется сравнительно редко, среднесрочное несколько чаще. Краткосрочный планировщик (диспетчер) обычно определяет какой процесс или поток будет выполняться следующим. В большинтсве операционных систем универсального назначения планирование осуществляется динамически — т. е. решения о создании или использовании процессов(потоков) принимаются во время работы системы на основе анализа текущей ситуации, не используя никаких предположении о мультипрограммной смеси. Найденное оперативное решение редко бывает оптимальным.

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

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

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

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

1. Выполнение — активное состояние потока во время которого, поток обладает всеми необходимыми ресурсами и непосредственно выполняется процессором

2. Ожидание — пассивное состояние потока, находясь в котором поток заблокирован по своим внутренним причинам(ждет осуществелния некоторого события — завершение операции ввода\вывода, получения сообщения от другого потока или освобождения ресурса)

3. Готов - также пассивное состояние потока, но в этом случае поток заблокирован, в связи с внешним по отношении к нему обстоятельствам (имеет все требуемые ресурсы, готов выполняться, но процессор занят выполнением другого потока).

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

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

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

Смена активного потока происходит если:

• Поток завершается и покинул систему

• Произошла ошибка

• Поток перешёл в состояние ожидания

• Исчерпан квант времени, отведенный данному потоку

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