- •Понятие и назначение ос. Проблемы, 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итм wsClock.
Алгоритм «рабочий набор»
Чтобы реализовать модель рабочего набора, необходимо, чтобы ОС отслеживала, какие страницы в нем находятся и при страничн прер выгруж стран не наход в рабочем наборе. Для реализации такого алгоритма нужен точный метод определения того, какая страница находится в рабочем наборе, а какая в него не включена в любой заданный момент времени.
Рабочим набором является множество страниц, использовавшихся в k последних обращениях к памяти. Для осуществления алгоритма «рабочий набор» заранее нужно назначить значение k.
Можно было бы придумать сдвигающийся регистр длины k, который смещается влево на одну позицию при каждом обращении к памяти и записывает номер последней использовавшейся страницы в крайнюю правую позицию. Все k номеров страниц в сдвигающемся регистре входили бы в рабочий набор. В момент страничного прерывания содержимое этого регистра могло бы считываться и сохраняться. Удалив дублирующие страницы получили рабочий набор. Но на практике использ аппроксимация. Вместо подсчета k последних обращений к памяти использовать время выполнения программы. Т.е рабоч набор опред как стран использ за послед t мс.
Для каждого процесса считается только его собственное время работы. Если процесс стартовал в Т и занял процессор на 40 мс за реальное время Т+ 100 мс, для определения рабочего набора его время равно 40 мс. Время работы процессора, которое фактически использовал процесс с момента запуска, часто называется текущим виртуальным временем. Если проц прер то вирт время останав. При таком приближении рабочий набор процесса - это множество страниц, к которому он обращался за последние τ секунд виртуального времени.
Алгоритм основанный на рабочем наборе: Надо найти страницу, не включенную в рабочий набор, и выгрузить ее. Каждая запись содержит (по крайней мере) два элемента информации: время последн обращ к странице, и бит R (обращения).
Алгоритм работает следующим образом.
В процессе обработки каждой записи проверяется бит R. Если R=1, текущее вирт время записыв в поле Время последнего использов в таблице страниц.
Если R=0, то к странице не было обращений в течение последнего тика часов и она является кандидатом на удаление и вычисляется ее возраст = текущ вирт время − ее время последнего обращ. Если возраст > τ (=несколько тиков часов), значит страница не находится в рабочем наборе и страница замещается.
Если же бит R равен 0, но возраст страницы ≤ τ, это значит, что страница до сих пор находится в рабочем наборе. Она временно обходится, но страница с наибольшим возрастом запоминается (наименьшим значением Времени последнего использования). Если проверена вся таблица, а кандидат на удаление не найден, это значит, что все страницы входят в рабочий набор. В этом случае, если найдены страницы с битом R = 0, удаляется та из них, которая имеет наибольший возраст. Если у всех стран R = 1, то для удаления случайным образом выбирается одна из них(желательно чистаяW=0).
Пример: текущ вирт время 2204
Алгоритм WSCIock
Исходный алгоритм «рабочий набор» слишком сложен. Улучшенный алгоритм, основанный на часовом алгоритме и на рабочем наборе, называется WSCIock. Использ структура данных в виде кольцевого списка страничных блоков, как в алгоритме «часы». В исходном состоян этот список пуст. По мере прихода страниц они поступают в список, формируя кольцо.
Каждая запись сожержит бит R, бит М, и поле «время последнего использования».
При каждом страничном прерыв первой проверяется та страница, на которую указывает стрелка. Если R=1, страница использов в течение последнего такта часов, R:=0, стрелка двигается вперед. Если R=0 и возраст страницы >τ , и М=0, то она не входит в рабочий набор и на диске есть ее действительная копия. В данный страничный блок просто загружается Если, М=1 ее нельзя немедленно стереть, так как на диске нет ее последней копии. Чтобы избежать переключения процессов, запись на диск включается в график планирования, но стрелка сдвигается на позицию, и алгоритм продолжает работу со следующей страницей.
За 1 круг провер все элементы, может быть несколько заплонир запис на диск (вносить в очер на запись только до опред предела)
После 1 круга существует два варианта: 1. Запланирована, по крайней мере, одна операция записи на диск. 2. Ни одной операции записи не запланировано.
В первом случае стрелка продолжает движение, отыскивая чистую страницу и выгружается первая попавшаяся чистая страница. Во втором случае все страницы находятся в рабочем наборе, выбирается текущая страница и переписывается на диск.
Пример: 2204 текущ вирт время.