320 likes | 470 Views
Overview de Sistemas Operativos. Capítulo 2. Un Sistema Operativo. Un programa que controla la ejecución de programas de aplicación Una interface entre las aplicaciones y el hardware Objetivos Conveniencia: Un SO hace que el uso de un computador sea más conveniente
E N D
Overview de Sistemas Operativos Capítulo 2
Un Sistema Operativo • Un programa que controla la ejecución de programas de aplicación • Una interface entre las aplicaciones y el hardware • Objetivos • Conveniencia: Un SO hace que el uso de un computador sea más conveniente • Eficiencia: Un SO permite que los recursos de un computador sean usados eficientemente • Habilidad de evolucionar: Un SO debiera permitir desarrollar, probar e implantar nuevas funcionalidades sin interferir con la prestación de otros servicios
Servicios que presta un SO • Desarrollo de programas • Editores, depuradores, profilers • Ejecución de programas • Acceso a dispositivos de I/O • Acceso controlado a archivos • Acceso al sistema • Detección y manejo de errores • Hardware • Software • Permisos • Contabilidad • Estadísticas de uso de los recursos por los usuarios • Monitore del rendimiento del sistema
El SO como un administrador de recursos • Responsable de la administracion de recursos • Funciona de la misma forma que otros programas del sistema, es decir es un programa que se ejecuta en el procesador • El SO libera el control del procesador cuando no está en ejecución • Luego, el SO depende del procesador (apoyo de hardware) para volver a tomar el control del procesador
Kernel • Porción del SO que siempre está en memoria principal • Contiene las funciones del SO más usadas • También se le llama Núcleo
Evolución de los SOs • Procesamiento serial (1940-1950) • Interacción directa con el hardware • No existe un SO propiamente tal • Lectores de tarjetas, luces de status y error, switches, impresoras, etc • Problemas • Scheduling de programas (jobs) • Tiempo desperdiciado en setup: carga del compilador, carga del programa fuente, almacenamiento del programa compilado, linkeo con librerias, etc
Evolución de SOs • Sistemas batch: la idea es minimizar los tiempos de scheduling y setup • Monitores • Software que controla la sequencia de eventos • Procesamiento serial de jobs (uno tras de otro) • Cada programa usuario programado de tal forma que al finalizar su ejecucion, retorne el control al monitor • JCL (Job Control Language) • Tipo especial de lenguaje que instruye al monitor a realizar ciertas tareas • Que compilador cargar, que datos usar, etv
Característica de Hardware • Los SO batch introdujieron necesidades de hardware • Protección de memoria • No permitir que el programa en ejecucion altere el contenido del monitor • Timer • Previene que un job monopolice el sistema • Instrucciones privilegiadas • Garantiza que ciertas instrucciones de máquina sean ejecutadas sólo por el monitor • Interrupciones • Los conceptos de protección de memoria e instrucciones privilegiadas dieron origen al concepto de modos de operación • Modo usuario • Modo kernel o privilegiado
Sistemas batch Uniprogramados • SO batch uniprogramados son altamente ineficientes • El procesador debe esperar hasta que las operaciones de I/O terminen
Sistemas batch multiprogramados • Cuando un job necesita esperar por el término de una operación de I/O, el procesador puede ejecutar algún otro job
Requerimientos de hardware • Manejo de interrupciones • DMA • Administración de memoria • Scheduling de jobs
Sistemas de tiempo compartido (time sharing) • Así, como en sistemas batch multiprogramados, el procesador es compartido por varios jobs, en sistemas de tiempo compartido, el procesador es compartido entre usuarios. • Incluye procesos batch y procesos interactivos • Usuarios múltiples accesan el sistema a través de terminales • El procesador es asignado a cada proceso usuario por un quantum de tiempo
Compatible Time-Sharing System (CTSS) • Primer sistema de tiempo compartido desarrollado en el MIT
Aportes importantes por los SO • Procesos • Administración de memoria • Seguridad y protección de la información • Administración de recursos y scheduling • Estructura de los SOs Principios y abstracciones
Procesos • Un programa en ejecución • Una instancia de un programa corriendo en un computador • La entidad que puede ser asignada y ejecutada por un procesador • Una unidad de actividad caracterizada por un hebra secuencial de ejecución, un estado actual, y un conjunto asociado de recursos del sistema • Consiste de cuatro componentes principales • Un programa ejecutable • Datos • Contexto de ejecución o estado del procesos: toda la información requerida por el SO para administrar el proceso • Stack (del usuario)
Administración de memoria • Aislamiento de los procesos • Administración y procuramiento automático • Apoyar programación modular • Protección y control de acceso • Almacenamiento de largo plazo
Memoria virtual • Permite a los programas direccionar la memoria desde un punto de vista lógico y despreocuparse de la memoria física disponible • Permite mantener varios procesos en memoria y asi evitar demoras en carga y descarga de procesos
Paginación • Particiona los procesos (y la memoria física) en un número de bloques de tamaño físico fijo llmados páginas • Los procesos emiten direcciones virtuales compuestas de un número de página y un offset dentro de dicha página • Las páginas pueden ser almacenadas en cualquier parte de la memoria • El sistema de paginación también mapea la dirección virtual a una dirección física o real
Protección y seguridad de la información • Los SO deben proveer mecanismos de seguridad en los siguientes aspectos • Disponibilidad • Proteger al sistema contra interrupciones al servicio • Confidencialidad • Asegurar que los usuarios no puedan leer datos no autorizados • Integridad de datos • Asegurar que los usuarios no modifiquen datos sin autorización debida • Autenticidad • Relacionado con la verificación de la identidad de los usuarios y la validez de los mensajes o datos
Scheduling y administracion de recursos • Factores a considerar • Equitatividad • Dar acceso similar a todos los recursos • Respuesta diferencial • Discriminar entre distintas clases de jobs • Eficiencia • Maximizar throughput, minimizar tiempo de respuesta y servir el mayor número posible de usuarios
Estructura del SO • Una forma de organizar un SO es como una serie de niveles o capas • Cada capa es responsable de prestar ciertos servicios relacionados (mismo nivel de abstracción, misma escala de tiempo) • Idelamente, los cambios en un nivel no implican cambios en los otros niveles
Ejemplo de niveles: niveles cercanos al Hwd • Nivel 1: circuitos electrónicos • Registros, celdas de memoria, puertas lógicas, etc. • Operaciones tales como borrar un registro, leer una dirección de memoria • Nivel 2: Instrucciones de máquina • Operaciones individuales permitidas por el lenguaje de máquina • Nivel 3: Procedimientos • Implementa el concepto de procedimiento o subrutina • Uso de stack • Nivel 4: Interrupciones • Guardar contexto del proceso y llamar rutinas encargadas de manejar las interrupciones
Ejemplo de niveles: conceptos de Multiprogramación • Nivel 5: Proceso básico o primitivo • El proceso como un programa en ejecución • Suspensión y reanudación de procesos • Mecanismos básicos de sincronización, como semáforos • Nivel 6: Operaciones básicas de almacenamiento secundario • Transferencia de bloques de datos • Nivel 7: Memoria virtual • Implementa un espacio de direccionamiento lógico para los procesos • Páginas, segmentos e híbridos
Ejemplo de niveles: objetos externos • Nivel 8: Comunicación entre procesos • Pipes, colas de mensajes • Nivel 9: Sistema de archivos • Implementa almacenamiento de largo plazo de archivos con nombre • Nivel 10: Dispositivos externos • Provee acceso a dispositivos externos usando una interfaz estándar • Nivel 11: Directorios • Responsible por mantener la asociación entre identificadores externos e internos • Nivel 12: Proceso usuario • Implementa soporte completo para procesos • Nivel 13: Shell • Provee una interface entre el usuario y el SO
Conceptos de SO modernos • Arquitectura microkernel • Asigna sólo funciones esenciales al kernel • Espacio de direcciones • Comunicación entre procesos • Scheduling básico • Otros servicios son prestados por procesos servidores que corren en modo usuario o no privilegiado • Estos procesos son vistos por el microkernel como un proceso más en el sistema • Nota: Un kernel monolítico implementaría todos los servicios típicos de un SO y generalmente correria como un solo proceso • Programación multihebras • El proceso se ejecuta en varias hebras que corren concurrentemente • Hebra • Unidad de trabajo que se despacha en el procesador • Se ejecuta secuencialmente y es interrumpible • Un procesos es una collección de una o más hebras y sus recursos asociados
Conceptos de SO modernos • Multiprocesamiento simétrico (SMP) • Varios procesadores comparten memoria principal y facilidades de I/O • Todos los procesadores pueden realizar todas las tareas • En particular, el SO puede correr en cualquiera de los procesadores y asignar procesos usuarios a cualquiera de los procesadores • Beneficios de SMP • Rendimiento: paralelismo (versus concurrencia) • Disponibilidad: la falla de un procesador no detiene al sistema • Escalabilidad • SO distribuido • Permite que un conjunto de computadores se comporten como un sistema unificado • No es lo mismo que SO de red