13
Sistemas Informáticos Fundamentos de Sistemas Operativos Fede Pérez 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 Índice

Fundamentos de Sistemas Operativoss1e66500e982cd8e0.jimcontent.com/download/version/1304965183/module...Sistemas Informáticos Fundamentos de Sistemas Operativos Fede Pérez TEMA –

Embed Size (px)

Citation preview

Sistemas Informáticos

Fundamentos deSistemas Operativos

Fede Pérez

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

Índice

Definición

Sistema OperativoEs un programa que actúa como intermediario entre el

usuario de un computador y el hardware de éste

Servicios de un Sistema Operativo

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

Objetivos de un Sistema OperativoEjecución de programas de usuarioAmigabilidadEficiencia

Componentes Esenciales de un Sistema de Computación

Componentes de unSistema de Computación

el hardware los programas de aplicaciónlos usuarios el sistema operativo

Funciones de un Sistema Operativo

Funciones de un Sistema OperativoAsignar Recursos Programa de ControlFacilitador de tareas de usuarios

UsuariosMáquina Virtual

Información

DatosHardware

SistemaOperativo

Programas deAplicación

Enfoque Jerárquico de un Sistema OperativoMáquina Desnuda

Características físicas del computador (hardware), sin ningún revestimiento lógico (software)

Entorno árido de programación Conocimiento profundo del sistema

Máquina ExtendidaMáquina virtual que se constituye a partir de la máquina desnuda dotada de módulos lógicos

AmigableEficienteSegura

Dos NivelesMáquina Extendida InternaOperaciones elementales y comunes que actúan sobre algún elemento físico del sistemaMáquina Extendida ExternaMódulos físicos que pueden extraerse y funcionar sobre el nivel de máquina extendida interna

Elementos de un Sistema Operativo

Elementos Software de un Sistema Operativo

Núcleo o Kernel Programas de Aplicación

NúcleoKernel

Tipos Sistemas Operativos – Primeras Realizaciones

CaracterísticasEl programador debía ser operadorExplotación mediante listas de reservaProblemas:

Tiempo asignado insuficienteTiempo asignado mayor

Primeros Ordenadores (antes de los 50)Máquinas muy grandes que carecían de elementos

lógicos

ProblemasUso ineficiente de recursos

Baja utilización de la CPUTiempo requerido para dejar listo un

programa para ejecución (setup time)

Primeras MejorasDispositivos Físicos: lectoras, impresoras,

cintasDispositivos lógicos: ensambladores,

cargadores, linkadores y driversLenguajes de alto nivel: compiladores

(FORTRAN, COBOL)

Sistemas Monitores Residentes

ObjetivoDisminuir el setup time

Operador ProfesionalEstrategia de explotación: agrupación por LotesSecuenciamiento automático de trabajos

Control de finalización de tareasTratamiento de erroresCarga y ejecución automática de la

siguiente tarea

ProblemasFalta de iteración entre usuario y maquinaLentitud frente a operaciones de E/S

Primer Sistema OperativoMonitor residente, realiza automáticamente el

secuenciamiento de tareas

Introduce tarjetas de Control ($FNT $JOB $END)

FuncionesIntérprete de tarjetas de ControlCargadorDrivers de dispositivos

Área de Programas de Usuario

Sistema Operativo

Memoria

Sistemas por Lotes – Operaciones de E/S

ObjetivoMejorar el rendimiento de los sistemas por lotes

perfeccionando técnicas de E/S

BufferingEsquema 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-lineModo 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

Técnicas

Sistemas por Lotes Multiprogramados

ObjetivoMejorar el rendimiento de la CPU

Tareas del Sistema OperativoGestión de MemoriaPlanificación de la CPUPlanificación de TrabajosProtecciónControl de Concurrencia (Dead Lock)

MotivaciónConsecuencia de la planificación de tareas (job

scheduling)

ProcedimientoConmutación de CPU: cuando una tarea deba

esperar, los recursos de CPU son asignados a otra tarea preparada para ejecución

Sistema Operativo

Memoria

Trabajo 1

Trabajo 2

Trabajo 3

Sistemas de Tiempo Compartido

ObjetivoMejorar la interactividad con el usuario

Tareas del Sistema OperativoSistema Multitarea (tarea <> proceso)Sistema Interactivo Sistema de Archivos (archivos/directorios)Sistema Multiusuario Memoria Virtual (memoria lógica)

CaracterizaciónSistemas multiprogramados e interactivos. Asignación de la CPU en rodajas de tiempo a todos los usuarios, consiguiendo:

Tiempos de respuesta cortosImpresión de usuario único

Sistemas de Computador Personal

ObjetivoSistemas de computador dedicados a un solo usuario

CaracterísticasAdoptan funcionalidades de grandes sistemasNo necesitan características de utilización

eficiente de CPU, ni protección

Dispositivos de E/STecladoRatónPantallasPequeñas impresoras

PropiedadesAdaptados al usuario y sus necesidades

Sistemas Paralelos

ObjetivoSistemas multiprocesador.

Sistemas fuertemente acoplados

CaracterísticasMayor rendimientoCompartir recursosSistemas tolerantes a fallosSistemas de multiprocesamiento

Multiprocesamiento simétrico: cada procesador ejecuta una copia del sistema operativo

Multiprocesamiento asimétrico: cada procesador tiene una tarea específica

PropiedadesCon más de un procesador, comparten bus, reloj, memoria, periféricos,...

Sistemas Distribuidos

ObjetivoSistemas multicomputador (distribuir el cómputo

entre varios procesadores).Sistemas débilmente acoplados

CaracterísticasRecursos compartidosComputación más rápidaConfiabilidadComunicación

PropiedadesLos procesadores no comparten ni memoria, ni reloj. Se comunican entre sí a través de líneas de comunicación

Sistemas de Tiempo Real

ObjetivoLos requisitos de tiempo de la operación de procesador o del flujo de datos son estrictos

TiposTiempo real duro: garantiza que las tareas críticas

se terminarán a tiempoTiempo 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ónControlador de dispositivoBus de sistemaMemoria compartida

ControladorControlador de dispositivo: componente hardware

‘device controler’Controlador software: componente software

‘device driver’

Programa de ArranqueInit: primer proceso Interrupción:

Interrupción hardware: a través de bus de sistema

Interrupción software: Llamada al sistema

Elementos de Sistemas Operativos – Componentes del Sistema

Gestión de Procesoscrear y eliminar procesos, tanto de usuario como de sistemasuspender y reanudar procesosproveer mecanismos para la sincronización de procesosproveer mecanismos para la comunicación de procesosproveer mecanismos para manejar bloqueos mutuos (dead locks)

Gestión de Memoria Principalconocer el estado actual de la memoria y quien la está utilizandodecidir que procesos se cargarán en la memoria cuando se disponga de espacioasignar y liberar espacio de memoria según se necesite suspender y reanudar procesos

Gestión de Archivoscrear y eliminar archivoscrear y eliminar directoriosproveer primitivas para la manipulación de archivos y directoriosestablecer la correspondencia de los archivos con el almacenamiento secundarioresguardar los archivos en medios de almacenamiento estables (no volátiles)

Gestión del Sistema de E/Screar y eliminar directoriosun componente de gestión de memoria que incluye buffers, cachés, y spoolun interfaz general con los controladores de dispositivosDrivers (controladores software)

Gestión de Almacenamiento Secundarioadministración del espacio libre de almacenamiento secundarioasignación del almacenamientoplanificación del almacenamiento secundario

Trabajo con Redes

Sistema de Protección

Sistema de Interpretación de Órdenesintérprete de línea de comandosinterfaz gráfica de usuario

Elementos de Sistemas Operativos – Servicios del Sistema

Ejecución de Programas

Operaciones de E/S

Manipulación de Sistema de Archivos

Comunicaciones

Detección de Errores

Asignación de recursos

Contabilización

Protección

Servicios para comodidad del programador

Servicios para aseguran el funcionamiento eficiente

Elementos de Sistemas Operativos – Llamadas al Sistema

1. Control de procesos y tareascargar, ejecutarfin, abortarcrear proceso, terminar procesoobtener atributos, establecer atributos del procesoesperar tiempoesperar sucesos, indicar sucesosasignar, liberar memoria

2. Manipulación de Archivoscrear, eliminarabrir, cerrarleer, escribir, reposicionarobtener atributos, establecer atributos

3. Manipulación de Dispositivossolicitar, liberarleer, escribir, reposicionarobtener atributos, establecer atributosconectar, desconectar lógicamente

4. Mantenimiento de Informaciónobtener, establecer fecha y horaobtener, establecer datos del sistemaobtener atributos de proceso, archivo o dispositivoestablecer atributos de proceso, archivo o dispositivo

5. Comunicacionescrear, eliminar conexiónenviar, recibir mensajestransferir información de estadoconectar, desconectar dispositivos remotos

CategoríasInterfaz entre el proceso y el Sistema Operativo

Llamadas al Sistema

Disponibles como instrucciones en lenguaje ensamblador o lenguajes de alto nivel, y se listan en los manuales empleados en la programación del lenguaje

Elementos de Sistemas Operativos – Programas del Sistema

1. Manipulación de Archivoscrear, eliminar, copiar, cambiar nombre,...

2. Información de Estadofecha, hora, espacio de disco, número de usuarios,...

3. Modificación de Archivoseditores de texto,...

4. Apoyo a Lenguajes de Programaciónensambladores, compiladores, intérpretes,...

5. Carga y Ejecución de Programasensambladores, compiladores, intérpretes,...

6. Comunicacionesacceso remoto, transferencia de archivos, correo electrónico,...

Categorías

Ubicados en el núcleo del sistema operativo y los programas de usuario

Programas del SistemaAlgunos de ellos son interfaces entre el usuario y las llamadas al sistema, mientras que otros son mucho más complejos

Arquitectura de Sistemas Operativos – Estructura del Sistema

Modelos de DiseñoForma en que se puede construir un Sistema Operativo para que funcione correctamente y pueda modificarse con facilidad.

1. Estructura Simple: D.O.S2. Modelo de Capas: UNIX, OS/23. Modelo de Máquina Virtual: VM4. Modelo Cliente/Servidor: Windows-NT

Arquitectura de Sistemas Operativos – Estructura Simple

Controladores de dispositivos en ROM BIOS

Controladores de dispositivos de S.O.

Núcleo del Sistema Residente

Programa de Aplicación

Estructura de bloques de D.O.S.

Controladores de Terminales

Terminales

Controladores de Dispositivos

Discos y Cintas

Controladores de Memoria

Memoria Física

Interfaz del núcleo con el hardware

Manejo de terminalespor señales

Sistema de E/S por caracteresDrivers de terminales

Sistema de archivosSistema de E/S por

intercambio de bloquesDrivers de disco y cinta

Planificación de CPUReemplazo de páginas

Paginación por demandaMemoria virtual

Interfaz con el núcleo mediante llamadas al sistema

Shells y órdenesCompiladores e intérpretes

Bibliotecas del sistema

Usuarios

Estructura de bloques de UNIX Clásico

Los recursos se estructuran por bloques.Máximo de funcionalidad en un mínimo de espacio, con hardware limitado

Estructura SimpleLos sistemas operativos con esta estructura son generalmente sistemas pequeños, sencillos y limitados.

Arquitectura de Sistemas Operativos – Estructura por Capas

Capa M

Capa M-1Operacionesocultas

•••

Operacionesexistentes

•••

Operacionesnuevas

•••

Capa de un Sistema Operativo

Capa 0: HardwareCapa 1: Intérprete de instruccionesCapa 2: Planificación de CPUCapa 3: Canal de E/SCapa 4: Memoria virtualCapa 5: Controladores de dispositivosCapa 6: Programas de Usuario

Estructura de capas de Venus

Objetivos1. Mayor libertad para implementadores2. Modularidad en los sistemas3. Ocultamiento de información para que los

programadores

Modelo por CapasDiseñados para utilización de hardware más avanzado, estos sistemas operativos se encuentran mucho más fragmentados.

Arquitectura de Sistemas Operativos – Máquinas Virtuales

Máquinas VirtualesUtilizando 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.

HardwareNúcleo

Procesos

HardwareMáquina Virtual

Núcleo

Procesos

Núcleo

Procesos

Núcleo

Procesos

Máquina no virtual Máquina virtual

Interfazde

programación