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

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

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

У ядра есть помощник. Современные процессоры содержат модуль управления памятью (MMU), который активизирует схему доступа к памяти под названием «виртуальная память». При использовании виртуальной памяти процесс не обращается к памяти напрямую по ее физическому расположению в аппаратных средствах. Вместо этого ядро настраивает каждый процесс таким образом, словно в его распоряжении находится вся машина. Когда процесс получает доступ к памяти, модуль MMU перехватывает такой запрос и применяет карту адресов памяти, чтобы перевести местоположение памяти, полученное от процесса, в физическое положение памяти на компьютере. Однако ядро все же должно инициализировать, постоянно поддерживать и изменять эту карту адресов. Например, во время переключения контекста ядро должно изменить карту после отработавшего процесса и подготовить его для наступающего.

ПРИМЕЧАНИЕ

Реализация карты адресов памяти называется таблицей страниц.
  • управление_памятью.txt
  • Последнее изменение: 2021/07/14 09:20
  • admin