Linux Kernel (Ядро линукса) (часть 3)


Область подкачки
Страницы, выгруженные из памяти, хранятся в области подкачки, которая может быть реализована либо в виде самостоятельного раздела на диске, либо в виде файла, включенного в какой-нибудь раздел. Можно создать несколько различных областей подкачки, а их максимальное количество определяется макросом max_s wap files и обычно равно 32.

Наличие нескольких областей подкачки позволяет системному администратору распределить пространство подкачки по нескольким дискам, чтобы оборудование могло работать с ними параллельно. Кроме того, пространство подкачки может быть расширено во время работы, без перезагрузки системы.
Каждая область подкачки состоит из последовательности страничных слотов, блоков по 4096 байт, предназначенных для хранения выгруженных страниц. Первый страничный слот области подкачки используется для постоянного хранения некоторой информации о самой области; его формат ОПИСЫВаеТСЯ Объединением swap_header, СОСТОЯЩИМ ИЗ Двух структур: info и magic. Структура magic содержит строку, которая недвусмысленным образом помечает часть диска как область подкачки. Она состоит только из одного поля, magic.magic, в котором хранится 10-символьная "магическая" строка. Структура magic позволяет ядру однозначно идентифицировать файл или раздел как область подкачки. Текст строки, а именно "SWAPSPACE2", всегда расположен в конце первого страничного слота.

Структура info включает в себя следующие поля:
- bootbits — не используется алгоритмом подкачки. Это поле соответствует первым 1024 байтам области подкачки и может хранить информацию о разделе, метку диска и т. д.;
- version — версия алгоритма подкачки;
- last page — последний фактически используемый страничный слот;
- nr badpages — количество дефектных страничных слотов;
- padding [125] —дополняющие байты;
- badpages [ 1 ] — до 637 номеров, показывающих расположение дефектных страничных слотов.

Предыдущая страница | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 | Следующая страница




Возможно, Вас также заинтересует:

ОС Knoppix - это Linux без про...

ВведениеЕсли вы цените свое время, умеете считать деньги и знаете стоимость информации, то эта книга...

Linux Kernel (Ядро линукса) (ч...

Спин-блокировкаСпин-блокировка необходима в многопроцессорной системе, потому что могут возникнуть...

Linux Kernel (Ядро линукса) (ч...

Копирование при записи В системах Unix первых поколений создание процесса было реализовано довольно...

Linux Kernel (Ядро линукса) (ч...

Буферы блоков и головы буферовУ каждого буфера есть дескриптор голова буфера, имеющий тип buffer...