Мегаобучалка Главная | О нас | Обратная связь


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



2018-07-06 798 Обсуждений (0)
Понятия «процесс» и «поток» 0.00 из 5.00 0 оценок




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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

 

 

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

 

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

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

 

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

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

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

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

 

 

 

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

 

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

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

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

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

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

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

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

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

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

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

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

 

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

 

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

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

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

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

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

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

 

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

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

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

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

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

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

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

 

 

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

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

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

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

 

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

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

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

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

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

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

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

 

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

Все системы:

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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

 

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

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

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

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

qвеликоÞ FIFO

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

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

 

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

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

 

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

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

 

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

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

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

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

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

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

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

 

Механизм прерываний

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

• Термин «ловушка» (англ. trap) иногда используется как синоним термина «прерывание» или «внутреннее прерывание».



2018-07-06 798 Обсуждений (0)
Понятия «процесс» и «поток» 0.00 из 5.00 0 оценок









Обсуждение в статье: Понятия «процесс» и «поток»

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (798)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.006 сек.)