Организация памяти в Linux Ubuntu 10.04 LTS.

В Операционной система Linux Ubuntu 10.04 LTS организация доступа к памяти реализована с использованием механизмов виртуальной памяти. Каждому процессу в операционной система Linux Ubuntu 10.04 LTS выделяется некоторое виртуальное адресное пространство. В случае использования 32-битной архитектуру процессора каждому процессу доступно до 4 Гб виртуального адресного пространства. При этом, по умолчанию 1 Гб этого всего виртуального адресного пространства отдается ядру. Таким образом, пользователю становятся доступны только 3Гб памяти. В случае использования 64-битной архитектуры процессора данное ограничение отсутствует и пользовательским процессам доступно практически неограниченное количество виртуального адресного пространства.
Приложения, работающие в операционной система Linux Ubuntu 10.04 LTS, ничего не знают об архитектуре физической памяти. Вся физическая память транслируется в виртуальную. Виртуальная память может быть транслирована не только в физическую память. Если приложению требуется большее количество памяти (большее, чем общее количество физической памяти), то некоторая часть виртуальной памяти транслируется в пространство подкачки дисковой подсистемы.


Виртуальная и физическая память в операционной система Linux Ubuntu 10.04 LTS организована в виде модулей, называемых страницами. Размер одной страницы, как правило, составляет 4 Кбайт. Каждая такая страница транслируется на физическое хранилище, такое как ОЗУ или жесткий диск. Информация*о связях между виртуальными и реальными страницами хранится в таблице страниц.

Ядро операционной система Linux Ubuntu 10.04 LTS способно эффективно обрабатывать запросы процессов, дополняя физическую память областью подкачки. Системе постоянно приходится перемещать страницы между ОЗУ и областью подкачки. Такие операции называются страничным обменом.

Управление страницами осуществляется так, чтобы страницы, к которым обращение было сделано недавно, хранились в физической памяти, а менее активные страницы выгружались на диск. операционной система Linux Ubuntu 10.04 LTS отслеживает частоту обращения к каждой страницы виртуальной памяти. Всякий раз, когда происходит обращение к странице, ее частота обращения увеличивается. Параллельно с этим выполняется демон kswapd, который регулярно уменьшает частоту обращения неактивных страниц. Ядро ведет несколько списков страниц. Страницы, частота обращения которых больше нуля, считаются активными и помещаются в список активных страниц. Как только частота обращения снижается до нуля, демон kswapd перемещает страницу в список неактивных страниц и удаляет ссылку на нее из таблицы страниц. Такие страницы считаются готовыми к выгрузке на диск, однако при поступлении запроса к ним ядро сможет восстановить их из памяти или с диска и снова поместить в таблицу страниц. Страницы, выгруженные на диск, должны быть прочитаны с диска, прежде чем их можно будет использовать.
Когда ядру не хватает как физической памяти, так и области подкачки, это означает, что виртуальная память исчерпана. В данной ситуации включается режим «принудительного уничтожения» процессов. Чтобы освободить память, системе приходится уничтожать целые процессы.
Интенсивность операций с памятью количественно представляется следующими показателями:

· общим объемом задействованной виртуальной памяти.

· скоростью подкачки и выгрузки страниц.

 

В обоих операционных системах Windows Seven и Linux Ubuntu 10.04 LTS доступ к памяти реализован с помощью механизмов виртуальной памяти. Так же в них физическая память организована в виде модулей, называемых страницами. Из данного сравнения видно, что организация памяти в Windows Seven и Linux Ubuntu практически одинаковы.