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