2.2.2 Диспетчер памяти

Предыдущая  Содержание  Следующая V*D*V

Диспетчер памяти Linux отвечает за управление доступом к аппаратным ресурсам памяти. Диспетчер памяти несёт ответственность за предоставление динамической памяти подсистемам ядра, таким как драйверы, файловые системы и сетевой стек. Он также реализует программное обеспечение, необходимое, чтобы обеспечить виртуальной памятью пользовательские приложения. Каждый процесс в подсистеме Linux работает в своём отдельном адресном пространстве, называемом виртуальным адресом. Работая с виртуальным адресом, процесс не может повредить ни другой процесс, ни память операционной системы. Любой повреждённый указатель внутри процесса локализован в процессе, не обрушивая систему; это очень важно для надёжности системы.

Ядро Linux делит общий доступный объём памяти на страницы. Типичный размер страницы равен 4 Кб. Хотя ядру доступны все страницы, только некоторые из них используются ядром; остальные используются приложениями. Обратите внимание, что страницы, используемые ядром, не являются частью процесса подкачки; по требованию в основную память загружаются только страницы приложений. Это упрощает разработку ядра. Когда приложение должно быть выполнено, нет необходимости быть загруженным в память всему приложению; между памятью и хранилищем переключаются только используемые страницы.

Наличие отдельной памяти пользователя и ядра является самым радикальным изменением, которое разработчик может ожидать при переходе от собственной RTOS. Во первых, все приложения являются частью одного и того же образа, содержащего и эту ОС. Таким образом, когда этот образ загружается, приложения также копируются в память. В Linux, однако, операционная система и приложения скомпилированы и собраны раздельно; каждое приложение имеет свой собственный экземпляр в хранилище, часто называемый программой.

 

Предыдущая  Содержание  Следующая