El documento describe los conceptos fundamentales de los sistemas operativos y la arquitectura de computadoras. Explica que un sistema operativo es un programa dirigido por interrupciones que gestiona los recursos hardware y permite la ejecución simultánea de procesos. También describe las funciones de las API de Windows, las versiones de API, y los componentes necesarios para desarrollar software para Windows como compiladores y librerías.
2. organización computacional arquitectura 2 Sistemas Operativos I Arquitectura de computadoras ú organización computacional: Forma en la que están dispuestos e interrelacionados los elementos de hardware del sistema informático.
4. Windows Sistemas Operativos I 4 API de Windows La Interfaz de Programación de Aplicaciones, cuyo acrónimo en inglés es API (ApplicationProgramming Interface): Es un conjunto de funciones residentes en bibliotecas (generalmente dinámicas) que permiten que una aplicación corra bajo el sistema operativo Windows. Debido a su estrecha relación con el desarrollo de software, los programas en sus especificaciones generalmente explicitan la versión de la API del sistema operativo, mediante diversas nomenclaturas tales como: La versión específica del sistema operativo (para Windows 98, por ejemplo). Explicitando la versión del conjunto de librerías (Plataforma Win32, etc.).
6. Windows Sistemas Operativos I 6 versiones de API La primera versión de API fue de 16 bits, y llamada Win16. Sólo se utilizaba en las versiones de 16 bits de Windows. En su nueva versión 32 bits, se incrementó el número de APIs disponibles para los sistemas operativos Microsoft Windows. Microsoft proporciona un SDK (kit de desarrollo de aplicaciones) en el que se incluyen la documentación y las herramientas necesarias para que los programadores puedan crear sus aplicaciones y aprovechar los recursos del sistema. Las versiones modernas de Windows utilizan la API de 32 bits llamada Win32. Está compuesta por funciones en C almacenadas en librerías de enlace dinámico (DLL), especialmente en las del núcleo: kernel32.dll user32.dll gdi32.dll Aunque la implementación de Microsoft tiene derechos de autor, generalmente se acepta que otras empresas puedan emular Windows proporcionando APIs idénticas, sin que implique violación de derechos de autor. La extensión 64 bits de la versión 32 bits se llama Win64. La siguiente versión es WinFX, que está basada en nuevas tecnologías que se están probando en la versión de Windows Vista.
7. Sistemas Operativos I 7 compiladores Para desarrollar programas que funcionen en Windows se necesita: Un compilador que maneje las DLLs y objetos COM específicos de Microsoft. También un cierto número de archivos de cabecera de C (headerfiles,.h) que definen las interfaces de las DLL. Generalmente se usan las familias de compiladores: Visual Studio. Borland. Otras herramientas libres como MinGW y Cygwin.
9. paso al software Sistemas Operativos I 9 arranque de la computadora El Reset carga valores predefinidos en registros. CP ← dirección de arranque del cargador ROM. Se ejecuta el cargador ROM del sistema: Test del sistema. Trae a memoria el boot del S.O. En el caso de una PC la ROM contiene, además, software de E/S (BIOS).
10. software Sistemas Operativos I 10 arranque de la computadora El S.O. está almacenado en disco. El cargador ROM carga el sector de boot del S.O. y le da control. El boot del S.O. carga el S.O. residente y da control al programa de arranque del S.O. que: Comprueba el hardware Comprueba el sistema de ficheros Establece las tablas del S.O. Crea procesos (según el tipo de S.O.) Proceso INIT Procesos o tareas del sistema (demonios) Procesos de login (uno por terminal) Tras la autenticación, el proceso login se convierte en shell
11. hardware en funcionamiento arquitectura de hardware Los dispositivos de E/S y la CPU pueden trabajar simultáneamente. Cada controlador de dispositivo se encarga de un tipo de dispositivo. Cada controlador tiene un buffer local y un conjunto de registros de propósito especial. Programación del dispositivo La CPU copia datos desde la memoria principal al buffer local del controlador y viceversa. Si se utiliza espera activa (polling), la CPU está continuamente comprobando si la operación ha finalizado (leyendo el contenido de algún registro del controlador que indique si el dispositivo está ocupado). Si se utilizan interrupciones, el controlador del dispositivo informa a la CPU de que ha finalizado la operación generando una interrupción. Cuando se dispone de un chip de acceso directo a memoria (DMA), la CPU lo programa con la dirección de memoria (origen/destino) y el tamaño de los datos a transferir (entre otros), y le indica que comience la operación. El DMA controla el flujo de bits entre la memoria y el controlador del dispositivo sin intervención de la CPU. Cuando la operación finaliza, el DMA genera una interrupción. 11 Sistemas Operativos I
12. interrupciones Funciones comunes a los mecanismos de interrupción: Transferencia de control al manejador de interrupción. Salvar la dirección de la instrucción interrumpida. Inhabilitar la llegada de nuevas interrupciones. Otras consideraciones: Trap: interrupción causada por un error o por una petición de usuario. Un sistema operativo es un programa dirigido por interrupciones. 12 Sistemas Operativos I
13. vectores de interrupción Sistemas Operativos I 13 interrupciones Cuando ocurre una interrupción, el hardware transfiere el control al manejador de interrupción (o rutina de servicio de interrupción, o rutina de tratamiento de la interrupción) asociado, generalmente a través de los vectores de interrupción. El hardware debe salvar la dirección de la instrucción interrumpida, para poder continuar con su ejecución una vez finalizado el procesado de la interrupción. Normalmente, mientras se está procesando una interrupción, el sistema operativo mantiene inhabilitadas el resto de interrupciones. Los sistemas operativos modernos son programas dirigidos por eventos Si no hay procesos que ejecutar, ni dispositivos de E/S que atender, ni usuarios a los que responder, el sistema operativo permanecerá parado a la espera de que ocurra algún evento. Los eventos se señalan mediante interrupciones (hardware o traps). Vector de interrupción: primeras posiciones de la RAM. Contiene las direcciones de los manejadores de interrupción para cada dispositivo.
14. operación en modo dual La ejecución simultánea de distintos procesos conlleva la compartición de los recursos hardware de la computadora entre dichos procesos. Esta compartición obliga al sistema operativo a conseguir que un programa incorrecto (o malicioso) no provoque la ejecución incorrecta de otros programas. Para conseguir este objetivo, el sistema operativo utiliza los modos de ejecución del procesador. Los procesadores modernos proporcionan la posibilidad de funcionar en distintos modos, donde en cada modo se define un subconjunto válido de instrucciones que se permiten ejecutar. 14 Sistemas Operativos I
15. protección de hardware Sistemas Operativos I 15 operación en modo dual Para conseguir la protección hardware necesaria por el sistema operativo, el procesador debe proporcionar al menos dos modos de ejecución: Modo usuario: En este modo se ejecutan las instrucciones de los procesos de usuario. Sólo un subconjunto restringido de instrucciones están disponibles. Modo supervisor (privilegiado, kernel, monitor o sistema): En este modo se ejecutan las instrucciones del sistema operativo. El conjunto completo de las instrucciones del procesador está disponible (no hay restricciones) Normalmente, en el procesador existe un bit que indica en qué modo se encuentra actualmente: supervisor (0) / usuario (1). ¿Cómo se conmuta de un modo a otro? De modo usuario a supervisor: lo realiza el hardware cuando se recibe una interrupción. Así, el sistema operativo se ejecuta en modo supervisor. De modo supervisor a usuario: lo realiza el SO / hardware, justo antes de volver del tratamiento de la interrupción al proceso interrumpido. Así, el proceso de usuario sigue su ejecución en modo usuario.
16. disponibles en modo supervisor instrucciones privilegiadas Las instrucciones disponibles en modo supervisor (no están en modo usuario) se denominan instrucciones privilegiadas. Están asociadas a tres tipos de protección: Protección de E/S : Todas las instrucciones de E/S son privilegiadas. Se debe asegurar que un programa de usuario nunca pueda obtener el control del computador en modo supervisor. Por ejemplo, se debe impedir que un programa pueda cambiar durante su ejecución una dirección en el vector de interrupciones. Esto implica que: Se debe proporcionar protección de memoria para al menos el vector de interrupciones y los manejadores de interrupción. En general, se requiere proteger la memoria del sistema operativo del acceso por parte de los programas de usuario, y proteger la memoria de cada proceso del acceso de los demás programas de usuario. El hardware requerido para protección de memoria. Protección del CPU: Hay que evitar que un proceso de usuario se apropie del CPU (si nunca hace E/S, puede no dejar ejecutarse a nadie más durante mucho tiempo). Para ello, el sistema operativo se sirve de un temporizador (timer) hardware, el cual es una instrucción privilegiada. Cuando transcurre el tiempo que ha especificado el sistema operativo, el temporizador interrumpe al CPU, dando al sistema la oportunidad de ejecutarse. Así se asegura que el sistema mantiene el control. Además, los temporizadores son utilizados por el sistema para : Implementar los sistemas de tiempo compartido. Registrar la hora en curso. 16 Sistemas Operativos I
17. llamada al sistema: método para solicitar servicios al sistema operativo arquitectura general de los sistemas Dado que las instrucciones de E/S son privilegiadas, ¿cómo realizan los procesos de usuario operaciones de E/S? Llamada al sistema : Es el método utilizado por un proceso de usuario para solicitar servicios al sistema operativo. Habitualmente toma la forma de una excepción (trap) a una posición específica del vector de interrupciones. 17 Sistemas Operativos I El control pasa a través del vector de interrupciones a la rutina de servicio en el SO, y se pasa a modo supervisor. La rutina de servicio de llamadas al sistema forma parte del sistema operativo. Identifica y verifica la llamada al sistema y sus argumentos. Invoca al procedimiento servidor correspondiente para ejecutar la petición. Finalmente se devuelve el control al proceso de usuario en la instrucción siguiente a la llamada al sistema.
18. interrupciones S.O. programa dirigido por interrupciones 18 Sistemas Operativos I Anotar el avance del tiempo Pasar a preparado al proceso que esperaba el fin de la E/S Finalizar el proceso en ejecución Pasar a suspendido al proceso en ejecución Crear hijo a hijo preparado Resolver la llamada al sistema Si tiempo límite excedido: proceso en ejecución a preparado Planificador: Selección del próximo proceso