- •Понятие и назначение ос. Проблемы, 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итмы выделения памяти - 5 алгоpитмов.
Управление памятью с помощью связных списков
Связный спискок занятых и свободных фрагментов памяти, где сегментом является процесс, или участок между двумя процессами. Каждая запись в списке указывает, является ли область памяти свободной (Н, hole - дыра) или занятой процессом (Р, process); адрес, с которого начинается эта область; ее длину; содержит указатель на следующую запись.
Список отсортирован по адресам. Преимущество: когда процесс завершается или скачивается на диск, изменение списка представляет собой несложную операцию. Закончившийся про-
процесс обычно имеет двух соседей (кроме тех случаев, когда он находится на самом
верху или на дне памяти). Соседями могут быть процессы или свободные фрагмен-
фрагменты:
Алгоритмы выделения памяти:
1) нахождение первого подходящего участка. Менеджер памяти просматривает список областей до тех пор, пока не находит достаточно большой свободный участок. Затем этот участок делится на две части: одна отдается процессу, а другая остается неиспользуемой.
2) Алгоритм «следующий подходящий участок» работает так же, как и 1 алгоритм, когда находит соответствующий свободный фрагмент, он запоминает его адрес. Когда алгоритм снова вызывается для поиска, он стартует с того самого места, где остановился в прошлый раз
3) «самый подходящий участок». Выполняет поиск по всему списку и выбирает наименьший по размеру подходящий свободный фрагмент. «−» медленнее «первого подход», т.к. каждый раз он производит поиск во всем списке «−» сильно фрагментирует память.
4) «самый неподходящий участок». Выбирает самый большой свободный участок, от которого после разделения остается область достаточн размера и ее можно использовать в дальнейшем.
Все 4 алгорит можно ускорить, если есть списки свободных и занятых областей. Тогда поиск будет производиться только среди незанятых фрагментов, а удаление из занятых. Алгоритмы 1 и 3 получ идентичн, а 2 теряет смысл. При поддержке отдельных списков для процессов и свободн фрагмент данные можно хранить в виде структуры с полями длина, адрес след участка.
5) «быстрый подходящий», поддерживает отдельные списки для некоторых из наиболее часто запрашиваемых размеров. Например, могла бы существовать таблица с n записями, в которой первая запись указывает на начало списка свободных фрагментов размером 4 Кбайт, вторая - 8 Кбайт, третья — 12 Кбайт и т. д. «+» поиск фрагмента требуемого размера происходит очень быстро, «−» много маленьких свободных областей памяти, при заверш или вырузке проц на диск, поиск его соседей с целью узнать, возможно ли их соединение, дорого.
-
Виpтуальная память. Стpаничная оpганизация памяти. Диспетчеp памяти. Виpтуальные и физические адpеса.
Виртуальная память
Способы размещ прогр не помещ в дост физ пам: 1) Оверлей (overlay)– часть, разделен програм. Оверлей 0 запускался первым, выполнившись он вызывал следующий оверлей. Оверлеи хранились на диске и по мере необходимости динамически перемещались между памятью и диском средствами ОС(делить программы на части должен был программист).
Основная идея виртуальной памяти: объединенный размер программы, данных и стека может превысить количество доступной физической памяти. ОС хранит части программы, использующ в настоящий момент, в ОЗУ, остальные - на диске.
Виртуальная память может также работать в многозадачной системе при одновременно находящихся в памяти частях многих программ.
Страничная организация памяти (paging)
Существ множество адресов в памяти, к которым может обратиться программа. Инструкция mov reg,1000 (копир содерж пам по адресу 1000 в регистр reg). Адреса могут формиров с использов индексации, базовых регистров, сегментных регистров и др. Эти программно формируемые адреса, называемые виртуальными адресами, формируют виртуальное адресное пространство. На комп без виртуал памяти виртуал адреса подаются на шину памяти и вызывают для чтения или записи слово в физич памяти с тем же самым адресом.
Когда использ виртуал память, виртуал адреса не передаются напрямую шиной памяти. Вместо этого они передаются диспетчеру памяти (MMU - Memory Management Unit), который отображает виртуальные адреса на физические адреса памяти.
Пример: компьютер, который формир 16-разряд адреса, от 0 до 64 К(виртуал адр). Но у этого компьютера только 32 Кбайт физической памяти, поэтому, хотя программы размером 64 Кбайт могут быть написаны, они не могут целиком быть загружены в память и запущены. Полная копия образа памяти программы размером до 64 Кбайт должна присутство-
присутствовать на диске.
Пространство виртуальных адресов разделено на единицы - страницы. Соответствующие единицы в физической памяти - страничные блоки. Страницы и их блоки имеют всегда одинаковый размер.
Передача данных между ОЗУ и диском всегда происходит в страницах.
Когда программа пытается получить доступ к адресу 0, например, используя
команду mov reg, 0 : виртуальный адрес 0 передается диспетчеру памяти (MMU). Диспетчер памяти видит, что этот виртуальный адрес попадает на страницу 0 (от 0 до 8191), которая отображается страничным блоком 2 (от 16394 до 24575). Диспетчер переводит виртуальный адрес 0 в физический адрес 16394 и выставляет его на шину. Память ничего не знает о диспетчере памяти и видит просто запрос на чтение или запись слова по адресу 16394, который и выполняет. Таким образом, диспетчер памяти отображает все виртуальные адреса на физические адреса.
Страницы, обозначенные крестиками, не отображаются. В фактическом аппаратном обеспечении страницы, физически присутствующие в памяти, отслеживаются с помощью бита присутствия/отсутствия.
Если программа пытается воспользоваться неотображ страницей 1) диспетчер памяти замечает, что страница не отображается (обозначена крестиком на рисунке), и инициирует прерывание ЦПр, передающее управление ОС (прерывание наз-ся ошибкой из-за отсутствия страницы или страничным прерыванием). 2) ОС выбирает малоиспольз страничн блок и записывает его содержимое на диск. Затем считывает с диска страницу, на которую произошла ссылка, в только что освободившийся блок, изменяет карту отображения и запускает заново прерванную команду.
Например, если ОС решает удалить из оперативной памяти
страничный блок 1, она загружает виртуальную страницу 8 по физическому адре-
адресу 4 К и производит два изменения в карте диспетчера памяти. Во-первых, отме-
отмечается содержимое виртуальной страницы 1 как неотображаемое для того, чтобы
перехватывать в будущем любые попытки обращения к виртуальным адресам меж-
между 4 К и 8 К. Затем заменяется крест в записи для виртуальной страницы 8 на но-
номер 1, так что когда прерванная команда будет выполняться заново, она отобразит
виртуальный адрес 32780 на физический адрес 4108.
-
Таблицы стpаниц и две важные пpоблемы. Многоуpовневые таблицы стpаниц.
Таблицы страниц
Номер вирт страницы используется как индекс в таблице страниц для поиска записи этой страницы. По записи в таблице страниц находится номер физического блока страницы (если это имеет место). Физ адр=ТаблСтр[#вирт стр]+смещение.
Назначение ТаблСтр заключается в отображении вирт стр на страничные блоки получаем номер физич блока. Используя номер физич блока поле виртуальной страницы в виртуальном адресе может быть заменено полем страничного блока, таким образом, формируется физический адрес.
Проблемы: 1) Таблица страниц может быть слишком большой. современные компьютеры используют по крайней мере 32-разрядные виртуальные адреса. При размере стр= 4 Кбайт, 32-разр адресное пространство будет состоять из 1 миллиона страниц => таблица страниц должна состоять из одного миллиона записей.
2) Отображение должно быть быстрым. преобразование виртуальных адресов в физические должно быть выполнено для каждого обращения к ячейке памяти. 1 команда мож иметь до 4 обращ к памяти. Если Т выполн команды = 4 мс, то Т поиска в таблице страниц <1мс.
Ограничен на констр ЭВМ
1) поддержка таблиц страниц, сост из массива быстрых аппарат регистров с одной записью для каждой виртуал стран, индексированного по номерам виртуал стран. Когда процесс запускается, ОС загружает в регистры табл страниц процесса, данные берутся из копии, хранящейся в ОЗУ. «+» скорость ↑ →нет обращ к ОЗУ во время преобр адрес. «−» ↑ стоимость, необходимо загружать всю таблицы в регистры (производит ↓).
2) табл стр целиком располагается в ОЗУ. Все необходимое оборудование состоит из одного регистра, указывающего на начало таблицы страниц. Такая схема позволяет изменять карту памяти при контекстном переключении путем перезагрузки только одного регистра. «−» во время выполнения каждой инструкции программы требуется одно или несколько обраще-
ний к памяти для чтения записей таблицы страниц.
Многоуровневые таблицы страниц
Чтобы обойти проблему необходимости постоянного хранения в памяти огромных таблиц страниц, многие компьютеры используют многоуровневую таблицу страниц. 32-разрядный виртуальный адрес: РТ1-указ на табл 1 уровня, РТ2 – указ на табл 2 уровня. Т.к. под смещение отведено 12 бит, страницы имеют размер 4 Кбайт, и их всего 220.
Метода многоуровневой таблицы страниц заключается в том, чтобы избегать постоянного содержания в памяти всех таблиц страниц. Те части, которые не нужны в данный момент, не должны храниться в памяти.
Адрес ТС1 хранится в PSW в РТ1, адрес ТС2=Mem[TC1[PT1]], адрес физич проц=Mem[TC2[PT2]]+смещение
Если данная страница не находится в памяти, бит Присутствия/отсутствия в записи таблицы страниц будет равен нулю, что приведет к страничному прерыванию.
Физический адрес выставляется на шину и передается памяти.