Операционные системы. Учебное пособие. Марапулец Ю.В. - 57 стр.

UptoLike

Составители: 

На системном уровне каждый поток представляет собой объект, созданный сис-
темным менеджером объектов. Аналогично с остальными системными объектами, поток
содержит данные (атрибуты) и методы (функции). Схематически объект-поток может
быть представлен в следующем виде (рис.2.5.) [12]:
Стандартный объект заголовка
Атрибуты потока Методы потока
Идентификатор клиента Создание потока
Контекст Открытие потока
Динамический приоритет Запрос информации о потоке
Базовый приоритет Установка информации о потоке
Привязанность к архитектуре
процессора
Текущий поток
Завершение потока
Время выполнения Получение контекста
Статус оповещения Установление контекста
Счетчик прерываний Прерывание
Маркер передачи прав доступа Возобновление
Порт завершения Предупреждение
Код завершения Проверка поступления преду-
преждения
Регистрация порта завершения
Рис.2.5. Схема объекта потока.
Для большинства методов потока имеются соответствующие API - функции Win32.
Windows защищает свои внутренние структуры от прямого вмешательства пользова-
тельских программ. В отличии от более привилегированных программ, функционирую-
щих на уровне ядра операционной системы, пользовательские не могут прямо анализи-
ровать или изменять параметры системных объектов. Все операции с ними выполняются
посредством функций Win32 API. Windows предоставляет дескриптор, идентифици-
рующий объект. При выполнении операций с объектом его дескриптор передается в ка-
честве аргумента одной из API-функций. Свои дескрипторы имеют потоки, процессы,
семафоры, файлы и др. объекты. Внутренняя структура объектов доступна только ме-
неджеру объектов. Функция, создающая поток, возвращает дескриптор нового объекта.
С помощью этого дескриптора можно выполнить следующие операции:
повысить или понизить плановый приоритет потока;
приостановить поток и возобновить его выполнение;
прекратить выполнение потока;
определить код завершения потока.
В ОС Windows потоки, процессы, семафоры и исключающие семафоры могут
иметь несколько разных дескрипторов. Завершив работу с объектом, необходимо вы-
звать функцию CloseHandle, которая закрыв последний дескриптор, сама уничтожит
объект. В целом в Windows каждый процесс не может одновременно поддерживать бо-
лее 65536 открытых дескрипторов.
Работа с потоками не сводится только к их запуску и остановке. Необходимо обес-
печить совместное функционирование потоков. Для организации эффективного взаимо-
действия между несколькими потоками необходимо производить контроль за их вре-
менными параметрами. Контроль осуществляется [12]:
59
     На системном уровне каждый поток представляет собой объект, созданный сис-
темным менеджером объектов. Аналогично с остальными системными объектами, поток
содержит данные (атрибуты) и методы (функции). Схематически объект-поток может
быть представлен в следующем виде (рис.2.5.) [12]:

                         Стандартный объект заголовка

               Атрибуты потока                         Методы потока

          Идентификатор клиента                Создание потока
          Контекст                             Открытие потока
          Динамический приоритет               Запрос информации о потоке
          Базовый приоритет                    Установка информации о потоке
          Привязанность к архитектуре          Текущий поток
          процессора                           Завершение потока
          Время выполнения                     Получение контекста
          Статус оповещения                    Установление контекста
          Счетчик прерываний                   Прерывание
          Маркер передачи прав доступа         Возобновление
          Порт завершения                      Предупреждение
          Код завершения                       Проверка поступления преду-
                                               преждения
                                               Регистрация порта завершения

                             Рис.2.5. Схема объекта потока.

     Для большинства методов потока имеются соответствующие API - функции Win32.
Windows защищает свои внутренние структуры от прямого вмешательства пользова-
тельских программ. В отличии от более привилегированных программ, функционирую-
щих на уровне ядра операционной системы, пользовательские не могут прямо анализи-
ровать или изменять параметры системных объектов. Все операции с ними выполняются
посредством функций Win32 API. Windows предоставляет дескриптор, идентифици-
рующий объект. При выполнении операций с объектом его дескриптор передается в ка-
честве аргумента одной из API-функций. Свои дескрипторы имеют потоки, процессы,
семафоры, файлы и др. объекты. Внутренняя структура объектов доступна только ме-
неджеру объектов. Функция, создающая поток, возвращает дескриптор нового объекта.
С помощью этого дескриптора можно выполнить следующие операции:
• повысить или понизить плановый приоритет потока;
• приостановить поток и возобновить его выполнение;
• прекратить выполнение потока;
• определить код завершения потока.
     В ОС Windows потоки, процессы, семафоры и исключающие семафоры могут
иметь несколько разных дескрипторов. Завершив работу с объектом, необходимо вы-
звать функцию CloseHandle, которая закрыв последний дескриптор, сама уничтожит
объект. В целом в Windows каждый процесс не может одновременно поддерживать бо-
лее 65536 открытых дескрипторов.
     Работа с потоками не сводится только к их запуску и остановке. Необходимо обес-
печить совместное функционирование потоков. Для организации эффективного взаимо-
действия между несколькими потоками необходимо производить контроль за их вре-
менными параметрами. Контроль осуществляется [12]:


                                          59