- •Конспект лекций по курсу: «Операционные системы. Ч.1»
- •Введение
- •Аппаратные средства.
- •Центральный процессор.
- •Разрядность шины памяти.
- •Архитектура процессора.
- •Процессорное ядро.
- •Декодер.
- •Регистры процессора.
- •Многопроцессорные и многоядерные системы.
- •Многоядерные системы.
- •Оперативная память.
- •Адресация оп.
- •Ввод-вывод.
- •Прерывания.
- •Внешние устройства.
- •Классификация ос.
- •Основные понятия ос.
- •Структура ос.
- •Программная структура ос.
- •Программная структура ядра.
- •Интерфейсы системы вызовов.
- •Понятие мобильной ос.
- •Микроядерная архитектура.
- •Основные компоненты ос
- •Процессы и потоки.
- •Потоки.
- •Взаимодействие процессов, потоков.
- •Управление памятью.
- •Организация виртуальной памяти в ос.
- •Организация виртуальной памяти.
- •Сегментно-страничное распределение.
- •Преобразование адресов.
- •Буферы быстрого преобразования адреса.
- •Инвертированные таблицы страниц.
- •Алгоритмы замещения страниц.
- •Распределение виртуального адресного пространства.
- •Очистка страниц.
- •Перезапуск прерванной команды процессора.
- •Хранение страничной памяти на диске.
- •Реализация виртуальной памяти ос multics.
- •Виртуальная память в ос с аппаратной платформой Intel Pentium.
- •Защита памяти.
- •Ввод-вывод.
- •Контроллеры устройств.
- •Обмен данными с реальной оп.
- •Принципы программной реализации управления вводом-выводом.
- •Программная организация ввода-вывода.
- •Уровни реализации ввода-вывода.
- •Обработчики прерываний
- •Драйверы устройств.
- •Управление внешними устройствами.
- •Службы времени.
- •Алфавитно-цифровые терминалы.
- •Программное обеспечение ввода.
- •Программное обеспечение вывода.
- •Датчики.
- •Управление электропотреблением.
- •Файловые системы.
- •Логическая и физическая организация файлов.
- •Файловая система msdos.
- •Организация нескольких логических разделов.
- •Надежность файловой системы.
- •Производительность фс.
- •Файловая система cdr.
- •Формат записи каталога.
- •Сжатие видеоинформации.
- •Стандарт mpeg (Motion Picture Expert Group).
- •Структура реальной оп.
- •Структура виртуальной оп виртуальной машины.
- •Организация вычислительного процесса.
- •Планирование и диспетчирование.
- •Обработка прерываний.
- •Управление памятью.
- •Управление внешней памятью.
- •Планирование и диспетчирование.
- •Управление вводом-выводом.
- •Средства программирования и инструментальные средства.
- •Сетевые возможности операционных систем.
- •Понятие dce.
- •Подходы к обеспечению безопасности информации в ос.
Программная организация ввода-вывода.
Механизм реализации рассмотрим на примере: организация печати строки на принтере. Этапы:
1. Сбор строки для печати в буфере пользовательского процесса.
2. Обращение к ОС выделить принтер для печати, если принтер занят, то по ходу завершения ОС принимает решение: что делать дальше. Возможно, процессу возвращается код ошибки, либо процесс блокируется до освобождения принтера. Если принтер свободен, данные из буфера пользовательского процесса копируются в буфер ОС (как правило, ядра). Из области ядра данные пересылаются в область реальной ОП, отведенной буферу для принтера. Принтер активизируется для печати.
3. Напечатав первый символ строки, ОС проверяет, готов ли принтер для печати следующего символа, пересылается новый символ, активизируется принтер. Печать.
Недостаток: центральный процессор занят всё время печати. Для устранения этого недостатка, строка(группа строк) для печати может пересылаться в память принтера, где печать осуществляется построчно, с предостовлением информации ЦП о выполненных действиях. После распечатки всей памяти осуществляется запрос на следующий блок. Возможно, в последовательности печатаемых символов появляются управляющие символы. На момент печати сроки принтер отключается от ЦП, сообщая об этом ОС и ОС планирует предоставление ЦП другому процессу.
Уровни реализации ввода-вывода.
Как правило, в систему реализации ввода-вывода входят 4 уровня:
1 - само внешнее устройство(аппаратура)
2 - обработчики прерываний
3 - драйверы устройств
4 - диспетчеры ввода-вывода ОС
Обработчики прерываний
При обработки прерывания, как правило, выполняются следующие действия:
- сохранение доступных регистров, содержимого стека... текущего процесса
- определение адреса программы-обработчика прерываний и настройка соответствующих управляющих таблиц
- разрешение прерывания – передача управления обработчику прерывания данного типа
- если внештатной или сбойной ситуации нет, продолжить текущий процесс(может и не тот, что ждет прерывание)
Драйверы устройств.
Как правило, для управления внешними устройствами ОС содержит компоненты, которые в различных ОС называются по-разному(метод доступа, драйверы устройств и тп). Структура драйвера и механизм управления внешними устройствами могут варьироваться в зависимости от ОС. Структура типового драйвера рассмотрим на примере драйвера для ОС MS-DOS.
Пример:
В данной ОС для доступа к устройству указывается имя файла или номер устройства, к которому происходит обращение. Для обращения к данным(файлу) в первую очередь выполняется так называемая процедура открытия OPEN, которая создает блок управления файлом FCB(file control block). FCB содержит информацию о механизме доступа к устройству. После этого можно использовать принятые в ОС механизмы по обслуживанию операций ввода-вывода. Запрошенное обслуживание, преобразвованное в определенную последовательность команда передается в контроллер. Каждое устройство имеет набор программок для выполнения каждого запроса. В целом, набор этих программ образует драйвер устройства. DOS преобразует запрос на обслуживание в последоватьелность команд драйвера и передает их нужному драйверу. Драйверы находятся в области реальной ОП, отведенной для DOS. Драйверы различных устройств хранятся в ОП и образуют цепочку. Для поиска нужного драйвера. Для поиска нужного драйвера имеется указатель на цепочку. В ОП драйверы загружаются на этапе NIP.
Структура драйвера:
Драйвер устройства для MS-DOS состоит из 5 частей:
- заголовок устройства – содержит информацию о самом драйвере, не содержит код. В нем находится информация о типе устройства и ссылка на адрес следующего драйвера.
- область локальных данных и локальных процедур – содержит необходимые для работы драйвера буферы и процедуры;
- процедура-стратегия – объединяется с процедурой-прерыванием при обработке каждого запроса на обслуживание устройства;
- процедура-прерывание – объединяется с процедурой-стратегией при обработке каждого запроса на обслуживание устройства;
- обработка команд – непосредственно набор команд для выполнения запроса.
взаимодействие MS-DOS с драйвером – при вызове DOS-драйвера ему в качестве параметра передается так называемый заголовок запроса(некоторая структура данных).
Формат запроса:
1 - длина в байтах данного заголовка запроса
2 - номер устройства(когда драйвер управляет несколькими устройствами)
3 - код команды ввода-вывода
4 - информация об окончании операции
5 - резерв
6 - данные(параметры) команды
DOS автоматически создает заголовок запроса, когда пользовательский процесс осуществляет озапрос на ввод-вывод. Заголовок запроса находится в реальной ОП в области DOS. Адрес заголовка сообщается драйверу, когда ему переддается управление, через один из регистров. Драйвер запоминате адрес заголовка запроса в области локальных данных и локальных процедур. Для обработки запроса ввода-вывода DOS вызывает драйвер дважды: в первый раз управление передается части драйвера – стратегия, во второй раз – прерывание. Процедура-стратегия – набор инструкций, которые производят настойку драйвера в зависимости от кода команды и параметров. Процедура-прерывание использует результаты процедуры-стратегии для обработки команды ввода-вывода. Двукратный выхов необходим для возможной организации мультидоступа нескольких процессов к устройству. В этом случае организуется связанный список(цепочка) всех запросов драйвера(всех вызовов процедуры "стратегия"), а все вызовы для выполнения фактической работы помещаются в другую цепочку – в цепочку "прерывания". При организации запроса учитывается приоритет: ОС – высокий, пользовательская программа – низкий. Цепочка "стратегия" и цепочка "прерывания" могут не совпадать. Процедура прерывания обрабатывает заголовок запроса и передает управление обработке команды. Выполнение операции ввода-вывода происходит следующим образом(на примере записи):
1. Процесс выдает запрос на обслуживание по записи.
2. DOS преобразует запрос записи в физический адрес накопителя.
3. DOS определяет нужный драйвер диска и вызывает драйвер.
4. Драйвер обращается к рограммам обслуживания диска BIOS для выполнения записи.
5. Стандартная программа BIOS производит запись на диск.
6. Возврат в DOS.
7. Возврат в процесс.
Организация ввода-вывода в Windows2000: одной из целей при создании Windows2000 была переносимость на различные аппаратные платформы. Решить эту задачу трудно, тк на различный платформах управление регистрами, DMA и прерываниями осуществляется по-разному(то есть, различия не только в системе команд процессора). Перекомпилировать ядро и компонетны, взаимодействующие с аппаратурой проблематично из-за различий во многих мелких деталях. Для того, чтобы скрыть эти различия, на нижнему уровне была разработана специальная подсистема – HAL. Идея – предоставлять всей остальной части ОС абстрактные виртуальные устройства, эти устройства представляются в виде машинно-независимых служб(процедурных вызовов и макросов), которые могут использоваться основной частью ОС и драйверами. Т.к. драйверы и ядро ОС пользуются службами HAL(идентичными для всех программно-аппаратных платформ, на которые планировалось установить Windows2000) и не обращаются к устройствам напрямую, требуется значительно меньше изменений для их переноса с платформы на платформу. Перенести сам HAL менее проблемматично, так как весь машинно-зависимый код сосредоточен в одном месте(новая платформа – новый HAL).
Как правило, уровень HAL включает следующие основные опции:
- адресацию устройств
- управление регистрами
- обработка/возврат из прерываний
- операци с DMA
- управление устройствами службы времени
- интерфейс с BIOS
- ...
Упрощенно место HAL в структуре Windows2000 можно изобразить следующим образом:
Переносимость адресации устройств осуществляется за счет отображения физических адресов на логические адреса. Структура логического адреса сходна по формату с используемыми в Windows2000 дискрипторами системных ресурсов. Переносимость прерываний обеспечивается двумя службами HAL:
- уникальным наименованием прерываний в каждой конкретной платформе
- связыванием прерываний с драйверами устройств.
Переносимость механизма DMA обеспечивается службой, которая позволяет управлять как единой для всех механизмом DMA, так и специфическими для разных платформ.
Уровень HAL обеспечевает синхронизацию при SMP и настройку своих служб в зависимости от конфигурации BIOSа.
Во время установки Windows2000 в зависимости от платформы выбирается наиболее подходящих тип HAL. В данной ОС драйверы устройств могут выполнять специфические ф-ии, не связанные конкретно с внешним устройством, например, кодировки информации или быстрого доступа к некотормы структурам данных ядра. Выполнение запросов на ввод-вывод выполняется с помощью API. Запросы на ввод-вывод передаются драйверам в виде стандартных пакетов, которые назвыются IRP. При создании драйвера для Windows2000 он должен удовлетворять следующим требованиям: должен поддерживать работу с объектами в формате, принятом в Windows2000, должен поддреживать устройства Plug&Play, должен поддреживать режим энергосбережения для внешних устройств, должен быть настраиваемым, то есть не иметь встроенной поддержки определеннных аппаратных опций, должен поддерживать функционирование в многопроцессорной системе.
