- •Архитектура операционной системы
- •1. Монолитные системы
- •2. Многоуровневые системы
- •3. Виртуальные машины
- •Архитектура, основанная на ядре
- •Режим ядра и пользовательский режим
- •Типовые средства аппаратной поддержки ос
- •Машинно-зависимые компоненты ос
- •Микроядерная архитектура
- •Процессы и потоки
- •Реализация процессов
- •Назначение потоков
- •Реализация потоков
- •Планирование Процессов
- •Пример 1. Планирование в Windows 2000
- •Пример 2. Планирование в unix
- •Цели планирования
- •Схемы планирования
- •Взаимодействие процессов и потоков
- •Состояние состязания
- •Критические области
- •Взаимоисключение с активным ожиданием
- •Семафоры
- •Мьютексы
- •Мониторы
- •Взаимные блокировки
- •Основные направления решения проблемы тупиков
- •Предотвращение тупиков
- •Обнаружение тупика
- •Восстановление после тупика
- •Организация мультизадачности ос
- •Опрос (проверка флагов)
- •Исключения
- •Прерывания
- •Классификация прерываний
- •3 Класса прерываний:
- •Механизм прерываний
- •Приоритеты прерываний
- •Организация памяти
- •Функции ос по управлению памятью
- •Стратегии управления памятью
- •Фрагментация памяти
- •Способы борьбы с фрагментацией:
- •Типы адресов памяти
- •Учет свободных и занятых областей памяти
- •Учет памяти с помощью битовых карт
- •Учет памяти с помощью связных списков
- •Виртуальная память
- •Файлы подкачки
- •Вопросы по модулю №1
Учет памяти с помощью связных списков
Память представлена в виде связного списка занятых и свободных областей, где каждая область как элемент списка содержит следующие поля.
Признак занятости (например, P-занят процессом, F-свободен).
Адрес начала области.
Размер области.
Указатель на следующую запись.
Для уменьшения времени поиска подходящего участка список делают кольцевым, и поиск начинают с того места, где остановились в прошлый раз.
Виртуальная память
Виртуальная память служит для мнимого увеличения размеров ОП.
Впервые она была реализована в 1959 г. на компьютере "Атлас", разработанном в Манчестерском университете.
ВП – механизм управления памятью. Заключается в использовании внешней памяти (например, HDD) для размещения данных. Необходимость использования ВП заключается в том, что объем адресного пространства процессов часто больше размера основной памяти. Этот процесс называется виртуализацией.
Рассмотрим системы с виртуализацией памяти.
Существует два вида таких систем:
свопинг (swapping) – системы, в которых образы процессов выгружаются на диск целиком. Такие системы еще называют простой подкачкой.
виртуальная память (virtual memory) – системы, в которых образы процессов перемещаются между ОЗУ и диском частями. Части могут быть сегментами или страницами.
Свопинг можно считать частным случаем виртуальной памяти. Свопинг не получил большого распространения, поскольку ему свойственны два недостатка.
при свопинге в принципе невозможно запустить процесс, адресное пространство которого превышает объем свободного ОЗУ. Т.е. большие процессы в таких системах в принципе невыполнимы.
свопинг избыточен: при выполнении программы, как правило, не нужен весь образ процесса целиком, часть данных заведомо не используется. А перемещение этих частей процесса занимает время и память.
Ключевой вопрос организации виртуальной памяти – это способ структуризации виртуального адресного пространства.
Существуют три способа организации систем виртуальная память.
Страничная организация виртуальной памяти (paging). В этом случае перемещение данных между памятью и диском происходит страницами – небольшими частями фиксированного размера.
Сегментная организация виртуальной памяти. Перемещение данных происходит сегментами – частями виртуального пространства произвольного размера, полученными с учетом смыслового значения данных.
Сегментно-страничная виртуальная память. В этом случае происходит двухуровневое деление виртуального адресного пространства: сначала на сегменты, а сегменты делятся на страницы. Единицей перемещения является страница.
Например, в Windows NT все виртуальное адресное пространство разбито на страницы, и каждая страница может находиться в одном из трех состояний:
Свободном.
Зарезервированном.
Фиксированном.
Свободная страница – это страница, ничем не занятая и не используемая (в настоящий момент). Когда процесс запускается, все его страницы – свободные.
Как только на страницу будут отображены программа или данные, она становится фиксированной. Фиксированная страница может находиться или не находиться в оперативной памяти. Если страница находится в ОЗУ, обращение к ней не вызывает страничного прерывания; если не находится – при обращении к ней наступает прерывание.
Зарезервированная страница – это страница, защищенная от записи (от отображения), но не занятая в настоящий момент данными или программой. Например, когда создается новый поток, ОС выделяет 1 Мбайт под стек потока и резервирует его, а реально фиксируется только одна страница из этого пространства. Это делается для того, чтобы стек мог вырасти до 1 Мбайт без опасения, что его пространство будет занято другим потоком.
Фиксированные страницы, которые располагаются на диске, называются теневыми. Они организованы в один или несколько файлов подкачки. В Windows 2000 может быть организовано до 16 файлов подкачки. У каждого файла подкачки есть начальный и максимальный размер. С помощью панели управления можно изменить размер файла подкачки
Следует отметить, что в Windows NT нет сегментации виртуальной памяти, только страничная организация.