- •Архитектура операционной системы
- •1. Монолитные системы
- •2. Многоуровневые системы
- •3. Виртуальные машины
- •Архитектура, основанная на ядре
- •Режим ядра и пользовательский режим
- •Типовые средства аппаратной поддержки ос
- •Машинно-зависимые компоненты ос
- •Микроядерная архитектура
- •Процессы и потоки
- •Реализация процессов
- •Назначение потоков
- •Реализация потоков
- •Планирование Процессов
- •Пример 1. Планирование в Windows 2000
- •Пример 2. Планирование в unix
- •Цели планирования
- •Схемы планирования
- •Взаимодействие процессов и потоков
- •Состояние состязания
- •Критические области
- •Взаимоисключение с активным ожиданием
- •Семафоры
- •Мьютексы
- •Мониторы
- •Взаимные блокировки
- •Основные направления решения проблемы тупиков
- •Предотвращение тупиков
- •Обнаружение тупика
- •Восстановление после тупика
- •Организация мультизадачности ос
- •Опрос (проверка флагов)
- •Исключения
- •Прерывания
- •Классификация прерываний
- •3 Класса прерываний:
- •Механизм прерываний
- •Приоритеты прерываний
- •Организация памяти
- •Функции ос по управлению памятью
- •Стратегии управления памятью
- •Фрагментация памяти
- •Способы борьбы с фрагментацией:
- •Типы адресов памяти
- •Учет свободных и занятых областей памяти
- •Учет памяти с помощью битовых карт
- •Учет памяти с помощью связных списков
- •Виртуальная память
- •Файлы подкачки
- •Вопросы по модулю №1
Функции ос по управлению памятью
MMU (Memory Management Unit) или модуль управления памятью (или менеджер памяти, диспетчер памяти, или супервизор памяти) – часть ядра ОС, управляющая памятью.
Функции MMU:
Управление свопингом (обменом между ОЗУ и HDD при недостаточном размере ОП).
Отслеживание занятости памяти.
Выделение памяти процессам и освобождение ее при завершении процесса.
Преобразование адресов из виртуальных и реальные и обратно.
Динамическое выделение памяти во время выполнения процесса (при ее недостатке).
Защита памяти (Запрещает другим процессам записывать или читать данные из области, назначенной другому процессу. Реализуется это обычно так: В ЦП есть 2 граничных регистра, в которые записываются старший и младший адрес, ограничивающие диапазон ячеек для записи. При попытке процесса записать в память делается проверка выхода за границы. Если не попадаем в выделенную область, происходит страничное прерывание и вызывается обработчик.).
Стратегии управления памятью
Стратегии направлены на обеспечение наилучшего использования ресурсов ОП.
Стратегии делятся на 3 категории:
Стратегии выборки.
Стратегии замещения.
Стратегии размещения.
Стратегии выборки (когда) определяют когда помещать в ОП очередной блок данных: до запроса системы (прогнозирование), или после. Сейчас наиболее интенсивно развиваются механизмы прогнозирования для повышения производительности.
Стратегии замещения (вместо чего) определяют какой блок данных выгрузить из ОП чтобы освободить место для нового.
Стратегии размещения (куда) определяют в какое место ОП помещать нужную для исполнения программу.
При загрузке в память очередного процесса встает проблема выбора свободного участка из множества имеющихся. Очевидно, что труднее найти место для большого процесса, чем для маленького. Если мы загрузим на большой свободный участок очередной небольшой процесс, то для следующего большого можно не найти места.
Стратегии размещения делятся на следующие:
1. Стратегия Первого подходящего – первый попавшийся, подходящий по размеру участок (самый быстрый метод и самый популярный).
2. Стратегия Самого подходящего – задание помещается в наименьший из подходящих участков (самый медленный метод, так как на поиск участков тратится много времени. Увеличивает фрагментацию, так как образуются мелкие свободные блоки).
3. Стратегия Наименее подходящего – новое задание помещается в максимальный по размеру участок ОП. Оставшийся участок часто оказывается большим для размещения следующей программы. А тем временем освобождается место на плотно занятых участках (используется совместно с файловой системой HPFS, например ОС Windows, OS/2).
Фрагментация памяти
Существует несколько видов управления памятью, но мы рассмотрим самый популярный из современных – это мультизадачность с переменными разделами.
При таком подходе заданиям разрешено занимать в памяти столько места, сколько им требуется. Размеры устанавливаются по размеру заданий.
Выделение памяти случайной длины в случайные моменты времени приводит к фрагментации памяти.
Фрагментация памяти – это наличие большого числа несмежных свободных участков. Крайняя степень фрагментированности - ни один свободный участок не вмещает новые данные, хотя их общий объем может быть большим. Даже при использовании этих участков всё равно остаются дыры.