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

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

Жанры

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

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

Последний Паладин. Том 2

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

Потомок бога

Решетов Евгений Валерьевич
1. Локки
Фантастика:
попаданцы
альтернативная история
аниме
сказочная фантастика
5.00
рейтинг книги
Потомок бога

Сапер. Том II

Вязовский Алексей
2. Сапер
Фантастика:
альтернативная история
4.25
рейтинг книги
Сапер. Том II

Убивать чтобы жить 4

Бор Жорж
4. УЧЖ
Фантастика:
боевая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 4

Я еще не князь. Книга XIV

Дрейк Сириус
14. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я еще не князь. Книга XIV

Лекарь

Первухин Андрей Евгеньевич
1. Лекарь
Фантастика:
фэнтези
попаданцы
альтернативная история
7.50
рейтинг книги
Лекарь

История московских кладбищ. Под кровом вечной тишины

Рябинин Юрий Валерьевич
Научно-образовательная:
история
культурология
5.75
рейтинг книги
История московских кладбищ. Под кровом вечной тишины

Девочка из прошлого

Тоцка Тала
3. Айдаровы
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Девочка из прошлого

Я не бог. Книга XXXIV

Дрейк Сириус
34. Дорогой барон!
Фантастика:
юмористическое фэнтези
аниме
попаданцы
5.00
рейтинг книги
Я не бог. Книга XXXIV

Последний Герой. Том 3

Дамиров Рафаэль
3. Последний герой
Фантастика:
попаданцы
альтернативная история
фантастика: прочее
5.00
рейтинг книги
Последний Герой. Том 3

Шайтан Иван

Тен Эдуард
1. Шайтан Иван
Фантастика:
боевая фантастика
попаданцы
альтернативная история
5.00
рейтинг книги
Шайтан Иван

Война

Валериев Игорь
7. Ермак
Фантастика:
боевая фантастика
альтернативная история
5.25
рейтинг книги
Война

Дважды одаренный. Том VII

Тарс Элиан
7. Дважды одаренный
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Дважды одаренный. Том VII

Настольная книга по теологии. Библейский комментарий АСД Том 12

Церковь христиан адвентистов седьмого дня
Научно-образовательная:
религиоведение
5.00
рейтинг книги
Настольная книга по теологии. Библейский комментарий АСД Том 12