- •Понятие и назначение ос. Проблемы, 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ванной команды пpоцессоpа.
Обработка страничного прерывания
Если возникло стран прер:
1. Аппаратное обеспечение переключает систему в режим ядра, сохраняя счетчик команд в стеке.
2. Запускается ассемблерная программа, сохраняющая основные регистры и другую изменяющуюся информацию, защищая ее от разрушения ОС.
3. ОС обнаруживает, что произошло страничное прерывание, и пытается найти необходимую виртуальную страницу. ОС должна достать из стека счетчик команд, выбрать инструкцию и проанализировать ее, чтобы определить, что она делала в тот момент, когда случилась ошибка.
4. известен виртуальный адрес, вызвавший прерывание, ОС проверяет согласуется ли защита с доступом. Если нет, то процессу посылается сигнал или процесс уничтожается. Если все хорошо ОС ищет свободн блоков. Если блоков нет, запускается алгоритм замещения страниц.
5. Если выбранный блок «грязный», страница заносится в график записи на диск и происходит приостанока процесса вызвавш прерыв пока не будет выполнен перенос страницы на диск. блок отмечается как занятый, чтобы предотвратить его использование в других целях.
6. когда страничн блок очистится, ОС ищет адрес виртуальн стран на диске, и планирует ее перенос в память. Во время загрузки страницы процесс, вызвавший прерывание, все еще приостановлен и выполняется другой пользовательский процесс, если такой доступен.
7. дисковое прерывание сообщает, что страница поступила в память, обновляется ТС, отражая ее позицию, а блок помечается, как находящийся в нормальном состоянии.
8. Прерванная команда возвращается в начальн сост и значение счетчика команд восстанавлив.
9. Прерван процесс вносится в график, и ОС возвращает управление ассемблерной процедуре, вызывавшей ее.
10. Эта процедура перезагружает регистры иделает выход из прерывания
Перезапуск прерванной команды процессора
Команда MOVE.L #6(А1).2(А0) занимает 6 байт (рис. 4.30). Для того чтобы перезапустить ее, ОС должна определить, где находится первый байт команды. Значение счетчика команд во время прерывания зависит от того, какой операнд вызвал ошибку, и от реализации микрокода процессора.
Команда начинается с адреса 1000, и три обращения к памяти: само слово команды и два сдвига для операндов. В зависимости от того, какое из обращений к памяти вызывает прерывание, счетчик команд может принять значение 1000, 1002 или 1004. Часто ОС не может точно определить, где начиналась команда. Если счетчик команд равен 1002, у ОС нет способа определить, является ли слово по адресу 1002 адресом памяти, связанным с командой по адресу 1000 (то есть операндом) или кодом операции самой команды.
На некоторых машинах предусмотрено решение этой проблемы в форме скрытых внутренних регистров, в которые копируется счетчик команд перед выполнением каждой инструкции. Такие машины также могут иметь второй регистр, говорящий о том, какой из регистров и на сколько уже был увеличен или уменьшен. Обладая этой информацией, ОС в силах однозначно отменить все эффекты прерванной инструкции, так что потом ее можно целиком запустить заново.