Finalmente, se presenta la interfaz de acceso de usuario.
Para Windows, la secuencia de arranque es la siguiente:
1.La BIOS accede al MBR indicando cuál es la partición activa.
2.Se accede al sector de arranque o boot de dicha partición, que ha sido creado durante la instalación del SO.
3.El sector de arranque direcciona al fichero NTLDR (para XP), o bien BOOTMGR (sustituto del NTLDR) en sistemas posteriores.
4.NTLDR o BOOTMGR accede al fichero BOOT.INI o BOOTBCD respectivamente, que contiene información de la ubicación de otros sistemas instalados en el equipo. Si los hay, aparece un menú de arranque para elegir con cuál se quiere iniciar el equipo.
5.Comienza el inicio del sistema ejecutando el kernel ubicado en el fichero NTOSKRNL.EXE.
El proceso de finalización o parada del sistema operativo lleva a cabo la liberación de todos los recursos del sistema, así como la parada y destrucción de todos los procesos que se encuentran en ejecución.
Aplicación práctica
Imagine que su sistema operativo está instalado en la única partición del disco duro del sistema y que, por lo tanto, en los primeros sectores del disco se encuentra el programa que se encarga de cargar el sistema operativo. Describa la secuencia de pasos genéricos que se producen desde que arranca el equipo hasta que se produce la petición de autenticación en el sistema operativo.
SOLUCIÓN
1 La BIOS accede al MBR, que se encuentra en los primeros sectores del disco.
2 EL MBR determina cuál es la partición activa.
3 Se accede a los primeros sectores de la partición activa donde se encuentra el programa de arranque.
4 Se ejecuta el programa dentro del sector de arranque. Este programa carga en memoria el embrión del sistema operativo.
5 Después, el programa de arranque transfiere el control de ejecución al embrión del sistema operativo para que termine la carga de los demás módulos.
6 Cuando el sistema operativo ha alcanzado un nivel de carga suficiente, se ejecuta el programa de autenticación de usuario.
3.Características estructurales de los sistemas operativos
La influencia final que tiene la arquitectura del sistema operativo sobre todos los aspectos funcionales del mismo es tan grande que es necesario un estudio detallado de los modelos básicos para entenderla. A lo largo del tiempo, la estructura interna de los principales sistemas operativos ha evolucionado hasta adaptarse a un modelo que permite un mejor desarrollo de aplicaciones para el sistema operativo. Una primera clasificación que es posible hacer es la siguiente:
En un sistema operativo con este tipo de arquitectura, todas las funciones se encuentran codificadas en un único módulo. Está compuesto de un conjunto de procedimientos, que se pueden invocar entre ellos según la necesidad y sin restricciones. Cada procedimiento tiene una signatura bien definida, es decir, los parámetros de entrada y el resultado de salida son conocidos.
Hay que tener en cuenta que este tipo de modelo no es lo mismo que un modelo sin estructura. Realmente, existe una estructura, aunque sea muy primitiva. Todo sistema operativo puede ejecutar en dos modos: modo núcleo (modo kernel) o modo usuario. En un sistema monolítico, los procedimientos correspondientes a servicios del sistema operativo (llamadas al sistema) se pueden solicitar estableciendo los parámetros de entrada y realizando una llamada especial (llamada al kernel) para ejecutar el procedimiento.
La llamada especial realiza el cambio entre el modo usuario y el modo kernel y transfiere el control de la ejecución al sistema operativo.
Cómo puede realizarse una llamada al sistema: (1) El programa de usuario entra en el kernel por una trampa mediante una operación Trap. (2) El sistema operativo determina el número de servicio requerido. (3) El sistema operativo invoca el procedimiento de servicio. (4) Se devuelve el control al programa de usuario.
El sistema operativo comprueba los parámetros de entrada y, en función de ellos, busca en una tabla interna la referencia al procedimiento que se debe ejecutar en función de estos parámetros. Se ejecuta y el resultado se transfiere al programa de usuario que realizó la llamada. Por lo tanto, se vuelve a pasar al modo usuario.
Este tipo de arquitectura se puede ver como un modelo de tres niveles:
Un programa principal que realiza la llamada al servicio del SO.
Un conjunto de procedimientos de servicio que realizan las llamadas al sistema.
Un conjunto de procedimientos auxiliares que ayudan a los anteriores y que suelen ser comunes para varios procedimientos de servicio.
Entre los principales inconvenientes, se encuentran:
Falta de modularidad.
Dificultad para modificaciones.
Dificultad en la detección y corrección de errores.
Necesidad de recompilación en cada cambio.
La idea de esta arquitectura es que un pequeño módulo (microkernel) proporcione la funcionalidad básica del SO. Y que ese módulo sea extendido con ampliaciones. De esta manera, solo las funciones fundamentales y esenciales deben permanecer en el microkernel. Todas las demás funciones del SO se ejecutarán fuera del microkernel en modo usuario.
Por lo general, este tipo de arquitecturas está compuesto de módulos o servidores que proporcionan la funcionalidad tradicional del SO. Algunas ventajas son:
Uniformidad en las interfaces: la solicitud de servicios está bastante bien definida.
Читать дальше