- •Понятие и назначение ос. Проблемы, 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туальной памяти.
Политика очистки страниц
Подкачка страниц работает лучше, когда в системе существует много свободных страничных блоков. Для того чтобы были пустые страницы в системе работает процесс «страничный демон», который большую часть времени спит, но периодически просыпается и проверяет состояние памяти. Если мало свободных блоков, демон выбирает страницы для удаления. Если страниц грязн, то записываются на диск(ставит в очередь к драйверу диска). Если одна из выгруженных страниц требуется снова еще до того, как ее блок был перезаписан, ее можно вернуть назад, удалив из пула свободных страничных блоков. Демон гарантирует, что все свободные блоки являются чистыми, и когда они требуются, их не нужно спешно записывать на диск.
Осуществ очистку страниц можно с помощью часов с двумя стрелками. Когда длинная стрелка (стран демон) указывает на «грязную» страницу, копия страницы на диске обновляется, а стрелка сдвигается на позицию, если она направлена на чистую страницу, то просто сдвигается вперед. Короткая стрелка использ для замещения страниц, как в стандартном алгоритме «часы». Так возрастает вероятность попадания короткой стрелки на чистую страницу благодаря работе страничного демона.
Интерфейс виртуальной памяти
Обычно программист и процессам доступна только виртуальн память. Но в некоторых прогрессивных ОС процессу доступен некотор контроль над его картой памяти.
Причины: 1) позволить двум и более процессам совместно использовать одну память. один процесс сможет дать другому процессу имя области памяти, так что этот второй процесс также сможет ей пользоваться. Увелич скорость совместного доступа если один процесс пишет в разделяемую память, а другой читает из нее. 2) реализация высокопроизводительных систем передачи сообщений. Данные обычно копируются из одного адресного пространства в другое, что имеет значительную стоимость. Решение: передавать сообщ с помощью посылающего процесса, убирающего из карты страницу, содержащую сообщение, и принимающего процесса, вносящего ее (их) в карту. При этом должны копироваться только имена страниц вместо всех данных. 3) распределенная память совместного доступа. В сети несколько процессов совместно использ набор страниц, как единое разделяемое линейное адресное пространство.
Когда процесс обращается к странице не отображ в данный момент, он вызывает страничное прерывание. Обработчик определяет машину, содержащую страницу, и посылает ей запрос выгрузить страницу и послать ее по сети. Когда страница прибывает, она попадает
в карту памяти и прерванная команда перезапускается.
-
Участие ос в пpоцессе подкачки стpаниц.
4 ситуации, в которых ОС приходится выполнять работу, относящуюся к страничной подкачке: 1) создание процесса, 2) выполнение процесса, 3) страничное прерывание, 4) завершение процесса.
1) при создании процесса ОС должна определить, как будут велики программа и ее данные и создать для них ТС. Для ТС надо выделить память, и ТС нужно проинициализ (знать где она находится). ТС может быть выгружена => ей требуется область для подкачки для процесса тоже должна быть область подкачки, котор нужно тоже инициализир. Некоторые системы подкачивают страницы текста программы прямо из исполняемого файла, таким образом, экономя время инициализации и место на диске. Либо загр 1:1 с диска, либо Swap. Информация о ТС и области подкачки на диске должна быть записана в таблицу процесса.
2) для каждого нового проц надо сбросить стар диспетчер памяти (MMU), затем очистить буфер быстрого преобраз адреса (TLB). ТС нового процесса сделать текущей(скопир ее или указ на нее в аппар регистр). Часть страниц процесса или они все могут быть считаны в память, чтобы уменьшить изначальное количество страничных прерываний.
3) ОС читает аппаратные регистры, чтобы определить, какой виртуальный адрес вызвал
ошибку. Вычислить № треб страницы и физич адрес, найти ее диске или области подкачки. Затем ОС нужно найти доступный страничный блок для новой страницы, при необходимости выгрузить старую страницу. ОС должна загрузить страницу в страничный блок. ОС должна изменить счетчик команд, чтобы тот указывал на вызвавшую прерывание инструкцию, и запустить эту команду заново.
4) Когда процесс завершается, ОС должна освободить его ТС, его страницы и дисковое пространство, которое занимают страницы, когда они находятся на диске. Если есть совместно использ стран, то освободить из только тогда, когда удал послед использ их процесс (семафор=0=>удалить из пам ТС).