Conceptos de Sistemas Operativos Sistema Operativo • Un programa que controla la ejecución de los programas de aplicación. • Una interfaz entre las aplicaciones y el hardware 1 Objetivos de un S.O. • Proporcionar facilidad – Debe de hacer a la computadora más fácil de utilizar • Eficiencia – Permite que los recursos de un sistema computacional sean utilizados de una manera eficiente • Capacidad de evolucionar – Permite el desarrollo, pruebas e introducción de nuevas funciones sin interferir con el servicio Capas de un Sistema de Cómputo 2 Servicios que provee el Sistema Operativo • Desarrollo de Programas – Editores y depuradores • • • • Ejecución de Programas Acceso a dispositivos de E/S Acceso controlado a archivos Acceso al sistema Servicios que provee el Sistema Operativo • Detección de errores – Errores externos e internos de hardware • Errores de memoria • Fallas en dispositivos – Errores de software • Sobreflujo aritmético • Acceso prohibido a localidades de memoria 3 Servicios que provee el Sistema Operativo • Administración – Estadísticas – Monitoreo del desempeño – Utilizadas para posibles mejoras Sistema Operativo • Funciona de la misma manera que cualquier software – Es un programa que es ejecutado • El S.O. cede el control del procesador para ejecutar otras aplicaciones. 4 Kernel • Es la porción del sistema operativo que se encuentra en la memoria principal • Contiene las funciones más comunmente utilizadas • También llamado Núcleo 5 Evolución de un Sistema Operativo • Actualizaciones de hardware. • Nuevos Servicios • Reparación de fallas Evolución de los S.O. • Procesamiento en Serie – Sin sistema operativo – Las maquinas corrian desde una consola con display de luces y switches, dispositivo de entrada e impresora – Se tenia que cargar el compilador, programa fuente, grabar el programa compilado, cargarlo y enlazarlo 6 Evolución de los S.O. • Archivos por Lotes simples – Utilizan Monitores • Software que controla la ejecución de programas • Se ejecutan los programas por lotes • El programa devuelve el control al monitor cuando termina su ejecución • El monitor reside en la memoria principal Lenguaje de Contol de Tareas (JCL) • Es un tipo especial de lenguaje de programación • Provee de instrucciones al operador – Qué compilador utilizar – Qué datos utilizar 7 Características de Hardware • Protección de memoria – No permitir que el area de memoria que contiene al programa monitor sea alterada • Temporizador – Previene que una tarea se apodere por completo del sistema Uniprogramación • El procresador debe esperar que la instrucción de E/S termine para poder continuar 8 Multiprogramación • Cuando una tarea requiere esperar E/S, el procesador puede cambiar hacia otra tarea Multiprogramación 9 Ejemplo TAREA1 TAREA2 TAREA3 Tipo de Tarea Proc. Pesado E/S Pesado E/S Pesado Duración 5 min. 15 min. 10 min. Memoria req. 50K 100 K 80 K Ocupa disco No No Yes Ocupa terminal No Yes No Ocupa impres. No No Yes Efectos de la multiprogramación Uniprogramación Multiprogramación Uso del procesador 22% 43% Uso de memoria 30% 67% Uso de disco 33% 67% Uso de impres. 33% 67% Tiempo 30 min. 15 min. Tasa de eficiencia 6 jobs/hr 12 jobs/hr Tiempo de respuesta 18 min. 10 min. 10 Tiempo Compartido • Utilizando multiprogramación para manipular multiples tareas interactivas. • El tiempo del procesador es compartido entre varios usuarios. • Los usuarios multiples accesan al sistema en forma simultanea por medio de terminales 11 Multiprogramación vs. Tiempo Compartido Multiprogramación Tiempo Compartido Objetivo principal Maximizar el uso del procesador Minimizar el tiempo de respuesta Fuente de comandos hacia el Sistema Operativo Comandos en Lengiaje de Comandos alimentados Control de Tareas provistos a la terminal por la misma tarea 12 Logros Importantes en S.O. • Procesos • Administración de Procesos • Protección y Seguridad en la Información • Calendarización y administración de recursos • Estructura del sistema Procesos • Un programa en ejecución • Una instancia de un programa corriendo en una computadora • La entidad que puede ser asignada y ejecutada en un procesador • La unidad de actividad caracterizada por una sola secuencia de ejecución, un estado actual, y un conjunto asociado de recursos del sistema. 13 Dificultades al Diseñar Sistemas Operativo • Sincronización inadecuada – Asegurarse que un proceso que espera a un dispositivo de E/S reciba la señal • Exclusión mutua fallida • Operación del programa no determinada – Un programa solo debe depender de entradas a él, y no depender de areas comunes de memoria Proceso • Consiste de tres componentes – Un programa ejecutable – Datos asociados requeridos por el programa – Contexto de ejecución del programa • Toda la operación que el Sistema Operativo necesita para administrar el proceso. 14 Proceso Administración de Memoria • • • • • Aislamiento del proceso Alocación y administración automática Soporte de programación modular Protección y control de acceso Almacenamiento a largo plazo 15 Memoria virtual • Permite a los programadores direccionar memoria desde un punto de vista lógico • Mientras que un proceso se escribe a almacenamiento secundario, el proceso sucesor puede leer 16 Sistema de Archivos • Implementa almacenamiento a largo plazo • Infomación almacenada en objetos llamados archivos. Paginación • Permite que los procesos esten constituidos por un número fijo de bloques llamados páginas. • Dirección virtual es un número de página y un desplazamiento dentro de ella • Cada pagina puede ubicarse en cualquier lugar dentro de la memoria principal • Dirección real o física en memoria principal. 17 Direccionamiento de memoria virtual Protección y Seguridad de la Información • Control de acceso – Regular el acceso del usuario al sistema • Control del flujo de la información – Regular el flujo de datos dentro del sistema y su envío hacia los usuarios • Certificación – Proveer que el acceso y el control del flujo de datos se lleve a cabo conforme a las especificaciones 18 Calendarización y Administración de Recursos • Equidad – repartir equitativamente el acceso a todos los procesos • Respuesta diferenciada – discriminar entre diferentes clases de tareas • Eficiencia – maximizar eficiencia, minimizar tiempo de respuesta Principales Elementos de un Sistema Operativo 19 Estructura del Sistema • Visualizar el sistema como una serie de niveles • Cada nivel desempeña un subconjunto relacionado de funciones • Cada nivel depende del siguiente nivel inferior para desempeñar funciones más básicas • Esto descompone un problema en un número más manejable de subproblemas Jerarquía del diseño de un S.O. Nivel Nombre Objetos Ejemplos de operaciones 13 Shell Ambiente de programación del usuario Sentencias del shell 12 Procesos de usuario Procesos de usuario Quit, kill, suspend, resume 11 Directorios Directorios Create, destroy, attach, detach, search, list 10 Dispositivos Dispositivos externos Abrir, cerrar, leer, escribir. tales como impresoras, monitores y teclados 9 Sistema de Archivos Archivos Crear, destruir, abrir, cerrar leer, escribir 8 Comunicaciones Crear, destruir, abrir. cerrar, leer, escribir Pipes 20 Jerarquía del diseño de un S.O. Nivel Nombre Objetos Ejemplo de Operaciones 7 Memoria Virtual Segmentos, páginas Leer, escribir, buscar 6 Almacenamiento local secundario Bloques de datos, Leer, escribir, reservar, liberar canales de dispositivos 5 Procesos primitivos Procesos primitivos, semáforos Suspender, reanudar, señal de esperar Jerarquía del diseño de un S.O. Nivel Nombre Objetos Ejemplos de operaciones 4 Interrupciones Manejo de Interrupciones Invocar, enmascarar, desenmascarar, reintentar 3 Procedimientos Procedimientos, pila de llamadas, despliegue Marcar pila, llamar, retornar 2 Conjunto de Intrucciones Pila de evaluación, interprete de micro-, programas, datos escalares y en arreglos Cargar, almacenar, sumar, restar 1 Circuitos Electrónicos Registros, compuertas, buses, etc. Limpiar, transferir, activar 21 Características de Sistemas Operativos Modernos • Arquitectura MicroKernel – Asigna solo algunas funcione esenciales al kernel • Espacio de direccionamiento • Comunicación entre procesos (IPC) • Calendarizació básica Características de Sistemas Operativos Modernos • Multithreading – Proceso es dividido en threads que pueden ejecutarse simultáneamente • Thread – Unidad de trabajo – ejecuta secuencialmente y es interrumpible • Un proceso es una colección de uno o más threads 22 Características de Sistemas Operativos Modernos • Multiprocesamiento simétrico – Existen múltiples procesadores – Estos procesadores comparten la misma memoria principal y dispositivos de E/S – Todos los procesadores pueden desempeñar las mismas funciones Características de Sistemas Operativos Modernos • Sistemas Operativos Distribuidos – Proveen la ilusión de una sola memoria principal y un solo espacio de almacenamiento secundario. – Utilizados para el sistema de archivos distribuidos (DFS) 23 Características de Sistemas Operativos Modernos • Diseño orientado a objetos – Utilizados para agregar extensiones modulares a un núcleo pequeño – Permite a los programadores el personalizar un sistema operativo sin afectar la integridad del sistema Windows 2000 • Explota el poder de los procesadores de 32 bits • Provee de un ambiente multitareas en modo monousuario • Computación Cliente/Servidor 24 Arquitectura Windows 2000 • Estructura modular por flexibilidad • Se ejecuta en una gran variedad de plataformas de hardware • Soporta aplicaciones para una gran variedad de sistemas operativos Organización del S.O. • Arquitectura microkernel modificada – No es un Microkernel puro – Muchas funciones fuera del núcleo corren en modo kernel • Cada módulo puede ser removido, actualizado o reemplazado sin la necesidad de reescribir el sistema. 25 Estructura por capas • Capa de Extracción de Hardware (HAL) – Aisla al S.O. de diferencias de hardware específicas a la plataforma. • Microkernel – Los componentes más utilizados y los más fundamentales del sistema operativo. • Controladores de Dispositivos – Traducen las llamadas a funciones de E/S en peticiones específicas a los dispositivos de E/S Ejecutor W2K • • • • • • • • Administrador de E/S Administrador de Objetos Monitor de Seguridad Administrador de procesos/threads Centro de Llamada a Procedimiento Local Administrador de Memoria Virtual Administrador de Caché Modulos de Graficos 26 Procesos de usuario • Procesos especiales de soporte al sistema – Ej: proceso de login y administrador de sesiones • Procesos de servidor • Subsistemas de ambiente • Aplicaciones de usuario Modelo Cliente/Servidor • Simplifica el ejecutor – Posible el contruir una variedad de API’s • Mejora la confiabilidad – Cada servicio corre por un proceso por separado con su propia particion de memoria – El cliente no puede accesar directament el hardware • Provee un medio uniforme para comunicacion de las aplicaciones via LPC • Provee de la base de computación distribuida 27 Threads y SMP • Diferentes rutinas pueden ejecutarse simultáneamente el diferentes procesadores • Threads multiples de ejecución de un solo proceso pueden ejecutarse en diferentes procesadores simultáneamente • Procesos del servidor pueden utilizar multiples threads • Se comparten datos y recursos entre procesos. 28 UNIX • El hardware esta cubierto por el S.O. • El sistema operativo es llamado kernel • Viene con un gran número de servicios de usuario e interfaces – shell – compilador C UNIX 29 Sistemas UNIX Modernos • • • • System V Release 4 (SVR4) Solaris 2.x 4.4BSD Linux 30