Sistemas operativos modernos

mientos dentro del archivo para buscar un bioque dado, cosa que no puede hacerse en los pri­ meros. Desde el punto de vista técnico, los dispositivos de red son dispositivos de caracteres, pe­ ro se manejan de forma tan distinta que separarlos, como se hizo en la figura, podría mejorar la claridad. El despacho de procesos se efectúa cuando se presenta una interrupción. El código de bajo nivel de este componente detiene el proceso que se estaba ejecutando, guarda su estado en la tabla de procesos del kemel e inicia el controlador apropiado. También hay despacho de pro­ cesos cuando el kemel termina y llega el momento de reiniciar un proceso de usuario. El códi­ go de despacho está en ensamblador y es muy disfinto de la calendarización. Arriba del nivel inferior, el código es diferente en cada una de las cuatro “columnas” de la figura 10-3. A la izquierda tenemos los dispositivos de caracteres, que pueden usarse de dos maneras. Algunos programas, como los editores visuales (por ejemplo, vi y emacs) quieren en­ terarse de cada pulsación tan pronto como se oprime la tecla. La E/S de terminal cruda sirve para esto. Otros programas, como el shell (sh) están orientados hacia las líneas y permiten al usuario editar la línea actual antes de oprimir ENTRAR para enviarla al programa. Ese software utiliza modo cocinado y disciplinas de línea. El software de red suele ser modular y reconocer diferentes dispositivos y protocolos. La ca­ pa que está arriba de los controladores de red desempeña una especie de función de enrutamien- to, asegurándose de que el paquete correcto se envíe al dispositivo o controlador de protocolo correcto. La mayoría de los sistemas UNDC contiene toda la funcionalidad de un enrutador de In­ ternet dentro del kemel, aunque su desempeño no es tan bueno como el de un enrutador de hard­ ware; sin embargo, este código se escribió antes de que se fabricaran los enrutadores moderaos de hardware. Arriba del código de enrutador está la pila de protocolos propiamente dicha, que siempre incluye IP y TCP, pero a veces también otros protocolos. Superpuesta a toda la red está la interfaz de sockets, que permite a los programas crear sockets para redes y protocolos específicos y recibir a cambio un descriptor de archivo para cada socket, el cual podrán usar después. Encima de los controladores de discos están el caché de búfer y el caché de páginas del sistema de archivos. En los primeros sistemas UNIX, el caché de búfer era un trozo fijo de la memoria, y el resto de la memoria se dedicaba a páginas de usuario. En muchos sistemas UNIX modernos ya no hay una frontera fija y puede tomarse cualquier página de memoria para cual­ quiera de las dos funciones, dependiendo de lo que más se necesite. Arriba del caché de búfer están los sistemas de archivos. La mayoría de los sistemas UNIX maneja múltiples sistemas de archivos, incluido el sistema rápido de archivos de Berkeley, el sistema de archivos con estructura de registro y diversos sistemas de archivos de System V. To­ dos éstos comparten el mismo caché de búfer. Encima de los sistemas de archivos está la asig­ nación de nombres a los archivos, la administración de directorios, la administración de enlaces duros y enlaces simbólicos y otras propiedades del sistema de archivos que son iguales para to­ dos los sistemas de archivos. Encima del caché de páginas está el sistema de memoria virtual. Aquí se encuentra toda la lógica de paginación, como el algoritmo de reemplazo de páginas. Encima de esto viene el có­ digo para establecer la correspondencia de archivos en la memoria virtual y el código de alto nivel para manejar los fallos de página. Éste es el código que determina lo que debe hacerse cuando se presenta un fallo de página. Primero verifica si la referencia a memoria es válida y, de serlo, determina dónde está la página requerida y cómo puede obtenerse.

RkJQdWJsaXNoZXIy MjI4NDcx