Читаем Операционная система UNIX полностью

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

<p>Области</p>

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

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

Области могут совместно использоваться несколькими процессами, при этом ядру нет необходимости создавать дополнительные копии, нужно лишь задать требуемое отображение (виртуальные адреса области у различных процессов могут не совпадать). В качестве примеров разделяемых областей можно привести разделяемую память, разделяемые библиотеки или отображаемые в память файлы. Часто код программы совместно используется несколькими родственными процессами. Информация о каждой активной области хранится ядром в структуре данных region.

Поскольку одна и та же область может использоваться несколькими процессами, для каждого процесса ядро создает связанный список структур pregion (per process region), которые в свою очередь адресуют области, используемые процессом. Указатель на список структур pregion для каждого процесса находится в записи таблицы процессов — структуре proc.

Основные поля структур region и pregion приведены на рис. 3.10.

Рис. 3.10. Управление адресным пространством процесса в SCO UNIX

Помимо указателей p_next, организующих структуры pregion в виде связанного списка, и p_reg, обеспечивающих адресацию соответствующей структуры region, в каждой структуре pregion определен набор флагов определяющий права доступа к области, режим блокирования в памяти и т.д. Поле p_type указывает на тип области. Оно может содержать одно из следующих значений:

ЗначениеОписание
PT_UNUSEDОбласть не используется
PT_TEXTОбласть содержит сегмент кода
PT_DATAОбласть содержит сегмент данных
PT_STACKОбласть используется в качестве стека процесса
PT_SHMEMОбласть используется в качестве разделяемой памяти
PT_LIBTXTОбласть содержит код библиотек
PT_LIBDATОбласть содержит данные библиотек
PT_SHFILОбласть используется для хранения файла, отображенного в память

Наконец, поле p_regva задает виртуальный адрес области в адресном пространстве процесса.

Поля структуры region, приведенные на рис. 3.10, имеют следующие значения. Поле r_pgsz определяет размер области в страницах, из которых r_nvalid страниц присутствуют в оперативной памяти (см. далее раздел "Страничное замещение"). Несколько процессов могут ссылаться на одну и ту же область, поле r_refcnt хранит число таких ссылок. Поле r_pde  адресует таблицу страниц области[33]. Поле r_iptr адресует inode файла, где располагаются данные области (например, для области кода, r_iptr будет указывать на inode исполняемого файла).

Фактическую информацию о структурах управления адресным пространством процесса можно получить с помощью команды crash(1M). В следующем примере таким образом определяется содержимое структур pregion процесса и характеристики соответствующих областей.

# crash

dumpfile = /dev/mem, namelist = /unix, outfile = stdout

> pregion 101

SLOT PREG REG#      REGVA  TYPE FLAGS

 101    0   12   0x700000  text rdonly

        1   22   0x701000  data

        2   23 0x7ffffffc stack

        3  145 0x80001000 lbtxt rdonly

        4  187 0x80031000 lbdat pr

Перейти на страницу:

Похожие книги

Веб-аналитика: анализ информации о посетителях веб-сайтов
Веб-аналитика: анализ информации о посетителях веб-сайтов

Компании в веб-пространстве тратят колоссальные средства на веб-аналитику и оптимизацию своих веб-сайтов, которые, в свою очередь, приносят миллиарды долларов дохода. Если вы аналитик или работаете с веб-данными, то эта книга ознакомит вас с новейшими точками зрения на веб-аналитику и то, как с ее помощью сделать вашу компанию весьма успешной в веб. Вы изучите инструментальные средства и показатели, которые можно использовать, но что важнее всего, эта книга ознакомит вас с новыми многочисленными точками зрения на веб-аналитику. Книга содержит много советов, приемов, идей и рекомендаций, которые вы можете взять на вооружение. Изучение веб-аналитики по этой уникальной книге позволит познакомиться с проблемами и возможностями ее современной концепции. Написанная практиком, книга охватывает определения и теории, проливающие свет на сложившееся мнение об этой области, а также предоставляет поэтапное руководство по реализации успешной стратегии веб-аналитики.Эксперт в данной области Авинаш Кошик в присущем ему блестящем стиле разоблачает укоренившиеся мифы и ведет по пути к получению действенного понимания аналитики. Узнайте, как отойти от анализа посещаемости сайта, почему основное внимание следует уделять качественным данным, каковы методы обретения лучшего понимания, которое поможет выработать мировоззрение, ориентированное на мнение клиента, без необходимости жертвовать интересами компании.- Изучите все преимущества и недостатки методов сбора данных.- Выясните, как перестать подсчитывать количество просмотренных страниц, получить лучшее представление о своих клиентах.- Научитесь определять ценность показателей при помощи тройной проверки "Ну и что".- Оптимизируйте организационную структуру и выберите правильный инструмент аналитики.- Изучите и примените передовые аналитические концепции, включая анализ SEM/PPC, сегментацию, показатели переходов и др.- Используйте решения с быстрым началом для блогов и электронной торговли, а также веб-сайтов мелкого бизнеса.- Изучите ключевые компоненты платформы экспериментирования и проверки.- Используйте анализ конкурентной разведки для обретения понимания и принятия мер.Здесь также находятся:- Десять шагов по улучшению веб-аналитики.- Семь шагов по созданию управляемой данными культуры в организации.- Шесть способов замера успеха блога.- Три секрета создания эффективной веб-аналитики.- Десять признаков великого веб-аналитика.

Авинаш Кошик

ОС и Сети, интернет