Fundamentos de Sistemas...
Transcript of Fundamentos de Sistemas...
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