Составители:
7
• Таймер (Timer) – объект ядра, который периодически или однократ-
но формирует события в заданные моменты времени.
• Векторные сообщения (Vector) – объект ядра, который используется
при передаче длинных сообщений, имеющих предопределенную структуру.
В векторном сообщении выделяется заголовок и составные компоненты.
1.2. Атрибуты потоков
Каждый поток имеет системную область памяти, предназначенную для
размещения атрибутов потока. К атрибутам потока относятся:
• tid – идентификатор потока – это целое число, уникальное в преде-
лах процесса;
• register context – область для хранения контекста состояния задачи,
используемая при блокировках и прерываниях потока;
• stack – собственный стек – магазинная память для временных и ра-
бочих переменных;
• signal mask – собственная маска для сигналов – запрещающая или,
наоборот, разрешающая прием и обработку сигналов;
• cancellation handlers – функции, которые выполняются при заверше-
нии потока.
Системная область недоступна непосредственно из пользовательского
кода, но может быть доступна через системные вызовы после предвари-
тельной процедуры связывания с конкретным атрибутом.
1.3. Состояния потока
Потоки создаются и уничтожаются динамически. Число потоков в про-
цессе явно не ограничено. Любой поток может создать дочерний поток. При
создании потока ему выделяются ресурсы памяти в пределах адресного
пространства процесса. При завершении потока эти ресурсы освобождают-
ся. Поток может находиться в трех состояниях: исполняться на процессоре
(RUNNING), быть «готовым к исполнению» (READY), быть блокированным
(BLOCKED) (рис. 1.2).
Поток, «готовый к исполнению», не
исполняется только потому, что процес-
сор занят исполнением другого, возмож-
но более приоритетного потока. Блоки-
рованный поток не может исполняться
из-за ряда иных условий, к которым от-
носятся:
RUNNING
READY BLOCKED
Рис. 1.2
Страницы
- « первая
- ‹ предыдущая
- …
- 5
- 6
- 7
- 8
- 9
- …
- следующая ›
- последняя »