A method for a user process to specify a policy for allocating pages of
physical memory on the nodes of a multinode multiprocessor computer
system. Through means such as a system call, an application program can
specify to the operating system that physical pages of memory for an
application-specified portion of virtual address space are to be
physically allocated upon a specified set of nodes, subject to the
additional selection criteria that the pages are to be allocated at first
reference upon: 1) the node upon which the reference first occurs; 2) the
node which has the most free memory, or 3) that the pages should be evenly
distributed across the indicated set of nodes. In effect, the operating
system remembers the specified allocation policy and node set from which
the physical pages can be subsequently allocated as established by a
system call. Subsequent use of the virtual address space for which the
allocation policy is defined results in the memory being allocated
accordingly. In this way, an application program can use memory with the
memory-locality most advantageous to it. The preferred embodiments of the
invention include extensions to the mmap and shmget functions of
UNIX-based operating systems.
Un método para que un proceso del usuario especifique una política para asignar las páginas de la memoria física en los nodos de un sistema informático del multiprocesador del multinode. Con medios tales como una llamada del sistema, un programa de uso puede especificar al sistema operativo que las páginas físicas de la memoria para una porción uso-especificada de espacio de dirección virtual deben ser asignadas físicamente sobre un sistema especificado de nodos, conforme a los criterios de selección adicionales que las páginas deben ser asignadas en la primera referencia sobre: 1) el nodo sobre el cual la referencia primero ocurre; 2) el nodo que tiene la memoria más libre, o 3) que las páginas se deben distribuir uniformemente a través del sistema indicado de nodos. En efecto, el sistema operativo recuerda la política y el nodo especificados de la asignación fijados de los cuales las páginas físicas se pueden asignar posteriormente según lo establecido por una llamada del sistema. El uso subsecuente del espacio de dirección virtual para el cual se define la política de la asignación da lugar a la memoria que es asignada por consiguiente. En esta manera, un programa de uso puede utilizar memoria con el memoria-lugar más ventajoso a él. Las encarnaciones preferidas de la invención incluyen extensiones a las funciones del mmap y del shmget de sistemas operativos UNIX-basados.