TEMA 1: INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS 1. Definición, funciones y objetivos de un SO. 1.1. Sistema Informático 1.2. Definiciones de Sistema Operativo 1.3. Objetivos y/o funciones de un SO 1.4. Servicios del Sistema Operativo 2. Evolución histórica. 2.1. Proceso en serie 2.2. Sistemas sencillos de procesos por lotes 2.3. Sistemas por lotes con multiprogramación 2.4. Sistemas de tiempo compartido 3. Conceptos fundamentales. 3.1. Usuario nivel comandos y/o aplicaciones 3.2. Usuario programador 3.3. Diseñador/implementador del SO 4. Métodos de estructuración. 4.1. Estructura simple / sin estructura /sistemas monolíticos 4.2. Estructura en capas 4.3. Estructura micronúcleo o cliente/servidor 5. Clasificación de los SO.
1.1. Sistema Informático Hardware Software Programas de aplicación. Software de sistemas: Programas de sistemas Sistema Operativo Usuarios Usuario 1 Usuario 2 Usuario 3 Compilador SGBD editor Programas de Aplicación Sistema Operativo Hardware 2
1.2. Definiciones de Sistema Operativo (Stallings) Un SO es un programa que controla la ejecución de los programas de aplicación y que actúa como interfaz entre el usuario del computador y el hardware del mismo. (Silberschatz, 1): Un SO es todo aquello que te entrega el vendedor cuando le pides un Sistema Operativo. (Silberschatz, 2): el SO es el único programa que se está ejecutando en todo momento en el computador (denominado núcleo o kernel), siendo el resto programas de aplicación. (Milenkovic): un SO puede ser contemplado como una colección organizada de extensiones software del hardware, consistente en rutinas de control que hacen funcionar un computador y proporcionan un entorno para la ejecución de los programas. 3
1.3. Objetivos y/o funciones de un SO Comodidad o conveniencia de uso. Aplicac ión Aplicac ión Aplicac ión Aplicac ión 1 Código para uso del HW N Código para uso del HW 1 N Código para uso del HW SO Eficiencia: los recursos se han de aprovechar eficientemente. Control de la ejecución de los programas. 4
1.4. Servicios del Sistema Operativo El SO proporciona ciertos servicios a los programas y a los usuarios de dichos programas: Ejecución de programas. Operaciones de E/S. Manipulación de ficheros. Comunicaciones. Detección de errores. Accounting (contabilidad). Protección. 5
2. Evolución histórica (I) 2.1. Proceso en serie: no hay Sistema Operativo: Conmutadores que permiten cargar programas. Los programas en tarjetas perforadas. Planificación de trabajos: los usuarios reservan tiempo de computador. Preparación de trabajos: incluye el montaje y desmontaje de cintas, carga y descarga de tarjetas, etc. 6
Evolución histórica (II) 2.2. Sistemas sencillos de procesos por lotes: Antepasado del SO: monitor. El JCL (lenguaje de control de trabajos) permite dar instrucciones al monitor. El monitor cede el control a un programa para su ejecución y lo recupera cuando termina. Se necesitan características HW adicionales: Protección de memoria. Temporizador. Instrucciones privilegiadas. Interrupciones. Monitor Zona de programas de usuario 7
Evolución histórica (III) 2.3. Sistemas por lotes con multiprogramación: Anteriormente se perdía tiempo en las E/S. Se almacenan varios programas en la memoria. El procesador cambiará a otro programa cuando el actual necesite esperar por el fin de una E/S: multiprogramación o multitarea. S.O. Programa 1 Programa 2 Programa 3... El spooling mejora el rendimiento del sistema Disco duro Lectora tarjetas CPU Impresora 8
Se necesitan características HW y SW adicionales: El HW debe respaldar las interrupciones de E/S. Se necesita alguna gestión de memoria para mantener varios programas en memoria. Se necesita algún algoritmo de planificación para decidir qué programa ejecutar. 9
Evolución histórica (IV) 2.4. Sistemas de tiempo compartido: Hay trabajos que necesitan que el usuario interactúe con el computador. Sistema de tiempo compartido: el SO intercala la ejecución de cada programa de usuario en ráfagas cortas de cómputo o cuantos (quantum). Se vuelve a utilizar la multiprogramación. Las características HW necesarias son básicamente las vistas en los sistemas de lotes con multiprogramación. 10
3. Conceptos fundamentales (I) 3.1. Usuario de nivel comandos y/o aplicaciones: Usuario: persona que se identifica individualmente ante el SO. Sesión: conjunto de actividades entre la identificación y el fin de realización de actividades. Programa de sistemas: herramientas extra para el entorno de ejecución. Intérprete de comandos: programa de sistemas usado como interfaz entre el usuario y el SO. Fichero: colección de información relacionada almacenada en un dispositivo como los discos magnéticos. Proceso: programa en ejecución. Espíritu animado de un programa. 11
Conceptos fundamentales (II) 3.2. Usuario programador: Llamada al sistema: interfaz entre los procesos y el SO. Sirven para solicitar servicios del SO. Modos de ejecución: Modo usuario. Modo privilegiado/supervisor/monitor. Memoria Principal Proceso (Ejecución modo usuario)... LlamadaSistemaN(...);... Sistema Operativo Ejecución modo supervisor LlamadaSistemaN(...) {...... } 12
Conceptos fundamentales (III) 3.3. Diseñador/implementador del SO: Subsistema de gestión de procesos. Creación, eliminación, suspensión y reanudación de procesos. Mecanimos para sincronización y comunicación de procesos. Mecanismos para manejo de interbloqueos. Subsistema de gestión de memoria. Registrar qué partes de la memoria están en uso y por quién. Asignar y liberar espacio de memoria cuando sea necesario. Subsistema de gestión de ficheros. Creación y borrado de ficheros. Primitivas para manipulación de ficheros. Mapeado de ficheros en memoria secundaria. 13
4. Métodos de estructuración de un SO 4.1. Estructura simple / sin estructura / sistemas monolíticos: SO = colección de procedimientos que se invocan. Estructura muy elemental: Programa principal. Conjunto de procedimientos de servicio. Conjunto de procedimientos de utilidad.. Programa principal Procedimientos de servicio Procedimientos de utilidad 14
Métodos de estructuración de un SO (II) 4.2. Estructura en capas: capa = objeto abstracto que encapsula datos y sus operaciones. Ventaja: modularidad --> facilita el mantenimiento. Inconvenientes: Definición de las capas. Problemas de eficiencia. 4. Programas de usuario 3. Interfaz de llamadas al sistema 2. Gestión de E/S y ficheros 1. Administración de memoria y disco 0. Planificación de la CPU 15
Métodos de estructuración de un SO (III) 4.3. Estructura micronúcleo o cliente/servidor: Núcleo del SO mínimo. Funciones del SO a procesos de usuario. Procesos cliente solicitan servicios a procesos servidor. El núcleo maneja la comunicación entre clientes y servidores. Proceso cliente Proceso Servidor cliente procesos Servidor Servidor ficheros memoria Kernel Fácilmente adaptables a sistemas distribuidos. 16
5. Clasificación de los SO Según la utilización de recursos Sistemas monoprogramados. Sistemas multiprogramados o multitarea. Sistemas de multiprocesamiento. Según la interactividad Procesamiento por lotes (batch). Tiempo compartido. Tiempo real Según el número de usuarios Sistemas monousuario Sistemas multiusuario 17