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

на главную - закладки

Жанры

Разработка ядра 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; /* контекст асинхронного ввода-

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

Черный Маг Императора 6

Герда Александр
6. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
7.00
рейтинг книги
Черный Маг Императора 6

Оцифрованный. Том 1

Дорничев Дмитрий
1. Линкор Михаил
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Оцифрованный. Том 1

Кодекс Охотника. Книга XIV

Винокуров Юрий
14. Кодекс Охотника
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга XIV

Штуцер и тесак

Дроздов Анатолий Федорович
1. Штуцер и тесак
Фантастика:
боевая фантастика
альтернативная история
8.78
рейтинг книги
Штуцер и тесак

Я снова граф. Книга XI

Дрейк Сириус
11. Дорогой барон!
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Я снова граф. Книга XI

Болотник

Панченко Андрей Алексеевич
1. Болотник
Фантастика:
попаданцы
альтернативная история
6.50
рейтинг книги
Болотник

Кодекс Крови. Книга III

Борзых М.
3. РОС: Кодекс Крови
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Крови. Книга III

Жестокая свадьба

Тоцка Тала
Любовные романы:
современные любовные романы
4.87
рейтинг книги
Жестокая свадьба

Стеллар. Трибут

Прокофьев Роман Юрьевич
2. Стеллар
Фантастика:
боевая фантастика
рпг
8.75
рейтинг книги
Стеллар. Трибут

Голодные игры

Коллинз Сьюзен
1. Голодные игры
Фантастика:
социально-философская фантастика
боевая фантастика
9.48
рейтинг книги
Голодные игры

Последняя Арена 8

Греков Сергей
8. Последняя Арена
Фантастика:
боевая фантастика
рпг
5.00
рейтинг книги
Последняя Арена 8

Черный маг императора 2

Герда Александр
2. Черный маг императора
Фантастика:
юмористическая фантастика
попаданцы
аниме
6.00
рейтинг книги
Черный маг императора 2

Последний Паладин

Саваровский Роман
1. Путь Паладина
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Последний Паладин

Измена. Свадьба дракона

Белова Екатерина
Любовные романы:
любовно-фантастические романы
эро литература
5.00
рейтинг книги
Измена. Свадьба дракона