Понятия «процесс» и «поток»


Объект, представляющий прикладную программу в состоянии выполнения, включает

- Адресное пространство в ОП, выделенное для выполнения программы

- Код выполняющейся программы

- Данные выполняющейся программы

- Стек и указатель на его вершину (stack pointer, SP)

- Выделенные ресурсы ОС (открытые файлы, установленные сетевые соединения и т.д.)

- Программный счетчик (instruction pointer, IP), указывающий на следующую выполняемую инструкцию

Текущие значения регистров общего назначения

Объект исполнения представлен двумя понятиями: процесс и поток.

Процесс – это программа при ее исполнении. Для процесса требуется ряд ресурсов: время процессора, память, файлы, устройства ввода/вывода и др.

ОС отвечает за следующие действия:

- создание и удаление процессов

- приостановка и возобновление процессов

- обеспечение механизмов для:

o Синхронизации процессов (семафоры, мониторы и др.)

o Взаимодействия процессов (условные переменные, события и др.)

 

 

 

Название Описание
Задание Набор процессов с общими квотами и лимитами
Процесс Контейнер для ресурсов и потоков
Поток Исполнение кода в процессе
Волокно Облегченный поток, полностью управляемый в пространстве пользователя

 

Поток (thread) –сущность внутри процесса, получающая процессорное время для выполнения.

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

 

Преимущества многопоточности:

• Увеличение скорости (по сравнению с использованием обычных процессов). Многопоточность основана на использовании облегченных процессов (lightweight processes), работающих в общем пространстве виртуальной памяти

• Использование общих ресурсов

• Использование мультипроцессорных архитектур

 

 

 

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

 

• Создать дескриптор процесса и поместить его в таблицу процессов

• Проинициализировать значения полей общего назначения дескриптора процесса

• Создать виртуальное адресное пространство (ВАП) процесса и сформировать его структуру

• Заполнить необходимыми данными ВАП процесса (разместить в нем код, данные и т.д.)

• Выделить процессу ресурсы, которые он может использовать сразу после создания

• Оповестить подсистемы, принимающие участие в управлении процессами, о создании нового процесса

• Создать первичный поток процесса

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

1. Информацию по идентификации процесса (идентификатор процесса, идентификатор пользователя, идентификаторы родительского и дочерних процессов).

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

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

 

Создание потока

 

• Создать дескриптор потока и поместить его в таблицу потоков

• Проинициализировать значения полей общего назначения дескриптора потока

• Создать области данных, необходимые для функционирования потока в данной аппаратной архитектуре

• Инициализировать поле дескриптора «аппаратный контекст выполнения потока»

• Оповестить подсистемы, принимающие участие в управлении потоками, о создании нового потока

• Перевести поток в состояние «готов к выполнению»

 

КОНТЕКСТ ПРОЦЕССА

• Содержимое регистров процессора, доступных пользователю;

• Содержимое счетчика команд;

• Состояние управляющих регистров и регистров состояния;

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

• Указатели стеков, хранящие параметры и адреса вызова процедур и системных служб.

Значительная часть этой информации фиксируется в виде слова состояния программы PSW (program status word).

 

 

В мультипрограммной системе поток может находиться в одном из трех основных состояний:

выполнение - активное состояние потока, во время которого поток обладает всеми необходимыми ресурсами и непосредственно выполняется процессором;

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

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

 

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

1. определение момента времени для смены текущего активного потока;

2. выбор для выполнения потока из очереди готовых потоков.

Диспетчеризация сводится к следующему:

1. сохранение контекста текущего потока, который требуется сменить;

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

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

 

Задачи алгоритма планирования

Все системы:

равнодоступность — предоставление каждому процессу справедливой доли времени центрального процессора;

принуждение к определенной политике — наблюдение за выполнением установленной политики;

баланс — поддержка загруженности всех составных частей системы.

Пакетные системы:

производительность — выполнение максимального количества заданий в час;

оборотное время — минимизация времени между представлением задачи и ее завершением;

использование центрального процессора — поддержка постоянной загруженности процессора.

Интерактивные системы:

время отклика — быстрый ответ на запросы;

пропорциональность — оправдание пользовательских надежд.

Системы реального времени:

соблюдение предельных сроков — предотвращение потери данных;

предсказуемость — предотвращение ухудшения качества в мультимедийных системах.

 

Алгоритмы планирования потоков

1. Невытесняющие (non-preemptive)

• планирование распределяется между ОС и прикладными программами;

• необходимость частых передач управлений ОС, в противном случае возможна монополизация процессора приложением;

• зависания приложений могут привести к краху системы

2. Вытесняющие (preemptive)

• функции планирования сосредоточены в ОС;

• планирование на основе квантования процессорного времени;

• планирование на основе приоритетов потоков: статических, динамических, абсолютных, относительных, смешанных;

 

Алгоритмы планирования, основанные на квантовании

Квант- непрерывный период процессорного времени предоставляющийся каждому потоку поочередно для выполнения.

Смена активного потока происходит, если:

• поток завершился и покинул систему;

• произошла ошибка;

• поток перешел в состояние ожидания;

• исчерпан квант процессорного времени, отведенный данному потоку.

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

Кванты, выделяемые потокам, могут быть одинаковыми для всех потоков или различными.

 

Стратегия Round Robin (RR) – “круговая система”

• Каждый процесс получает небольшой квант процессорного времени, обычно – 10-100 миллисекунд. После того, как это время закончено, процесс прерывается и помещается в конец очереди готовых процессов.

• Если всего n процессов в очереди готовых к выполнению, и квант времени - q, то каждый процесс получает 1/n процессорного времени порциями самое большее по q единиц за один раз. Ни один процесс не ждет больше, чем (n-1)q единиц времени.

• Производительность

q велико Þ FIFO

q мало Þ q должно быть большим, по сравнению со временем контекстного переключения, иначе слишком велики накладные расходы

Алгоритмы планирования, основанные на приоритетах

 

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

чем выше приортет, тем меньше времени поток будет проводить в очередях. Во многих ОС предусмотрена возможность изменения приоритетов в течении жизни потока(динамические приоритеты).

 

В системах с абсолютными приоритетами выполнение активного потока прерывается, как только в очереди готовых потоков появился поток, приоритет которого выше приоритета активного потока.

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

 

Моменты перепланировки

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

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

• Активная задача выполнила системный вызов, связанный с запросом на ввод-вывод или на доступ к ресурсу, который в настоящий момент занят (например, файл данных). Планировщик переводит задачу в состояние ожидания и выполняет перепланирование.

• Активная задача выполнила системный вызов, связанный с освобождением ресурса. Планировщик проверяет, не ожидает ли этот ресурс какая-либо задача. Если да, то эта задача переводится из состояния ожидания в состояние готовности. При этом, возможно, что задача, которая получила ресурс, имеет более высокий приоритет, чем текущая активная задача. После перепланирования более приоритетная задача получает доступ к процессору, вытесняя текущую задачу.

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

• Внутреннее прерывание сигнализирует об ошибке, которая произошла в результате выполнения активной задачи. Планировщик снимает задачу и выполняет перепланирование.

 



Дата добавления: 2021-01-26; просмотров: 307;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.016 сек.