Учебный курс Операционные среды, системы и оболочки Лекция 10 Лекции читает доктор технических наук, профессор Назаров Станислав Викторович
Операционные системы Сегментная организация виртуальной памяти Таблица кодировки символов Таблица кодировки символов достигла таблицы с исходным текстом Исходный текст Таблица констант Свободно Дерево синтаксического анализа Стек вызовов Виртуальное адресное пространство При компиляции возможно создание следующих сегментов: 1.Исходный текст, сохраненный для печати листинга программы. 2.Символьная таблица, содержащая имена и атрибуты переменных. 3.Таблица констант. 4.Дерево грамматического разбора, содержащее синтаксический анализ программы. 5.Стек, используемый для процедурных вызовов внутри компилятора.
Операционные системы3 Сравнение страничной и сегментной организации памяти Вопрос Страничная Сегментация Нужно ли программисту знать о том, что используется эта техника? Сколько в системе линейных адресных пространств? Может ли суммарное адресное пространство превышать размеры физической памяти? Возможно ли разделение процедур и данных, а также раздельная защита для них? Легко ли размещаются таблицы с непостоянными размерами? Облегчен ли совместный доступ пользователей к процедурам? Зачем была придумана эта техника? НетДа 1Много Да Нет Да Чтобы получить большое линейное адресное пространство без затрат на физическую память Для разбиения программ и данных на независимые адресные пространства, облегчения защиты и совместного доступа
Операционные системы4 Виртуальный адрес Номер сегмента - NСмещение - S + Физический адрес Таблица сегментов Базовый адрес Размер Управляющая информация Управляющая информация: P – присутствие; M – модификация; U – использование; Sh – разделение; S – защита. Недостатки сегментной организации: 1. Увеличение времени преобразования виртуального адреса в физический. 2. Избыточность перемещаемых данных. 3. Внешняя фрагментация памяти.
Операционные системы5 Сегментно-страничная организация виртуальной памяти Виртуальный адрес Номер сегмента Номер страницы Смещение Указатель на таблицу сегментов ++ Программа Механизм сегментации Механизм страничной организации Основная память Начальный адрес таблицы сегментов Номер сегментаНачальный адрес таблицы страниц Таблица сегментов Таблица страниц Номер страницы Номер физ. страницы Смещение
Операционные системы6 6 ВП 1 ВП 2 ВП N Оперативная память ВП 1 ВП 2 ВП N Способы создания разделяемого сегмента памяти
Операционные системы7 Виртуальная память Windows обеспечивает каждому процессу: 1. 4 Гбайт виртуального адресного пространства (2 Гбайт – ОС, 2 Гбайт – пользовательская программа) К независимых сегментов (8к локальных и 8К глобальных). Процесс ОС и системные сегменты 21 Уровень привилегий RPL = GDT – 0, LDT - 1 Индекс – номер сегмента (13 разр.) СЕЛЕКТОР LDT - локальная таблица дескрипторов прикладного процесса GDT – глобальная таблица дескрипторов процессов ОС и системных сегментов GDTR LDTR Дескриптор сегмента Начальный адрес сегмента в физической памяти
Операционные системы8 Ядро Обработчик системных вызовов Система защиты использует переменные, характеризующие уровень привилегий: -DPL (Descriptor Privilege Level) – задается полем DPL в дескрипторе сег- мента; -RPL (Requested Privilege Level) – запрашиваемый уровень привилегий, задается полем RPL селектора сегмента; -CPL (Current Privilege Level) – текущий уровень привилегий выполняемого кода задается полем RPL селектора кодового сегмента (фиксируется в PSW); -EPR (Effective Privilege Level) – эффективный уровень привилегий запроса. Контроль доступа к сегменту данных осуществляется, если EPL
Операционные системы Устройства ввода-вывода 4.2. Основные функции подсистемы ввода-вывода Организация параллельной работы устройств ввода-вывода и процессора Согласование скоростей обмена и кэширование данных Разделение устройств и данных между процессами Обеспечение логического интерфейса между устройствами и остальной частью системы Поддержка широкого спектра драйверов Динамическая выгрузка и загрузка драйверов Поддержка нескольких файловых систем Поддержка синхронных и асинхронных операций ввода-вывода 4.3. Многослойная модель подсистемы ввода-вывода
Операционные системы Файловая система Основные понятия. Цели и задачи файловой системы Архитектура файловой системы Организация файлов и доступ к ним Каталоговые системы Физическая организация файловой системы Литература Л1 с. 178 – 229; Л2 с. 545 – 568; Л4 с. 304 – 363, 477 – 496.
Операционные системы Устройства ввода-вывода Типы устройств по функциональному назначению; 1. Работающие с пользователем. Используются для связи с пользователем компьютера (принтеры, дисплеи, клавиатура, манипуляторы (мышь, джойстик и т. п.). 2. Работающие с компьютером. Используются для связи с электронным оборудованием (диски, магнитные ленты, датчики, контроллеры, преобразователи и т. п.). 3. Коммуникации. Используются для связи с удаленными устройствами (модемы, адаптеры цифровых линий и др.). Типы устройств по принципам функционирования: 1.Блочные, хранящие информацию в виде адресуемых блоков фиксированного размера и позволяющие работать с каждым блоком независимо от других блоков ( дисковые устройства). 2.Символьные, принимающие или предоставляющие поток символов без какой-либо структуры (принтеры, модемы, сетевые карты).
Операционные системы12 Различия в характеристиках устройств ввода-вывода Скорость передачи данных (на несколько порядков). Применение. Один и тот же тип устройства может требовать различного ПО и стратегии операционной системы (диск для хранения файлов приложений и файла подкачки, терминал пользователя и администратора). Сложность управления (для принтера относительно простой интерфейс управления, для диска – намного сложнее). Единицы передачи данных. Данные могут передаваться блоками или потоком байтов или символов. Представление данных. Различные устройства используют разные схемы кодирования данных, включая различную кодировку символов и контроль четности. Условия ошибок. Природа ошибок, способ сообщения о них, возможные ответы резко отличаются от одного устройства к другому.
Операционные системы Gigabit Ethernet Графический монитор Жесткий диск Ethernet Оптический диск Сканер Лазерный принтер Гибкий диск Модем Мышь Клавиатура Бит в секунду
Операционные системы Основные функции подсистемы ввода-вывода 1.Организация параллельной работы устройств ввода- вывода и процессора. 2. Согласование скоростей обмена и кэширование данных. 3. Разделение устройств и данных между процессами. 4. Обеспечение удобного логического интерфейса между устройствами и остальной частью системы. 5. Поддержка широкого спектра драйверов с возможностью простого включения в систему нового драйвера. 6. Динамическая загрузка и выгрузка драйверов. 7. Поддержка нескольких файловых систем. 8. Поддержка синхронных и асинхронных операций ввода- вывода. Основные компоненты: драйверы, файловая система, система прерываний
Операционные системы Организация параллельной работы устройств ввода-вывода и процессора Эволюция ввода – вывода 1. Процессор непосредственно управляет периферийным устройством. 2. Устройство управляется контроллером. Процессор использует программируемый ввод - вывод без прерываний (переход к абстракции интерфейса ввода - вывода). 3. Использование контроллера прерываний. Ввод-вывод, управляемый прерываниями. 4. Использование модуля (канала) прямого доступа к памяти. Перемещение данных в память (из нее) без использования процессора. 5. Использование отдельного специализированного процессора ввода- вывода, управляемого центральным процессором. 6. Использование отдельного компьютера для управления устройствами ввода-вывода при минимальном вмешательстве центрального процессора.
Операционные системы16 Системный вызов для выполнения операции ввода-вывода Запрос состояния контроллера ввода-вывода Проверка состояния Не готов Готов Ошибка Получить слово от контроллера ввода-вывода Записать слово в память Все выполнено ? Вызов драйвера Текущая команда программы НетДа Следующая команда 1.Программируемый ввод-вывод без прерываний Процессор посылает необходимые команды контроллеру ввода-вывода и переводит процесс в состояние ожидания завершения операции ввода-вывода.
Операционные системы17 Системный вызов для выполнения операции ввода-вывода Запрос состояния контроллера ввода-вывода Проверка состояния Не готов Готов Ошибка Получить слово от контроллера ввода-вывода Записать слово в память Все выполнено ? Вызов драйвера. Передача команды контроллеру. Текущая команда программы НетДа Следующая команда 2. Ввод-вывод, управляемый прерываниями. Процессор посылает необходимые команды контроллеру ввода- вывода и продолжает выполнять процесс, если нет необходимости в ожидании выполнения операции. В противном случае процесс приостанавливается до получения прерывания, а процессор переключается на выполнение другого процесса. Выполнение других действий ПРЕРЫВАНИЕ
Операционные системы18 Жесткий диск Контроллер диска Регистры контроллера Контроллер прерываний Центральный процессор 1 Драйвер программирует контроллер и переходит в состояние ожидания 2 Контроллер запускает устройство 3 Контроллер завершил операцию 3 4 Возбуждение сигнала прерывания 5 5 Обработка прерывания, перемещение данных в область программы, передача управления программе