Процессы, нити и волокна в ОС Windows

14489
знаков
0
таблиц
0
изображений

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Реферат по теме:

"Процессы, нити и волокна в ОС Windows"

 

 


Содержание

 

1. Процессы, нити и волокна в ОС Windows

2. Создание процессов

3. Завершение процессов

4. Создание нитей

5. Завершение нитей

6. Создание волокон

7. Уничтожение волокон

8. Wait-функции

Выводы

Список литературы

 

 


1. Процессы, нити и волокна в ОС Windows

Процессом обычно называют экземпляр выполняемой программы. Хотя на первый взгляд кажется, что программа и процесс понятия практически одинаковые, они фундаментально отличаются друг от друга. Программа представляет собой статический набор команд, а процесс это набор ресурсов и данных, использующихся при выполнении программы. Процесс в Windows состоит из следующих компонентов:

– структура данных, содержащая всю информацию о процессе, в том числе список открытых дескрипторов различных системных ресурсов, уникальный идентификатор процесса, различную статистическую информацию и т.д.;

– адресное пространство – диапазон адресов виртуальной памяти, которым может пользоваться процесс;

– исполняемая программа и данные, проецируемые на виртуальное адресное пространство процесса.

Процессы инертны. Отвечают же за исполнение кода, содержащегося в адресном пространстве процесса, нити. Нить (thread) – некая сущность внутри процесса, получающая процессорное время для выполнения. В каждом процессе есть минимум одна нить. Эта первичная нить создается системой автоматически при создании процесса. Далее эта нить может породить другие нити, те в свою очередь новые и т.д. Таким образом, один процесс может владеть несколькими нитями, и тогда они одновременно исполняют код в адресном пространстве процесса. Каждая нить имеет:

– уникальный идентификатор нити;

– содержимое набора регистров процессора, отражающих состояние процессора;

– два стека, один из которых используется нитью при выполнении в режиме ядра, а другой – в пользовательском режиме;

– закрытую область памяти, называемую локальной памятью нити (thread local storage, TLS) и используемую подсистемами, run-time библиотеками и DLL.

Чтобы все нити работали, операционная система отводит каждой из них определенное процессорное время. Тем самым создается иллюзия одновременного выполнения нитей (разумеется, для многопроцессорных компьютеров возможен истинный параллелизм). В Windows реализована система вытесняющего планирования на основе приоритетов, в которой всегда выполняется нить с наибольшим приоритетом, готовая к выполнению. Выбранная для выполнения нить работает в течение некоторого периода, называемого квантом. Квант определяет, сколько времени будет выполняться нить, пока операционная система не прервет ее. По окончании кванта операционная система проверяет, готова ли к выполнению другая нить с таким же (или большим) уровнем приоритета. Если таких нитей не оказалось, текущей нити выделяется еще один квант. Однако нить может не полностью использовать свой квант. Как только другая нить с более высоким приоритетом готова к выполнению, текущая нить вытесняется, даже если ее квант еще не истек.

Квант не измеряется в каких бы то ни было единицах времени, а выражается целым числом. Для каждой нити хранится текущее значение ее кванта. Когда нити выделяется квант процессорного времени, это значит, что ее квант устанавливается в начальное значение. Оно зависит от операционной системы. Например, для Win2000 Professional начальное значение кванта равно 6, а для Win2000 Server – 36.

Всякий раз, когда возникает прерывание от таймера, из кванта нити вычитается 3, и так до тех пор, пока он не достигнет нуля. Частота срабатывания таймера зависит от аппаратной платформы. Например, для большинства однопроцессорных x86 систем он составляет 10 мс, а на большинстве многопроцессорных x86 систем – 15 мс.

В любом случае операционная система должна определить, какую нить выполнять следующей. Выбрав новую нить, операционная система переключает контекст. Эта операция заключается в сохранении параметров выполняемой нити (регистры процессора, указатели на стек ядра и пользовательский стек, указатель на адресное пространство, в котором выполняется нить и др.), и загрузке аналогичных параметров для другой нити, после чего начинается выполнение новой нити.

Планирование в Windows осуществляется на уровне нитей, а не процессов. Это кажется понятным, так как сами процессы не выполняются, а лишь предоставляют ресурсы и контекст для выполнения нитей. Поэтому при планировании нитей, система не обращает внимания на то, какому процессу они принадлежат. Например, если процесс А имеет 10 готовых к выполнению нитей, а процесс Б – две, и все 12 нитей имеют одинаковый приоритет, каждая из них получит 1/12 процессорного времени.

В Windows существует 32 уровня приоритета, от 0 до 31. Они группируются так: 31–16 – уровни реального времени; 15–1 – динамические уровни; 0 – системный уровень, зарезервированный для процесса обнуления страниц (zero-page thread).

Приоритет каждой нити (базовый приоритет нити) складывается из приоритета ее процесса и относительного приоритета самой нити. Есть семь относительных приоритетов нитей:

Normal: такой же как и у процесса;

Above normal: +1 к приоритету процесса;

Below normal: –1;

Highest: +2;

Lowest: –2;

Time critical: устанавливает базовый приоритет потока для Real time класса в 31,

для остальных классов – в 15;

Idle: устанавливает базовый приоритет потока для Real time класса в 16,

для остальных классов – в 1.

Если операционная система выполняется на машине, где установлено более одного процессора, то по умолчанию, нить выполняется на любом доступном процессоре. Однако в некоторых случаях, набор процессоров, на которых нить может работать, может быть ограничен. Это явление называется привязкой к процессорам (processor affinity). Можно изменить привязку к процессорам программно, через Win32‑функции планирования.

Волокна поддерживаются в WIN32 API, начиная с Windows2000. Под волокном понимается упрощенная нить, выполнение которой планируется самим приложением, а не планировщиком процессорного времени ОС. Планирование волокон может осуществляться только путем переключения на них только из других волокон. Волокна выполняются в контексте нитей, в которых планируется их применение, и допускают полную их идентификацию с нитями. В каждой нити может быть запланировано несколько волокон. Для каждого волокна создается собственный стек, в котором хранится информация о состоянии волокна.


Информация о работе «Процессы, нити и волокна в ОС Windows»
Раздел: Информатика, программирование
Количество знаков с пробелами: 14489
Количество таблиц: 0
Количество изображений: 0

Похожие работы

Скачать
84062
0
0

... нарушаются элементарные дидактические требования, преобладает пассивное восприятие учебной информации учащимися, нерационально тратится учебное время. Глава 2. Методика использования аудиовизуальных и технических средств обучения при изучении раздела «Технология обработки ткани 5 класс»   2.1 Комплексно-методическое обеспечение раздела 1. Учебно-методическая документация № п/п Наименование ...

Скачать
94155
10
7

... байта, содержание значения синего, зеленого и красного в том же порядке. Каждая строка дополняется нулями до границы 4 байт. Именно этот формат данных используется в разрабатываемой в подсистеме выделения текстильных волокон. 3.2 Преобразование изображения из RGB – представления в HSB Исходное изображение преобразуется из RGB – представления в HSB в случае выбора пунктов 2 либо 3 из главного ...

Скачать
22434
0
0

... и настройку локальной сети для разных операционных систем; исследовать правильное построение и настройку сети интернет; раскрыть проблемные аспекты, возникающие в процессе настройки локальной сети и подключению к сети интернет для разных операционных систем. Глава 1. Настройка локальной сети для Windows XP и Windows 7   1.1  Настройка локальной сети для Windows XP Первый этап настройки ...

Скачать
35095
0
0

... к локальным сетям. Поэтому требования международных стандартов удовлетворяют лишь ряд сетей, выпускаемых ведущими электронными фирмами мира. 2.2. Классификация сетей Локальные сети, широко используемые в научных, управленческих, организационных и коммерческих технологиях, можно классифицировать по следующим признакам: 1. По роли ПЭВМ в сети: - сети с сервером; - одноранговые ( ...

0 комментариев


Наверх