цифровая электроника
вычислительная техника
встраиваемые системы

 
» » Параллельное программирование с потоками



Параллельное программирование с потоками

Автор: Mike(admin) от 11-12-2018, 03:35

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


Параллельное программирование с потоками

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


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


Модель выполнения для множественных потоков в некотором роде сходна с моделью выполнения для множественных процессов.


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


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




© digitrode.ru




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

Комментарии:

Оставить комментарий