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