Tema 1. Introducción a los SO’s ¿Qué es un sistema operativo? Evolución de los SO’s. Soporte hardware para los SO’s. Visión externa del SO. Estructura interna de un SO. Tema 1. Introducción a los SO's 1 Objetivos Conocer las funciones de un SO y tener una visión global de sus distintos componentes. Comprender los conceptos de multiprogramación y tiempo compartido. Distinguir diferentes tipos de SO´s. Manejar el concepto de interrupción, excepción y llamada al sistema. Conocer diferentes formas de estructurar un SO. Tema 1. Introducción a los SO's 2 1 ¿ Qué es un SO ? ó ¿Qué hace? EL SO como máquina virtual - presenta al usuario una máquina abstracta más fácil de programar que el hardware subyacente: ocultando la complejidad, y dando un tratamiento homogéneo a diferentes objetos de bajo nivel (p.ej. archivos, procesos, dispositivos, etc.) El SO como gestor de recursos - controla y protege los recursos (procesadores, dispositivos de E/S, memoria, etc.) entre los programas/usuarios que compiten por ellos. Tema 1. Introducción a los SO's 3 ¿ Qué es un SO ? ó ¿Qué hace? Componentes de un ordenador PSW Tema 1. Introducción a los SO's 4 ¿ Qué es un SO ? ó ¿Qué hace? El hardware La realidad tangible es el hardware del ordenador, que contiene elementos de: » Procesamiento: CPU, procesadores de E/S, DMA » Memoria: RAM, disco, cintas,... » Dispositivos de E/S: teclado, ratón, pantalla, impresora,... » Dispositivos de comunicaciones: red ethernet, líneas serie y paralelas,... Tema 1. Introducción a los SO's 5 ¿ Qué es un SO ? ó ¿Qué hace? Las abstracciones El SO simplifica esa realidad compleja construyendo una serie de abstracciones: » Proceso: Una CPU dedicada a un programa. » Memoria virtual: simula una RAM infinita. » Archivo: memoria permanente de datos con tipo. » Canal: dispositivo E/S de datos con tipo. » Shell: interfaz de usuario programable. Tema 1. Introducción a los SO's 6 2 Evolución de los SO’s Los comienzos Procesamiento en Serie. » Cargar el programa en memoria usando Lectora de Tarjetas. » Establecer la dirección de inicio y Comenzar la Ejecución. El sistema está limitado por la velocidad de la E/S. » Baja utilización de la CPU. » Tiempo de preparación alto. Tema 1. Introducción a los SO's 7 Los Sistemas por Lotes Los sistemas por lotes (batch) simples fueron los primeros SO’s reales: » El SO estaba almacenado en memoria. » Cargaba un único trabajo en memoria (desde el lector de tarjetas). » Ejecutaba el trabajo (daba su salida) » Cargaba el siguiente trabajo. » Las tarjetas de control en el archivo de entrada indicaban al SO que hacer. Mejora: spooling -- lectura adelantada de trabajos de cintas o tarjetas. Tema 1. Introducción a los SO's 8 Los sistemas por lotes (y II) Manejadores de dispositivo Cargador Secuenciador de trabajos Intérprete de tarjetas de control Area para el programa de usuario Monitor residente Control inicial en el Monitor Transferencia del control al trabajo Al finalizar el trabajo, el control vuelve al monitor Tema 1. Introducción a los SO's 9 Multiprogramación Aparecen los controladores e interrupciones mejor aprovechamiento de la CPU SO’s Multiprogramados: » Permiten la ejecución concurrente de trabajos repartiendo en el tiempo los recursos » Mantienen en memoria principal simultáneamente varios trabajos multiplexando la CPU entre ellos Tema 1. Introducción a los SO's 10 Elementos necesarios para la multiprogramación Las rutinas de E/S deben estar suministradas por el sistema. Gestión de memoria - el sistema debe asignar memoria entre varios trabajos. Planificación de la CPU - el SO debe elegir uno de entre los varios trabajos listos para ejecutarse. El SO realiza la asignación de los dispositivos a los trabajos. Tema 1. Introducción a los SO's 11 Sistemas de tiempo compartido Soportan el uso “interactivo” del sistema: » Cada usuario tiene la ilusión de disponer de la máquina completa. » Intenta optimizar el tiempo de respuesta. » Basado en la asignación de fracciones de tiempo - se divide el tiempo de CPU equitativamente entre los procesos. » Permite una participación activa de los usuario en la edición, depuración, y ejecución de los procesos. Tema 1. Introducción a los SO's 12 SO’s de Tiempo Real Los SOTR se utilizan para aplicaciones especializadas, p.ej. sistemas de control, ... Idea básica: SO debe garantizar la respuesta a sucesos físicos en intervalos de tiempo fijos. Problema: planificar las actividades con el fin de satisfacer todos los requisitos críticos. El uso de aplicaciones de video sobre PC’s, todos los SO’s tendrán pronto requisitos de tiempo-real. Tema 1. Introducción a los SO's 13 SO’s de Red Los usuarios son conscientes de la existencia de varias computadoras. Cada nodo ejecuta su propio SO local y tiene sus propios usuarios. Lo que les diferencia de los SO de un solo procesador es la necesidad de software especial como: » controlador de interfaz de la red » programas de conexión y acceso a archivos remoto. Tema 1. Introducción a los SO's 14 SO’s Distribuidos Sistemas débilmente acoplados - sistemas sin memoria común. Característica fundamental: Transparencia. Permiten la compartición de recursos distribuidos, hardware o software. Permiten algún paralelismo, pero el aumento de velocidad no es el objetivo. Aumentan la fiabilidad del sistema. Tema 1. Introducción a los SO's 15 SO’s Paralelos Trabajan sobre sistemas multiprocesador fuertemente acoplados (los procesadores comparten una única memoria y el reloj). Dos tipos de multiprocesamiento: » Simétrico - cada procesador ejecuta una copia idéntica del SO - buen rendimiento. » Asimétrico - Un procesador maestro ejecuta el SO, los procesadores esclavos ejecutan procesos de usuario. Peor escalabilidad. Tema 1. Introducción a los SO's 16 SO’s Paralelos (y II) Soportan aplicaciones paralelas que desean obtener aumento de velocidad de tareas computacionalmente complejas. Necesitan primitivas básicas para dividir una tarea en múltiples actividades paralelas. Proporciona una comunicación y sincronización eficiente entre esas actividades. Tema 1. Introducción a los SO's 17 3. Soporte hardware para los SO’s Funcionamiento de un sistema de ordenador. Modo dual de operación. Interrupciones y excepciones. Protección de: » E/S » Memoria » CPU Tema 1. Introducción a los SO's 18 Funcionamiento de un sistema de ordenador Esquema CPU Controlador de dispositivo Controlador de dispositivo Controlador de Memoria Controlador de dispositivo Bus del sistema Memoria Tema 1. Introducción a los SO's 19 Modo dual de operación Los SO’s multiusuario y/o multitarea necesitan: » Evitar la interferencia entre procesos de usuario, y entre los procesos y el SO. » Definir como instrucciones privilegiadas aquellas que pueden dañar potencialmente a otros procesos o usuarios. – P.ej. operaciones de E/S, actualizar el reloj, desactivar interrupciones, halt, etc. » Al menos son necesarios dos modos Tema 1. Introducción a los SO's 20 Modo dual de operación (y II) Modo usuario » Modo en el que se sólo se ejecutan las instrucciones de usuario (no privilegiadas). Modo kernel (supervisor o sistema) » Se puede ejecutar cualquier instrucción. » El SO se ejecuta en este modo. » Se cambia de modo (instrucción privilegiada) activando el bit de modo del registro PSW. » El hardware cambia a modo kernel cuando se produce una interrupción o excepción Tema 1. Introducción a los SO's 21 Interrupciones y excepciones Interrupción = evento que interrumpe el flujo normal de ejecución producido por un elemento externo al procesador. Es un evento asíncrono. Excepción = evento inesperado generado por alguna condición que ocurre durante la ejecución de una instrucción (p.ej. desbordamiento aritmético, dirección inválida, instrucción privilegiada, etc.). Es un evento síncrono. Tema 1. Introducción a los SO's 22 Interrupciones y excepciones Ejecución de instrucciones Ciclo de instrucción Inicio Leer siguiente instrucción Ejecutar la instrucción Fin Tema 1. Introducción a los SO's 23 Interrupciones y excepciones Ejecución de instrucciones de E/S Tema 1. Introducción a los SO's 24 Interrupciones y excepciones Ciclo de instrucción con interrupciones Ciclo de instrucción con interrupciones Inicio Leer siguiente instrucción Fin Ejecutar la instrucción Interrupciones Interrupciones habilitadas inhabilitadas Comprobación de interrupción. Interrupción del proceso Tema 1. Introducción a los SO's 25 Interrupciones y excepciones Funciones básicas Gestor General de Interrupciones: » Salva el contexto del proceso en ejecución (contenido de los registros del procesador) » Determina el tipo de interrupción. » Llama a la rutina de servicio de interrupción específica. Tema 1. Introducción a los SO's 26 Interrupciones y excepciones Interrupciones vectorizadas vector Interrupción Dispositivo Memoria Principal CPU Código del SO i ... Tabla de vectores de int. Rutina de servicio de interrupción i ... Código de usuario Tema 1. Introducción a los SO's 27 Interrupciones y excepciones Procesamiento de interrupciones 1. El controlador de dispositivo genera una interrupción. 2. El procesador termina la ejecución de la instrucción. 3. El procesador indica el reconocimiento de la interrupción al dispositivo correspondiente. 4. El procesador apila PSW y PC en la pila de sistema. 5. Se determina la dirección de la RSI y se carga en PC. 6. SO salva resto de información de estado en la pila. 7. Ejecución de la RSI. 8. Restaurar información de estado previamente apilada. 9. Restaurar el PSW y PC previamente apilados. Tema 1. Introducción a los SO's 28 Interrupciones y excepciones Tratamiento de varias interrupciones Inhabilitar las interrupciones mientras se procesa una interrupción. Definir prioridades para las interrupciones. Tema 1. Introducción a los SO's 29 Protección por hardware Protección de E/S Los dispositivos de E/S son recursos que han de estar protegidos. ¿Cómo se consigue? las instrucciones máquina de E/S no pueden ejecutarse en modo usuario: son privilegiadas. Cualquier acceso a los dispositivos desde un programa de usuario se hará mediante peticiones al SO. Tema 1. Introducción a los SO's 30 Protección por hardware Protección de Memoria En los SO’s multiusuario y/o multitarea, el SO asigna una zona de memoria a cada proceso en ejecución. Objetivo: evitar que un proceso de usuario lea/escriba de/en el espacio de direcciones de otro proceso. Debemos tener protección de memoria al menos para el vector de interrupción y las rutinas de servicio de interrupción. Tema 1. Introducción a los SO's 31 Protección por hardware Protección de la CPU Los SO’s multiprogramados-multitarea deben evitar que un proceso se apodere de la CPU. Necesitamos un reloj. El contador del reloj se decrementa en cada ‘tick’ de reloj, al llegar a cero se genera una interrupción de reloj. El SO asigna fracciones de tiempo a los procesos: la CPU se asigna a un proceso durante un tiempo limitado o cuanto. Al expirar el plazo la interrupción de reloj devuelve el control al SO. Tema 1. Introducción a los SO's 32 4. Visión externa del SO Usuarios del lenguaje de órdenes Obtienen los servicios del SO utilizando el lenguaje de órdenes: » Suele ser específico de cada SO, pero el rango y la funcionalidad proporcionada es menos variable. Interprete de órdenes (shell): » Acepta órdenes y las traduce en las llamadas al sistema necesarias » Por cada usuario, una vez identificado, se crea un proceso que ejecuta el intérprete » Dos modos de trabajo: background y foreground Tema 1. Introducción a los SO's 33 Usuarios de las llamadas al sistema Es la forma en la que se comunican los programas de usuario con el SO. Son solicitudes al SO de petición de servicio. Ejemplos de llamadas al sistema: » Solicitudes de E/S. » Gestión de procesos. » Gestión de memoria. Se implementan a través de una trampa o “interrupción software”. Tema 1. Introducción a los SO's 34 Usuarios de las llamadas al sistema (y II) Un usuario puede hacer algo “privilegiado” (p.ej. E/S) invocando un procedimiento del SO a través de una llamada al sistema: » Trampa a una posición específica del vector de interrupciones. » El control se pasa a la rutina de servicio del SO, y el bit de modo se pone en modo kernel. » El SO verifica que los parámetros son correctos y legales, ejecuta la solicitud, y devuelve el control a la instrucción siguiente. Tema 1. Introducción a los SO's 35 Usuarios de las llamadas al sistema (y III) Biblioteca call (...) Modo usuario Trampa Manejador de trampas Rutina de servicio del sistema Modo Kernel Kernel del SO Tema 1. Introducción a los SO's 36 Usuarios de las llamadas al sistema (y IV) Tres métodos para pasar parámetros: » Paso de parámetros en los registros. » Almacenarlos en una tabla de memoria y pasar la dirección de la tabla como parámetro en un registro. » El programa empuja los parámetros en la pila, y el SO los recupera de la pila. Tema 1. Introducción a los SO's 37 5. Estructura interna del SO 5.1 Componentes de un SO: » » » » Gestión de procesos Gestión de memoria Gestión de archivos Gestión de almacenamiento secundario » Gestión de E/S » Sistema de protección. 5.2 Estructura de los SO: » » » Tema 1. Introducción a los SO's Sistemas Monolíticos Estructura de Capas Modelo ClienteServidor 38 5.1. Componentes de un SO Gestión de procesos Proceso = una instancia de un programa en ejecución. El SO es responsable de las siguientes actividades relacionadas con los procesos: » crear/destruir procesos, » suspender/reanudar procesos, » suministrar los mecanismos para sincronizar y comunicar procesos. Tema 1. Introducción a los SO's 39 Gestión de memoria La memoria principal es el almacenamiento de acceso directo para la CPU y los disposi-tivos de E/S. Es volátil. El SO es responsable de: » asignar/liberar memoria a los programas (tanto explícita como implícitamente) » mantener la pista de las partes de memoria utilizadas actualmente y quien las usa » decidir cuanta memoria asignar a cada proceso, y cuando debe ser retirado de memoria un proceso. Tema 1. Introducción a los SO's 40 Gestión de almacenamiento secundario El almacenamiento secundario (disco) es la memoria persistente. Las rutinas del SO de bajo nivel son respon-sables de las funciones de disco: planificación de disco, gestión del espacio en disco, gestión de errores, etc. La línea entre estas y el sistema de archivos es muy difusa... la gestión del espacio puede pertenecer al sistema de archivos. Tema 1. Introducción a los SO's 41 Gestión de E/S El SO suministra una interfaz estándar entre programas (usuario o sistema) y dispositivos. El sistema de E/S tiene una caché de búferes. Los manejadores de dispositivos son los módu-los responsables de manejar cada tipo de dispositivo. Un manejador encapsula el conocimiento específico del dispositivo, p.ej., inicialización, control, manejo interrupciones, Puede haber un proceso por cada dispositivo o incluso por cada solicitud de E/S, dependiendo del SO particular. Tema 1. Introducción a los SO's 42 Gestión de archivos Archivo = colección de información con nom-bre; es la entidad básica de almacenamiento persistente. El sistema de archivos suministra las siguientes operaciones sobre archivos: » crear/borrar archivos y directorios, » primitivas para manipular archivos y directorios: leer, escribir, renombrar, ... » obtener información sobre las características del archivo. También, suministra servicios generales: backup, contabilidad y cuotas, etc. Tema 1. Introducción a los SO's 43 Sistema de protección La protección hace referencia al mecanismo para controlar los accesos por programas, procesos o usuarios, al sistema o a los recursos de usuario. El mecanismo de protección debe: » distinguir entre uso autorizado o no, » especificar el control que se debe imponer, » suministrar los medios para su aplicación. La protección es un mecanismo general en todo el SO. Tema 1. Introducción a los SO's 44 5.2. Estructura de los SO´s Sistemas Monolíticos No tienen estructura bien definida El SO está formado por un conjunto de procedimientos de forma que cada uno puede llamar a los demás cuando lo necesite. Todos se ejecutan en modo supervisor. No se aplica el principio de ocultación de información. Tema 1. Introducción a los SO's 45 Modelo simple de estructura de un SO monolítico Procedimiento Principal Procedimientos de Servicio Procedimientos auxiliares Tema 1. Introducción a los SO's 46 Problemas de los S. monolíticos Son difíciles de comprender y de modificar. No fiables: un error en alguna parte puede provocar la caída del sistema. Difíciles de mantener. Desde el principio, los diseñadores han buscado formas de organizar el SO para simplificar su diseño y construcción. Tema 1. Introducción a los SO's 47 La Estructura de Capas El sistema se implementa como un conjunto de capas; cada capa es una máqui-na más abstracta pa-ra la capa superior. Por modularidad, las capas se selec-cionan para que cada una utilice funciones sólo de las capas inferiores. Nuevas operaciones Capa M Operaciones existentes Opers. ocultas Capa M-1 Tema 1. Introducción a los SO's 48 Ejemplo: El Sistema THE 5: Programas de Usuario 4: Búfering para dispositivos de E/S 3: Manejador de consola del operador 2: Gestión de memoria 1: Planificación de la CPU Nivel 0: Hardware El sistema estaba compuesto de una serie de procesos secuenciales. Los procesos se sincronizan con declaraciones explícitas de sincronización. Se puede probar y verificar de forma independiente cada proceso. Tema 1. Introducción a los SO's 49 Problemas de THE Los sistemas de capas deben ser jerárquicos pero los sists. reales son más complejos, p. ej., » El sistema de archivos podría ser un proceso en la capa de memoria virtual. » La capa de memoria virtual podría usar archivos como almacén de apoyo de E/S. Sobrecarga de comunicaciones entre procesos de distintas capas. A menudo, los sists. están modelados con esta estructura pero no están así construidos. Tema 1. Introducción a los SO's 50 Modelo Cliente-Servidor Reducir el SO a un núcleo mínimo: implementar la mayoría de las funciones del SO como procesos de usuario. Para solicitar un servicio, el proceso de usuario (cliente) envía un mensaje al proceso servidor, que realiza el servicio y devuelve al cliente una respuesta. Tema 1. Introducción a los SO's 51 Modelo cliente-Servidor Proceso servidor archivos Proceso cliente Modo usuario Solicitud servicio Núcleo Respuesta servicio Tema 1. Introducción a los SO's Modo supervisor 52