- •Модель процесса, Создание и завершение процесса
- •Иерархии, реализация, состояния процессов
- •Иерархии процессов
- •Реализация процессов
- •Состояния процессов
- •Классическая модель потоков
- •2.1 Классическая модель потоков
- •Применение потоков, моделирование режима многозадачности
- •Потоки в posix, реализация потоков в пользовательском пространстве
- •Реализация потоков в ядре, гибридная реализация, активация планировщика Реализация потоков в ядре
- •Гибридная реализация
- •Активация планировщика
- •Всплывающие потоки, превращение однопоточного кода в многопоточный Всплывающие потоки
- •2.2. Превращение однопоточного кода в многопоточный
- •Взаимодействие процессов: состязательная ситуация, критические области Межпроцессное взаимодействие.
- •Состояние состязания.
- •Критическая область.
- •3.1 Взаимодействие между процессами
- •Передача информации от одного процесса другому
- •3.1.2 Состояние состязания
- •3.1.3 Критические области
- •Взаимодействие процессов: взаимное исключение с активным ожиданием, приостановка и активизация
- •2.Взаимное исключение с активным ожиданием
- •2.1 Запрещение прерываний.
- •2.2 Переменные блокировки.
- •3.Приостановка и активизация
- •Введение в планирование, планирование в пакетных системах
- •Планирование в пакетных системах
- •Планирование в интерактивных системах Введение
- •Гарантированное планирование
- •Лотерейное планирование
- •Справедливое планирование
- •Планирование потоков
- •Планирование в системах реального времени, политика и механизмы, планирование потоков
- •Понятие адресного пространства, правление свободной памятью.
- •Методы распределения памяти с использования дискового пространства:
- •Страничное распределение виртуальной памяти
- •Сегментное распределение памяти
- •3. Сегментно-страничная организация разделения памяти
- •Страничная организация памяти, таблицы страниц Страничная организация памяти, таблицы страниц
- •Страничная организация памяти. Виртуальная память.
- •Структура страниц.
- •Формирование адреса при страничном преобразовании.
- •Преимущества страничной памяти
- •Недостатки страничной памяти
- •Ускорение работы страничной организации памяти, таблицы страниц для больших объемов памяти
- •Оптимальный алгоритм замещения страниц, сравнительная характеристика алгоритмов замещения страниц Алгоритмы замещения страниц
- •Оптимальный алгоритм замещения страниц
- •Алгоритм исключения недавно использовавшейся страницы
- •Алгоритм fifo
- •Алгоритм «второй шанс»
- •Алгоритм «часы»
- •Алгоритм замещения наименее востребованной страницы
- •Сравнительная характеристика алгоритмов замещения страниц
- •Разработка систем страничной организации памяти: локальная и глобальная политики, управление загрузкой, разделение пространства команд и данных
- •Локальная и глобальная политика
- •Управление загрузкой
- •Разделение пространства команд и данных
- •Совместно использование страниц, библиотек, очистка страниц, обработка ошибки отсутствия страницы. Совместно используемые страницы
- •Совместно используемые библиотеки
- •Политика очистки страниц
- •Обработка ошибки отсутствия страницы
- •Файлы: имена, структура, типы атрибуты файлов, доступ и операции с файлами.
- •Каталоги: одноуровневые каталоги, иерархические системы каталогов, операции с каталогами
- •Структура файловой системы, реализация файлов, каталогов.
- •Основы аппаратного обеспечения ввода-вывода Устройства ввода-вывода
- •Контроллеры устройств
- •Ввод-вывод, отображаемый на пространство памяти.
- •Принципы создания программного обеспечения ввода-вывода
- •Диски: аппаратная часть, форматирование, алгоритмы планирования перемещения блока головок.
- •Форматирование диска
- •Алгоритмы планирования перемещения головок
- •Аппаратная составляющая и программное обеспечение часов, таймеры
- •Программное обеспечение пользовательского интерфейса: клавиатура, мышь, монитор
- •2.4. Монитор
- •Маршрутизация с использованием масок постоянной и переменной длины
- •Фрагментация ip-пакетов, параметры и механизм фрагментации
- •Групповое вещание
- •Стандартная модель группового вещания ip
- •Основные типы протоколов группового вещания
- •Инжиниринг трафика в mpls
Политика очистки страниц
Замещение страниц лучше всего работает при наличии достаточного количества свободных страничных блоков, которые могут потребоваться при возникновении ошибки отсутствия страницы. Если заполнен и, более того, изменен каждый страничный блок, то перед помещением в него новой страницы сначала должна быть записана на диск старая страница. Для обеспечения поставки свободных страничных блоков системы замещения страниц, как правило, имеют фоновый процесс. Если свободно слишком мало страничных блоков, фоновый процесс начинает подбирать страницы для выгрузки, используя какой-нибудь алгоритм замещения страниц. Если эти страницы со времени своей загрузки подверглись изменению, они записываются на диск.
В любом случае предыдущее содержание страницы запоминается. Если одна из выгруженных страниц понадобится опять перед тем, как ее страничный блок будет переписан, она может быть восстановлена из резерва свободных страничных блоков.
Обработка ошибки отсутствия страницы
Описание всего, что происходит при возникновении ошибки отсутствия страницы. Складывается следующая последовательность событий:
1. Аппаратное прерывание передает управление ядру, сохраняя в стеке значение счетчика команд. На большинстве машин в специальных регистрах центрального процессора сохраняется информация о состоянии текущей команды.
2. Запускается код стандартной программы на ассемблере, предназначенный для сохранения регистров общего назначения и другой изменяющейся информации, чтобы защитить ее от разрушения со стороны операционной системы.
3. Операционная система определяет, что произошла ошибка отсутствия страницы, и пытается определить, какая виртуальная страница востребована. Зачастую эта информация содержится в одном из аппаратных регистров. В противном случае операционная система должна взять значение счетчика команд, извлечь команду и провести ее разбор программным способом, чтобы определить, что происходило в тот момент, когда возникла ошибка.
4. Когда известен виртуальный адрес, вызвавший ошибку, система проводит проверку адреса на приемлемость и доступа к этому адресу — на согласованность с системой защиты. При отрицательном результате проверки процессу посылается сигнал или же он уничтожается.
5. Если выбранный страничный блок содержит измененную страницу, она включается в план сброса на диск и происходит переключение контекста, приостанавливающее процесс, в котором произошла ошибка.
6. Как только страничный блок очистится (либо немедленно, либо после сброса его содержимого на диск), операционная система ищет адрес на диске, по которому находится востребованная страница, и в план включается дисковая операция, предназначенная для ее извлечения. Пока страница загружается, процесс, в котором произошла ошибка, остается приостановленным и запускается другой пользовательский процесс, если таковой имеется.
7. Когда дисковое прерывание показывает, что страница получена, таблицы страниц обновляются, чтобы отобразить ее позицию, и блок получает пометку нормального состояния.
8. Команда, на которой произошла ошибка, возвращается к тому состоянию, в котором она находилась с самого начала, и счетчик команд переключается, чтобы указывать на эту команду.
9. Процесс, в котором произошла ошибка, включается в план, и операционная система возвращает управление стандартной программе на ассемблере, которая ее вызвала.
10. Эта стандартная программа перезагружает регистры и другую информацию о состоянии и, если не произошло ошибки, возвращается в пространство пользователя для продолжения выполнения.