¿Cómo puede asegurar que se ha quedado sin espacio en memoria principal? Hay varias formas de comprobar la paginación en la máquina, pero tal vez la prueba más sencilla es comparar el tamaño de su programa con la cantidad de memoria disponible. Esto se hace mediante el comando size:
% size myprogram
En una máquina con UNIX Sistema V, la salida será similar a la siguiente:
53872 + 53460 + 10010772 = 10118104
En un sistema derivado del UNIX de Berkeley, se verá similar a:
text data bss hex decimal
53872 53460 10010772 9a63d8 10118104
Los tres primeros campos describen la cantidad de memoria necesaria para tres porciones distintas de su programa. La primera, el segmento de texto, contabiliza las instrucciones de máquina que forman su programa. La segunda, el segmento de datos, incluye los valores inicializados en su programa, tales como los contenidos de las sentencias de datos, bloques comunes, externos, cadenas de caracteres, etc. El tercer componente, bss (block started by symbol), usualmente es el mayor. Describe un área de datos sin inicializar en su programa. Esta área está formada de bloques comunes que no están ocupados por un bloque de datos. El último campo es la suma de las tres secciones, en bytes.2
Después, requiere saber cuánta memoria tiene su sistema. Desafortunadamente, no existe un comando UNIX estándar para eso. En los sistemas RS/6000, /etc/lscfg se lo dice. En una máquina SGI, /etc/hinv lo hace. Muchas implementaciones de UNIX Sistema V tienen un comando /etc/memsize. En un derivado de Berkeley, puede teclear:
% ps aux
Este comando le devuelve un listado de todos los procesos ejecutándose en la máquina. Encuentre el proceso con el valor más grande en la columna %MEM. Divida el valor en el campo RSS entre el porcentaje de memoria usado, para obtener un valor aproximado de cuánta memoria tiene su máquina:
memory = RSS/(%MEM/100)
Por ejemplo, si el proceso más grande muestra un uso de memoria del 5% y un tamaño de conjunto residente (RSS, resident set size) de 840 KB, su máquina tiene 840000/(5/100) = 16 MB de memoria.3 Si la respuesta del comando size muestra un total cercano a la cantidad de memoria que tiene, hay una buena posibilidad de que ocurra intercambio de páginas cuando lo ejecute - especialmente si está realizando otras cosas en la máquina al mismo tiempo.




