Page 152 - 6571
P. 152
СУЧАСНІ ПІДХОДИ ДО РОЗРОБКИ
ПАРАЛЕЛЬНИХ ПРОГРАМ
ЛЕКЦІЯ 17
ОСНОВИ РОБОТИ З БІБЛІОТЕКОЮ POSIXTHREADS
17.1 Створення нового потоку виконання
Згадаємо, що потік – це «полегшений» процес, тобто процес
з власним програмним лічильником і стеком виконання, але без
«важкого» контексту (таблиць сторінок), пов’язаного з роботою
програми. Деякі операційні системи давно надавали механізми,
що дозволяють розробникам писати багатопотокові програми.
Але дані механізми відрізнялися між собою, тому додатки не мо-
жна було переносити між різними операційними системами або
навіть між різними типами однієї операційної системи. Тому,
щоб виправити дану ситуацію, в середині 1990-х років було ви-
значено стандартний набір функцій мови C для багатопотокового
програмування. Група розробників, що розробляла даний набір
функцій працювала під керівництвом організації POSIX (Portable
Operating System Interface), тому бібліотеку було названо Pthreads
для потоків POSIX. На сьогоднішній час дана бібліотека широко
використовується і доступна для самих різних типів операційних
систем.
Бібліотека Pthreads включає в себе ряд функцій для управлін-
ня потоками і їх синхронізації. Розглянемо базовий набір функ-
цій, достатній для створення і взаємодії потоків, а також для син-
хронізації їх роботи.
Для доступу до бібліотеки Pthreads в програмі на мові C пот-
рібно виконати чотири дії. По-перше, необхідно підключити ста-
ндартний заголовний файл бібліотеки Pthreads:
#include <pthread.h>
По-друге, потрібно оголосити змінні для одного дескриптора
атрибутів потоку і одного або декількох дескрипторів потоку:
pthread_attr_t tattr; /* атрибути потоку */
151