Toolkit II, Manual de Usuario
Anterior Siguiente

15 Administración de la Memoria

Como el QDOS es un sistema operativo multitarea, y puede haber varias tareas ejecutándose a la vez en un QL, la cantidad de memoria libre es impredecible. Ninguna tarea debe asumir que la cantidad de memoria libre es fija. Puede usarse la función FREE_MEM para averiguar la cantidad de memoria libre (definida como el espacio disponible para el sistema de bloques esclavos de ficheros menos el espacio requerido para dos -en el QL Toolkit sólo uno- de dichos bloques).

Se puede reservar temporalmente espacio en la "pila común" mediante la función ALCHP la cual devuelve la dirección de la base del espacio reservado. Se pueden anular reservaciones individuales mediante el comando RECHP, o se pueden anular todas mediante los comandos CLCHP (limpia la pila común), CLEAR o NEW.

FREE_MEM devuelve la cantidad de memoria libre
ALCHP (número de bytes) reserva memoria en la pila común y devuelve la dirección de la base del espacio
RECHP dirección de la base libera espacio de la pila común
CLCHP libera todas las reservas de la pila común

Si se hacen grandes reservas en la pila común y, a continuación, se accede por primera vez a un disco, se puede causar un terrible mal a la pila llamado "fragmentación en gran escala": los bloques de definición del dispositivo se dispersan enormemente en la pila dejando grandes agujeros que dejan de estar disponibles excepto para entradas de la pila (es decir, en ellos no se pueden cargar programas). Un solución simple pero peligrosa consiste en borrar los bloque de definición de los dispositivos:

DEL_DEFB borra fichero de los bloques de definición de la pila común

Aunque en dicho procedimiento toma precauciones para minimizar el daño, debe tenerse cuidado de evitar el uso de este comando cuando algún dispositivo de tipo directorio esté activo.


Anterior Índice de Materias Siguiente
Control de la pantalla   Parámetros de procedimientos