Составители:
начинается выполнение данного приложения, и который размещается
в процессе, управляемом ядром. Приложение может создать новый
поток при помощи вызова библиотечной процедуры работы с пото-
ками, например thread_create(). В результате создается структура дан-
ных для нового потока и управление передается к одному из готовых
к выполнению потоков данного процесса в соответствии с заданным
алгоритмом планирования. При этом контекст текущего потока со-
храняется. При возврате управления к данному потоку его контекст
восстанавливается. Все управление ULT осуществляется в пользова-
тельском пространстве в рамках одного процесса. Связь с ядром от-
сутствует. Ядро продолжает осуществлять планирование процесса
как единого целого. Однако существует взаимосвязь между планиро-
ванием потоков и планированием процессов. В случае возникновения
прерывания процесса, например по вводу-выводу или таймеру, вы-
полняющийся поток процесса продолжает оставаться в состоянии
выполнения, хотя перестает выполняться на процессоре. При возвра-
те управления процессу возобновляется выполнение потока на про-
цессоре.
Использование потоков на уровне пользователя обладает опре-
деленными преимуществами по сравнению с использованием пото-
ков на уровне ядра [3]. К числу таких преимуществ относятся:
• Для управления потоками процессу не нужно переключаться в
режим ядра, что позволяет избежать дополнительных расходов.
• Планирование потоков может производиться в зависимости от
специфики приложения. Для одних приложений лучше подхо-
дит простой алгоритм круговой диспетчеризации, а для других -
алгоритм планирования с использованием приоритетов.
• Использование потоков на уровне пользователя применимо для
любой операционной системы. Библиотека потоков представля-
36
Страницы
- « первая
- ‹ предыдущая
- …
- 34
- 35
- 36
- 37
- 38
- …
- следующая ›
- последняя »