Лекция 3
Управление процессами и потоками
Одной из основных подсистем современных ОС, поддерживающих мульти программирование, является подсистема управления процессами потоками.
Основным функциям этой подсистемой являются:
1) Создание процессов и потоков
2) Обеспечение процессов и потоков необходимыми ресурсами
3) Изоляция процессов
4) Планирование и выполнение процессов и потоков
5) Диспетчеризация потоков - для реализации того плана, который былпринят
6) Синхронизация процессов и потоков
7) Завершение и уничтожение процессов потоков
События, приводящие к созданию процессов:
1. Инициализация (загрузка) ОС
2. Запрос процесса на создание дочернего процесса. Резидентные программы, которые загрузились туда при включении, называют фоновыми. Процесс, который временно загружается для какого-либо решения задач, называется демоном (через "э")
3. Запрос пользователя на создание процесса
4. Инициирование пакетного задания
5. Создание операционной системой процесса какой-либо службы
Для того чтобы процессы не вмешивались в распределение ресурсов, не могли взаимно повредить коды и данные друг друга, ОС изолирует один процесс от другого, обеспечивая каждый процесс отдельным виртуальным адресным пространством.
При выполнении процесса переход от выполнения одного потока к другому внутри него осуществляется в результате планирования и диспетчеризации.
Планирование - работа по определению того, в какой момент необходимо прервать выполнение текущего потока и какому потоку предоставить возможность выполнения. Планирование потока осуществляется на основе информации, хранящейся в описателях процессов и потоков.
Диспетчеризация - реализация найденного в процессе планирования решения. Включает три этапа:
1. Сохранение контекста текущего потока
2. Загрузка контекста потока, выбранного на выполнение
3. Запуск нового потока на выполнение
Причины завершения процесса:
- обычный выход по окончании решения задачи
- выход по ошибке
- выход по неисправимой программной ошибке
- уничтожение другим процессом
Во всех случаях "зачистит" следы пребывания процесса в системе
Лекция 4
Создание процессов и потоков
Процессы
Под созданием процесса в первую очередь понимают создание его описателя, включающего несколько информационных структур, содержащих все сведения о процессе, необходимые ОС для управления. Создание процессов включает загрузку кода и данных исполняемой программы диска в оперативную память. Для этого необходимо найти эту программу на диске, перераспределить оперативную память и выделить часть ее для нового процесса, создать стеки, обеспечивающие обмен данными, передачу параметров и вызов системных функций.
Множество, в которое входят программа, данные, стеки и атрибуты процессора называют образом процесса.
Любой образ включает в себя:
- переменную часть (изменяемая часть пользовательского адресного пространства (данные программы, пользовательский стек и модифицируемый код))
- пользовательская программа ( программа, которую нужно выполнять)
- системные стеки (один или несколько системных стеков для хранения параметров и адресов вызова процедур системных служб)
- управляющий блок процесса ( данные необходимые ОС для управления процессом 1)дескриптор 2) контекст )
При управлении процессам ОС использует два основных типа информационных структур : 1. Дескриптор - блок управления процессом
2. Контекст процесса
Дескриптор. В дескрипторе процесса содержится информация, которая необходима ядру в течение всего жизненного цикла процесса, независимо от его состояния (активный, пассивный, выгруженный)
Дескрипторы объединяются в таблицу процессов, размещенную на уровне ядра. На основании таблицы процессов ОС планирует, реализует и выполняет синхронизацию процессов.
Дескриптор процесса содержит:
1. Информацию по идентификации процесса
2. Информацию по состоянию процесса:
- состояние процесса, определяющее готовность к выполнению (выполняющийся, готовый к выполнению, ожидающий события, приостановленный, заблокированный)
- данные о приоритете
- идентификация о событиях, позволяющих продолжить выполнение процесса
- указатели, определяющие расположение образа процесса в памяти
- указатели на другие процессы
3. Информация, используемая для управления процессом:
- флаги, сигналы и сообщения, обеспечивающие обмен информацией между двумя независимыми процессами
В программировании флагом может быть допустим любая переменная, флаг - это контрольная точка, состояние которого позволяет определить насколько качественно выполнен тот или иной процесс
Контекст процесса содержит информацию, позволяющую системе приостанавливать и возобновлять выполнение процесса с прерванного места. Обычно контекст содержит:
- содержание регистров
- содержание счетчика команд
- результаты выполнения последних операций
- указатели стеков
Модели процессов:
Простейшая модель строится на двух устойчивых состояниях процесса - выполняется или не выполняется. Предполагается, что все процессы готовы к выполнению и поэтому такая схема работает достаточно эффективно.
Из-за большой разницы в скорости работы центрального процессора устройств ввода-вывода большинство процессов через небольшой интервал времени перейдут в режим ожидания, что потребует усложнения программ диспетчеризации, что позволит... Возможна патовая ситуация, когда все процессы будут находиться в процессе ожидания. Выходом из данной ситуации стало разделение всех процессоров на два типа: готовых к выполнению заблокированных, что в свою очередь привело к формированию двух независимых очередей, обеспечивающих эффективную работу ЦП