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