- •Понятие и назначение ос. Проблемы, pешаемые ос.
- •Понятие пpоцесса. Понятие pесуpса. Виды pесуpсов ос.
- •Состав опеpационных систем. Назначение компонент.
- •Типы ос. Назначение, цели, отличия.
- •Основная идея, положенная в основу мультипpогpаммиpования Сpавнение однопpогpаммной и мультипpогpаммной обpаботки заданий.
- •Пpеимущества и недостатки мультипpогpаммиpования.
- •Свойства аппаpатуpы, тpебуемые для создания мультипpогpаммной ос.
- •Последовательность пpохождения задания чеpез мультипpогpаммную систему.
- •Основная пpоблема упpавления пpоцессоpами. Состояния пpоцессов, пеpеходы и пpичины пеpеходов.
- •Пpимеp диагpаммы изменения состояний пpоцессов в ос.
- •Введение в планиpование пpоцессов: Когда планиpовать? Категоpии алгоpитмов планиpования, Задачи алгоpитмов планиpования.
- •Планиpование в системах пакетной обpаботки - 4 алгоpитма
- •Планиpование в интеpактивных системах: Циклическое планиpование, Пpиоpитетное планиpование.
- •Планиpование в интеpактивных системах: Несколько очеpедей. Самый коpоткий пpоцесс - следующий. Гаpантиpованное планиpование.
- •Планиpование в интеpактивных системах: Лотеpейное планиpование. Спpаведливое планиpование.
- •Реализация пpоцессов: поля таблицы пpоцессов, обpаботка пpеpывания нижним уpовнем ос.
- •Потоки: Модель потока, Элементы потока.
- •Использование потоков: почему потоки необходимы? Тpи способа констpуиpования Web-сеpвеpа.
- •Реализация потоков в пpостpанстве пользователя.
- •Реализация потоков в ядpе. Активация планиpовщика.
- •Межпpоцессоpное взаимодействие: Тpи части пpоблемы. Состояние состязания.
- •Межпpоцессоpное взаимодействие: Кpитические области и четыpе условия.
- •Взаимное исключение с активным ожиданием: Запpещение пpеpываний, Пеpеменные блокиpовки, Стpогое чеpедование.
- •Взаимное исключение с активным ожиданием: Алгоpитм Петеpсона, Команда tsl.
- •Пpимитивы межпpоцессного взаимодействия. Пpоблема пpоизводителя и потpебителя с неустpанимым состоянием ожидания.
- •Семафоpы. Решение пpоблемы пpоизводителя и потpебителя с помощью семафоpов.
- •Пpимитивы межпpоцессного взаимодействия: Мьютексы, монитоpы.
- •Решение пpоблемы пpоизводителя и потpебителя с пpименением монитоpа.
- •Назначение менеджеpа памяти. Однозадачная система без подкачки на диск. Многозадачность с фиксиpованными pазделами.
- •Моделиpование многозадачности. Настpойка адpесов и защита.
- •Подкачка. Упpавление памятью с помощью битовых массивов.
- •Упpавление памятью с помощью связанных списков. Алгоpитмы выделения памяти - 5 алгоpитмов.
- •Виpтуальная память. Стpаничная оpганизация памяти. Диспетчеp памяти. Виpтуальные и физические адpеса.
- •Стpуктуpа элемента таблицы стpаниц. Буфеp быстpого пpеобpазования.
- •Алгоpитмы замещения стpаниц: Оптимальный алгоpитм, Алгоpитм nru - не использовавшаяся в последнее вpемя стpаница, Алгоpитм fifo - пеpвым пpибыл - пеpвым обслужен.
- •Алгоpитмы замещения стpаниц: Алгоpитм "Втоpая попытка", Алгоpитм "Часы", Алгоpитм lru - стpаница, не использовавшаяся дольше всего.
- •Пpогpаммное моделиpование алгоpитма lru: Алгоpитм nfu - pедко использовавшаяся стpаница, Алгоpитм "стаpение", Замещение стpаниц по запpосу и опеpежающая подкачка, Понятие pабочего набоpа стpаниц.
- •Алгоpитмы замещения стpаниц: Алгоpитм "pабочий набоp", Алгоpитм wsClock.
- •Сpавнение алгоpитмов замещения стpаниц: общая хаpактеpистика и применимость.
- •Политика pаспpеделения памяти: локальная и глобальная. Регулиpование загpузки. Размеp стpаницы.
- •Политика очистки стpаниц. Интеpфейс виpтуальной памяти.
- •Участие ос в пpоцессе подкачки стpаниц.
- •Обpаботка стpаничного пpеpывания. Пеpезапуск пpеpванной команды пpоцессоpа.
- •Блокиpование стpаниц в памяти. Хpанение стpаничной памяти на диске.
-
Взаимное исключение с активным ожиданием: Запpещение пpеpываний, Пеpеменные блокиpовки, Стpогое чеpедование.
Запрещение прерываний
Состоит в запрещен всех прерыван при входе процесса в критическую область и разрешение прерываний при выходе из области. Когда прерывания запрещены, невозможно прерывание по таймеру и т.к. процессор переключается с одного процесса на другой только по прерыванию, то передача процессора другому процессу не произойд.
Недостатки 1) процесс во время запрета прерыв результате какого-либо сбоя не включил прерыв обратно=> произойд сбой ОС 2) многопроцессорной системе запрещение прерываний повлияет только на процессор, который выполнит инструкцию disable. Остальные процессоры продолжат работу и сохранят доступ к разделенным данным. Вывод: Запрет прерываний бывает полезным в самой ОС, но неподходит для пользовательских процессов.
Переменные блокировки (программное решение)
Используем переменную блокировки, изначально равную 0. Если процесс хочет попасть в критическую область, он предварительно считывает значение переменной блокировки. Если переменная равна 0, процесс изменяет ее на 1 и входит в крити- критическую область. Если же переменная равна 1, то процесс ждет, пока ее значение сменится на 0. Таким образом, 0 означает, что ни одного процесса в критической области нет, а 1 означает, что какой-либо процесс находится в критической области.
Проблемы: Если один процесс считывает переменную блокировки, обнаруживает, что она равна 0, но прежде, чем он успевает изменить ее на 1, управление получает другой процесс, успешно изменяющий ее на 1. Когда первый процесс снова получит управление, он тоже заменит переменную блокировки на 1 и два процесса одновременно окажутся в критических областях. Повторная проверка так же не поможет.
Строгое чередование
Процесс 0
while(TRUE) {
while(turn!=0) /*loop*/;
critical_region();
turn=1;
noncritical_region();
}
Процесс 1:
while(TRUE) {
while(turn!=0) /*loop*/;
critical_region();
turn=0;
noncritical_region();
}
Переменная turn, изначально равная 0, отслеживает, чья очередь входить в критическую область. Вначале процесс 0 проверяет значение turn, считывает 0 и входит в критическую область. Процесс 1 также проверяет значение turn, считывает 0 и после этого входит в цикл, непрерывно проверяя, когда же значение turn будет равно 1. Постоянная проверка значения переменной в ожидании некоторого значения называется активным ожиданием. Блокировка, использующая активное ожидание, называется спин-блокировкой.
Когда процесс 0 покидает критическую область, он изменяет значение turn на 1, позволяя процессу 1 попасть в критическую область. Пусть процесс 1 быстро покидает свою критическую область, так что оба процесса теперь находятся вне критической области, и значение turn равно 0. Теперь процесс 0 выполняет весь цикл быстро, выходит из критической области и устанавливает значение turn равным 1. В этот момент значение turn равно 1, и оба процесса находятся вне критической области. Неожиданно процесс 0 завершает работу вне критической области и возвращается к началу цикла. Но войти в критическую область он не может, поскольку значение turn равно 1 и процесс 1 находится вне критической области. Процесс 0 зависнет в своем цикле while, ожидая, пока процесс 1 изменит значение turn на 0.
Метод поочередного доступа к критической области требует сторогого чередов, т.е. проц должны быть примерно один про врем.