Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОССО тема 2.docx
Скачиваний:
4
Добавлен:
17.09.2019
Размер:
26.77 Кб
Скачать

Лекция 3

Управление процессами и потоками

Одной из основных подсистем современных ОС, поддерживающих мульти программирование, является подсистема управления процессами потоками.

Основным функциям этой подсистемой являются:

1) Создание процессов и потоков

2) Обеспечение процессов и потоков необходимыми ресурсами

3) Изоляция процессов

4) Планирование и выполнение процессов и потоков

5) Диспетчеризация потоков - для реализации того плана, который былпринят

6) Синхронизация процессов и потоков

7) Завершение и уничтожение процессов потоков

События, приводящие к созданию процессов:

1. Инициализация (загрузка) ОС

2. Запрос процесса на создание дочернего процесса. Резидентные программы, которые загрузились туда при включении, называют фоновыми. Процесс, который временно загружается для какого-либо решения задач, называется демоном (через "э")

3. Запрос пользователя на создание процесса

4. Инициирование пакетного задания

5. Создание операционной системой процесса какой-либо службы

Для того чтобы процессы не вмешивались в распределение ресурсов, не могли взаимно повредить коды и данные друг друга, ОС изолирует один процесс от другого, обеспечивая каждый процесс отдельным виртуальным адресным пространством.

При выполнении процесса переход от выполнения одного потока к другому внутри него осуществляется в результате планирования и диспетчеризации.

Планирование - работа по определению того, в какой момент необходимо прервать выполнение текущего потока и какому потоку предоставить возможность выполнения. Планирование потока осуществляется на основе информации, хранящейся в описателях процессов и потоков.

Диспетчеризация - реализация найденного в процессе планирования решения. Включает три этапа:

1. Сохранение контекста текущего потока

2. Загрузка контекста потока, выбранного на выполнение

3. Запуск нового потока на выполнение

Причины завершения процесса:

- обычный выход по окончании решения задачи

- выход по ошибке

- выход по неисправимой программной ошибке

- уничтожение другим процессом

Во всех случаях "зачистит" следы пребывания процесса в системе

Лекция 4

Создание процессов и потоков

Процессы

Под созданием процесса в первую очередь понимают создание его описателя, включающего несколько информационных структур, содержащих все сведения о процессе, необходимые ОС для управления. Создание процессов включает загрузку кода и данных исполняемой программы диска в оперативную память. Для этого необходимо найти эту программу на диске, перераспределить оперативную память и выделить часть ее для нового процесса, создать стеки, обеспечивающие обмен данными, передачу параметров и вызов системных функций.

Множество, в которое входят программа, данные, стеки и атрибуты процессора называют образом процесса.

Любой образ включает в себя:

- переменную часть (изменяемая часть пользовательского адресного пространства (данные программы, пользовательский стек и модифицируемый код))

- пользовательская программа ( программа, которую нужно выполнять)

- системные стеки (один или несколько системных стеков для хранения параметров и адресов вызова процедур системных служб)

- управляющий блок процесса ( данные необходимые ОС для управления процессом 1)дескриптор 2) контекст )

При управлении процессам ОС использует два основных типа информационных структур : 1. Дескриптор - блок управления процессом

2. Контекст процесса

Дескриптор. В дескрипторе процесса содержится информация, которая необходима ядру в течение всего жизненного цикла процесса, независимо от его состояния (активный, пассивный, выгруженный)

Дескрипторы объединяются в таблицу процессов, размещенную на уровне ядра. На основании таблицы процессов ОС планирует, реализует и выполняет синхронизацию процессов.

Дескриптор процесса содержит:

1. Информацию по идентификации процесса

2. Информацию по состоянию процесса:

- состояние процесса, определяющее готовность к выполнению (выполняющийся, готовый к выполнению, ожидающий события, приостановленный, заблокированный)

- данные о приоритете

- идентификация о событиях, позволяющих продолжить выполнение процесса

- указатели, определяющие расположение образа процесса в памяти

- указатели на другие процессы

3. Информация, используемая для управления процессом:

- флаги, сигналы и сообщения, обеспечивающие обмен информацией между двумя независимыми процессами

В программировании флагом может быть допустим любая переменная, флаг - это контрольная точка, состояние которого позволяет определить насколько качественно выполнен тот или иной процесс

Контекст процесса содержит информацию, позволяющую системе приостанавливать и возобновлять выполнение процесса с прерванного места. Обычно контекст содержит:

- содержание регистров

- содержание счетчика команд

- результаты выполнения последних операций

- указатели стеков

Модели процессов:

Простейшая модель строится на двух устойчивых состояниях процесса - выполняется или не выполняется. Предполагается, что все процессы готовы к выполнению и поэтому такая схема работает достаточно эффективно.

Из-за большой разницы в скорости работы центрального процессора устройств ввода-вывода большинство процессов через небольшой интервал времени перейдут в режим ожидания, что потребует усложнения программ диспетчеризации, что позволит... Возможна патовая ситуация, когда все процессы будут находиться в процессе ожидания. Выходом из данной ситуации стало разделение всех процессоров на два типа: готовых к выполнению заблокированных, что в свою очередь привело к формированию двух независимых очередей, обеспечивающих эффективную работу ЦП