...ficheros
Nótese que los sistemas de ficheros se consideran tradicionalmente como parte del SO. Nosotros los consideraremos en cambio como ``software de aplicación'', dado que nuestro enfoque permite que cada aplicación utilice el suyo propio.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...escalabilidad
Término comúnmente adoptado del inglés escalability.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...DAMN
Distributed Adaptable Micro-Nucleus.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...líneas
Esto es, el valor numérico que provoca por software dicha interrupción
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...aplicación
En el sentido de la definición presentada anteriormente (incluyendo por tanto a sistemas de ficheros, DSMs, DVMs, editores, compiladores, etc.)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...comentarios
Nos referimos a los comentarios escritos en C, puesto que el código fuente está redactado de forma literaria [102]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...mantenimiento
esto es, bookkeeping.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...saberlo
Naturalmente, sólo en el caso en que no les importe esta circunstancia. Siempre existe la posibilidad de que dichas aplicaciones controlen explícitamente el uso de recursos remotos.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...(DAMN
Distributed Adaptable Micro-Nucleus.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...distribuido
Puede apreciarse, no obstante, el paralelismo con las que realiza un SO centralizado.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...Intel/PC
En ellas sólo el primer Mbyte de la memoria es capaz de recibir proyecciones de dispositivos de E/S y sólo los primeros 16 Mbytes son capaces de operar con acceso directo a memoria (DMA).
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...homogéneos
Esto es, que dados dos nombres cualesquiera ambos deban presentar siempre la misma estructura.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...volátil
Ello no supone pérdida de eficiencia puesto que no es preciso acceder a memoria no volátil siempre que se incrementa dicho contador. El contador podría incrementarse n veces sin acceder a memoria no volátil siempre que en tiempo de arranque se incremente n veces el contador.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...página
Concretamente, aquellos que sostienen páginas no expulsables.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...distinto
Esto implica que todo elemento contenido en dicho vector deberá contener su identificador, para que sea posible efectuar una comparación entre identificadores y averiguar qué objeto está contenido en cada entrada.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...distribuida
También puede implementarse de forma centralizada, al igual que ocurre con los dos puntos siguientes.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...volátil
El gestor de memoria distribuida (DMM) incorporado en Off también permite la implementación de persistencia de un modo casi trivial, como ya veremos.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...DMA
No incorporados en la implementación actual.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...SO
Ejecutando éste fuera del tex2html_wrap_inline8127kernel.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...preinicializar
Una de las características del Slab incorporado en Solaris consiste en la delegación de la inicialización de los objetos contenidos en el Slab, de tal modo que no es preciso inicializarlos explícitamente. El Slab realiza la inicialización de dichos objetos sólo cuando es estrictamente necesario y libera al resto del kernel de tal responsabilidad.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...paginar
Esto no se hace por razones de simplicidad en la implementación actual.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...sistema
Una vez concluido el trabajo de la presente tesis y el presente manuscrito, hemos visto que esta aseveración es un error. En el apartado 5.1.1 se hablará de este problema.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...PMM
Physical Memory Manager
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...móviles
En inglés, ``Migrating threads''.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...RPC
Del inglés Remote Procedure Call.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...PCT
Del inglés, Protected Control Transfer.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...modularizar
Basta con que cada módulo empaquete su parte del estado.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...multiproceso
Siempre, en la implementación actual.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...E/S
Todos, en la implementación actual.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...valores
En realidad bastaría con suministrar el nuevo valor, pero conceptualmente se está reemplazando un valor antiguo con otro nuevo y el suministro de ambos valores en la invocación de la función de conmutación evita en ciertos casos el mantenimiento de estado en el implementador del tipo de recurso considerado.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...reducido
Para implementar ésto basta anotar la ocurrencia de dicha interrupción en una máscara de interrupciones ``pendientes''. Como el nivel de prioridad se implementa como una propiedad de Shuttle, la función de conmutación de dicha propiedad puede mirar el conjunto de interrupciones pendientes siempre que sea invocada (siempre que varíe el nivel de prioridad en el transcurso de un cambio de contexto) y contemplar los niveles de prioridad de las mismas de tal modo que si el nuevo valor de prioridad (del shuttle) a instalar permite el envío de interrupciones ``suspendidas'' éstas se envían
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...procesos
Aunque debemos recordar que Off no tiene ninguna abstracción que corresponda a un ``proceso''
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...asíncronamente
Con respecto a la ejecución de código en el servidor
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...cualquiera
Además hay otros puntos de entrada que permiten consultar y alterar el valor de las propiedades de un shuttle.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...PCTs
Aunque el mecanismo empleado sea una llamada a un portal, implementada mediante traps, la semántica corresponde a PCTs entre el usuario y el núcleo.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...excepción
Las ``excepciones'' a que nos referimos en este apartado son en realidad upcalls que realiza el kernel para requerir la ayuda de la aplicación. No obstante, la percepción del usuario es que ha ocurrido una excepción que debe tratarse para poder proseguir con la ejecución normal. Debido a ello nos referiremos a dichos upcalls como ``excepciones'' (percibidas por el usuario y ``creadas'' por el kernel).
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...trampolín
código ejecutable instalado directamente en la pila
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...disponemos
En efecto, aunque no lo hemos mencionado, es factible ceder el resto de quantum en que ejecutamos al shuttle que ejecutará el manejador.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...menos
Cuando el tex2html_wrap_inline8127kernel está compilado con soporte para espacios de direcciones.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...trampolín
código ejecutable instalado directamente en la pila
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...(DVM
Distributed Virtual Memory
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...(DSM
Distributed Shared Memory
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...DMM
Distributed Memory Manager
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...expulsarse
Aunque existen algunos derivados de Mach que permiten que el paginador escoja qué páginas hay que expulsar, no obstante el problema persiste: la implementación de los espacios de direcciones está prefijada dentro del núcleo y no es posible alterarla cuando es necesario.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...páginas
De aquí en adelante usaremos ``tabla de páginas'' para referirnos a la estructura de datos empleada por el hardware, con independencia de que ésta sea una auténtica tabla de páginas, una TLB o una combinación de ambas.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...(PFN
Page Frame Number.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...Off
En lo que sigue utilizaremos Off y DAMN indistintamente, puesto que nos estaremos siempre refiriendo al modelo del sistema propuesto.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...ficheros-distribuidos
Más correctamente, ficheros pertenecientes al sistema de ficheros distribuido que permiten interacciones simultaneas desde distintos nodos.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...siempre
En algunos sistemas se obliga a las aplicaciones a emplear determinados componentes de tal suerte que, aunque éstos estén implementados fuera del tex2html_wrap_inline8127kernel, dichos componentes no pueden adaptarse en base a la aplicación que los utiliza. Tales componentes son pues tan inadaptables como si estuviesen cableados dentro del núcleo (aunque sea más simple reemplazarlos).
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...Spring
Un sistema de tiempo real que no hay que confundir con el sistema distribuido del mismo nombre desarrollado por Sun.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...descriptores
De igual modo que en UNIX se emplean descriptores de fichero y en Mach se emplean derechos de acceso a puertos.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...dinámico
dynamic binding
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...modificado
Siempre se puede forzar el uso de un compilador en el que sí confiamos si forzamos un sistema de compilación bajo demanda en el momento de la inserción del código de usuario dentro del núcleo.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...(POSE
Parallel Operating System Extension
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...Off
Cuya implementación ya ha comenzado como parte del trabajo futuro.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...Off
En realidad pensamos utilizar Off++.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

Francisco J. Ballesteros
Fri Dec 19 17:18:03 MET 1997