Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
5.14.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
7.68 Mб
Скачать

Процессы

и потоки:

  1. Процессы: общие сведения, адресное пространство.

Что такое процесс?

На самом высоком уровне абстракции процесс состоит из:

• исполняемой программы, которая определяет начальный код и данные;

• закрытого адресного пространства (address space), т. е. набора адре­сов виртуальной памяти, который процесс может использовать;

• системных ресурсов, таких как семафоры, коммуникационные порты и файлы, выделяемых ОС процессу во время выполнения программы.

В Windows NT процесс, чтобы он мог работать, должен включать четвер­тый элемент:

• по крайней мере один поток управления (thread of execution).

Поток — это сущность внутри процесса, которую ядро NT направляет на исполнение. Без него программа процесса не может выполняться.

Адресное пространство

Исходя из здравого смысла, какой-либо процесс не должен иметь неограни­ченного права управления другими процессами. Одним из способов дости­жения этого в Windows NT служит система виртуальной памяти (virtual memory). С ее помощью программисты (и создаваемые ими процессы) полу­чают логический образ памяти, который не совпадает с ее физической струк­турой (см. рис. 4-1).

При всяком обращении процесса по виртуальному адресу система вир­туальной памяти транслирует этот адрес в физический. Она также предотвра­щает непосредственный доступ процесса к виртуальной памяти, занятой дру­гими процессами или ОС. Для исполнения кода ОС или доступа к памяти ОС поток должен исполняться в привилегированном режиме процессора — так называемом режиме ядра (kernel mode). Однако большинство процессов — это процессы пользовательского режима, т. е. такие, потоки которых испол­няются в основном в непривилегированном режиме процессора — пользова­тельском режиме (user mode).

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

В пользовательском режиме исполняются как прикладные про­граммы, так и защищенные подсистемы Windows NT. Последние представляют собой процессы-серверы пользовательского режима, реализующие важные функции системы. Они реализованы как серверы, чтобы упростить базовую ОС и обеспечить ее расширяемость. Подсистемы работают в пользовательском ре­жиме, так что адресное пространство каждой из них защищено от прикладных процессов и от других подсистем .

Рис. 4-1. Виртуальная и физическая память.

  1. Набор ресурсов, объект-процесс.

Набор ресурсов

Кроме закрытого адресного пространства, с каждым процессом связан набор разнообразных системных ресурсов. На рис. 4-2 показан типичный процесс и его ресурсы.

Вверху схемы изображен маркер доступа процесса. Обратите внимание, что маркер доступа присоединяется к процессу непосредственно ОС. Если процессу требует­ся получить информацию о его маркере доступа или, возможно, изменить не­которые атрибуты маркера, то он должен открыть описатель своего объекта-маркера. Подсистема защиты определяет, есть ли у процесса такое право. Про­цесс, показанный на рисунке, не открыл описатель своего маркера доступа, поэтому отсутствует стрелка, идущая из таблицы объектов к маркеру

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

Таблица объектов процесса показана в нижней части рисунка. Процесс открыл описатели одного из своих потоков, файла и секции совместно ис­пользуемой памяти. (Описание виртуального адресного пространства содер­жит информацию о виртуальных адресах, занятых стеком потока и объектом-секцией, на что указывают стрелки, идущие от описания виртуального адрес­ного пространства к этим объектам.)

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

Рис. 4-2. Процесс и его ресурсы.

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