Comment puis-je obtenir des informations sur l'utilisation de la mémoire à l'aide de l'assembleur zos


FéroceSinge

Comment puis-je obtenir par programmation la quantité de mémoire qu'un programme assembleur utilise actuellement des instructions/macros assembleur à partir du programme en cours d'exécution ? Je débogue une erreur 878 (mémoire insuffisante) et j'aimerais que mon programme signale à différentes étapes la quantité de mémoire qu'il utilise.

Valérie R

La taille de la région peut être définie de différentes manières en fonction du type d'espace d'adressage (session TSO, tâche par lots, STC, ...). Certains sites définissent des tailles de région personnalisées à l'aide d'une sortie SMF, il n'est donc pas toujours facile de comprendre ce qui se passe ici.

La valeur limite pour un espace d'adressage donné est stockée dans la zone de données LDA (voir https://www-304.ibm.com/servers/resourcelink/svc00100.nsf/pages/zOSV2R3ga320937/$file/iead300_v2r3.pdf ). Dans un programme assembleur, vous obtiendriez cette valeur en suivant PSAAOLD à ASCBLDA, puis en examinant la taille de région que vous recherchez.

Une interface plus moderne pour ces éléments est disponible dans les différentes API de services UNIX sous z/OS. Par exemple, getrusage (BPX1GRU) vous donne votre utilisation des ressources pour plusieurs ressources, y compris la mémoire. Tout ce dont un programme assembleur a besoin pour utiliser ce truc est une valeur UID UNIX dans vos informations de sécurité - aucune autre configuration spéciale n'est nécessaire.

Articles connexes