24/9/09

XDS-940

Por Pc Internet.
El sistema operativo XDS-940 se diseñó en la University of California at Berkeley. Al igual que el sistema Atlas, usaba paginación para la gestión de memoria. A diferencia del sistema Atlas, XDS-940 era un sistema de tiempo compartido.
La paginación se usaba sólo para reubicación, no para paginación por demanda. La memoria virtual de cualquier proceso de usuario era de sólo 16K palabras, mientras que la memoria física tenía 64K palabras. Las páginas eran de 2K palabras cada una.
En el XDS-940 la tabla de páginas se mantenía en registros. Puesto que la memoria física era más grande que la virtual, varios procesos de usuario podían estar en la memoria al mismo tiempo. El número de usuarios se podía incrementar compartiendo páginas cuando éstas contenían código reentrante sólo para lectura. Los procesos se mantenían en un tambor y se intercambiaban entre el tambor y la memoria según era necesario.
El sistema XDS-940 se construyó a partir de un XDS-930 modificado. Las modificaciones fueron representativas de los cambios que se hacían a un computador básico para permitir la escritura correcta de un sistema operativo. Se añadió un modo de usuario-monitor. Ciertas instrucciones, como las de E/S y la de parar (Halt) se definieron como privilegiadas. Un intento de ejecutar una instrucción privilegiada en modo de usuario transfería el control al sistema operativo a través de una trampa.
Se agregó una instrucción de llamada al sistema al conjunto de instrucciones en modo de usuario. Esta instrucción servía para crear recursos nuevos, como archivos, lo que permitía al sistema operativo controlar los recursos físicos. Los archivos, por ejemplo, se asignaban en bloques de 256 palabras en el tambor. Se usaba un mapa de bits para llevar el control de los bloques libres en el tambor. Cada archivo tenía un bloque índice con punteros a los bloques de datos reales. Los bloques índice se encadenaban unos con otros.
El sistema XDS-940 también contaba con llamadas al sistema que permitían a los procesos crear, iniciar, suspender y destruir subprocesos. Un programador usuario podía construir un sistema de procesos. Los procesos individuales podían compartir la memoria para fines de comunicación y sincronización. La creación de procesos definía una estructura de árbol en la que un proceso era la raíz y sus subprocesos eran nodos abajo de él en el árbol. Cada uno de los subprocesos podía, a su vez, crear más subprocesos.