Системный вызов для выполнения операции ввода

advertisement
Учебный курс
Операционные среды,
системы и оболочки
Лекция 10
Лекции читает
доктор технических наук, профессор
Назаров Станислав Викторович
3.4.4. Сегментная организация виртуальной памяти
Виртуальное адресное
пространство
При компиляции возможно создание следующих
сегментов:
1.
Исходный текст, сохраненный для печати
листинга программы.
2.
Символьная таблица, содержащая имена и
атрибуты переменных.
3.
Таблица констант.
Таблица констант
4.
Дерево грамматического разбора, содержащее
синтаксический анализ программы.
Свободно
5.
Стек, используемый для процедурных вызовов
внутри компилятора.
Стек вызовов
Дерево
синтаксического
анализа
Исходный текст
Таблица кодировки
символов
Таблица
кодировки
символов
достигла таблицы
с исходным
Операционные системы
текстом
2
Сравнение страничной и сегментной организации памяти
Вопрос
Страничная
Сегментация
Нужно ли программисту знать о том,
что используется эта техника?
Нет
Да
Сколько в системе линейных
адресных пространств?
1
Много
Может ли суммарное адресное
пространство превышать размеры
физической памяти?
Да
Да
Нет
Да
Легко ли размещаются таблицы с
непостоянными размерами?
Нет
Да
Облегчен ли совместный доступ
пользователей к процедурам?
Зачем была придумана
эта техника?
Нет
Да
Возможно ли разделение процедур и
данных, а также раздельная защита для
них?
Чтобы получить
большое линейное
адресное
пространство без
затрат
на
Операционные
системы
физическую память
Для разбиения
программ и данных на
независимые адресные
пространства,
облегчения защиты и
3
совместного доступа
Виртуальный адрес
Номер сегмента - N
Смещение - S
Таблица сегментов
+
Базовый
Управляющая
информация Размер адрес
Управляющая
информация:
P – присутствие;
M – модификация;
U – использование;
Sh – разделение;
S – защита.
Физический
адрес
Недостатки сегментной организации: 1. Увеличение времени
преобразования виртуального адреса в физический. 2. Избыточность
перемещаемых данных. 3. Внешняя фрагментация памяти.
Операционные системы
4
Номер физ. Смещение
страницы
Сегментно-страничная организация виртуальной памяти
Программа
Указатель Начальный
на таблицу адрес таблицы
сегментов сегментов
Смещение
Механизм сегментации
+
Начальный
адрес таблицы
страниц
Таблица
страниц
+
Таблица
сегментов
Номер страницы
Номер сегмента
Номер
сегмента
Номер
страницы Смещение
Виртуальный адрес
Механизм страничной
Операционные системы организации
Основная
память
5
ВП 2
ВП N
Оперативная
память
ВП 1
ВП 2
ВП N
Оперативная
память
ВП 1
Способы создания разделяемого сегмента памяти
Операционные системы
66
Виртуальная память Windows обеспечивает каждому процессу: 1. 4 Гбайт
виртуального адресного пространства (2 Гбайт – ОС, 2 Гбайт – пользовательская
программа). 2. 16 К независимых сегментов (8к локальных и 8К глобальных).
Процесс
LDTR
ОС и системные сегменты
СЕЛЕКТОР
GDTR
Индекс – номер сегмента (13 разр.)
LDT - локальная
таблица дескрипторов
прикладного процесса
Дескриптор сегмента
GDT – глобальная
таблица
дескрипторов
процессов ОС и
системных сегментов
1
2
Уровень привилегий
RPL = 0 - 3
GDT – 0, LDT - 1
Начальный адрес сегмента в
физической памяти
Операционные системы
7
Система защиты использует
переменные, характеризующие уровень
привилегий:
-DPL (Descriptor Privilege Level) –
задается полем DPL в дескрипторе сегмента;
Ядро
0
1
2
Обработчик
системных
вызовов
3
-RPL (Requested Privilege Level) –
запрашиваемый уровень привилегий,
задается полем RPL селектора сегмента;
-CPL (Current Privilege Level) – текущий
уровень привилегий выполняемого кода
задается полем RPL селектора кодового
сегмента (фиксируется в PSW);
-EPR (Effective Privilege Level) –
эффективный уровень привилегий
запроса.
Контроль доступа к сегменту данных осуществляется , если EPL
<= DPL, где EPL = max { CPL, RPL }. Значение RPL – уровня
запрашиваемых привилегий – определяется полем RPL
селектора, указывающего на запрашиваемый сегмент.
Операционные системы
8
4.1. Устройства ввода-вывода
4.2. Основные функции подсистемы ввода-вывода
4.2.1. Организация параллельной работы устройств ввода-вывода и
процессора
4.2.2. Согласование скоростей обмена и кэширование данных
4.2.3. Разделение устройств и данных между процессами
4.2.4. Обеспечение логического интерфейса между устройствами и
остальной частью системы
4.2.5. Поддержка широкого спектра драйверов
4.2.6. Динамическая выгрузка и загрузка драйверов
4.2.7. Поддержка нескольких файловых систем
4.2.8. Поддержка синхронных и асинхронных операций ввода-вывода
4.3. Многослойная модель подсистемы ввода-вывода
Операционные системы
9
4.4. Файловая система
4.4.1. Основные понятия. Цели и задачи файловой системы
4.4.2. Архитектура файловой системы
4.4.3. Организация файлов и доступ к ним
4.4.4. Каталоговые системы
4.4.5. Физическая организация файловой системы
Литература
Л1 с. 178 – 229;
Л2 с. 545 – 568;
Л4 с. 304 – 363, 477 – 496.
Операционные системы
10
4.1. Устройства ввода-вывода
Типы устройств по функциональному назначению;
1. Работающие с пользователем. Используются для связи с пользователем
компьютера (принтеры, дисплеи, клавиатура, манипуляторы (мышь,
джойстик и т. п.).
2. Работающие с компьютером. Используются для связи с электронным
оборудованием (диски, магнитные ленты, датчики, контроллеры,
преобразователи и т. п.).
3. Коммуникации. Используются для связи с удаленными устройствами
(модемы, адаптеры цифровых линий и др.).
Типы устройств по принципам функционирования:
1.
Блочные, хранящие информацию в виде адресуемых блоков фиксированного
размера и позволяющие работать с каждым блоком независимо от других
блоков ( дисковые устройства).
2.
Символьные, принимающие или предоставляющие поток символов без
какой-либо структуры (принтеры, модемы, сетевые карты).
Операционные системы
11
Различия в характеристиках устройств ввода-вывода
 Скорость передачи данных (на несколько порядков).
 Применение. Один и тот же тип устройства может требовать различного
ПО и стратегии операционной системы (диск для хранения файлов
приложений и файла подкачки, терминал пользователя и
администратора).
 Сложность управления (для принтера относительно простой интерфейс
управления, для диска – намного сложнее).
 Единицы передачи данных. Данные могут передаваться блоками или
потоком байтов или символов.
 Представление данных. Различные устройства используют разные схемы
кодирования данных, включая различную кодировку символов и
контроль четности.
 Условия ошибок. Природа ошибок, способ сообщения о них, возможные
ответы резко отличаются от одного устройства к другому.
Операционные системы
12
Gigabit Ethernet
Графический
монитор
Жесткий диск
Ethernet
Оптический
диск
Сканер
Лазерный
принтер
Гибкий диск
Модем
Мышь
Клавиатура
101
102
103
104
Операционные системы
105
106
107
Бит в секунду
108 109
13
4.2. Основные функции подсистемы ввода-вывода
Основные компоненты: драйверы, файловая система,
система прерываний
1. Организация параллельной работы устройств вводавывода и процессора.
2. Согласование скоростей обмена и кэширование данных.
3. Разделение устройств и данных между процессами.
4. Обеспечение удобного логического интерфейса между
устройствами и остальной частью системы.
5. Поддержка широкого спектра драйверов с возможностью
простого включения в систему нового драйвера.
6. Динамическая загрузка и выгрузка драйверов.
7. Поддержка нескольких файловых систем.
8. Поддержка синхронных и асинхронных операций вводавывода.
Операционные системы
14
4.2.1. Организация параллельной работы устройств
ввода-вывода и процессора
Эволюция ввода – вывода
1. Процессор непосредственно управляет периферийным устройством.
2. Устройство управляется контроллером. Процессор использует
программируемый ввод - вывод без прерываний (переход к абстракции
интерфейса ввода - вывода).
3. Использование контроллера прерываний. Ввод-вывод, управляемый
прерываниями.
4. Использование модуля (канала) прямого доступа к памяти. Перемещение
данных в память (из нее) без использования процессора.
5. Использование отдельного специализированного процессора вводавывода, управляемого центральным процессором.
6. Использование отдельного компьютера для управления устройствами
ввода-вывода при минимальном вмешательстве центрального
процессора.
Операционные системы
15
Текущая команда программы
Системный вызов для выполнения
операции ввода-вывода
1.
Вызов драйвера
Процессор посылает
необходимые команды
контроллеру ввода-вывода и
переводит процесс в состояние
ожидания завершения операции
ввода-вывода.
Запрос состояния контроллера
ввода-вывода
Не готов
Проверка
состояния
Готов
Программируемый ввод-вывод
без прерываний
Ошибка
Получить слово от
контроллера ввода-вывода
Записать слово в память
Нет
Да
Все выполнено ?
Следующая команда
Операционные системы
16
Текущая команда программы
Системный вызов для выполнения
операции ввода-вывода
Выполнение
других
Вызов драйвера. Передача
команды контроллеру.
действий
Запрос состояния контроллера
ввода-вывода
ПРЕРЫВАНИЕ
Не готов
Проверка
состояния
Готов
Ошибка
Получить слово от
контроллера ввода-вывода
Записать слово в память
Нет
2. Ввод-вывод, управляемый
прерываниями. Процессор
посылает необходимые
команды контроллеру вводавывода и продолжает
выполнять процесс, если нет
необходимости в ожидании
выполнения операции. В
противном случае процесс
приостанавливается до
получения прерывания, а
процессор переключается на
выполнение другого
процесса.
Да
Все выполнено ?
Следующая команда
Операционные системы
17
Жесткий диск
Возбуждение сигнала
прерывания
Центральный
процессор
4
Контроллер запускает устройство
Регистры контроллера
Контроллер
прерываний
5
2
Контроллер диска
3
1
Драйвер программирует контроллер и переходит в состояние ожидания
3
Контроллер завершил операцию
5
Обработка прерывания, перемещение данных в область
программы, передача управления программе
Операционные системы
18
Download