Virtual memory system and methods

   
   

A virtual memory system includes a hardware-implemented translation lookaside buffer (HTLB) as well as a software-implemented translation lookaside buffer (VTLB). The VTLB is in the system's unmapped memory. The system further includes a plurality of address maps, corresponding to an operating system kernel and to individual tasks executing within the system. The kernel has an address space which includes both mapped and unmapped memory. The address maps corresponding to the individual tasks are stored in the mapped memory of the kernel's address space. The address map corresponding to the kernel itself, however, is stored in the kernel's unmapped memory. HTLB misses are handled by referring to the VTLB. VTLB misses are handled by referring to an appropriate one of the address maps. The code for handling these misses resides in unmapped memory of the kernel's address space. This arrangement prevents recursive TLB misses, without requiring permanent or "wired" VTLB entries. Because there are no permanent VTLB entries, the VTLB can have a simple and efficient structure, and its size can be bounded. As a further features, the address maps are associated with both spin locks and mutex locks. A routine which modifies an individual address map first acquires the mutex lock associated with the address map and performs initial examination of the address map. Once the routine is ready to make actual modification, it also acquires the spin lock. By having the two types of locks, the majority of the routine can be preemptible. Only the portion of the routine which actually modifies the address map needs to be non-preemptible.

Un sistema de la memoria virtual incluye un almacenador intermediario hardware-implemented del lookaside de la traducción (HTLB) así como un almacenador intermediario software-puesto en ejecucio'n del lookaside de la traducción (VTLB). El VTLB está en el sistema unmapped memoria. El sistema más futuro incluye una pluralidad de configuraciones de direcciones, correspondiendo a un núcleo del sistema operativo y a las tareas individuales que se ejecutan dentro del sistema. El núcleo tiene un espacio de dirección que incluya traz y unmapped memoria. Las configuraciones de direcciones que corresponden a las tareas individuales se almacenan en la memoria traz del espacio de dirección del núcleo. La configuración de direcciones que corresponde al núcleo sí mismo, sin embargo, se almacena en el núcleo unmapped memoria. La falta de HTLB es manejada refiriendo al VTLB. La falta de VTLB es manejada refiriendo apropiado de las configuraciones de direcciones. El código para dirigir este falta reside adentro unmapped la memoria del espacio de dirección del núcleo. Este arreglo previene falta recurrente de TLB, sin requerir permanente o entradas "atadas con alambre" de VTLB. Porque no hay entradas permanentes de VTLB, el VTLB puede tener una estructura simple y eficiente, y su tamaño puede ser limitado. Como otras características, las configuraciones de direcciones se asocian a las cerraduras de la vuelta y a las cerraduras del mutex. Una rutina que modifica una configuración de direcciones individual primero adquiere la cerradura del mutex asociada a la configuración de direcciones y realiza la examinación inicial de la configuración de direcciones. Una vez que la rutina sea lista hacer la modificación real, también adquiere la cerradura de la vuelta. Teniendo los dos tipos de cerraduras, la mayoría de la rutina puede ser preemptible. Solamente la porción de la rutina que modifica realmente la configuración de direcciones necesita ser non-preemptible.

 
Web www.patentalert.com

< Resistance and capacitance estimation

< System and method for remote and local diagnosis using automatically identified symbol libraries to create record based requests with tag lists of data to be collected from an operating system

> Integration mechanism for object-oriented software and message-oriented software

> Systems and methods using multiple tuners

~ 00118