Составители:
Рубрика:
– приостановить поток и возобновить его выполнение;
– прекратить выполнение потока;
– определить код завершения потока.
В ОС Windows потоки, процессы, семафоры и исключающие семафоры
могут иметь несколько разных дескрипторов. Завершив работу с объектом, не-
обходимо вызвать функцию CloseHandle(), которая, закрыв последний деск-
риптор, сама уничтожит объект. В целом в Windows каждый процесс не может
одновременно поддерживать более 65 536 открытых дескрипторов.
Работа с потоками не сводится только к их запуску и остановке. Необ-
ходимо обеспечить совместное функционирование потоков. Для организа-
ции эффективного взаимодействия между несколькими потоками необходи-
мо производить контроль за их временными параметрами. Контроль
осуществляется [2]:
– установлением приоритетов;
– синхронизацией.
Приоритет потока определяет, насколько часто данный поток получает
доступ к центральному процессору. Синхронизация регулирует порядок обра-
щения потоков к общим ресурсам. Когда системная программа-планировщик
останавливает один поток и ищет другой, который должен быть запущен сле-
дующим, она отдает предпочтение потокам, имеющим наиболее высокий при-
оритет. Обработчики системных прерываний всегда имеют более высокий
приоритет по сравнению с пользовательскими процессами. Каждому процессу
присущ собственный приоритет. Базовый плановый приоритет потока опреде-
ляется на основе приоритета процесса, который является владельцем этого по-
тока. Всего различают 32 уровня приоритета: от 0 до 31. При этом приоритеты
уровня от 0 до 15 называются переменными приоритетами, а от 16 до 31 –
фиксированными приоритетами. Схема наследования приоритетов потока по-
казана на рис. 2.2 [2].
Среди атрибутов объекта потока различают базовый и динамический при-
оритеты. При вызове команды для изменения приоритета потока меняется его
базовый приоритет, который не может быть выше или ниже приоритета процес-
са-владельца более чем на 2 уровня. Операционная система способствует «про-
движению» потока для его выполнения. Для этого система поддерживает дина-
мический приоритет потоков, которые выполняют важные задачи. Например,
если процесс выводит информацию в окно либо считывает данные с диска, вре-
менно повышается приоритет всех потоков такого процесса. Эти временные
приращения в сумме с базовым приоритетом образуют динамический приоритет
процесса. Планировщик определяет очередность выполнения потоков на осно-
вании их динамического приоритета. Со следующим тактом процесса прираще-
ние приоритета начинает уменьшаться на один уровень, постепенно достигая
уровня базового приоритета.
15
– приостановить поток и возобновить его выполнение; – прекратить выполнение потока; – определить код завершения потока. В ОС Windows потоки, процессы, семафоры и исключающие семафоры могут иметь несколько разных дескрипторов. Завершив работу с объектом, не- обходимо вызвать функцию CloseHandle(), которая, закрыв последний деск- риптор, сама уничтожит объект. В целом в Windows каждый процесс не может одновременно поддерживать более 65 536 открытых дескрипторов. Работа с потоками не сводится только к их запуску и остановке. Необ- ходимо обеспечить совместное функционирование потоков. Для организа- ции эффективного взаимодействия между несколькими потоками необходи- мо производить контроль за их временными параметрами. Контроль осуществляется [2]: – установлением приоритетов; – синхронизацией. Приоритет потока определяет, насколько часто данный поток получает доступ к центральному процессору. Синхронизация регулирует порядок обра- щения потоков к общим ресурсам. Когда системная программа-планировщик останавливает один поток и ищет другой, который должен быть запущен сле- дующим, она отдает предпочтение потокам, имеющим наиболее высокий при- оритет. Обработчики системных прерываний всегда имеют более высокий приоритет по сравнению с пользовательскими процессами. Каждому процессу присущ собственный приоритет. Базовый плановый приоритет потока опреде- ляется на основе приоритета процесса, который является владельцем этого по- тока. Всего различают 32 уровня приоритета: от 0 до 31. При этом приоритеты уровня от 0 до 15 называются переменными приоритетами, а от 16 до 31 – фиксированными приоритетами. Схема наследования приоритетов потока по- казана на рис. 2.2 [2]. Среди атрибутов объекта потока различают базовый и динамический при- оритеты. При вызове команды для изменения приоритета потока меняется его базовый приоритет, который не может быть выше или ниже приоритета процес- са-владельца более чем на 2 уровня. Операционная система способствует «про- движению» потока для его выполнения. Для этого система поддерживает дина- мический приоритет потоков, которые выполняют важные задачи. Например, если процесс выводит информацию в окно либо считывает данные с диска, вре- менно повышается приоритет всех потоков такого процесса. Эти временные приращения в сумме с базовым приоритетом образуют динамический приоритет процесса. Планировщик определяет очередность выполнения потоков на осно- вании их динамического приоритета. Со следующим тактом процесса прираще- ние приоритета начинает уменьшаться на один уровень, постепенно достигая уровня базового приоритета. 15
Страницы
- « первая
- ‹ предыдущая
- …
- 13
- 14
- 15
- 16
- 17
- …
- следующая ›
- последняя »