Please enable JavaScript.
Coggle requires JavaScript to display documents.
Управление памятью, . - Coggle Diagram
Управление памятью
4) Управление процессами
Адресное пространство ядра обычно совпадает с адресным пространством выполняющегося в данный момент процесса. В этом случае говорят, что ядро расположено в том же контексте, что и процесс.
Поскольку ядро (код и данные) является частью выполняющегося процесса, таблицы страниц, отображающие старший 1 Гбайт виртуальной памяти, принадлежащей ядру системы, не изменяются при переключении между процессами.
-
Формат виртуальной памяти процесса в режиме задачи зависит, в первую очередь, от типа исполняемого файла, образом которого является процесс.
-
При смене процесса адресное пространство нового процесса становится видимым (отображаемым) в то время как адресное пространство предыдущего процесса является недоступным
-
2) Сегменты
-
-
Трансляция адресов предусматривает однозначное отображение адресов сегмента в непрерывную последовательность физических адресов.
Дескрипторы сегментов
локальной таблице дескрипторов - для трансляции виртуальных адресов сегментов процесса, создается для каждого процесса;
глобальной таблице дескрипторов – для обслуживания адресного пространства ядра, разделяется всеми процессами.
-
Дескрипторы сегментов (кода, данных, стека) имеют несколько полей:
Базовый адрес В этом поле хранится 32-битный адрес начала сегмента.
Процессор добавляет к нему смещение и получает 32-битный линейный адрес.
Предел - определяет размер сегмента. Если результирующий линейный адрес выходит за пределы сегмента, процессор генерирует особую ситуацию.
Привилегии Descriptor Privilege Level (DPL) определяет уровень привилегий сегмента и используется совместно с полем RPL селектора для разрешения или запрещения доступа к сегменту.
-
Права доступа определяет права доступа, ограничивающие множество операций, которые можно производить с сегментом. Например, сегмент кода обычно отмечается как исполняемый и читаемый. Сегменты данных могут иметь право доступа только для чтения, или для чтения и записи.
5) Состояния процесса
-
Замещение страниц
В ранних версиях Unix использовались различные схемы программных оверлеев (overlay), использовавшихся как для прикладных задач, так и для ядра ОС.
Суть этих методов заключается в том, что в неиспользуемые участки адресного пространства процесса записываются другие части программы.
-
Процессы загружались в непрерывные области ОП целиком, выгружался процесс также целиком.
Только небольшое число процессов могло быть одновременно размещено в памяти, и при запуске процесса на выполнение, несколько других процессов необходимо было переместить во вторичную память.
Механизм страничного замещения по требованию был реализован в в 1978 году на новом компьютере UNIX VAX-11/780, имевшем 32-разрядную архитектуру, 4 Гбайт адресуемого пространства и аппаратную поддержкустраничного механизма.
Первой системой UNIX, в которой управление памятью основывалось на страничном замещении по требованию, явилась версия 3.xBSD
Уже в середине 80х годов все основные версии UNIX обеспечивали страничное замещение в качестве основного механизма, оставляя свопингу вторую роль.
-
3) Контекст процесса
Страничный механизм
Все виртуальное адресное пространство (4 Гбайт для процессоров Intel) разделено на блоки одинакового размера, называемые страницами размером 4 Кбайт.
Страница может либо присутствовать в ОП, либо находиться в области свопинга или исполняемом файле процесса.
Страничный механизм допускает, чтобы часть сегмента находилась в ОП, а часть отсутствовала. Это дает ядру возможность разместить в памяти только те страницы, которые в данное время используются процессом, тем самым значительно освобождая ОП
Еще одним преимуществом является то, что страницы сегмента могут располагаться в физической памяти в произвольном месте и порядке, что позволяет эффективно использовать свободное пространство.
-
Р - Признак присутствия в оперативной памяти. Доступ к странице, отсутствующей в памяти (Р=0) вызывает страничную ошибку.
-
⯈U/S - Привилегии доступа. Если U/S = 0, только ядро имеет доступ к адресам страницы. В противном случае, доступ к странице имеют все задачи.
-
-