- •Проектирование Операционных Систем
- •Определение ос
- •Промышленная эксплуатация
- •Принцип модульности
- •Принцип функциональной избирательности
- •Принцип перемещаемости
- •Принцип защиты
- •Состояние процессов
- •Переходы между состояниями
- •Классификация процессов
- •Характеристики процессов
- •Определение
- •Классификация ресурсов
- •Интерфейс пользователя
- •Командный интерфейс
- •Примеры командных файлов из операционных систем
- •Эльбрус
- •3. Vm, os/2: rexx (пример аналога команды unix Grep)
- •Графический интерфейс
- •Основные понятия gui
- •Обработка прерываний
- •Подсистемы ос
- •Подсистема управления процессами
- •Долгосрочное планирование
- •Краткосрочное планирование
- •Дескрипторы процессов
- •Искусственное снижение уровня мультипрограммирования
- •Подсистема распределения ресурсов
- •Подсистема управления памятью
- •Два уровня распределения оперативной памяти
- •Задачи распределения памяти
- •Выделение
- •Подсистема управления вводом/выводом
- •Требования к подсистеме управления ввода/вывода:
- •Буферизация ввода вывода
- •Пример реализации ввода/вывода в системе unix
- •Пример реализации ввода/вывода в ос vm
- •Организация виртуальной памяти
- •Структуризация адресных пространств
- •Схемы страничной структуризации.
- •Схемы сегментной структуризации.
- •Сегментно-страничная структуризация
- •Требования к вп
- •Задачи управления виртуальной памятью
- •Задача размещения
- •Задача перемещения
- •Задача взаимного исключения
- •Задача «производитель-потребитель»
- •Модификации данной задачи
- •Задача «читатели-писатели»
- •Задача «обедающие философы»
- •Механизмы синхронизации Критерии оценки механизмов синхронизации
- •Архитектура механизмов синхронизации
- •Синхронизация с помощью прерываний
- •Синхронизация при помощи переменной состояния
- •Семафоры
- •Простые семафоры
- •Множественные семафоры
Организация виртуальной памяти
Целью организации виртуальной памяти является:
Обеспечение пользователя (точнее его программы) оперативной памяти практически не ограниченного объема (на практике – очень большого) с добавлением новых свойств:
-
Упрощенный доступ
-
Защита от других пользователей (программ)
-
и тд.
Виртуализации подвергается не только оперативная но и другие виды памяти (регистры, кэш, внешняя память).
Говоря о виртуализации памяти нельзя не говорить об адресных пространствах.
Дадим определение адресного пространства:
Доступное множество адресов элементов хранения информации, упорядоченное по какому либо признаку, называется адресным пространством.
Элементы адресного пространства (адреса) однозначно идентифицируют расположение элемента информации среди других элементов. Необходимо помнить, что адресация элементов – аппаратная функция, а не программная.
В том случае, когда пользователь имеет дело не с действительным адресом, а с некоторым его обозначением, например идентификатором или символом, имеет место виртуальная память, а используемый, в качестве адреса, символ, называется виртуальным адресом.
Виртуальная память реализуется в программно-аппаратной форме. Пользователь не имеет непосредственного доступа к данному механизму. Программный слой виртуальный памяти составляют процессы, выполняющие преобразование каждого виртуального адреса в физический.
Все выше сказанное относится к виртуальной памяти в общем виде, но чаще мы будем использовать более узкое понятие виртуальной памяти. В этом случае под виртуальной памятью понимают только виртуальную оперативную память. Виртуальный адрес является адресом в конкретном адресном пространстве. Преобразование его в физический адрес выполняется аппаратно в тех случаях, когда это возможно, иначе требуется вмешательство операционной системы.
Например, в архитектуре System370: Преобразование адресов выполняется аппаратно, если данные, сосуществующей виртуальной памяти, находятся в оперативной памяти. Иначе происходит прерывание по особому случаю переадресации, ОС обрабатывает прерывание, помещая нужную страницу в оперативную память, и возобновляет выполнение программы.
Структуризация адресных пространств
При построении виртуальной оперативной памяти применяют несколько способов адресации, как в пределах виртуального, так и физического адресного пространства. Способы адресации основаны на конкретной схеме структуризации адресного пространства. Будем рассматривать два класса схем: схемы страничной и сегментной структуризации.
Схемы страничной структуризации.
Есть некоторое адресное пространство.
A – адрес.
N – размер адресного пространства.
0≤A≤N-1, Ai+1=Ai+1.
-
Сгруппируем адреса по страницам. Все группы будут содержать одинаковое количество адресов (L=2m). Обычно N=2n. Очевидно, что количество страниц равно 2n-m. Группировку делают последовательно, начиная с адреса 0. Нумерация будет последовательной. В этом случае индекс последнего адреса будет: x = 2n-m-1.
K=0,1,2,… 2n-m-1 – страницы АП
AK0=K·L=K·2m.
-
Перенумеруем адреса в пределах каждой страницы, рассматривая ее как отдельное адресное пространство. Полученные адреса будут находится в пределах от 0 до 2m-1. Будем называть такие адреса смещением, обозначать буковкой R: 0≤R≤2m-1.
На этом структуризация адресного пространства закончена. Из одномерного адресного пространства мы получили двумерное.
Для примера возьмем адресное пространство, состоящее из 8 адресов. (N=8, n=3)
Разобьем адресное пространство на страницы с m=2 (L=4).
А |
Страница |
Смещение |
0 |
0 |
0 |
1 |
0 |
1 |
2 |
0 |
2 |
3 |
0 |
3 |
4 |
1 |
0 |
5 |
1 |
1 |
6 |
1 |
2 |
7 |
1 |
3 |
Для перевода пары Страница/Смещение будем использовать следующую формулу: AK=K·L+R. На практике никакого сложения выполнять не надо, производят просто конкатенацию битовых строк.
Рассмотренный нами вариант структуризации адресного пространства называют «структуризацией фиксированными страницами». Помимо страниц фиксированного размера, для структуризации адресного пространства могут применяться и страницы переменного размера. В этом случае размер каждой страницы не превосходит максимального размера страницы. В этом случае адресная пара состоит из начального адреса страницы и смещения (Ai0, R).