- •Адресация памяти в защищенном режиме.
- •Привилегии и защита памяти защищенного режима
- •Сегментно-страничная адресация памяти
- •Вызов процедур и задач
- •Прямой вызов подпроцедур
- •Вызов задач (многозадачность)
- •Обработка прерываний в защищенном режиме
- •Кэширование в м/п Intel
- •История ос
- •Функции ос
- •Классификация ос
- •Мультипрограммирование и мультипроцессирование
- •Структуры ос
- •Средство межпроцессорных взаимодействий ipc
- •Очередь
- •Средства синхронизации
- •Планирование и диспетчеризация потоков(процессов)
- •Алгоритмы планирования для систем разделения:
- •Приоритетное планирование:
- •3. Системы реального времени.
- •Алгоритмы замещения страниц
- •Учет свободного и занятого пространства памяти.
- •Системы управления ввода-вывода.
- •Отказоустойчивые системы хранения
Планирование и диспетчеризация потоков(процессов)
Планирование решает 2 следующие задачи:
определение момента переключения контекста
определение претендента на следующее выполнение
Под задачей будем понимать поток или процесс.
Диспетчеризация реализует решение, принятое на этапе планирования и выполняет следующие действия:
сохраняет контекст текущей задачи
восстанавливает контекст следующей
передает в процессор ??? задачи
Многозадачность может быть вытесняющей и невытесняющей.
При вытесняющей многозадачности ОС может в любой момент времени прекратить выполнение активной задачи, т е осуществить принудительное переключение контекста. В случае невытесняющей многозадачности возможно только добровольное переключение контекста, т е ОС не может прервать выполнение активной задачи в любой момент времени. Соответственно, планирование при невытесняющей многозадачности не может определить момент переключения контекста.
В большинстве ОС планирование и диспетчеризация выполняются 1м модулем – планировщик(диспетчер). Алгоритмы планирования, т е выбора следующего претендента на выполнение отличаются в зависимости от типа системы:
1. для систем пакетной обработки. Наиболее часто используемым алгоритмом планирования является простая очередь FIFO. Все задачи, поступающие в систему пакетной обработки, выстраиваются в очередь в порядке их поступления. Время процессора выделяется 1й готовой задаче из этой очереди , и она выполняется до тех пор, пока не завершится или сама не перейдет в ожидание. В этом случае на выполнение запускается следующая готовая задача из очереди. Переключение контекста добровольно, многозадачность невытесняемая.
Этот алгоритм хорош для критерия пропускной способности(максимум задач выполняемых в 1цу времени).
2. Для системы разделения времени - кратчайшая задача в 1ю очередь. Алгоритм предполагает, что с каждой задачей связана некоторая оценка времени ее выполнения. (рис)
Этот алгоритм хорошо работает только для вычислительных задач, которые имеют мало операций ввода-вывода. В этом случае используют модификацию этого алгоритма, который называется задачей с минимальным оставшимся временем в 1ю очередь. Но этот алгоритм трудно реализуем.
В системе пакетной обработки часто использовали многоуровневые системы правления, в которых имелось несколько планировщиков. Каждый планировщик планировал доступ к какому-либо ресурсу.
Имеется очередь задач и три планировщика: доступа, памяти и выполнения. Планировщик доступа выбирает из общей очереди задач задачи, которые лучше выполнять вместе, то есть собирает так называемую мультипрограммную смесь. Планировщик выполнения планирует запуск задач на центральном процессоре в соответствии с использованным алгоритмом планирования. Планировщик памяти временно выгружает задачи, находящиеся в ожидании на диск, чтобы освободить память и наоборот, в случае необходимости загружает из диска в память.
Алгоритмы планирования для систем разделения:
Системы разделения времени - системы, в которых одновременно несколько пользователей работают со своих терминалов. Главным критерием таких систем является время ответа, то есть время, прошедшее с момента ввода команд пользователем и до момента получения ответа. Чем время ответа меньше, тем лучше работает система. В системе разд.времени в основном используется вытесняющая многозадачность. В таких системах время центрального процессора выделяется небольшими порциями – квантами, после истечения выделенного квантом времени выполнение задачи прекращается, её контекст сохраняется, а на её место запускается следующая задача. В система разделения времени также используются несколько алгоритмов планирования.
Циклическое планирование
Рисунок 2
При циклическом планировании все задачи в системе выстраиваются в очередь обычно в порядке своего поступления. Время центрального процессора выделяется квантами фиксированной длины. Сначала квант времени процессора получает 1я готовая задача из очереди, после того как выделенный ей план завершится, задача перемещается в конец очереди, а квант времени центрального процессора выделяет следующей готовой задаче из очереди. И т.д. Таким образом все задачи по кругу периодически получают время центрального процессора. Именно поэтому алгоритм называется циклическим. Поскольку размер кванта времени фиксирован, время ответа в этом методе пропорционально количеству выполняемых одновременно задач. Выбор размера кванта времени также представляет из себя не простую задачу. Большой квант времени увеличивает время ответа, с другой стороны – небольшой, слишком маленький квант времени приведёт к частому переключению задач, а переключение задач связано с восстановлением и сохранением процесса (контекста), на что также тратится время процессора. Поэтому если квант времени будет соизмерим со временем переключения контекста, то 50% ЦП тратится на переключение. Реально на практике в различных системах квант времени центрального процессора выбирают в размерах 30-70мл.сек.