Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Гл.3 ОС буклет.doc
Скачиваний:
9
Добавлен:
11.11.2018
Размер:
353.79 Кб
Скачать

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

В случае завершения процесса соответствующий объект-процесс становится кандидатом на изъятие из системы. При этом диспетчер объектов вызывает метод delete для объектов-процессов, который закрывает все дескрипторы в таблице объектов этого процесса.

3.7.5. Процессы и ресурсы. Таблица объектов процесса

Каждый процесс, как было показано в разделе 2, может пользоваться ресурсами через дескрипторы соответствующих объектов. Открытые дескрипторы объектов есть индексами в таблице объектов (object table), что сохраняется в управляющем блоке процесса. Эта таблица содержит указатели на все объекты, дескрипторы которых открыты процессом. Процесс может получить дескриптор объекта несколькими способами:

  • создав новый объект;

  • открыв дескриптор имеющегося объекта;

  • унаследовав дескриптор от другого процесса;

  • получив дубликат дескриптора из другого процесса.

Каждый элемент таблицы объектов содержит права доступа соответствующего дескриптора и его режим наследования, который определяет, получат ли процессы, созданные рассматриваемым процессом, копию дескриптора соответствующего объекта. Режим наследования задают во время создания объекта.

Объект может одновременно быть использован несколькими процессами, при этом каждый из них получает уникальный дескриптор, который отвечает этому объекту.

3.8 Управление потоками в Windows хр

Для того чтобы выполнять код, в рамках процесса обязательно необходимо создать поток. В системе Windows ХР реализованна модель потоков «в чистом виде». Процессы и потоки являются разными сущностями в системе, которые находятся в четко определенной взаимосвязи один из одним; для работы с ними используют разные системные вызовы. В Windows ХР никогда не использовали модель процессов, подобный традиционной модели UNIX.

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

3.8.1. Составные элементы потока

Поток в Windows ХР состоит из таких элементов:

  • содержимого набора регистров, который определяет состояние процессора;

  • двух стеков - один используют для работы в режиме пользователя, другой - в режиме ядра; эти стеки размещены в адресном пространстве процесса, который создал этот поток;

  • локальной памяти потока (TLS);

  • уникального идентификатора потока (thread id, tid), который выбирают из того самого пространства имен, что и идентификаторы процессов.

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

Различают два вида потоков: потоки пользователя и потоки ядра, которые в Windows ХР называют системными рабочими потоками – system worker threads. Первые из них создают в режиме пользователя и только за необходимости перемикають в режим ядра. Другие создают в ядре во время его инициализации и выполняют в режиме ядра на протяжении всего времени их существования.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]