Issuu on Google+

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


FUNDAMENTOS SISTEMAS OPERATIVOS