Чтение онлайн

на главную

Жанры

Разработка ядра Linux
Шрифт:

Дескриптор памяти

Ядро представляет адресное пространство процесса в виде структуры данных, которая называется дескриптором памяти. Эта структура содержит всю информацию, которая относится к адресному пространству процесса. Дескриптор памяти представляется с помощью структуры

struct mm_struct
, которая определена в файле
<linux/sched.h>
[81] .

Рассмотрим

эту структуру с комментариями, поясняющими назначение каждого поля.

81

Между дескриптором процесса, дескриптором памяти и соответствующими функциями существует тесная связь. Поэтому структура

struct mm_struct
и определена в заголовочном файле
sched.h
.

struct mm_struct {

 struct vm_area_struct *mmap; /* список областей памяти */

 struct rb_root mm_rb; /* красно-черное дерево

областей памяти */

 struct vm_area_struct *mmap_cache; /* последняя использованная

область памяти */

 unsigned long free_area_cache; /* первый незанятый участок

адресного пространства */

 pgd_t *pgd; /* глобальный каталог страниц */

 atomic_t mm_users; /* счетчик пользователей адресного

пространства */

 atomic_t mm_count; /* основной счетчик использования */

 int map_count; /* количество областей памяти */

 struct rw_semaphore mmap_sem; /* семафор для областей памяти */

 spinlock_t page_table_lock; /* спин-блокировка

таблиц страниц */

 struct list_head mmlist; /* список всех структур mm_struct */

 unsigned long start_code; /* начальный адрес сегмента кода */

 unsigned long end code; /* конечный адрес сегмента кода */

 unsigned long start_data; /* начальный адрес сегмента данных */

 unsigned long end_data; /* конечный адрес сегмента данных */

 unsigned long start_brk; /* начальный адрес сегмента "кучи" */

 unsigned long brk; /*
конечный адрес сегмента "кучи" */

 unsigned long start_stack; /* начало стека процесса */

 unsigned long arg_start; /* начальный адрес

области аргументов */

 unsigned long arg_end; /* конечный адрес

области аргументов */

 unsigned long env_start; /* начальный адрес

области переменных среды */

 unsigned long env_end; /* конечный адрес

области переменных среды */

 unsigned long rss; /* количество физических страниц памяти */

 unsigned long total_vm; /* общее количество страниц памяти */

 unsigned long locked_vm; /* количество заблокированных страниц

памяти */

 unsigned long def_flags; /* флаги доступа, используемые

по умолчанию */

 unsigned long cpu_vm_mask; /* маска отложенного переключения

буфера TLB */

 unsigned long swap_address; /* последний сканированный адрес */

 unsigned dumpable:1; /* можно ли создавать файл core? */

 int used_hugetlb; /* используются ли гигантские

страницы памяти (hugetlb)? */

 mm_context_t context; /* данные, специфичные для аппаратной

платформы */

 int core_waiters; /* количество потоков, ожидающих на

создание файла core */

 struct completion *core_startup_done; /* условная переменная начала

создания файла core */

 struct completion core_done; /* условная переменная завершения

создания файла core */

 rwlock_t ioctx_list_lock; /* блокировка списка асинхронного

ввода-вывода (AIO) */

 struct kioctx *ioctx_list; /* список асинхронного ввода-вывода (AIO) */

 struct kioctx default_kioctx; /* контекст асинхронного ввода-

Поделиться:
Популярные книги

Ратник

Ланцов Михаил Алексеевич
3. Помещик
Фантастика:
альтернативная история
7.11
рейтинг книги
Ратник

Газлайтер. Том 10

Володин Григорий
10. История Телепата
Фантастика:
боевая фантастика
5.00
рейтинг книги
Газлайтер. Том 10

Авиатор: назад в СССР 10

Дорин Михаил
10. Покоряя небо
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Авиатор: назад в СССР 10

Восход. Солнцев. Книга X

Скабер Артемий
10. Голос Бога
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Восход. Солнцев. Книга X

Ну привет, заучка...

Зайцева Мария
Любовные романы:
эро литература
короткие любовные романы
8.30
рейтинг книги
Ну привет, заучка...

Менталист. Конфронтация

Еслер Андрей
2. Выиграть у времени
Фантастика:
боевая фантастика
6.90
рейтинг книги
Менталист. Конфронтация

Идеальный мир для Социопата 4

Сапфир Олег
4. Социопат
Фантастика:
боевая фантастика
6.82
рейтинг книги
Идеальный мир для Социопата 4

Ты не мой Boy 2

Рам Янка
6. Самбисты
Любовные романы:
современные любовные романы
короткие любовные романы
5.00
рейтинг книги
Ты не мой Boy 2

Лорд Системы 14

Токсик Саша
14. Лорд Системы
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Лорд Системы 14

Приручитель женщин-монстров. Том 1

Дорничев Дмитрий
1. Покемоны? Какие покемоны?
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Приручитель женщин-монстров. Том 1

Девочка-яд

Коэн Даша
2. Молодые, горячие, влюбленные
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Девочка-яд

На границе империй. Том 10. Часть 1

INDIGO
Вселенная EVE Online
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 10. Часть 1

Беглец

Бубела Олег Николаевич
1. Совсем не герой
Фантастика:
фэнтези
попаданцы
8.94
рейтинг книги
Беглец

Темный Патриарх Светлого Рода

Лисицин Евгений
1. Темный Патриарх Светлого Рода
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Темный Патриарх Светлого Рода