- •Краткая история эволюции вычислительных систем.
- •Третий период (начало 60-х – 1980 г.). Компьютеры на основе интегральных микросхем. Первые многозадачные ос
- •Четвертый период (с 1980 г. По настоящее время). Персональные компьютеры. Классические, сетевые и распределенные системы
- •Основные понятия, концепции операционных систем.
- •Архитектурные особенности ос. Монолитное ядро. Многоуровневые системы. Виртуальные машины. Микроядерная архитектура. Смешанные системы.
- •1.4.1 Монолитное ядро
- •1.4.2 Слоеные системы (Layered systems)
- •1.4.3 Виртуальные машины
- •1.4.4 Микроядерная архитектура.
- •1.4.5 Смешанные системы
- •Классификация ос. Критерии классификации.
- •Процессы. Понятие процесса. Состояние процесса.
- •2.1. Понятие процесса
- •2.2. Состояния процесса
- •Операции над процессами. Набор операций. Process Control Block и контекст процесса.
- •Одноразовые и многоразовые операции. Переключение контекста.
- •2.3.3. Одноразовые операции
- •2.3.4. Многоразовые операции
- •2.3.5. Переключение контекста
- •Планирование процессов. Уровни планирования. Критерии планирования и требования к алгоритмам.
- •3.1. Уровни планирования
- •3.2. Критерии планирования и требования к алгоритмам
- •Планирование процессов. Параметры планирования. Вытесняющее и невытесняющее планирование.
- •3.3. Параметры планирования
- •3.4. Вытесняющее и невытесняющее планирование
- •Алгоритмы планирования процессов. First-Come, First-Served (fcfs).
- •Алгоритмы планирования процессов. Round Robin (rr).
- •Алгоритмы планирования процессов. Shortest-Job-First (sjf).
- •Гарантированное планирование процессов. Приоритетное планирование.
- •3.5.5. Приоритетное планирование
- •Многоуровневые очереди (Multilevel Queue), многоуровневые очереди с обратной связью (Multilevel Feedback Queue).
- •3.5.7. Многоуровневые очереди с обратной связью (Multilevel Feedback Queue)
- •Кооперация процессов. Взаимодействующие процессы. Категории средств обмена информацией.
- •4.1. Взаимодействующие процессы
- •4.2. Категории средств обмена информацией
- •Логическая организация механизма передачи информации. Информационная валентность процессов и средств связи.
- •Особенности передачи информации с помощью линий связи. Буферизация. Нити исполнения.
- •4.3.3.1 Буферизация
- •Механизмы синхронизации процессов. Семафоры. Концепция семафоров. Мониторы. Сообщения.
- •6.1. Семафоры
- •6.1.1. Концепция семафоров
- •6.3. Сообщения
- •Тупики. Условия возникновения. Обнаружение тупиков. Основные направления борьбы с тупиками.
- •7.2 Концепция ресурса
- •7.3 Условия возникновения тупиков
- •7.4 Основные направления борьбы с тупиками.
- •Физическая организация памяти компьютеров.
- •21.Логическая память. Связывание адресов.
- •Схемы управления памятью. Схема с фиксированными разделами.
- •Схемы управления памятью. Оверлейная структура.
- •24.Схемы управления памятью. Динамическое распределение. Свопинг. Схема с переменными разделами.
- •8.3.3 Мультипрограммирование с переменными разделами.
- •Страничная память. Сегментная и сегментно-страничная организация памяти.
- •9.2.1 Страничная память
- •Архитектурные средства поддержки виртуальной памяти. Страничная виртуальная память.
- •9.2.1 Страничная память
- •Архитектурные средства поддержки виртуальной памяти. Сегментно-страничная организация виртуальной памяти. Структура таблицы страниц.
- •9.2.3 Таблица страниц
- •Ассоциативная память. Размер страниц. Инвертированная таблица страниц.
- •Аппаратно-независимый уровень управления виртуальной памятью. Алгоритмы замещения страниц. Алгоритм fifo. Выталкивание первой пришедшей страницы. Аномалия Билэди.
- •10.3.1 Fifo алгоритм. Выталкивание первой пришедшей страницы.
- •10.3.2 Оптимальный алгоритм
- •Аппаратно-независимый уровень управления виртуальной памятью. Управление количеством страниц, выделенным процессу. Модель рабочего множества. Трешинг.
- •Файловая система. Имена файлов. Типы файлов. Атрибуты файлов. Организация файлов и доступ к ним. Операции над файлами.
- •11.2 Имена файлов
- •11.4 Типы и атрибуты файлов
- •11.5 Доступ к файлам
- •Директории. Логическая структура файлового архива. Операции над директориями. Реализация файловой системы. Структура файловой системы. Защита файлов
- •11.8 Операции над директориями
- •Управление внешней памятью. Методы выделения дискового пространства. Управление свободным и занятым дисковым пространством. Размер блока.
- •12.3.2 Управление свободным и занятым дисковым пространством.
- •12.3.3 Размер блока
- •Система управления вводом – выводом. Физические принципы организации ввода – вывода. Структура контроллера устройств. Прямой доступ к памяти (Direct Memory Access – dma).
- •13.1 Физические принципы организации ввода-вывода.
- •Структура контроллера устройства.
- •Прямой доступ к памяти (Direct Memory Access – dma).
- •Логические принципы организации ввода – вывода. Структура системы ввода – вывода. Буферизация и кэширование.
- •13.2.1. Структура системы ввода-вывода.
- •Буферизация и кэширование.
- •Сети и сетевые операционные системы. Сетевые и распределенные операционные системы. Понятие протокола. Структура сетевой операционной системы
- •Адресация в сети. Одноуровневые адреса. Двухуровневые адреса. Удаленная адресация и разрешение адресов. Локальная адресация. Понятие порта. Полные адреса
- •Безопасность операционных систем. Угрозы безопасности. Криптография – базовая технология безопасности операционных систем.
- •15.2 Классификация угроз
- •15.3 Формализация подхода к обеспечению информационной безопасности. Классы безопасности
- •15.4 Политика безопасности
- •15.5 Криптография, как одна из базовых технологий безопасности ос.
- •Защитные механизмы операционных систем. Идентификация и аутентификация. Пароли, уязвимость паролей. Авторизация. Разграничение доступа.
- •16.1 Идентификация и аутентификация
- •16.1.1 Пароли, уязвимость паролей
11.5 Доступ к файлам
Д ля использования информации, хранимой в файлах, она должна быть считана в память компьютера. Есть несколько способов доступа к файлам. Ранние ОС давали только один способ доступа – последовательный (модель ленты). Записи считывались в порядке поступления. Текущая позиция считывания могла быть возвращена к началу файла (rewind). Вместе с магнитными барабанами и дисками появились файлы с прямым (random) доступом. Для специфицирования места, с которого надо начинать чтение используются два способа: с начала, или с текущей позиции, которую дает операция seek. Последовательный доступ базируется на модели ленты и работает как на устройствах последовательного доступа, так и прямого. Это наиболее общая модель. Организация прямого доступа существенна для многих приложений, например, для систем управления базами данных. Не все системы поддерживают оба (последовательный и прямой) метода доступа. Последовательный доступ легко эмулировать при помощи прямого, однако реализация прямого доступа через последовательный была бы очень неэффективной. Помимо прямого и последовательного существуют и другие методы доступа. Обычно они включают конструирование индекса файла и базируются на прямом методе доступа. Для поиска записи вначале происходит обращение к индексу, где находится указатель на нужную запись. Предположим, что имеется большой файл, содержащий разнообразные сведения о студентах, состоящих из записей с несколькими полями, и возникает задача организации быстрого поиска по одному из полей, например по фамилии студента.
Рис. 11.2 Пример организации индекса для последовательного файла
Рис. иллюстрирует решение данной проблемы – организацию индексно-последовательного метода доступа к фалу. Способ выделения дискового пространства при помощи индексных узлов, применяемый в ряде ОС (Unix и ряде других, см. следующую главу) может служить другим примером организации индекса. В этом случае ОС использует древовидную организацию блоков, при которой блоки, составляющие файл, являются листьями дерева, а каждый внутренний узел содержит указатели на множество блоков файла. Для больших файлов индекс может быть слишком большим. В этом случае создают индекс для индексного файла (блоки промежуточного уровня или блоки косвенной адресации).
Операции над файлами.
Операционная система должна предоставить в распоряжение пользователя набор операций для работы с файлами, реализованных через системные вызовы. Чаще всего при работе с файлом пользователь выполняет не одну, а несколько операций. Во-первых, нужно найти данные ф айла и его атрибуты по его символьному имени, во-вторых, считать необходимые атрибуты файла в отведенную область оперативной памяти и проанализировать права пользователя на выполнение требуемой операции. Затем выполнить операцию, после чего освободить занимаемую данными файла область памяти. Рассмотрим в качестве примера основные файловые операции ОС Unix:
Create. Создание файла, не содержащего данных. Смысл данного вызова - объявить, что файл существует и присвоить ему ряд атрибутов.
Delete. Удаление файла и освобождение занятого им дискового пространства.
Open. Перед использованием файла процесс должен его открыть. Цель данного системного вызова разрешить системе проанализировать атрибуты файла и проверить права доступа к файлу, а также считать в оперативную память список адресов блоков файла для быстрого доступа к его данным.
Close. Если работа с файлом завершена, его атрибуты и адреса блоков на диске больше не нужны. В этом случае файл нужно закрыть, чтобы освободить место во внутренних таблицах файловой системы.
Seek. Дает возможность специфицировать место внутри файла, откуда будет производиться считывание (или запись) данных, то есть задать текущую позицию.
Read. Чтение данных из файла. Обычно это происходит с текущей позиции. Пользователь должен задать объем считываемых данных и предоставить буфер для них.
Write. Запись данных в файл с текущей позиции. Если текущая позиция находится в конце файла, его размер увеличивается, в противном случае запись осуществляется на место имеющихся данных, которые, таким образом, теряются.
Get attributes. Предоставляет процессам нужные им сведения об атрибутах файла. В качестве примера можно привести, утилиту make, которая использует информацию о времени последней модификации файлов.
Set attributes. Дает возможность пользователю установить некоторые атрибуты. Наиболее очевидный пример - установка режима доступа к файлу.
Rename. Возможность переименования файла создает дополнительные удобства для пользователя. Данная операция может быть смоделирована копированием данного файла в файл с новым именем и последующим его удалением.
Существует два способа выполнить последовательность действий над файлами [30]: В первом случае для каждой операции выполняются как универсальные, так и уникальные действия (схема stateless). Например, последовательность операций может быть такой: open, read1, close, … open, read2, close, … open, read3, close. Альтернативный способ, это когда универсальные действия выполняются в начале и в конце последовательности операций, а для каждой промежуточной операции выполняются только уникальные действия. В этом случае последовательность вышеприведенных операций будет выглядеть так: open, read1, … read2, … read3, close. Большинство ОС использует второй способ, как более экономичный и быстрый. Первый способ более устойчив к сбоям, поскольку результаты каждой операции становятся независимыми от результатов предыдущей операции, поэтому он иногда применяется в распределенных системах (например, Sun NFS).