Разделы презентаций


2. Потоки и процессы

Содержание

2.1. Поток управления

Слайды и текст этой презентации

Слайд 12. Потоки и процессы

2. Потоки и процессы

Слайд 22.1. Поток управления

2.1. Поток управления

Слайд 3Определение потока управления
Определим программу как набор переменных, в которых хранятся

данные, и набор инструкций, которые выполняют над этими данными некоторые

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

Слайд 4Контекст потока
Поток управления можно представить как нить в программе, на

которую нанизаны инструкции, выполняемые микропроцессором.
Поэтому поток управления также называется нитью

(thread).
В русскоязычной литературе за потоком управления закрепилось название поток.
Cодержимое памяти, к которой поток имеет доступ во время своего исполнения, называется контекстом потока.
Контекст потокаПоток управления можно представить как нить в программе, на которую нанизаны инструкции, выполняемые микропроцессором.Поэтому поток управления

Слайд 5Пример программы
Например, рассмотрим следующую программу:

  int a, b, с;

cin >> a

>> b;
if (a < b)
с = b - a;
else
c =

a - b;
cout << c << endl;
Пример программыНапример, рассмотрим следующую программу: 	int a, b, с;	cin >> a >> b;	if (a < b)		с = b

Слайд 6Пример потока
Предположим, что пользователь ввел следующие данные: 1 2.
Тогда

при работе программы будут выполняться следующие инструкции:
 
cin >> a >>

b;
if (a < b)
с = b - a;
  cout << c << endl;
Пример потокаПредположим, что пользователь ввел следующие данные: 1 2. Тогда при работе программы будут выполняться следующие инструкции: 	cin

Слайд 7Пример потока
Теперь предположим, что пользователь ввел следующие данные: 2 1.
Тогда

при работе программы будут исполняться следующие инструкции:
 
cin >> a >>

b;
  if (a < b)
else
c = a - b;
  cout << c << endl;
Пример потокаТеперь предположим, что пользователь ввел следующие данные: 2 1.Тогда при работе программы будут исполняться следующие инструкции: 	cin

Слайд 8Граф потока
Графически потоки управления могут быть представлен графом (блок схемой),

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

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

Слайд 10Многопоточные и однопоточные программы
Если в программе могут одновременно существовать несколько

потоков управления, то программа называется многопоточной.
А сами потоки в

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

Слайд 112.2. Состояния потока

2.2. Состояния потока

Слайд 12Определение потока как пары
Потоки управления определяют динамическое поведение программы.
Для простоты

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

рассматривать как пару
поток = (процессор, программа)
Определение потока как парыПотоки управления определяют динамическое поведение программы.Для простоты изложения предположим, что программа является однопоточной.Программы исполняются

Слайд 13Условия готовности программы к исполнению
Программа может исполняться процессором только в

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

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

Слайд 14Состояния процессора и программы
Для формального описания условий готовности программы к

исполнению вводятся понятия:
состояние процессора,
состояние программы.

Состояния процессора и программыДля формального описания условий готовности программы к исполнению вводятся понятия:состояние процессора,состояние программы.

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

не выделен для исполнения программы;
процессор выделен для исполнения программы.

Возможные состояния процессораПредполагают, что процессор может находиться в следующих состояниях:процессор не выделен для исполнения программы;процессор выделен для

Слайд 16Возможные состояния программы
Предполагают, что программа может находиться в следующих состояниях:
программа

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

Возможные состояния программыПредполагают, что программа может находиться в следующих состояниях:программа не готова к исполнению процессором;программа готова к

Слайд 17Краткие обозначения состояний процессора и программы
Для краткости записи, введем для

этих состояний следующие названия:
состояния процессора:
«не выделен»;
«выделен»;
 состояния программы:
«не готова»;
«готова».

Краткие обозначения состояний процессора и программыДля краткости записи, введем для этих состояний следующие названия:состояния процессора:«не выделен»;«выделен»; состояния программы:«не

Слайд 18Состояния потока
Тогда состояние потока можно определить как пару состояний:
состояние потока

= (состояние процессора, состояние программы)
Перечислив различные комбинации состояний процессора и

программы, можно описать всевозможные состояния потока.
Состояния потокаТогда состояние потока можно определить как пару состояний:состояние потока = (состояние процессора, состояние программы)Перечислив различные комбинации

Слайд 19Возможные состояния потока
Введем для состояний потока следующие названия:
поток блокирован =

(не выделен, не готова);
поток готов к выполнению = (не выделен,

готова);
поток выполняется = (выделен, готова).
Будем считать, что состояние (выделен, не готова) является недостижимым для потока.
Т. е. процессор не выделяется программе, не готовой к исполнению.
Возможные состояния потокаВведем для состояний потока следующие названия:поток блокирован = (не выделен, не готова);поток готов к выполнению

Слайд 20Краткие обозначения состояний потока
Более кратко эти состояния потока будем обозначать

словами:
«блокирован»,
«готов»,
«выполняется».

Краткие обозначения состояний потокаБолее кратко эти состояния потока будем обозначать словами: «блокирован»,«готов»,«выполняется».

Слайд 21Начальное и конечное состояния потока
Кроме того, введем для потоков состояния,

которые обозначают:
существование программного кода для создания потока;
завершение исполнения потока.
Назовем эти

состояния соответственно:
«новый»;
«завершен».
Начальное и конечное состояния потокаКроме того, введем для потоков состояния, которые обозначают:существование программного кода для создания потока;завершение

Слайд 22Диаграмма состояний потока

Диаграмма состояний потока

Слайд 23Диаграмма состояний потока
Переход потока из состояния в состояние выполняется посредством

некоторой операции, которая выполняется над потоком.
На диаграмме состояний эти операции

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

Слайд 24Операции над потоками, которые выполняются самими потоками
Create – создание нового

потока.
Выполняется потоком, который создает новый поток из функции.
Exit –

завершение исполнения потока.
Выполняется самим исполняемым потоком и завершает его.
Операции над потоками, которые выполняются самими потокамиCreate – создание нового потока.Выполняется потоком, который создает новый поток из

Слайд 25Операции над потоками, которые выполняются операционной системой
Run – запускает готовый

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

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

Слайд 26Операции над потоками, которые выполняются операционной системой
Block – блокирует исполнение

потока.
Выполняется над потоком в том случае, если он ждет наступления

некоторого события, например, завершения операции ввода-вывода или освобождения ресурса.
Unblock – разблокирует поток.
Выполняется над потоком в том случае, если событие, ожидаемое потоком, наступило.
Операции над потоками, которые выполняются операционной системойBlock – блокирует исполнение потока.Выполняется над потоком в том случае, если

Слайд 272.3. Процессы

2.3. Процессы

Слайд 28Определение процесса
Процессом или задачей называется исполняемое на компьютере приложение вместе

со всеми ресурсами, которые требуются для его исполнения.

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

Слайд 29Контекст процесса
Все ресурсы, необходимые для исполнения процесса, называются контекстом процесса.

Контекст процессаВсе ресурсы, необходимые для исполнения процесса, называются контекстом процесса.

Слайд 30Необходимые ресурсы процесса
Процессу обязательно принадлежат следующие ресурсы: 
адресное пространство процесса;
потоки, исполняемые

в контексте процесса.

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

Слайд 31Адресное пространство процесса
Адресное пространство – это виртуальная память, выделенная процессу

для запуска программ.
Адресные пространства разных процессов не пересекаются.
Процесс не

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

Слайд 32Взаимодействие потоков процесса
Потоки, исполняемые в контексте одного процесса, запускаются в

адресном пространстве этого процесса.
Поэтому потоки одного процесса могут обращаться к

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

Слайд 33Взаимодействие потоков процесса
В принципе основной причиной, вызвавшей введение в системное

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

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

Слайд 342.4. Потоки в Windows

2.4. Потоки в Windows

Слайд 35Определение в Windows
Потоком в Windows называется объект ядра, которому операционная

система выделяет процессорное время для выполнения приложения.

Определение в WindowsПотоком в Windows называется объект ядра, которому операционная система выделяет процессорное время для выполнения приложения.

Слайд 36Идентификация потока в Windows
С каждым потоком в Windows связаны:
уникальный

дескриптор (HANDLE);
уникальный идентификатор.
Дескрипторы используются программами пользователя для управления

потоками.
Идентификаторы используются служебными программами, которые позволяют пользователям системы отслеживать работу потоков.
Идентификация потока в WindowsС каждым потоком в Windows связаны: уникальный дескриптор (HANDLE); уникальный идентификатор. Дескрипторы используются программами

Слайд 37Контекст потока в Windows
Каждому потоку в Windows принадлежат следующие ресурсы:
  код

исполняемой функции;
набор регистров процессора;
стек для работы приложения;
стек для работы операционной

системы;
маркер доступа, который содержит информацию для системы безопасности. 
Все эти ресурсы образуют контекст потока в Windows.
Контекст потока в WindowsКаждому потоку в Windows принадлежат следующие ресурсы: 	код исполняемой функции;	набор регистров процессора;	стек для работы приложения;	стек

Слайд 38Типы потоков в Windows
В Windows различаются потоки двух типов:
системные

потоки;
пользовательские потоки.
Системные потоки выполняют различные сервисы операционной системы и

запускаются ядром операционной системы.
Пользовательские потоки служат для решения задач пользователя и запускаются приложением.
Типы потоков в WindowsВ Windows различаются потоки двух типов: системные потоки; пользовательские потоки.Системные потоки выполняют различные сервисы

Слайд 39Типы потоков в приложении
В приложении различаются потоки двух типов:

рабочие потоки (working threads);
потоки интерфейса пользователя (user interface threads).
Рабочие

потоки выполняют различные задачи в приложении.
Потоки интерфейса пользователя выполняют обработку сообщений к окнам, с которыми они связаны.
Типы потоков в приложении В приложении различаются потоки двух типов: рабочие потоки (working threads); потоки интерфейса пользователя

Слайд 40Первичный поток приложения
Каждое приложение имеет, по крайней мере, один поток,

который называется первичным (primary) или главным (main) потоком.
В консольных приложениях

это поток, который исполняет функцию main.
В приложениях с графическим интерфейсом это поток, который исполняет функцию WinMain.
Первичный поток приложенияКаждое приложение имеет, по крайней мере, один поток, который называется первичным (primary) или главным (main)

Слайд 41Функции управления потоками в Windows
CreateThread – один поток создает другой

поток;
ExitThread – поток завершает свою работу;
GetExitCodeThread – получить код завершения

потока;
TerminateThread – один поток завершает работу другого потока;
SuspendThread – один поток приостанавливает исполнение другого потока;
ResumeThread – один поток возобновляет исполнение другого потока;
Sleep – поток приостанавливает свое исполнение на заданный интервал времени.
Функции управления потоками в WindowsCreateThread – один поток создает другой поток;ExitThread – поток завершает свою работу;GetExitCodeThread –

Слайд 422.5. Процессы в Windows

2.5. Процессы в Windows

Слайд 43Определение процесса в Windows
В Windows под процессом понимается объект ядра,

которому принадлежат системные ресурсы, используемые исполняемым приложением.
Поэтому можно сказать, что

в Windows процессом является исполняемое приложение.
Определение процесса в WindowsВ Windows под процессом понимается объект ядра, которому принадлежат системные ресурсы, используемые исполняемым приложением.Поэтому

Слайд 44Идентификация процесса в Windows
С каждым процессом в Windows связаны:
уникальный

дескриптор (HANDLE);
уникальный идентификатор.
Дескрипторы используются программами пользователя для управления процессами.
Идентификаторы

используются служебными программами, которые позволяют пользователям системы отслеживать работу процессов.
Идентификация процесса в WindowsС каждым процессом в Windows связаны: уникальный дескриптор (HANDLE); уникальный идентификатор.Дескрипторы используются программами пользователя

Слайд 45Ресурсы процесса в Windows
Каждый процесс в Windows владеет следующими ресурсами:
виртуальным

адресным пространством;
рабочим множеством страниц в реальной памяти;
первичным потоком;
маркером доступа, содержащим

информацию для системы безопасности;
таблицей для хранения дескрипторов объектов ядра, которые используются процессом.
Ресурсы процесса в WindowsКаждый процесс в Windows владеет следующими ресурсами:виртуальным адресным пространством;рабочим множеством страниц в реальной памяти;первичным

Слайд 46Начало и завершение процесса в Windows
Выполнение каждого процесса начинается с

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

процесса заканчивается при завершении работы всех его потоков.
Начало и завершение процесса в WindowsВыполнение каждого процесса начинается с первичного потока.В процессе своего исполнения процесс может

Слайд 47Функции для управления процессами в Windows
CreateProcess – один процесс создает

другой процесс;
ExitProcess – процесс завершает свою работу;
GetExitCodeProcess – получить код

завершения процесса;
TerminateProcess – один процесс завершает работу другого процесса.
Функции для управления процессами в WindowsCreateProcess – один процесс создает другой процесс;ExitProcess – процесс завершает свою работу;GetExitCodeProcess

Слайд 48Дочерние процессы
Процесс, который создается функцией CreateProcess, называется дочерним или потомком

процесса, который его создает.
В свою очередь процесс, который вызывает функцию

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

Слайд 492.6. Наследование дескрипторов объектов в ОС Windows

2.6. Наследование дескрипторов объектов в ОС Windows

Слайд 50Определение наследуемого объекта в Windows
Объект называется наследуемым, если дочерний процесс

имеет доступ к этому объекту через дескриптор, который получен в

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

Слайд 51Установка свойства наследования дескриптора объекта
В Windows свойство наследования объекта устанавливается

двумя способами:
функцией Create при создании объекта;
функцией SetHandleInformation.
Для того чтобы узнать,

является ли дескриптор наследуемым, нужно использовать:
функцию GetHandleInformation.
Установка свойства наследования дескриптора объектаВ Windows свойство наследования объекта устанавливается двумя способами:функцией Create при создании объекта;функцией SetHandleInformation.Для

Слайд 52Решение проблемы уникального именования объектов
Использование свойства наследования дескрипторов объектов позволяет

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

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

Обратная связь

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

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика