- •Краткая история эволюции вычислительных систем.
- •Третий период (начало 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 Пароли, уязвимость паролей
Одноразовые и многоразовые операции. Переключение контекста.
2.3.3. Одноразовые операции
Сложный жизненный путь процесса в компьютере начинается с его рождения. Любая операционная система, поддерживающая концепцию процессов, должна обладать средствами для их создания. В очень простых системах (например, в системах, спроектированных для работы только одного конкретного приложения) все процессы могут быть порождены на этапе старта системы. Более сложные операционные системы создают процессы динамически, по мере необходимости. Инициатором рождения нового процесса после старта операционной системы может выступить либо процесс пользователя, совершивший специальный системный вызов, либо сама операционная система, то есть, в конечном итоге, тоже некоторый процесс. Процесс, инициировавший создание нового процесса, принято называть процессом-родителем (parent process), а вновь созданный процесс - процессом-ребенком (child process). Процессы-дети могут, в свою очередь, порождать новых детей и т. д., образуя, в общем случае, внутри системы набор генеалогических деревьев процессов - генеалогический лес. Пример генеалогического леса изображен на рисунке 2.4. Следует отметить, что все пользовательские процессы вместе с некоторыми процессами операционной системы принадлежат к одному и тому же дереву леса. В ряде вычислительных систем лес вообще вырождается в одно такое дерево.
Рис 2.4 Упрощенный генеалогический лес процессов. Стрелочка означает отношение родитель-ребенок.
При рождении процесса система заводит новый PCB с состоянием процесса рождение и начинает его заполнение. Новый процесс получает свой собственный уникальный идентификационный номер. Поскольку для хранения идентификационного номера процесса в операционной системе отводится ограниченное количество бит, то для соблюдения уникальности номеров количество одновременно присутствующих в ней процессов должно быть ограничено. После завершения какого-либо процесса его освободившийся идентификационный номер может быть повторно использован для другого процесса.
Обычно для выполнения своих функций процесс-ребенок требует определенных ресурсов: памяти, файлов, устройств ввода-вывода и т. д. Существует два подхода к их выделению. Новый процесс может получить в свое пользование некоторую часть родительских ресурсов, возможно, разделяя с процессом-родителем и другими процессами-детьми права на них, подобно распределению ресурсов в нормальной человеческой семье, или может получить свои ресурсы непосредственно от операционной системы, став, так сказать, на государственное обеспечение в детдоме. Информация о выделенных ресурсах заносится в PCB.
После наделения процесса-ребенка ресурсами необходимо занести в его адресное пространство программный код, значения данных, установить программный счетчик. Здесь также возможны два решения. В первом случае процесс-ребенок становится дубликатом процесса-родителя по регистровому и пользовательскому контекстам, при этом должен существовать способ определения кто для кого из процессов-двойников является родителем. Во втором случае процесс-ребенок загружается новой программой из какого-либо файла.О перационная система UNIX разрешает порождение процесса только первым способом; для запуска новой программы необходимо сначала создать копию процесса-родителя, а затем процесс-ребенок должен заменить свой пользовательский контекст с помощью специального системного вызова. Операционные системы VAX/VMS и WINDOWS NT допускают только второе решение.
Порождение нового процесса как дубликата процесса-родителя приводит к возможности существования программ (т. е. исполняемых файлов), для работы которых организуется более одного процесса. Возможность замены пользовательского контекста процесса по ходу его работы (т. е. загрузки для исполнения новой программы) приводит к тому, что в рамках одного и того же процесса могут быть последовательно выполнены несколько различных программ.
После того как процесс наделен содержанием, в PCB дописывается оставшаяся информация и состояние нового процесса изменяется на готовность. Осталось сказать несколько слов о том, как ведут себя процессы-родители после рождения процессов-детей. Процесс-родитель может продолжать свое выполнение одновременно с выполнением процесса-ребенка, а может ожидать завершения работы некоторых или всех своих детей.
Мы не будем в деталях останавливаться на причинах, которые могут привести к окончанию жизненного цикла процесса. После того, как процесс завершил свою работу, операционная система переводит его в состояние закончил исполнение и освобождает все ассоциированные с ним ресурсы, делая соответствующие записи в блоке управления процессом. При этом сам PCB не уничтожается, а остается в системе еще некоторое время. Это связано с тем, что процесс-родитель после завершения процесса-ребенка может запросить операционную систему о причине произошедшей смерти порожденного им процесса и/или статистическую информацию об его работе. Подобная информация сохраняется в PCB мертвого процесса до запроса процесса-родителя или до конца его деятельности, после чего все следы умершего процесса окончательно исчезают из системы. В операционной системе UNIX процессы, находящиеся в состоянии закончил исполнение, принято называть процессами зомби.
Следует заметить, что в ряде операционных систем (например, в VAX/VMS) гибель процесса-родителя приводит к завершению работы всех его детей. В других операционных системах (например, в UNIX) процессы-дети продолжают свое существование и после окончания работы процесса-родителя. При этом возникает необходимость изменения информации в PCB процессов-детей о породившем их процессе для того, чтобы генеалогический лес процессов оставался целостным. Рассмотрим следующий пример. Пусть процесс с номером 2515 был порожден процессом с номером 2001 и после завершения его работы остается в вычислительной системе неограниченно долго. Тогда, не исключено, что номер 2001 будет использован операционной системой повторно для совсем другого процесса. Если не изменить информацию о процессе-родителе для процесса 2515, то генеалогический лес процессов окажется некорректным — процесс 2515 будет считать своим родителем новый процесс 2001, а процесс 2001 будет открещиваться от нежданного потомка. Как правило, осиротевшие процессы усыновляются одним из системных процессов, который порождается при старте операционной системы, и функционирует все время, пока она работает.