
- •Понятие операционной системы. Условия, при которых нужны ос
- •Базовые функции операционной системы
- •Основные характеристики ос
- •Определения операционной системы
- •Назначение операционной системы
- •Место ос в логической структуре вычислительной системы
- •Функции операционных систем
- •Состав и объекты операционной системы
- •Эволюция ос и основные идеи
- •Понятие расширенной машины
- •Ресурс. Классификация ресурсов
- •Операционная среда
- •Прикладная среда
- •Понятие процесса. Процесс, как контейнер
- •Тождественность процесса, выполняемой программы и ос 48 Поток. Контекст. Волокна
- •Назначение прерываний. Определение прерывания. Механизм прерываний
- •Алгоритм выполнения прерываний. Главные функции механизма прерываний
- •Классификация прерываний, возникающих при работе вычислительной системы
- •Распределение прерываний по уровням приоритета
- •Планирование заданий процессов и потоков
- •Виды планирования, используемые в современных ос
- •Жизненный цикл процесса (потока). Очереди. Классы алгоритмов планирования
- •Алгоритмы планирования процессов и потоков. Достоинства и недостатки различных алгоритмов планирования
- •Разделение времени при работе с процессами и потоками. Понятие кванта времени. Алгоритмы, основанные на квантовании
- •Понятие приоритетного обслуживания
- •Разновидности приоритетного планирования
- •Система приоритетного обслуживания Windows
- •Физическая организация памяти
- •Виртуальная память
- •Интерфейс прикладных программ. Перенос приложений между платформами 148 Взаимодействие процессов – синхронизация. Критические ресурсы и критические секции процессов
- •Взаимодействие процессов – синхронизация. Взаимное исключение. Задача взаимного исключения
- •Использование блокировки памяти. Алгоритм Деккера
- •Семафорные примитивы. Мьютексы
- •Задача "поставщик-потребитель"
- •Понятие сообщения в ос. Виды сообщений 170 Вызовы процедур. Локальные вызовы, удаленные вызовы (rpc). Направление вызова – клиент-сервер
- •Вызовы процедур. Локальные вызовы, удаленные вызовы (rpc). Направление вызова – сервер- клиент 175 Проблема тупиков. Предотвращение тупика
- •Проблема тупиков. Обход тупика
- •Проблема тупиков. Распознавание тупика
- •Мониторы
- •Синхронизация в распределенных системах
- •Алгоритмы синхронизации в распределенных системах. Алгоритм «задиры», круговой алгоритм
Распределение прерываний по уровням приоритета
Могут ещё существовать прерывания в связи с попыткой выполнить команду, которая сейчас запрещена. Во многих частях компьютера команда должна выполняться только кодом самой операционной системы, но не прикладными программами. Это делается с целью повышения защищенности выполняемых на компьютере вычислени. На процессоре предусмотрены различные режимы работы и пользовательские команды выполняются в режиме, в котором некоторое множество команд, называемых привилегированных, исполняются. К привилегированным командам, помимо команд ввода\вывода относятся команды переключения режима работы ЦП и команды инициализации некоторых системных регистров процессора. При попытке использовать команду, запрещенную в данном режиме, происходит внутреннее прерывание и управление передается самой операционной системе.
Сигналы, вызывающие прерывания, формируются вне процессора или в самом процессоре, они могут возникать одновременно. Выбор одного из них для обработки осуществляется на основе приоритетов, приписанных каждому типу прерывания. Так, со всей очевидностью, прерывания от схем контроля процессора должны обладать наивысшим приоритетом
Планирование заданий процессов и потоков
Основная цель планирования вычислительного процесса заключается в распределении времени процессора или процессоров между выполняющимеся заданиями пользователей таким образом, чтобы удовлетворять требования, предъявляемые пользователями к вычислительной системе. Все виды планирования, используемые в современных операционных системах делятся на долгосрочное, среднесрочное, короткосрочное и планирование ввода\вывода. Рассматривания частоты работы планироващика, можно сказать, что долгосрочное планирование выполняется сравнительно редко, среднесрочное несколько чаще. Краткосрочный планировщик (диспетчер) обычно определяет какой процесс или поток будет выполняться следующим. В большинтсве операционных систем универсального назначения планирование осуществляется динамически — т. е. решения о создании или использовании процессов(потоков) принимаются во время работы системы на основе анализа текущей ситуации, не используя никаких предположении о мультипрограммной смеси. Найденное оперативное решение редко бывает оптимальным.
Другой тип планирования — статический(предварительный) может быть использован только в специализированных системах с заранее заданным определенным набором задач, например, в управляющих системах или системах реального времени. В этом случае статический планировщик принимает решение не во время работы системы, а заранее. Результатом его работы является расписание(таблица) в котором указано какому процессу когда и на какое время должен быть предоставлен процессор. При этом накладные расходы ОС на исполнение расписания на исполнение расписания значительно меньше чем при динамическом планировании.
Краткосрочный планировщик(диспетчер) реализует найденное решение т. е. переключает с одного процесса(потока) на другой. Он вызывается при наступлении события которое может приостановить текущий процесс или предоставить возможность прекратить выполнение данного процесса(потока) в пользу другого. Примеры этих событий: прерывание таймера, прерывание ввода\вывода, вызовы операционной системы, сигналы.
Среднесрочное планирование является частью системы своппинга. Обычно решение о загрузке процесса в память принимается в засимиости от степени многозадачности ОС. Кроме того, в системе с отсутсвием виртуальной памяти среднесрочное планирование тесно связано с вопросами управления памятью.
Диспетчиризация сводится к следующему: сохранение контекста текущего потока, который требуется сменить, загрузка контекста нового потока выбранного в результате планирования, запуск потока на выполнение. В мультипрограммной системе поток(процесс) может находится в одном из трех состояний:
1. Выполнение — активное состояние потока во время которого, поток обладает всеми необходимыми ресурсами и непосредственно выполняется процессором
2. Ожидание — пассивное состояние потока, находясь в котором поток заблокирован по своим внутренним причинам(ждет осуществелния некоторого события — завершение операции ввода\вывода, получения сообщения от другого потока или освобождения ресурса)
3. Готов - также пассивное состояние потока, но в этом случае поток заблокирован, в связи с внешним по отношении к нему обстоятельствам (имеет все требуемые ресурсы, готов выполняться, но процессор занят выполнением другого потока).
С самых общих позиций всех планировок можно выделить вытесняющие и невытесняющие алгоритмы планирования. Невытесняющие алгоритмы основаны на том, что активному потоку позволяется выполняться пока он сам по своей инициативе не отдает управление операционной системе для того, чтобы она выбрала из очереди готовый к выполнению поток.
Вытесняющие алгоритмы это такие способы планирования потоков, в которых решение о переключении процессов с выполнения одного потока, на выполнение другого потока принимается операционной системой, а не активной задачей.
При невытесняющем планировании механизм планирования распределяется между операционной системой и прикладными программами. Во втором случае функцией планирования потоков целиком сосредоточены в операционной системе. Недостатком первого типа планирования является необходимость разработки такого приложения, которое будет дружественным по отношению к другим ,выполняемым одновременно с ним, программам. Преимуществом является более высокая скорость переключения потоков.
Смена активного потока происходит если:
• Поток завершается и покинул систему
• Произошла ошибка
• Поток перешёл в состояние ожидания
• Исчерпан квант времени, отведенный данному потоку
Кванты, выделяемые потокам, могут быть равными или различными. Например: первоначально каждому потоку назначается достаточно большой квант, а величина каждого следующего кванта уменьшается до некоторой, заранее заданной, величины