Составители:
Рубрика:
6.2. Общие подходы к реализации приложений
с параллельным выполнением операций
Как уже отмечалось, современные вычислительные системы содер-
жат один или несколько центральных процессоров и, как правило,
несколько специализированных устройств, способных к параллельной ра-
боте с центральными процессорами. Операционная система, функциони-
рующая на таком компьютере, должна предоставлять и средства мульти-
программирования, и средства мультипроцессирования, в том числе муль-
типроцессирования на функционально различных устройствах.
Используемые в операционной системе средства реализации много-
задачности можно разделить на несколько групп:
• Взаимодействие с устройствами.
Существуют как специализированные средства взаимодейст-
вия, специфичные для конкретного вида устройств (например,
для графических устройств), так и относительно универсальные
средства, применимые к устройствам разных типов. Наиболее
типичным примером являются средства асинхронного ввода-
вывода.
• Средства управления потоками и волокнами.
Когда процесс запускается, операционная система в нем само-
стоятельно создает первичный поток, начинающий исполнение
кода этого процесса. Создание всех остальных потоков процес-
са требует специальных действий. Операционная система долж-
на предоставлять средства для создания потоков, волокон, их
завершения, приостановки или возобновления, изменения их
характеристик (например, приоритетов, прав доступа и т.д.).
В Windows существует очень интересный гибрид средств управ-
ления потоками и асинхронного ввода-вывода под названием
«порт завершения ввода-вывода». Несмотря на такое название,
это, по большей части, именно специализированный механизм
управления потоками.
• Взаимодействие потоков в рамках одного процесса.
Потоки, работающие в рамках одного процесса, имеют возмож-
ность взаимодействовать друг с другом, используя общее адрес-
ное пространство процесса. Это взаимодействие может, с одной
стороны, приводить к конфликтам одновременного доступа
(нужны средства разрешения конфликтов) и, с другой стороны,
требовать средств изоляции некоторых данных одного потока от
данных другого (нужны механизмы организации памяти, ло-
кальной для потока).
Основы многозадачности
201
200
CIL и системное программирование в Microsoft .NET
Класс приоритета (задает базовый уровень приоритета)
REALTIME HIGH ABOVE_NORMAL NORMAL BELOW_NORMAL IDLE
24 13 10 Foreground Normal Background 4
9876
31 TIME_CRITICAL
30 6
29 5
28 4
27 3
26 HIGHEST
25 ABOVE_NORMAL
24 NORMAL (24)
23 BELOW_NORMAL
22 LOWEST
21 -3
20 -4
19 -5
18 -6
17 -7
16 IDLE
15 TIME_CRITICAL TIME_CRITICAL TIME_CRITICAL TIME_CRITICAL TIME_CRITICAL TIME_CRITICAL TIME_CRITICAL
14 ABOVE_NORMAL
13 NORMAL (13)
12 BELOW_NORMAL HIGHEST
11 LOWEST ABOVE_NORMAL HIGHEST
10 NORMAL (10) ABOVE_NORMAL HIGHEST
9BELOW_NORMAL NORMAL (9) ABOVE_NORMAL HIGHEST
8LOWEST BELOW_NORMAL NORMAL (8) ABOVE_NORMAL HIGHEST
7 LOWEST BELOW_NORMAL NORMAL (7) ABOVE_NORMAL
6 LOWEST BELOW_NORMAL NORMAL (6) HIGHEST
5 LOWEST BELOW_NORMAL ABOVE_NORMAL
4 LOWEST NORMAL (4)
3 BELOW_NORMAL
2 LOWEST
1 IDLE IDLE IDLE IDLE IDLE IDLE IDLE
0 приоритет потока обнуления страниц
Уровень
Таблица 6.2. Соответствие классов приоритета и относительных приоритетов потоков уровням
Уровни приоритета с 16 по 31 отведены только для класса REALTIME_PRIORITY_CLASS
Не рекомендуется создавать потоки с таким классом приоритета, так как это может повлиять на обработку
сообщений от клавиатуры, мыши, сохранение на диске данных кэша и т.д.
200 CIL и системное программирование в Microsoft .NET Основы многозадачности 201 6.2. Общие подходы к реализации приложений с параллельным выполнением операций 4 IDLE IDLE LOWEST HIGHEST NORMAL (4) TIME_CRITICAL ABOVE_NORMAL BELOW_NORMAL Как уже отмечалось, современные вычислительные системы содер- жат один или несколько центральных процессоров и, как правило, несколько специализированных устройств, способных к параллельной ра- 6 боте с центральными процессорами. Операционная система, функциони- IDLE LOWEST HIGHEST рующая на таком компьютере, должна предоставлять и средства мульти- NORMAL (6) TIME_CRITICAL ABOVE_NORMAL BELOW_NORMAL BELOW_NORMAL программирования, и средства мультипроцессирования, в том числе муль- типроцессирования на функционально различных устройствах. Используемые в операционной системе средства реализации много- задачности можно разделить на несколько групп: 7 IDLE LOWEST HIGHEST • Взаимодействие с устройствами. Background NORMAL (7) TIME_CRITICAL ABOVE_NORMAL BELOW_NORMAL Существуют как специализированные средства взаимодейст- вия, специфичные для конкретного вида устройств (например, для графических устройств), так и относительно универсальные средства, применимые к устройствам разных типов. Наиболее 8 IDLE Normal LOWEST NORMAL HIGHEST типичным примером являются средства асинхронного ввода- NORMAL (8) TIME_CRITICAL ABOVE_NORMAL BELOW_NORMAL вывода. • Средства управления потоками и волокнами. Когда процесс запускается, операционная система в нем само- стоятельно создает первичный поток, начинающий исполнение 9 IDLE LOWEST HIGHEST кода этого процесса. Создание всех остальных потоков процес- приоритет потока обнуления страниц Foreground NORMAL (9) TIME_CRITICAL ABOVE_NORMAL BELOW_NORMAL са требует специальных действий. Операционная система долж- на предоставлять средства для создания потоков, волокон, их завершения, приостановки или возобновления, изменения их характеристик (например, приоритетов, прав доступа и т.д.). 10 IDLE LOWEST В Windows существует очень интересный гибрид средств управ- HIGHEST сообщений от клавиатуры, мыши, сохранение на диске данных кэша и т.д. Класс приоритета (задает базовый уровень приоритета) NORMAL (10) TIME_CRITICAL ABOVE_NORMAL ABOVE_NORMAL BELOW_NORMAL ления потоками и асинхронного ввода-вывода под названием Уровни приоритета с 16 по 31 отведены только для класса REALTIME_PRIORITY_CLASS «порт завершения ввода-вывода». Несмотря на такое название, это, по большей части, именно специализированный механизм управления потоками. 13 IDLE Не рекомендуется создавать потоки с таким классом приоритета, так как это может повлиять на обработку HIGH • Взаимодействие потоков в рамках одного процесса. LOWEST NORMAL (13) TIME_CRITICAL ABOVE_NORMAL BELOW_NORMAL Потоки, работающие в рамках одного процесса, имеют возмож- ность взаимодействовать друг с другом, используя общее адрес- ное пространство процесса. Это взаимодействие может, с одной стороны, приводить к конфликтам одновременного доступа 6 5 4 3 -3 -4 -5 -6 -7 24 IDLE (нужны средства разрешения конфликтов) и, с другой стороны, LOWEST HIGHEST REALTIME NORMAL (24) TIME_CRITICAL ABOVE_NORMAL BELOW_NORMAL требовать средств изоляции некоторых данных одного потока от Таблица 6.2. Соответствие классов приоритета и относительных приоритетов потоков уровням данных другого (нужны механизмы организации памяти, ло- Уровень кальной для потока). 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Страницы
- « первая
- ‹ предыдущая
- …
- 105
- 106
- 107
- 108
- 109
- …
- следующая ›
- последняя »