User Tools

Site Tools


управление_памятью

Ядро - правление памятью

Поскольку ядро должно управлять памятью во время переключения контекста, оно наделено этой сложной функцией. Работа ядра сложна, поскольку необходимо учитывать следующие условия:

  • ядро должно располагать собственной областью памяти, к которой не могут получить доступ пользовательские процессы;
  • каждому пользовательскому процессу необходима своя область памяти;
  • какой-либо пользовательский процесс не должен иметь доступ к области памяти, предназначенной для другого процесса;
  • пользовательские процессы могут совместно использовать память;
  • некоторые участки памяти для пользовательских процессов могут быть предназначены только для чтения;
  • система может применять больше памяти, чем ее есть в наличии, задействовав в качестве вспомогательного устройства дисковое пространство.

У ядра есть помощник. Современные процессоры содержат модуль управления памятью (MMU), который активизирует схему доступа к памяти под названием «виртуальная память». При использовании виртуальной памяти процесс не обращается к памяти напрямую по ее физическому расположению в аппаратных средствах. Вместо этого ядро настраивает каждый процесс таким образом, словно в его распоряжении находится вся машина. Когда процесс получает доступ к памяти, модуль MMU перехватывает такой запрос и применяет карту адресов памяти, чтобы перевести местоположение памяти, полученное от процесса, в физическое положение памяти на компьютере. Однако ядро все же должно инициализировать, постоянно поддерживать и изменять эту карту адресов. Например, во время переключения контекста ядро должно изменить карту после отработавшего процесса и подготовить его для наступающего. <callout type=“primary” icon=“true” title=“ПРИМЕЧАНИЕ”>Реализация карты адресов памяти называется таблицей страниц.</callout>

управление_памятью.txt · Last modified: 2023/04/06 10:28 (external edit)