Как я могу получить информацию об использовании памяти, используя zos ассемблер
Как я могу программно получить объем памяти, который программа ассемблера в настоящее время использует с помощью инструкций / макросов ассемблера, из запущенной программы? Я отлаживаю ошибку 878 (недостаточно памяти), и мне бы хотелось, чтобы моя программа на разных этапах сообщала, сколько памяти она использует.
1 ответ
Размер региона может быть задан различными способами в зависимости от типа адресного пространства (сеанс TSO, пакетное задание, STC, ...). Некоторые сайты устанавливают нестандартные размеры регионов, используя выход SMF, поэтому не всегда легко понять, что здесь происходит.
Предельное значение для данного адресного пространства хранится в области данных LDA (см. https://www-304.ibm.com/servers/resourcelink/svc00100.nsf/pages/zOSV2R3ga320937/$ file / iead300_v2r3.pdf). В ассемблерной программе вы получите это значение, следуя PSAAOLD ASCBLDA, а затем изучая любой размер региона, который вы ищете.
Более современный интерфейс для этого доступен в различных API-интерфейсах UNIX Services в z/OS. Например, getrusage (BPX1GRU) дает вам возможность использовать ресурсы для нескольких ресурсов, включая память. Все, что требуется программе-ассемблеру для использования этого материала, - это значение UID UNIX в вашей информации о безопасности - никаких других специальных настроек не требуется.