- •Понятие и назначение ос. Проблемы, 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истика и применимость.
1) Оптимальный алгоритм заменяет ту страницу, обращение к которой производилось раньше других, находящихся в данный момент в памяти. Неосуществим. Полезен как тестовая задача, относительно которой можно оценивать другие алгоритмы.
2) Алгоритм NRU (не использовав в последнее время страница) делит страницы на четыре класса в зависимости от битов R и M. Выбирается любая страница из класса с наименьшим номером. Легко реализуется, но он является очень грубым.
3) FIFO (первым прибыл - первым обслужен) отслеживает порядок загрузки страниц в память, храня их в связном списке. Неиспольз т.к. могут быть выгружены нужн стран.
4) «вторая попытка» -модификация алгоритма FIFO, перед удалением страницы из памяти проверяет, используется ли она в данный момент. Если да, то страница пропускается. Такое изменение сильно повышает производительность.
5) «часы» реалистичн алгоритм (другое осуществление «второй попытки»). требует немного меньше времени на выполнение алгоритма чем вторая попытка.
6) LRU (страница, не использовавшаяся дольше всего) - отличный алгоритм, но на практике не реализуем.
7) NFU (редко использовавшаяся страница) - грубое приближение алгоритма LRU. Неиспольз.
8) «старение»(лучший), лучше аппроксимирует алгоритм LRU и может быть эффективно реализован. Использ на практике
9) «рабочий набор» - приемлемая производительность, дорог в реализации.
10) WSCIock – (лучший) - хорош производительность, просто реализовать.
ВОПРОСЫ РАЗРАБОТКИ СИСТЕМ СО СТРАНИЧНОЙ ОРГАНИЗАЦИЕЙ ПАМЯТИ
-
Политика pаспpеделения памяти: локальная и глобальная. Регулиpование загpузки. Размеp стpаницы.
Политика распределения памяти: локальная и глобальная
Локальные алгоритмы (ЛА ) соответствуют размещению каждого процесса в фиксированной области памяти(замещ стран происх в рамках 1 процесса). Глобальные алгоритмы (ГА) замещ станицы наиболее ниспольз из всех процессов.
ГА работают лучше, особенно если размер рабочего набора может изменяться за время жизни процесса. При использ ЛА 1) если рабочий набор увеличивается в размере, то в результате получим пробуксовку(из-за частых страничн прерыван), даже когда в системе существует достаточное количество свободных страничных блоков. 2) если рабочий набор уменьшается часть памяти потратится впустую.
Другой способ состоит в том, чтобы иметь в системе алгоритм для распределения страничных блоков между процессами. Например, можно периодически .определять количество работающих процессов и предоставлять каждому равную часть памяти. Соответственно, при наличии доступных (то есть не принадлеж ОС) 12 416 страничных блоках и 10 процессах каждый процесс получит 1241 блок. Оставшиеся 6 блоков поступают в резерв и могут использов при страничн прерыван.
Если используется ГА, допустимо запускать каждый процесс с некоторым количеством страниц, пропорциональным его размеру, распределение памяти можно динамически изменять во время работы.
Алгоритм PFF (Page Fault Frequency — частота страничных прерываний) управляет размещением процессов в памяти, говорит когда увелич или уменьш количество страниц, предоставленных процессу, но не какую страницу замещать по прерыванию.
Частота прерываний ↓ при ↑ числа предоставленных страниц- основа алгоритма PFF.
Выше линии А частота страничн прерыв очень большая. Чтобы уменьшить процент страничн прерыв увеличивается кол-во страничных блоков прерванного процесса.
Линия В соответствует очень низкой частоте странич прерыв, => что процесс занимает слишком много памяти и у него можно забрать несколько страничных блоков. Алгоритм PFF сохран частоту подкачки страниц для каждого процесса внутри допустимых границ. Для некоторых алгоритмов замещения страниц имеет смысл только локальная стратегия. В частности, алгоритмы «рабочий набор» и WSClock.
Регулирование загрузки
Симптомом пробуксовки является показание алгоритма PFF, что много страничн прерываний, но в системе нет процессов, требующих меньше памяти. Решение: временно избавиться от некоторых процессов. Уменьшить количество запрашив дополн память процессов можно, выгрузив некоторые из них целиком на диск(swap) и освободив все занимаемые ими страницы, разделив их между буксующими процессами. Если пробуксовка прекращается, то система может работать некоторое время в таком состоянии. Если не прекращается, то выгружается следующий процесс и т. д. , пока не закончится пробуксовка.
+ принять во внимание степень (когда количество процессов в основной памяти слишком мало, центральный процессор может простаивать) + учет размера процесса и частоты подкачки страниц(для опред является ли процесс ограниченным возможностями процессора или скоростью ввода-вывода).
Размер страницы
Доводы в пользу маленького размера страниц 1) задан сост из кода, данных и сегмент стека, котор в среднем заним по 0,5 стран, остальн 0,5 стран пропадает (наз-ся внутрен фрагментац). Если в памяти n сегментов, а размер страницы равен p байтам, n*р/2 байт будет потеряно =>р↓→потери↓. 2) представим программу, состоящую из 8 этапов, по 4 Кб. При р=32 Кб программе выделено 32 Кб (28Кб теряет), р=16 Кб →16 Кб (12 теряет), р=4 Кб →4 Кб. =>чем больше разм стран, тем больше в памяти неиспольз частей стран.
Доводы в пользу больш стран 3) чем меньше стран, тем больше надо страниц и тем больше размер ТС. Программа размером 32 Кб →4 страницы по 8 Кбайт и 64 страницы по 512 байт. Время загрузки больш и мален стран примерно один и чем больше загр стран тем больше трат времени. 4) Размер ТС уменьш при увелич размера страниц, и время треб для записи ТС в аппаратн регистры тоже уменьшится. Пусть размер процесса = S байт, а страницы = P байт. 1 запись в ТС =Е байт. Тогда число страниц= S/P, что займет SE/P байт для ТС. Потери из-за внутренней фрагментации = Р/2. Накладные расходы =SE/P + Р/2. ( Р↑, 1сл↓, 2сл↓). Производная: -SE/P^2 + 1/2 = 0. Оптимальный размер страницР=(2SE )^(1/2)