- •Основные понятия операционной системы. Процессы. Взаимоблокировка Управление памятью. Ввод-вывод. Файлы. Безопасность
- •Проективные человеко-машинные системы. Проект как прообраз системы. Место пользователя в системе. Принципы построения.
- •Операционная система. Подходы к определению понятия «Операционная система». Архитектурные особенности операционных систем.
- •Слоеные системы
- •Виртуальные машины
- •Микроядерная архитектура.
- •Смешанные системы
- •Операционная система. Архитектурные особенности операционных систем. Классификация операционных систем.
- •Архитектурные особенности ос.
- •Процессы. Модель процесса. Создание процесса. Завершение процесса. Иерархия процессов. Состояния процессов
- •Планирование процессов. Уровни планирования. Критерии планирования и требования к алгоритмам. Параметры планирования. Вытесняющее и не вытесняющее планирование.
- •Вытесняющее и невытесняющее планирование.
- •Использование потоков. Необходимость использования потоков. Примеры использования потоков. Текстовый редактор. Web-server. Обработка массивов данных. Модели создания сервера.
- •Примеры использования потоков.
- •Управление памятью. Основное управление памятью. Однозадачная система без подкачки на диск. Многозадачность с фиксированными разделами.
- •Управление памятью. Настройка адресов и защита. Подкачка. Управление памятью с помощью битовых массивов. Управление памятью с помощью связных списков.
- •Управление памятью. Алгоритмы предоставления памяти. Первый подходящий. Следующий подходящий. Самый подходящий. Самый неподходящий. Улучшение алгоритмов.
- •Виртуальная память. Оверлеи. Виртуальная память. Страничная организация памяти.
- •Виртуальная память
- •Страничная организация памяти
- •Ввод-вывод в операционной системе. Принципы аппаратуры ввода-вывода. Устройства ввода-вывода. Контроллеры устройств.
- •Принципы аппаратуры ввода-вывода
- •Устройства ввода-вывода
- •Контроллеры устройств
- •Преимущество отображаемого на адресное пространство ввода/вывода
- •Недостатки отображаемого на адресное пространство ввода/вывода
- •Способы устранения недостатков
- •Ввод-вывод в операционной системе. Принципы аппаратного ввода-вывода. Программный ввод-вывод, ввод-вывод с прерываниями, ввод-вывод с использованием dma. Виды dma. Достоинства и недостатки dma.
- •Ввод-вывод в операционной системе. Задачи программного обеспечения ввода-вывода. Программные уровни ввода-вывода. Задачи программного обеспечения ввода-вывода
- •Ввод-вывод в операционной системе. Обработчики прерываний. Драйверы устройств. Обработчики прерываний
- •Драйверы устройств
- •Единообразный интерфейс для драйверов устройств
- •Ввод-вывод в операционной системе. Буферизация. Сообщения об ошибках. Захват и освобождение выделенных устройств. Независимый от устройств размер блока. Буферизация
- •Сообщения об ошибках
- •Захват и освобождение выделенных устройств
- •Независимый от устройств размер блока
- •Безопасность. Понятие «Безопасность». Угрозы безопасности. Злоумышленники. Случайная потеря данных.
- •Злоумышленники
- •Случайная потеря данных
- •Безопасность. Основы криптографии. Шифрование с секретным ключом. Необратимые функции. Цифровые подписи. Основы криптографии
- •Шифрование с секретным ключом
- •Вопрос 1: Сколько будет 314159265358979 х 314159265358979?
- •Вопрос 2: Чему равен квадратный корень из 3912571506419387090594828508241?
- •Необратимые функции
- •Цифровые подписи
- •Безопасность. Аутентификация пользователей. Аутентификация с использованием паролей. Защита паролей. Одноразовые пароли. Схема «оклик-отзыв». Аутентификация пользователей
- •Аутентификация с использованием паролей
- •Как взломщикам удается проникнуть в систему
- •Защита паролей в системе unix
- •Совершенствование безопасности паролей
- •Одноразовые пароли
- •Безопасность. Аутентификация с использованием физического объекта.
- •Безопасность. Аутентификация с использованием биометрических данных. Аутентификация с использованием биометрических данных
Преимущество отображаемого на адресное пространство ввода/вывода
Обе схемы обращения к контроллерам имеют свои сильные и слабые стороны. Начнем с достоинств отображаемого на адресное пространство памяти ввода-вывода. Во-первых, при такой схеме для обращения к устройствам ввода-вывода не требуются специальные команды процессора, такие как IN и OUT. В результате программу, общающуюся с таким устройством, можно написать целиком на языке С или C++.
Во-вторых, при отображении регистров ввода-вывода на память не требуется специального механизма защиты от пользовательских процессов, пытающихся обращаться к внешним устройствам. Все, что нужно сделать операционной системе, — это исключить ту часть адресного пространства, на которую отображаются управляющие регистры устройств ввода-вывода из адресного пространства пользователей.
В-третьих, при отображении регистров ввода-вывода на память каждая команда процессора, обращающаяся к памяти, может с тем же успехом обращаться к управляющим регистрам устройства.
Недостатки отображаемого на адресное пространство ввода/вывода
Отображение регистров ввода-вывода на память также обладает недостатками. Во-первых, в большинстве современных компьютеров применяется кэширование памяти. Кэширование управляющих регистров привело бы просто к катастрофе. Поясним это утверждение на уже приведенном выше примере программы, опрашивающей в цикле порт PORT_4. При первом обращении к этому порту считалось бы верное значение порта, но это значение сохранилось бы в кэше. Все последующие обращения к порту PORT_4 на следующих итерациях цикла просто читали бы значение, сохраненное в кэше, и никогда не обращались бы к реальному устройству. Таким образом, программа никогда не вышла бы из цикла ожидания готовности, так как при кэшировании регистров устройств она просто не смогла бы узнать об изменении управляющего регистра.
Во-вторых, при едином адресном пространстве все модули памяти и все устройства ввода-вывода должны изучать все обращения процессора к памяти, чтобы определить, на которые им следует реагировать. Если у компьютера одна общая шина, реализовать подобный просмотр всех обращений к памяти всеми устройствами несложно.
Способы устранения недостатков
Сложность применения выделенной шины памяти на машинах с отображением регистров ввода-вывода на память состоит в том, что у устройств ввода-вывода нет способа увидеть адреса памяти, выставляемые процессором на эту шину, следовательно, они не могут реагировать на такие адреса. Поэтому, чтобы отображение регистров ввода-вывода могло работать на системах с несколькими шинами, необходимы специальные меры. Один способ решения этой проблемы состоит в том, что сначала все обращения к памяти посылаются процессором по выделенной быстрой шине напрямую памяти (чтобы не снижать производительности). Если память не может ответить на эти запросы, процессор пытается сделать это еще раз по другим шинам. Такое решение работоспособно, но требует дополнительного увеличения сложности аппаратуры.
Второе возможное решение заключается в установке на шину памяти специального следящего устройства, передающего все адреса потенциально заинтересованным устройствам ввода-вывода. Проблема, однако, в том, что устройства ввода-вывода могут просто не успеть обработать эти запросы с той же скоростью, что и память.
Третье решение состоит в фильтрации адресов микросхемой моста PCI. Эта микросхема содержит регистры диапазона, заполняемые во время загрузки компьютера. Например, диапазон адресов от 640 К до 1 М может быть помечен как не относящийся к памяти. Все адреса, попадающие в подобный диапазон, передаются не памяти, а на шину PCI. Недостаток этой схемы состоит в необходимости принятия во время загрузки решения о том, какие адреса не являются адресами памяти. Таким образом, у каждой схемы есть свои достоинства и недостатки.