
- •Определение операционной системы, назначение и основные функции ос.
- •3 Классификация ос.
- •4. Эволюция операционных систем.
- •5 Понятие ос реального времени.
- •6 Структура ос
- •8) Создание процесса. Завершение процесса. Иерархия процессов. Состояние процессов
- •9 ) Потоки (нити, облегченный процесс)
- •10) Модель потока
- •12) Реализация потоков в пространстве пользователя, ядра и смешанное
- •13) Взаимодействие между процессами
- •14)Передача информации от одного процесса другому. Состояние состязания. Критические области
- •15) Взаимное исключение с активным ожиданием
- •16) Примитивы взаимодействия процессов
- •17) Проблема переполненного буфера (проблема производителя и потребителя)
- •18) Семафоры
- •19) Решение проблемы переполненного буфера с помощью семафора
- •21) Основные понятия планирования процессов. Задачи алгоритмов планирования
- •22) Планирование в системах пакетной обработки
- •Наименьшее оставшееся время выполнения
- •Трехуровневое планирование
- •24) Планирование в интерактивных системах
- •24) Планирование в системах реального времени
- •Выполнение задачи
- •29) Взаимоблокировка процессов
- •30) Моделирование взаимоблокировок
- •31) Методы борьбы с взаимоблокировками
- •32) Пренебрежением проблемой в целом (страусовый алгоритм)
- •33) Обнаружение и устранение взаимоблокировок
- •34) Динамическое избежание взаимоблокировок. Предотвращение четырех условий, необходимых для взаимоблокировок
- •11.3 Динамическое избежание взаимоблокировок
- •11.4 Предотвращение четырех условий, необходимых для взаимоблокировок
- •38) Своппинг
- •39) Виртуальная память
- •40) Страничная организация памяти
- •41) Алгоритмы замещения страниц
- •42) Алгоритм часы
- •43) Понятие «рабочий набор»
- •45) Политика распределения памяти
- •46) Совместно используемые страницы
- •48) Сборка мусора
- •49) Алгоритмы освобождения памяти
- •50) Сегментная организация памяти
- •51) Блочные устройства
- •52) Символьные устройства
- •53) Что такое контроллер прерываний
- •54) Зачем нужен контроллер прерываний
- •54) Механизм обработки прерываний
46) Совместно используемые страницы
Два процесса могут содержать в таблицах страниц указатели на общие страницы. В случае разделения пространств команд и данных это легко реализуется. Эти данные используются в режиме чтения.
В UNIX, когда создается дочерний процесс, у родительского и дочернего процесса общее пространство данных, и только если один из процессов попытается изменить данные, происходит прерывание и создание копии этой страницы, если записи не происходит, то оба процесса продолжают работать с общей памятью. Это приводит к экономии памяти.
47) ПОЛИТИКА ОЧИСТКИ СТРАНИЦ\
48) Сборка мусора
Лучше всегда держать в запасе свободные блоки, освобождая их заранее, чем при нехватке памяти, искать и освобождать их.
Страничный демон - программа, периодически проверяющая состояние памяти, если занято много блоков, то производит выборочную выгрузку страниц.
49) Алгоритмы освобождения памяти
Алгоритм выставления флагов
Простой алгоритм определения достижимых объектов, «алгоритм пометок» (Mark and Sweep), заключается в следующем:
для каждого объекта хранится бит, указывающий, достижим ли этот объект из программы или нет;
изначально все объекты, кроме корневых, помечаются как недостижимые;
рекурсивно просматриваются и помечаются как достижимые объекты ещё не помеченные и до которых можно добраться из корневых объектов по ссылкам;
те объекты, у которых бит достижимости не был установлен, считаются недостижимыми.
(Следует обратить внимание, что, согласно данному алгоритму, если два или более объектов ссылаются друг на друга, но ни на один из этих объектов нет других ссылок, то имеет место циклическая ссылка, и вся группа считается недостижимой. Эта особенность алгоритма позволяет гарантированно удалять группы объектов, использование которых прекратилось, но в которых имеются ссылки друг на друга. Такие группы часто называются «islands of isolation» (острова изоляции))
Алгоритм подсчёта ссылок
Другой вариант алгоритма определения достижимости — обычный подсчёт ссылок (каждый объект содержит счетчик количества ссылок на него используемых другими объектами. Когда этот счетчик уменьшается до нуля это означает что объект стал недоступным, и он помещается в список объектов на уничтожение) . Его использование замедляет операции присваивания ссылок, но зато определение достижимых объектов тривиально — это все объекты, значение счётчика ссылок которых превышает нуль. Без дополнительных уточнений этот алгоритм, в отличие от предыдущего, не удаляет циклически замкнутые цепочки вышедших из употребления объектов, сохранивших ссылки друг на друга.
50) Сегментная организация памяти
Сегментная адресация памяти — схема логической адресации памяти компьютера в архитектуре x86. Линейный адрес конкретной ячейки памяти, который в некоторых режимах работы процессора будет совпадать с физическим адресом, делится на две части: сегмент и смещение. Сегментом называется условно выделенная область адресного пространства определённого размера, а смещением — адрес ячейки памяти относительно начала сегмента. Базой сегмента называется линейный адрес (адрес относительно всего объёма памяти), который указывает на начало сегмента в адресном пространстве. В результате получается сегментный (логический) адрес, который соответствует линейному адресу база сегмента+смещение и который выставляется процессором на шину адреса.
Селектором называется число (в x86 — 16-битное), однозначно определяющее сегмент. Селектор загружается в сегментные регистры.
ПРИМЕР: 45 бит памяти – сегмент - 3(45/16=2,…), смещение - 9(45%16=13(% - остаток от деления)), 32 – база сегмента(16*3=32)