@sdf4sdf

Модель управления памятью в Linux все та же?

Прочитал статью об управлении памятью в Linux для x86 (IBM 01.2006): ссылка https://www.ibm.com/developerworks/ru/library/l-memmod/

1. В современном (12.2016) Linux (4.8, 4.9) все так же память делится на сегменты, а затем на страницы?
2. На сколько я понял х86-64 до сих пор предоставляет сегментные регистры, но не все ядра их используют, разбивая память лишь на страницы, верно?
3. Какую часть памяти суммарно съедают системные дескрипторные таблицы?
  • Вопрос задан
  • 1665 просмотров
Пригласить эксперта
Ответы на вопрос 2
Frankenstine
@Frankenstine
Сисадмин
Это не от оси зависит, а от архитектуры процессора и шины памяти. И да, всё ещё интел х86/х64 используют и будут использовать дальше страничную адресацию, как и многие другие процессоры, типа МИПС.
Без использования страничной организации памяти невозможно было бы использовать защищённый режим работы процессора, виртуализацию, защиту данных от попыток исполнения (NX bit) и многое другое, а системная таблица для учёта занятой памяти занимала бы ровно половину объёма оперативки.
Ответ написан
1. Linux изначально использует плоскую модель FLAT, где указатели сегментов кода, данных и стека имеют одинаковый базовый адрес. А это означает, что сегментная организация памяти в Linux не используется. Это значительно упрощает перенос на другие платформы. Страничная организация памяти предназначена для создания виртуальной памяти. Это позволяет реализовать многозадачность куда проще. Существуют такие версии Linux, работающие без страничной памяти. Это нужно только для контроллеров, микроконтроллеров.

2. Нет. x86-64 даёт только два регистра-сегмента для контекста, они нужны очень виртуальным машинам. Остальные регистры недоступно физически. Сегодня именно что все процессоры разбивают память на страницы. Всегда. Без страничной памяти нельзя работать. Ибо начнётся сильная фрагментация с тяжёлыми последствиями. Другое дело, когда страницы могут иметь разный размер для снижения размера таблицы преобразования адресов. Но они имеют чётко фиксированный размер.

3. Таблицы дескрипторов имеют максимальный размер: 64 КБ - 8192 дескрипторов. Это написано во многих книгах. Существует глобальный, который всегда один, а есть локальный, который зависит от программ. А также прерываний.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы