- •Операционные системы Оглавление
- •Введение. Общие сведения.
- •1.2 История вычислительной системы
- •1.2.1 Первый период 45 – 55 гг.
- •1.2.2 Второй период 55-60 гг.
- •1.2.3 Третий период 60 – 80 гг.
- •1.2.4 Четвертый период с 80-х годов по наст. Время (персональные компьютеры, сетевые и распределенные системы).
- •1.2.5 Итоги развития вс.
- •1.3 Основные понятия и концепции ос
- •1.3.1 Системные вызовы.
- •1.3.2 Программные прерывания.
- •1.3.3 Файл.
- •1.4 Процессы и потоки. Архитектурные особенности ос.
- •1.4.1 Монолитное ядро.
- •1.4.2 Слоеные системы (Layered Systems)
- •1.4.3 Виртуальные машины.
- •1.4.4 Микроядерная архитектура.
- •1.4.5 Смешанные системы.
- •1.5 Классификация ос
- •2. Процессы и их поддержка в ос.
- •2.1 Понятие процесса.
- •2.2 Состояние процесса.
- •2.3 Операции над процессами и связанные с ними понятия
- •2.3.1 Набор операций.
- •2.3.2 Процесс Control Block и контекст процесса.
- •2.3.3 Одноразовые операции.
- •2.3.4 Многоразовые операции над процессами.
- •2.3.5 Переключение контекста.
- •3.Планирование процесса.
- •3.1. Уровни планирования
- •3.2 Критерии планирования и требовании к алгоритмам.
- •3.3 Параметры планирования
- •3.4 Вытесняющие и невытесняющие планирования
- •3.5 Алгоритмы планирования
- •3.5.1FirstComeFirstServed
- •3.5.2 Round Robin
- •3.5.3ShortestJob–First
- •3.5.4 Гарантированное планирование
- •3.5.5 Приоритетное планирование
- •3.5.6 Многоуровневые очереди (multilevelQueue)
- •3.5.7 Многоуровневые очереди
- •4. Кооперация процессов и основные аспекты в её логической реализации.
- •4.1 Взаимодействующие процессы
- •4.2 Категории средств обмена информацией
- •4.3 Логическая организация механизма передачи информации
- •4.3.1 Установление связи
- •4.3.2 Информационная валентность процессов и средств связи.
- •4.3.3 Особенности передачи информации с помощью линии связи.
- •4.3.4 Надежность средств связи
- •4.3.5 Как завершается связь?
- •4.4 Потоки исполнения
- •5. Алгоритмы синхронизации
- •5.1 Interleaving race condition
- •5.2 Критическая секция
- •5.3 Программные алгоритмы организации взаимодействия процессов
- •5.3.1 Требования, предъявляемые к алгоритму.
- •5.3.2 Запрет прерываний
- •7.8.2 Недостатки алгоритма банкира
- •8.2 Логическая память
- •8.3 Связывание адресов
- •8.4 Функции системы управления памятью
- •8.6 Страничная память
- •8.7 Сегментная и сегментно-страничная организация памяти
- •9. Виртуальная память
- •9.1 Понятие виртуальной памяти
- •9.2 Архитектурные средства поддержки виртуальной памяти
2.3.2 Процесс Control Block и контекст процесса.
Каждый процесс представлен в ОС некой структурой данных. В этой структуре хранится информация, характеризующая процесс:
Состояние, в котором находится процесс;
Программный счетчик процесса (адрес команды, которая д/б выполнена следующей);
Содержимое регистров процесса;
Данные, необходимые для планирования использования процессора и управления памятью (приоритет процессов, размер и расположение адресного пространства);
Учетные данные (идентификационные номера; имя пользователя, котороый инициировал работу; общее время использования процессора текущим процессом)
Информация о переферийных устройствах, связанные с процессом;
Таблица открытых файлов.
Для любого процесса, находящегося в ВС, вся информация хранится в PCB и доступна ОС. Любая операция, которая производится над процессом, отражается в PCB. Информацию, хранящуюся в PCB удобно разделять на две части:
Содержимое регистров процессора (содержание счетчика команд) – регистровый контекст;
Системный контекст;
Иногда: пользовательский контекст– совокупность данных, находящихся в адресном пространстве.
Совокупность всех видов контекста называют контекст процессора.
2.3.3 Одноразовые операции.
Процесс появляется в системе через его рождение. Активное участие в рождении процесса принимает ОС. В самых простых ОС все процессы рождаются в момент запуска ОС. Более сложные ОС создают процесс во время работы ВС, т.е. создают динамический процесс. Инициатором рождения процесса может быть:
Процесс пользователя, который совершил специальный/системный вызов
Сама ОС;
Процесс, который породил другой процесс, называется родительским процессом (parent process). В результате получается генеалогическое дерево процессов. Для своей работы порожденный процесс требует выделения ресурсов: памяти, файлов, переферийных устройств. Ресурсы выделяются по разному. В первом случае часть ресурсов родителя передается потомку, во втором случае выделяются ресурсы из запасов ОС. После наделения порожденного процесса ресурсами в его адресное пространство записывается программный код, значение данных и устанавливается программный счетчик. В итоге:
Порожденный процесс становится дубликатом процесса-родителя
Процесс-ребенок загружается из файла
Когда процесс завершает работу ОС переводит его в состояние завершения => освобождает ресурсы.
2.3.4 Многоразовые операции над процессами.
Одноразовые операции всегда связаны с изменением количества процессов в системе (рождение и завершение процессов, освобождение ресурсов).
Запуск процесса.
На запуск выбирается процесс, стоящий в очереди готовых процессов. После того как процесс будет запущен его состояние будет изменено и он перейдет из состояния готовности в состояние исполнения => изменение PCB.
Приостановка процесса.
Работа процесса, находящегося в исполнении приостанавливается, как результат некоторого прерывания при этом сохраняется счетчик команд. Обязательно происходит обработка прерывания. Она производится специальной программой, находящейся по соответствующему адресу. ОС сохраняет динамическую часть системного и регистрового контекста процесса, переводит процесс в состояние готовности и преступает к обработке прерываний.
Блокировка/разблокировка процесса.
Процесс блокируется, если он не может продолжить работу по каким-либо причинам, например, он должен ожидать появления некоторого события.
Предположим, что в ОС произошло некоторое событие, ОС обязательно сначала должна определить что это за событие, тогда системы проверяет, находится ли какой-нибудь процесс в состоянии ожидания данного события, тогда этот процесс переводится в состояние готовности и ставится в очередь готовых к выполнению процессов.