Gestion de la mémoire.
2 participants
Page 1 sur 1
Gestion de la mémoire.
Ya un truc qui n'est pas très clair pour moi.
quelles différences ou liens y a t il entre les fonctions RESERVE et MALLOC
RESERVE permet de fixer la taille que doit avoir la zone de mémoire employée par GFA BASIC
MALLOC sert à réserver (allouer) des zones de mémoire.
Les zones mémoire réservées par MALLOC sont elles incluses dans la zone RESERVE ou est ce différent ?
Dans le manuel, il est écrit que pour libérer une zone réservée par RESERVE xxxx il suffit de faire un RESERVE sans argument.
Quand je le fais en fin de programme, j'ai une erreur "RESERVE Erreur"
Quelqu'un peut m'éclairer ?
quelles différences ou liens y a t il entre les fonctions RESERVE et MALLOC
RESERVE permet de fixer la taille que doit avoir la zone de mémoire employée par GFA BASIC
MALLOC sert à réserver (allouer) des zones de mémoire.
Les zones mémoire réservées par MALLOC sont elles incluses dans la zone RESERVE ou est ce différent ?
Dans le manuel, il est écrit que pour libérer une zone réservée par RESERVE xxxx il suffit de faire un RESERVE sans argument.
Quand je le fais en fin de programme, j'ai une erreur "RESERVE Erreur"
Quelqu'un peut m'éclairer ?
Shaoth- Messages : 64
Date d'inscription : 28/09/2020
Age : 54
Localisation : Courbevoie
Re: Gestion de la mémoire.
Salut!
Je débute aussi mais je connais le TOS. Le process GFA basic réserve de la mémoire pour lui et pour ses variables (y compris les chaînes), c'est ce qu'on fait avec RESERVE.
Quand le TOS lance un programme, il le stocke dans un bloc mémoire nommé TPA (transient program area) et lui donne le plus grand bloc mémoire disponible. C'est une bonne pratique de réduire cette mémoire à ce dont on a besoin. Dans un environnement multitâche, ça permet de ne pas monopoliser toute la mémoire et donc aux autres programmes de pouvoir être lancés.
En gros, le RESERVE permet d'ajuster cela, c'est à dire de réduire la mémoire utilsée par le GFA BASIC et ses variables. Quand le programme se termine, la TPA est libérée.
Si le programme a besoin de plus, il peut demander de la mémoire au système d'exploitation (le TOS) par MALLOC. Cette mémoire doit être libérée par MFREE (enfin c'est ce que dit la doc mais chez moi ce mot clé n'est pas réconnu c'est pour ça que je suis là lol)
D'ailleurs j'ai la même erreur que toi avec RESERVE avec GFA 3.06 et GFA 3.6.
Je débute aussi mais je connais le TOS. Le process GFA basic réserve de la mémoire pour lui et pour ses variables (y compris les chaînes), c'est ce qu'on fait avec RESERVE.
Quand le TOS lance un programme, il le stocke dans un bloc mémoire nommé TPA (transient program area) et lui donne le plus grand bloc mémoire disponible. C'est une bonne pratique de réduire cette mémoire à ce dont on a besoin. Dans un environnement multitâche, ça permet de ne pas monopoliser toute la mémoire et donc aux autres programmes de pouvoir être lancés.
En gros, le RESERVE permet d'ajuster cela, c'est à dire de réduire la mémoire utilsée par le GFA BASIC et ses variables. Quand le programme se termine, la TPA est libérée.
Si le programme a besoin de plus, il peut demander de la mémoire au système d'exploitation (le TOS) par MALLOC. Cette mémoire doit être libérée par MFREE (enfin c'est ce que dit la doc mais chez moi ce mot clé n'est pas réconnu c'est pour ça que je suis là lol)
D'ailleurs j'ai la même erreur que toi avec RESERVE avec GFA 3.06 et GFA 3.6.
vinz67- Messages : 6
Date d'inscription : 18/02/2020
Localisation : Durningen
Shaoth aime ce message
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|