Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по ОС рулез.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
630.27 Кб
Скачать

Структура блока pdb.

PDB (EPROCESS). Начинается со стандартного заголовка. Состоит из идентификатора объекта и счётчика ссылок на этот объект. Далее идёт ссылка на адрес блока KPROCESS, или ссылка на блок процесса ядра.

Блок процесса ядра содержит информацию необходимую для управления процессом для тех компонентов ОС, которые работают в кольце 0, например, диспетчеру процессов. В блоке PDB затем содержится идентификатор родительского процесса.

Для обычных прикладных программ родительским процессом является explorer.exe. В PDB содержится блок квот – это информация об использовании страничного файла процессом.

  • Количество страниц данного процесса, которые заблокированы в памяти.

  • Дескрипторы виртуальных адресов – это структуры, описывающие распределение ВАП.

  • Указатель на цепочку потоков данного процесса.

  • Указатель на таблицу дескрипторов.

  • Указатель на блок переменных окружения PEB.

  • Ссылка на блок процесса подсистемы Win32PROCESS – содержит дополнительную информацию о процессе, которая необходима подсистеме Win32.

Блок kprocess.

Содержит дополнительную информацию, которая необходима Windows для потоков, а именно:

  • указатель на каталог страниц процесса.

  • базовый приоритет по умолчанию: в ОС Windows имеются четыре класса приоритета.

IDLE

NORMAL

HIGH

REAL_TIME

В Windows 95 всем процессам выделяется квант времени процессора 20 мс. В этом блоке ука-зывается суммарное время работы потока в режиме ядра и пользовательского времени.

Блок переменных окружения (peb).

Расположен в пользовательском адресном пространстве.

В Windows 2000 находится по адресу 7FFDF000h. Содержит следующую информацию, необходимую для работы:

  • Адрес кучи процесса по умолчанию.

  • Указатель на структуры, описывающий загруженные модули.

  • IMTE – описывает все загруженные модули всеми процессами.

  • MODREF – содержит список всех модулей, используемых данным процессом.

  • Содержит указатель на список файлов, отображённых в памяти, которые используются данным процессом.

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

  • Указатель на заголовок списка свободного пространства в куче по умолчанию.

  • Указатель на заголовок связанного списка куч процесса.

Таблицы дескрипторов.

В DOS List OF List – это основная управляющая структура, адрес которой можно получить с помощью соотвествующих прерываний.

Int 52h

Int 21h

MCB

LOL

LastDrive

SFT

PDB

Информация о всех открытых файлах содержится в системной таблице файлов. В простейшем случае системная таблица файлов состоит из пяти записей. В этой таблице содержится информация об устройствах:

CON

AUX

PRN

FILES

В общем случае SFT имеет следующую структуру.

Адрес следующего блока

Количество записей

CON

AUX

PRN

FFFFh

Количество записей

SFT содержит список всех открытых файлов.

PSP

JFT

Программный код и данные

0

0

0

1

1

2

2

Каждая запись представляет собой номер

строки в таблице SFT

Job File Table SFT

CON

AUX

PRN

набор однобайтных

записей

В SFT нельзя создавать больше 255 файлов. Структура записей меняется 53h – 58h.

Таблица дескрипторов.

Таблица дескрипторов содержит не только дескрипторы файлов, но и объектов ядра. Структу-ра таблицы дескрипторов имеет следующий вид.

Количество записей

4байта

Флаг 1

8 байт

Объект 1

Флаг N

8 байт

Объект N

Первые 4 байта определяют количество записей в таблице дескрипторов (30h). Если таблица заполнена, то Windows создаёт кучу, делая прибавление 10h и так далее, то есть для Windows ограничения в 255 дескрипторов не существует. После количества записей идёт массив 8 байтных структур. Каждая структура состоит из двух полей.

1 поле. Флаг управления доступом к объекту. Назначение флагов различно для различных типов объекта. Например объект – процесс. Флаг – процесс завершён. Следующее DWORD – указатель базы данных соответствующего объекта.