1. 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
2. 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
Ejecución de programas de usuario
Amigabilidad
Eficiencia
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
Componentes Esenciales de un Sistema de Computación
Componentes de un
Sistema de Computación
el hardware
los programas de aplicación
los usuarios
el sistema operativo
3. Funciones de un Sistema Operativo
Funciones de un Sistema Operativo
Asignar Recursos
Programa de Control
Facilitador de tareas de usuarios
Máquina Virtual
Usuarios
Información
Hardware
Datos
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)
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
Amigable
Eficiente
Segura
Dos Niveles
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
4. Elementos de un Sistema Operativo
Elementos Software de un Sistema
Operativo
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
El programador debía ser operador
Explotación mediante listas de reserva
Problemas:
Tiempo asignado insuficiente
Tiempo asignado mayor
Primeras Mejoras
Dispositivos Físicos: lectoras, impresoras,
cintas
Dispositivos lógicos: ensambladores,
cargadores, linkadores y drivers
Lenguajes de alto nivel: compiladores
(FORTRAN, COBOL)
Problemas
Uso ineficiente de recursos
Baja utilización de la CPU
Tiempo requerido para dejar listo un
programa para ejecución (setup time)
5. Sistemas Monitores Residentes
Objetivo
Disminuir el setup time
Operador Profesional
Estrategia de explotación: agrupación por
Lotes
Secuenciamiento automático de trabajos Memoria
Control de finalización de tareas
Tratamiento de errores
Carga y ejecución automática de la Sistema
siguiente tarea Operativo
Primer Sistema Operativo
Monitor residente, realiza automáticamente el
secuenciamiento de tareas
Introduce tarjetas de Control ($FNT $JOB $END)
Área de
Funciones Programas
Intérprete de tarjetas de Control
Cargador de Usuario
Drivers de dispositivos
Problemas
Falta de iteración entre usuario y maquina
Lentitud 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
6. Sistemas por Lotes Multiprogramados
Memoria
Objetivo
Mejorar el rendimiento de la CPU
Sistema
Operativo
Motivación
Consecuencia de la planificación de tareas (job Trabajo 1
scheduling)
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 Trabajo 3
Tareas del Sistema Operativo
Gestión de Memoria
Planificación de la CPU
Planificación de Trabajos
Protección
Control 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
Sistema Multitarea (tarea <> proceso)
Sistema Interactivo
Sistema de Archivos (archivos/directorios)
Sistema Multiusuario
Memoria Virtual (memoria lógica)
7. 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
Adoptan funcionalidades de grandes sistemas
No 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
Mayor rendimiento
Compartir recursos
Sistemas tolerantes a fallos
Sistemas de multiprocesamiento
Multiprocesamiento simétrico: cada procesador
ejecuta una copia del sistema operativo
Multiprocesamiento asimétrico: cada procesador
tiene una tarea específica
8. 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
Recursos compartidos
Computación más rápida
Confiabilidad
Comunicación
Sistemas de Tiempo Real
Objetivo
Los requisitos de tiempo de la operación de
procesador o del flujo de datos son estrictos
Tipos
Tiempo real duro: garantiza que las tareas críticas
se terminarán a tiempo
Tiempo real bando: una tarea de tiempo real
crítica tiene prioridad respecto a otras tareas
9. Funcionamiento de los Sistemas de Computación
Sistema de Computación
Controlador de dispositivo
Bus de sistema
Memoria compartida
Controlador
Controlador de dispositivo: componente hardware
‘device controler’
Controlador software: componente software
‘device driver’
Programa de Arranque
Init: 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 Procesos Gestión del Sistema de E/S
crear y eliminar procesos, tanto de usuario como de crear y eliminar directorios
sistema un componente de gestión de memoria que incluye
suspender y reanudar procesos buffers, cachés, y spool
proveer mecanismos para la sincronización de un interfaz general con los controladores de
procesos dispositivos
proveer mecanismos para la comunicación de Drivers (controladores software)
procesos
proveer mecanismos para manejar bloqueos mutuos Gestión de Almacenamiento Secundario
(dead locks) administración del espacio libre de almacenamiento
secundario
Gestión de Memoria Principal asignación del almacenamiento
conocer el estado actual de la memoria y quien la planificación del almacenamiento secundario
está utilizando
decidir que procesos se cargarán en la memoria Trabajo con Redes
cuando se disponga de espacio
asignar y liberar espacio de memoria según se Sistema de Protección
necesite suspender y reanudar procesos
Sistema de Interpretación de Órdenes
Gestión de Archivos
intérprete de línea de comandos
crear y eliminar archivos
interfaz gráfica de usuario
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)
10. Elementos de Sistemas Operativos – Servicios del Sistema
Servicios para comodidad del Servicios para aseguran el
programador funcionamiento eficiente
Ejecución de Programas Asignación de recursos
Operaciones de E/S Contabilización
Manipulación de Sistema de Archivos Protección
Comunicaciones
Detección de Errores
Elementos de Sistemas Operativos – Llamadas al Sistema
Llamadas al Sistema Categorías
Interfaz entre el proceso y el Sistema Operativo
1. Control de procesos y tareas
cargar, ejecutar
Disponibles como instrucciones en lenguaje fin, abortar
ensamblador o lenguajes de alto nivel, y se listan en crear proceso, terminar proceso
los manuales empleados en la programación del obtener atributos, establecer atributos del proceso
lenguaje 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
11. Elementos de Sistemas Operativos – Programas del Sistema
Programas del Sistema Categorías
Algunos de ellos son interfaces entre el usuario y las
1. Manipulación de Archivos
llamadas al sistema, mientras que otros son mucho
crear, eliminar, copiar, cambiar nombre,...
más complejos
2. Información de Estado
fecha, hora, espacio de disco, número de usuarios,...
Ubicados en el núcleo del sistema operativo y los 3. Modificación de Archivos
programas de usuario 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. Estructura Simple: D.O.S
2. Modelo de Capas: UNIX, OS/2
3. Modelo de Máquina Virtual: VM
4. Modelo Cliente/Servidor: Windows-NT
12. 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.
Núcleo del Sistema Residente
Los recursos se estructuran por bloques.
Máximo de funcionalidad en un mínimo de espacio,
con hardware limitado
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 Sistema de archivos Planificación de CPU
por señales Sistema de E/S por Reemplazo de páginas
Sistema de E/S por caracteres intercambio de bloques Paginación por demanda
Drivers de terminales Drivers de disco y cinta Memoria virtual
Interfaz del núcleo con el hardware
Controladores de Terminales Controladores de Dispositivos Controladores de Memoria
Terminales Discos y Cintas Memoria Física
Estructura de bloques de UNIX Clásico
Arquitectura de Sistemas Operativos – Estructura por Capas
Modelo por Capas
Capa M
Diseñados para utilización de hardware más
Operaciones
avanzado, estos sistemas operativos se encuentran
•
•
nuevas •
mucho más fragmentados.
Operaciones
ocultas
•
• Capa M-1
Objetivos •
1. Mayor libertad para implementadores Operaciones •
2. Modularidad en los sistemas existentes •
•
3. Ocultamiento de información para que los
programadores
Capa de un Sistema Operativo
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
13. 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
Interfaz
de
Núcleo Núcleo Núcleo
programación
Núcleo Máquina Virtual
Hardware Hardware
Máquina no virtual Máquina virtual