Уже как бы всё выяснили? Можно не отвечать?
В том же посте приведена таблица "Режимы работы и распределение памяти". Видите в ней квадратик, обведённый двойной рамкой?
Это участок, где можно полностью корректно обратиться ко всем 32 Кбайтам памяти страницы СМК, для этого используется два разных режима.
Таким образом, в одном режиме, тест может оперировать только 16 кбатным участком памяти, половиной страницы.
Поэтому, в тестах было принято решение называть страницей именно эту половинку страницы СМК. Для простоты понимания. Поэтому для теста существует 32 страницы по 16 Кб, а не 16 шт. по 32 Кб.
Это говорит о том, что маппер памяти работает как-то не так, один и тот же участок физической памяти подключается в двух или более разных сегментах.
7й сегмент делится на две части: 170000-176777 и 177000-177777 и для этих частей разные правила. Если в первой части ОЗУ всегда, оно нужно для работы с HDD, то во второй части ОЗУ только тогда, когда нужны спецрежимы работы СМК. Там ведь регистры и порты, ОЗУ мешается.
В сообщении - 0 1 2 3 - это порядковые номера участков памяти, куда подключаются соответствующие по таблице сегменты.
0 = участок памяти 100000-107777, 1 =участок памяти 110000-117777 и т.д.
Вообще, весь этот код, который вызывает непонимание - это нативный код от фирмы АльтПро, может от Новака или ещё кого. Он используется без изменения ещё с тестов A16. Я только постарался как можно более подробно вывести интерпретацию результата его работы. Получилось, как получилось.
Тут вообще очень сложно с терминологией. Сегмент памяти - это и адресное пространство на БК, куда подключается ОЗУ и это же сам участок ОЗУ СМК, которое диспетчером памяти мапится в заданное адресное пространство. И страница тоже означает разные вещи в зависимости от контекста.



Ответить с цитированием
