Fundamentos de Sistemas Operativos Sistemas Informáticos
Fede Pérez
Índice TEMA – Fundamentos de Sistemas Operativos 1. - Introducción 2. - El Sistema Operativo como parte de un Sistema de Computación 2.1 – Componentes Esenciales de un Sistema de Computación 2.2 – Funciones de un Sistema Operativo 2.3 – Enfoque Jerárquico de un Sistema Operativo 2.4 – Elementos de un Sistema Operativo 3. – Tipos de Sistemas Operativos 3.1 – Primeros Sistemas 3.2 – Sistemas Monitor Simple; Sistemas por Lotes Sencillos 3.3 – Sistemas por Lotes Multiprogramados 3.4 – Sistemas de Tiempo Compartido 3.5 – Sistemas de Computador Personal 3.6 – Sistemas Paralelos 3.7 – Sistemas Distribuidos 3.7 – Sistemas de Tiempo Real 4. – Funcionamiento de los Sistemas de Computación 5. – Elementos de Sistemas Operativos 5.1 – Componentes del Sistema 5.2 – Servicios del Sistema Operativo 5.3 – Llamadas al Sistema 5.4 – Programas de Sistema 6. – Arquitecturas de Sistemas Operativos 6.1 – Estructura del Sistema
Definición Sistema Operativo Es un programa que actúa como intermediario entre el usuario de un computador y el hardware de éste
Objetivos de un Sistema Operativo 9 9 9
Ejecución de programas de usuario Amigabilidad Eficiencia
Servicios de un Sistema Operativo 9 9 9 9
asignar recursos del ordenador (CPU, memoria,...) a los programas dar acceso indirecto a los dispositivos del ordenador y a los periféricos proporcionar un sistema organizado de almacenamiento de datos comunicación interactiva con el usuario
Componentes Esenciales de un Sistema de Computación Componentes de un Sistema de Computación 9 9 9 9
el hardware los programas de aplicación los usuarios el sistema operativo
Funciones de un Sistema Operativo Funciones de un Sistema Operativo 9 9 9
Asignar Recursos Programa de Control Facilitador de tareas de usuarios
Máquina Virtual Usuarios Información
Datos
Hardware Sistema Operativo Programas de Aplicación
Enfoque Jerárquico de un Sistema Operativo Máquina Desnuda Características físicas del computador (hardware), sin ningún revestimiento lógico (software) 9 9
Entorno árido de programación Conocimiento profundo del sistema
Máquina Extendida Máquina virtual que se constituye a partir de la máquina desnuda dotada de módulos lógicos 9 9 9
Amigable Eficiente Segura
9
Máquina Extendida Interna Operaciones elementales y comunes que actúan sobre algún elemento físico del sistema Máquina Extendida Externa Módulos físicos que pueden extraerse y funcionar sobre el nivel de máquina extendida interna
Dos Niveles
9
Elementos de un Sistema Operativo Elementos Software de un Sistema Operativo 9 9
Núcleo o Kernel Programas de Aplicación
Núcleo Kernel
Tipos Sistemas Operativos – Primeras Realizaciones Primeros Ordenadores (antes de los 50) Máquinas muy grandes que carecían de elementos lógicos
Características 9 9
El programador debía ser operador Explotación mediante listas de reserva Problemas: ¾Tiempo asignado insuficiente ¾Tiempo asignado mayor
Primeras Mejoras 9Dispositivos Físicos: lectoras, impresoras, cintas 9Dispositivos lógicos: ensambladores, cargadores, linkadores y drivers 9Lenguajes de alto nivel: compiladores (FORTRAN, COBOL)
Problemas Uso ineficiente de recursos 9Baja utilización de la CPU 9Tiempo requerido para dejar listo programa para ejecución (setup time)
un
Sistemas Monitores Residentes Objetivo 9 9 9
Disminuir el setup time Operador Profesional Estrategia de explotación: agrupación por Lotes Secuenciamiento automático de trabajos ¾Control de finalización de tareas ¾Tratamiento de errores ¾Carga y ejecución automática de la siguiente tarea
Memoria Sistema Operativo
Primer Sistema Operativo Monitor residente, realiza automáticamente el secuenciamiento de tareas Introduce tarjetas de Control ($FNT $JOB $END)
Funciones 9Intérprete de tarjetas de Control 9Cargador 9Drivers de dispositivos
Área de Programas de Usuario
Problemas 9Falta de iteración entre usuario y maquina 9Lentitud frente a operaciones de E/S
Sistemas por Lotes – Operaciones de E/S Objetivo Mejorar el rendimiento de los sistemas por lotes perfeccionando técnicas de E/S
Técnicas Buffering Esquema de operación de E/S en el que las transferencias de E/S se realizan a través de un área intermedia de memoria (buffer) Permite solapar operaciones de E/S de una tarea con instrucciones de CPU de esa misma tarea
Operaciones Off-line Modo de operación de ciertos equipos de E/S que trabajan no controlados directamente por la CPU Se reemplazan dispositivos mecánicos por dispositivos electrónicos (cintas mágnéticas)
Operaciones On-line (Spooling) (Simultaneous Peripheral Operation On-Line) Consiste en usar el disco como tampón o sistema de buffering. Existe una tarea especial el spooler Permite solapar operaciones de E/S de una tarea con instrucciones de CPU de otras tareas
Sistemas por Lotes Multiprogramados Memoria Objetivo Mejorar el rendimiento de la CPU
Motivación
Sistema Operativo
Consecuencia de la planificación de tareas (job scheduling)
Trabajo 1
Procedimiento
Trabajo 2
Conmutación de CPU: cuando una tarea deba esperar, los recursos de CPU son asignados a otra tarea preparada para ejecución
Tareas del Sistema Operativo 9Gestión de Memoria 9Planificación de la CPU 9Planificación de Trabajos 9Protección 9Control de Concurrencia (Dead Lock)
Sistemas de Tiempo Compartido Objetivo Mejorar la interactividad con el usuario
Caracterización Sistemas multiprogramados e interactivos. Asignación de la CPU en rodajas de tiempo a todos los usuarios, consiguiendo: ¾Tiempos de respuesta cortos ¾Impresión de usuario único
Tareas del Sistema Operativo 9Sistema Multitarea (tarea <> proceso) 9Sistema Interactivo 9Sistema de Archivos (archivos/directorios) 9Sistema Multiusuario 9Memoria Virtual (memoria lógica)
Trabajo 3
Sistemas de Computador Personal Objetivo Sistemas de computador dedicados a un solo usuario
Propiedades Adaptados al usuario y sus necesidades
Dispositivos de E/S ¾Teclado ¾Ratón ¾Pantallas ¾Pequeñas impresoras
Características 9Adoptan funcionalidades de grandes sistemas 9No necesitan características de utilización eficiente de CPU, ni protección
Sistemas Paralelos Objetivo Sistemas multiprocesador. Sistemas fuertemente acoplados
Propiedades Con más de un procesador, comparten bus, reloj, memoria, periféricos,...
Características 9Mayor rendimiento 9Compartir recursos 9Sistemas tolerantes a fallos 9Sistemas de multiprocesamiento ¾Multiprocesamiento simétrico: cada procesador ejecuta una copia del sistema operativo ¾Multiprocesamiento asimétrico: cada procesador tiene una tarea específica
Sistemas Distribuidos Objetivo Sistemas multicomputador (distribuir el cómputo entre varios procesadores). Sistemas débilmente acoplados
Propiedades Los procesadores no comparten ni memoria, ni reloj. Se comunican entre sí a través de líneas de comunicación
Características 9Recursos compartidos 9Computación más rápida 9Confiabilidad 9Comunicación
Sistemas de Tiempo Real Objetivo Los requisitos de tiempo de la operación de procesador o del flujo de datos son estrictos
Tipos 9Tiempo real duro: garantiza que las tareas críticas se terminarán a tiempo 9Tiempo real bando: una tarea de tiempo real crítica tiene prioridad respecto a otras tareas
Funcionamiento de los Sistemas de Computación Sistema de Computación 9Controlador de dispositivo 9Bus de sistema 9Memoria compartida
Controlador 9Controlador de dispositivo: componente hardware ‘device controler’ 9Controlador software: componente software ‘device driver’
Programa de Arranque 9Init: primer proceso 9Interrupción: ¾ Interrupción hardware: a través de bus de sistema ¾Interrupción software: Llamada al sistema
Elementos de Sistemas Operativos – Componentes del Sistema 9Gestión de Procesos crear y eliminar procesos, tanto de usuario como de sistema suspender y reanudar procesos proveer mecanismos para la sincronización de procesos proveer mecanismos para la comunicación de procesos proveer mecanismos para manejar bloqueos mutuos (dead locks)
9Gestión de Memoria Principal conocer el estado actual de la memoria y quien la está utilizando decidir que procesos se cargarán en la memoria cuando se disponga de espacio asignar y liberar espacio de memoria según se necesite suspender y reanudar procesos
9Gestión de Archivos crear y eliminar archivos crear y eliminar directorios proveer primitivas para la manipulación de archivos y directorios establecer la correspondencia de los archivos con el almacenamiento secundario resguardar los archivos en medios de almacenamiento estables (no volátiles)
9Gestión del Sistema de E/S crear y eliminar directorios un componente de gestión de memoria que incluye buffers, cachés, y spool un interfaz general con los controladores de dispositivos Drivers (controladores software)
9Gestión de Almacenamiento Secundario administración del espacio libre de almacenamiento secundario asignación del almacenamiento planificación del almacenamiento secundario
9Trabajo con Redes 9Sistema de Protección 9Sistema de Interpretación de Órdenes intérprete de línea de comandos interfaz gráfica de usuario
Elementos de Sistemas Operativos – Servicios del Sistema Servicios para comodidad del programador
Servicios para aseguran el funcionamiento eficiente
9Ejecución de Programas
9Asignación de recursos
9Operaciones de E/S
9Contabilización
9Manipulación de Sistema de Archivos
9Protección
9Comunicaciones 9Detección de Errores
Elementos de Sistemas Operativos – Llamadas al Sistema Llamadas al Sistema Interfaz entre el proceso y el Sistema Operativo Disponibles como instrucciones en lenguaje ensamblador o lenguajes de alto nivel, y se listan en los manuales empleados en la programación del lenguaje
Categorías 1. Control de procesos y tareas cargar, ejecutar fin, abortar crear proceso, terminar proceso obtener atributos, establecer atributos del proceso esperar tiempo esperar sucesos, indicar sucesos asignar, liberar memoria
2. Manipulación de Archivos crear, eliminar abrir, cerrar leer, escribir, reposicionar obtener atributos, establecer atributos
3. Manipulación de Dispositivos solicitar, liberar leer, escribir, reposicionar obtener atributos, establecer atributos conectar, desconectar lógicamente
4. Mantenimiento de Información obtener, establecer fecha y hora obtener, establecer datos del sistema obtener atributos de proceso, archivo o dispositivo establecer atributos de proceso, archivo o dispositivo
5. Comunicaciones crear, eliminar conexión enviar, recibir mensajes transferir información de estado conectar, desconectar dispositivos remotos
Elementos de Sistemas Operativos – Programas del Sistema Programas del Sistema Algunos de ellos son interfaces entre el usuario y las llamadas al sistema, mientras que otros son mucho más complejos Ubicados en el núcleo del sistema operativo y los programas de usuario
Categorías 1. Manipulación de Archivos crear, eliminar, copiar, cambiar nombre,...
2. Información de Estado fecha, hora, espacio de disco, número de usuarios,...
3. Modificación de Archivos editores de texto,...
4. Apoyo a Lenguajes de Programación ensambladores, compiladores, intérpretes,...
5. Carga y Ejecución de Programas ensambladores, compiladores, intérpretes,...
6. Comunicaciones acceso remoto, transferencia de archivos, correo electrónico,...
Arquitectura de Sistemas Operativos – Estructura del Sistema Modelos de Diseño Forma en que se puede construir un Sistema Operativo para que funcione correctamente y pueda modificarse con facilidad. 1. 2. 3. 4.
Estructura Simple: D.O.S Modelo de Capas: UNIX, OS/2 Modelo de Máquina Virtual: VM Modelo Cliente/Servidor: Windows-NT
Arquitectura de Sistemas Operativos – Estructura Simple Estructura Simple
Programa de Aplicación
Los sistemas operativos con esta estructura son generalmente sistemas pequeños, sencillos y limitados. Los recursos se estructuran por bloques. Máximo de funcionalidad en un mínimo de espacio, con hardware limitado
Núcleo del Sistema Residente
Controladores de dispositivos de S.O.
Usuarios
Controladores de dispositivos en ROM BIOS
Shells y órdenes Compiladores e intérpretes Bibliotecas del sistema
Estructura de bloques de D.O.S.
Interfaz con el núcleo mediante llamadas al sistema Manejo de terminales por señales Sistema de E/S por caracteres Drivers de terminales
Sistema de archivos Sistema de E/S por intercambio de bloques Drivers de disco y cinta
Planificación de CPU Reemplazo de páginas Paginación por demanda Memoria virtual
Interfaz del núcleo con el hardware Controladores de Terminales Controladores de Dispositivos Terminales
Controladores de Memoria
Discos y Cintas
Memoria Física
Estructura de bloques de UNIX Clásico
Arquitectura de Sistemas Operativos – Estructura por Capas Modelo por Capas Diseñados para utilización de hardware más avanzado, estos sistemas operativos se encuentran mucho más fragmentados.
Capa M Operaciones nuevas
• • •
Operaciones ocultas
Objetivos 1. Mayor libertad para implementadores 2. Modularidad en los sistemas 3. Ocultamiento de información para que los programadores
Capa 6: Programas de Usuario Capa 5: Controladores de dispositivos Capa 4: Memoria virtual Capa 3: Canal de E/S Capa 2: Planificación de CPU Capa 1: Intérprete de instrucciones Capa 0: Hardware
Estructura de capas de Venus
Operaciones existentes
• • •
Capa M-1
• • •
Capa de un Sistema Operativo
Arquitectura de Sistemas Operativos – Máquinas Virtuales Máquinas Virtuales Utilizando planificación de la CPU y técnicas de memoria virtual, un sistema operativo puede crear la ilusión de que múltiples procesos se ejecutan cada uno en su propio sistema. Otro tipo de visión de máquina virtual es la de Java, donde los programas se ejecutan sobre una JVM (Java Virtual Machine), haciendo a los programas independientes del hardware utilizado.
Procesos Procesos
Procesos
Procesos
Núcleo
Interfaz de programación
Núcleo
Núcleo Máquina Virtual
Hardware
Hardware
Máquina no virtual
Máquina virtual
Núcleo