Разработка ядра 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. Покоряя небо
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Восход. Солнцев. Книга X
10. Голос Бога
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Ну привет, заучка...
Любовные романы:
эро литература
короткие любовные романы
8.30
рейтинг книги
Менталист. Конфронтация
2. Выиграть у времени
Фантастика:
боевая фантастика
6.90
рейтинг книги
Идеальный мир для Социопата 4
4. Социопат
Фантастика:
боевая фантастика
6.82
рейтинг книги
Ты не мой Boy 2
6. Самбисты
Любовные романы:
современные любовные романы
короткие любовные романы
5.00
рейтинг книги
Лорд Системы 14
14. Лорд Системы
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Приручитель женщин-монстров. Том 1
1. Покемоны? Какие покемоны?
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Девочка-яд
2. Молодые, горячие, влюбленные
Любовные романы:
современные любовные романы
5.00
рейтинг книги
На границе империй. Том 10. Часть 1
Вселенная EVE Online
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
Беглец
1. Совсем не герой
Фантастика:
фэнтези
попаданцы
8.94
рейтинг книги
Темный Патриарх Светлого Рода
1. Темный Патриарх Светлого Рода
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00