13/08/2011 Introducción a los Sistemas Operativos Parte II AGOSTO 2011 1 ¿Qué es un Sistema Operativo? Un Sistema Operativo es un programa que actúa de intermediario entre el usuario y el hardware del computador. Su propósito es proveer un ambiente en el cual el usuario puede ejecutar programas Su meta principal es hacer del sistema computacional algo conveniente y fácil de usar Es una meta secundaria usar el hardware de una manera eficiente 2 1 13/08/2011 DEFINICIONES DE SISTEMAS OPERATIVOS “Un sistema operativo es un programa cuyo objetivo es simplificar el manejo y la utilización de la computadora, haciéndolo seguro y eficiente” (Jesús Carretero) El sistema operativo es como el director. El responsable de coordinar todos los componentes individuales del computador, de forma que operan juntos siguiendo un solo plan. El sistema operativo asigna recursos del computador a los diversos programas, sincroniza sus actividades y proporciona los mecanismos adecuados para que los programas se ejecuten en perfecta armonía. (Gary Nutt) Un sistema operativo es un programa que controla la ejecución de los programas de aplicación y que actúa como interfaz entre las aplicaciones del usuario y el hardware de un computador. Puede considerarse que un sistema operativo tiene 3 objetivos: Comodidad, eficiencia y capacidad de evolución. (William Stallings) 3 DEFINICIONES DE SISTEMAS OPERATIVOS 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, 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 4 2 13/08/2011 Qué es un recurso? • Procedimiento o medio del que se dispone para satisfacer una necesidad, llevar a cabo una tarea o conseguir algo • Cualquier elemento hardware o Software – HW: Procesador, memoria, dispositivo, … – Sw: fichero, proceso, puerto comunicaciones, … 5 SERVICIOS DE LOS SO 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. 6 3 13/08/2011 Qué es un S.O.? Las funciones clasicas, del sistema operativo se pueden agrupar en las tres categorias siguientes: Gestion de los recursos de la computadora Ejecucion de servicios para los programas (MaquinaVirtual Extendida) Ejecucion de losmandatos del usuario 7 Gestión de Recursos de la Computadora 8 4 13/08/2011 Gestión de Recursos de la Computadora 9 El SO como máquina extendida la arquitectura de la mayoría de los ordenadores al nivel del lenguaje máquina es primitiva y muy difícil de programar, especialmente en lo que respecta a la entrada/salida. ARQUITECTURA repertorio de instrucciones, organización de la memoria, E/S y estructura del bus 10 5 13/08/2011 El SO como máquina extendida El programa que oculta al programador la verdad acerca del hardware y presenta una visión bonita y sencilla de ficheros con nombre que se pueden leer y en los que se puede escribir, es el sistema operativo. Así como el sistema operativo separa al programador del hardware del disco y presenta una interfaz sencilla orientada hacia los ficheros, también oculta muchos otros asuntos desagradables relacionados con las interrupciones, timers, gestión de memoria y otras características de bajo nivel. Desde ésta perspectiva la función del S.O. es presentar al usuario el equivalente a una máquina extendida o máquina virtual que es más fácil de usar que la que ofrece el hardware subyacente. 11 El SO como máquina extendida Ejecucion de programas El SO permite que un programa se ejecute, pare o aborte La ejecucion da lugar al concepto de proceso Ordenes de E/S Proveen a los programas operaciones de lectura, escritura y modificacion del estado de los perifereicos Operciones sobre archivos Permite creacio, borrado, apertura, renombrado,escritura y lectura de archivos Deteccion y tratamiento de errores El SO trata las condiciones de error que detecte el Hw (desbordamientos, memoria, errores de ejecucio) 12 6 13/08/2011 El SO como interfaz de usuario El Interprete de comandos o Shell es elmodulo que permite que los usuarios dialoguen de forma interactiva con el sistema El Shell: Espera una orden del usuario Analiza la orden y en caso de ser correcta la ejecuta Concluida la orden vuelve a la espera 13 Niveles del SO De manera esquemática, un sistema operativo se compone de: Núcleo (Kernel): responsable de la gestión de memoria, de disco y de procesos. Servicios (API: Aplication Program Interface): mediante estos servicios las aplicaciones pueden realizar peticiones al sistema operativo para acceder a los recursos hardware del sistema. Shell (Intérprete de comandos): es el proceso encargado de traducir los comandos que los usuarios introducen, a instrucciones que el sistema operativo entiende. 14 7 13/08/2011 Núcleo del S.O. (Kernel) Es lo primero que se carga del sistema operativo al arrancar el ordenador. Reside permanentemente en memoria y atiende las llamadas al sistema. Tiene las siguientes funciones básicas: Carga inicial (programa de arranque) Planificación de trabajos de la CPU (procesos y tareas) Administración de periféricos Comunicación entre procesos Administración de memoria Administración de archivos 15 Shell (Interprete de comandos) Para que un usuario pueda dialogar directamente con el S.O., se proporciona una interfaz de usuario básica para: Cargar programas Abortar programas Introducir datos a los programas Trabajar con archivos Trabajar con redes Ejemplos de interprete de comandos: Interprete de comandos del S.O.Windows JCL en sistemas por lotes COMMAND.COM en MS-DOS Shell en UNIX 16 8 13/08/2011 Shell (Interprete de comandos) En la actualidad, e inicialmente orientadas al gran público, son más utilizadas las GUI (Graphics User Interface) que el clásico interprete de comandos textual. Estas interfaces gráficas permiten al usuario dar órdenes y trabajar con el sistema operativo de manera sencilla, sin necesidad de un gran conocimiento de los comandos del sistema operativo. GUI del sistema operativo Windows XP 17 Funciones del S.O. 18 9 13/08/2011 Función: Gestión de procesos Un proceso es un programa en ejecución. Durante su ejecución, un proceso necesita tiempo de CPU, una porción de memoria, archivos, acceso a dispositivos de entrada/salida y otros recursos. Las responsabilidades del S.O. en la gestión de procesos son: Creación y eliminación de procesos. Planificación de procesos: repartir la CPU entre los procesos activos. Sincronización entre procesos Comunicación entre procesos 19 El SO como gestor de recursos Estados de un proceso: Nuevo: recién creado por el S.O. En ejecución: está en la CPU ejecutando instrucciones Bloqueado: esperando por algún evento (ej. una operación de E/S) Preparado: esperando a que le asignen un procesador (CPU) Terminado: no ejecutará más instrucciones 20 10 13/08/2011 Función: gestión de memoria principal (RAM) La memoria principal (RAM) es un recurso compartido entre el S.O. y los procesos que es necesario para que estos se ejecuten. Responsabilidades del S.O en cuanto a la gestión de la memoria principal: Conocer qué zonas de memoria están libres y cuáles están ocupadas Decidir qué memoria se le asigna a cada proceso Reservar y liberar zonas de memoria según se solicite Memoria virtual: utilizar el almacenamiento secundario (disco duro) como una extensión de la memoria principal. 21 Función: gestión de entrada/salida Hay una gran variedad de dispositivos de entrada/salida que tienen queser gestionados por el sistema operativo: pantalla, teclado, ratón, impresora, módem, tarjetas de red, comunicaciones serie (USB), etc. Las responsabilidades del S.O. con respecto a la gestión de los dispositivos de entrada/salida son las siguientes: Proporcionar una interfaz uniforme para el acceso a los dispositivos(independencia del dispositivo). Proporcionar manejadores (drivers) para los dispositivos concretos. Control de los errores más comunes. Para los dispositivos de almacenamiento, utilizar pulmones o búferes intermedios. Para los discos, planificar de forma óptima las peticiones. 22 11 13/08/2011 Función: gestión de entrada/salida El problema fundamental de las gestión de los dispositivos de entrada/salida es que son más lentos que el conjunto CPU-Memoria principal. Esto obliga al sistema operativo a utilizar una serie de técnicas que eviten, en la medida de lo posible, que la CPU quede ociosa a la espera de una operación de entrada/salida. Para solucionar este problema se utilizan zonas intermedias de almacenamiento de datos que sirven de pulmón de flexibilización. Estas zonas de almacenamiento intermedio pueden estar, entre otros sitios, en: • Memoria principal. • Memoria secundaria. • Memoria del dispositivo de entrada salida. 23 Función: gestión de archivos Un archivo es un conjunto de datos identificado por un nombre. Los archivos se almacenan en dispositivos de E/S. Un archivo es un concepto de alto nivel que no existe en el hardware. Las responsabilidades del S.O. con respecto a la gestión de archivos son las siguientes: Manipulación de archivos: crear, borrar, leer, escribir, modificar propiedades, etc. Manipulación de directorios. Ubicar los archivos y directorios en los dispositivos de almacenamiento secundario. Facilitar ciertos servicios: copia de seguridad, gestión de versiones, etc. 24 12 13/08/2011 Función: gestión de archivos 25 Funciones : sistema de protección De usuario: Mecanismos destinados a controlar el acceso de los usuarios a los recursos: Definir clases de usuarios, clases de permisos, etc. Definir mecanismos de acceso a los recursos: Contraseñas: se pueden poner contraseñas para acceso a determinados recursos. Capacidades: cada usuario o grupo de usuarios tendrán definidas una serie de acciones que pueden hacer sobre un recurso (leer, configurar, actualizar, etc.). Controlar el acceso a los recursos, denegando el acceso cuando no esté permitido. De proceso: Mecanismos destinados a controlar el acceso de los procesos a los recursos: Acceso a la memoria del S.O. y de otros programas. Acceso directo a los dispositivos de E/S. Abuso de la CPU. 26 13 13/08/2011 Tipos de S.O. Sistemas de tiempo real Para poder ejecutar satisfactoriamente tareas que han de completarse en un plazo prefijado (ej. sistemas de control industrial, sistemas multimedia) Sistemas paralelo Sistemas con más de un procesador. Pueden ejecutar varias instrucciones simultáneamente (en paralelo). Sistemas distribuidos Múltiples procesadores conectados mediante una red. 27 Tarea Investigar otras clasificaciones Sistemas Operativos Entrega miércoles 17 de agosto Evaluación 19 de agosto 28 14