Sotr 1
-
Upload
damaya1701 -
Category
Documents
-
view
96 -
download
4
Transcript of Sotr 1
1
SISTEMAS OPERATIVOS DE TIEMPO REAL
Prof. Roberto Vignoni
Facultad de Ingeniería,UNLP
2
Programa
1) Introducción a los sistemas operativos
Historia y evolución
Generalidades
2) Procesos
Creación y estados
Transición
Planificación: Criterios y algoritmos
3) Gestión de memoria
Asignación contigua y no contigua
Memoria virtual
4) Gestión de Archivos
5) Sistemas operativos de tiempo real
Funcionalidades y características
Planificación
Sincronización
Estándares y técnicas de evaluación
de funcionamiento
6) Ejemplos de S.O. de Tiempo Real
3
Sistemas Operativos
Programas del Sistema
Software
Programas de Aplicación
� Definición: Sistema manejador de recursos
que permite una distribución controlada y
ordenada del µp,.memoria, E/S, entre los
diversos programas que compiten por ellos.
Internet Sist. Contable Juegos
Compilad. Editores Interpretes
Sistema Operativo
Lenguaje de Máquina
Microprogramación
Dispositivos Físicos
Aplicaciones
C.I. Plaquetas, cables, etc.
(Modo usuario)
(Modo supervisor)
Instrucciones - Assembler
4
� Historia Los SO han evolucionado
intimamente ligados con la evolución de las
computadoras que los utilizan.
– 1a Generación (1945-1955)
Tubos de vacío - Tableros enchufables
Programación en lenguaje absoluto -
Cableado
Cálculos numéricos directos (Tablas de
senos y cosenos)
Después de 1950 - Tarjetas perforadas -
Procesos en serie.
– 2a Generación (1955-1965)
Transistores - Sistemas por lotes -
Tarjetas perforadas
Programación en Fortran
Sist Op. FMS (Fortran Monitor System)
IBSYS Sist. Op. de IBM 7094.
5
� 3a Generación (1965-1980)
Circuitos Integrados - Multiprogramación
Sistema /360 IBM - Científico y Comercial
Bajo tiempo de respuesta de sist. por lotes
Tiempo compartido
– CTSS del MIT primer sistema de tiempo compartido
sobre IBM 7904
MIT
Bell Labs MULTICS (Información
GE multiplexada y servicios de
computación)
Objetivo
Principal
Origen de
las
Instrucci
ones
Al sist.
Op.
Multiprogramación
Por lotes
Tiempo
compartido
Maximizar la
Utilizacion del µp
Instrucciones de
control incluidas
con el trabajo
Minimizar el
Tiempo de resp.
Ordenes dadas
desde una
terminal
6
– Si bien fracasó tuvo enorme influencia en
sistemas subsiguientes.
– Fenomenal crecimiento de las
minicomputadoras PDP -1 a PDP -11
Brian Kernigan UNICS
UNIX
Dennis Ritchie Creador de “C”
� 4aGeneración (1980-1990)
Computadora personal
MS-DOS Intel
UNIX Motorola y otras
(más grandes)
� 5a Generación (1990 - ?
Windows 95 - NT
Linux
UNIX
Sistemas operativos distribuidos
7
Procesos
� Proceso: Es la unidad más pequeña de
trabajo, individualmente planificable por un
SO. Es un concepto dinámico y se refiere a un
programa en ejecución que sufre cambios de
estados y atributos.
� Programa ejecutable: entidad estática que
puede dar lugar a uno o varios procesos.
8
� Creación y terminación de procesos
– Motivos:
» Nuevo trabajo en un proceso por lotes
» Conexión interactiva
» Creado por el SO para brindar un
servicio
» Generado por un proceso existente
» Terminación normal
» Tiempo límite excedido
» No hay memoria disponible
» Violación de límites de memoria
» Fallo de E/S
» Intervención del operador o del SO
» Terminación del proceso padre
9
Suspendido
� Desde el punto de vista del SO, los procesos
pueden adoptar distintos estados
� Nuevo: Proceso recién creado, pero no admitido
por el SO como ejecutable
� Listo o preparado: Posee todos los recursos
excepto el procesador
� En ejecución: Está siendo ejecutado
� Suspendido o bloqueado: Carece de algunos
recursos además del µp
� Terminado: Ha sido excluido del grupo de los
ejecutables
Nuevo Listo Ejecución Terminado
Admitir
Planificado
ExpropiadoLiberar
Espera
Suceso
10
� Bloque de control de proceso (BCP)
Creado por el SO cuando un proceso se
instala y que sirve como descriptor durante
toda la vida del proceso.
El BCP incluye todos o algunos de los
siguientes campos de información
– Nombre del proceso
– Prioridad
– Estado (listo, en ejecución o suspendido)
– Estados de hardware (registros, flags)
– Información de planificación
– Información de gestión de memoria
– Estados de E/S (dispositivos asignados,
operaciones pendientes)
– Información de gestión de archivos (abiertos,
derechos de acceso)
11
� Listas de procesos
Creadas por el SO
» Lista de procesos preparados
» Lista de procesos suspendidos
� Usuario Sistema operativo
Px en
Ejecución
� Cambio
Suceso de Modo Guarda estados de
hardware de Px en
BCPx
Actualiza estados de Px,
datos de planificador, etc.
Atiende el suceso.(No se
considera parte de la
conmutación.
Planifica el siguiente
proceso a ejecutar Py
Restaura el estado de
Hardware de Py
Cambio Restaura atributos desde
de Modo BCPy
Py en Ejecución
12
� Hebras – Hilos – (Threads)
� También llamada proceso liviano (light weight
process). Son miniprocesos con estados
reducidos que comparten recursos tales como
memoria y archivos.
� Cada hebra pertenece exclusivamente a un
solo proceso y ninguna hebra puede existir
fuera de un proceso.
� El proceso pasa a ser estático y se convierte
en un entorno y propietario de recursos para la
ejecución de las hebras.
� Sistemas que no usan hebras: Tradicionales,
pesados, buena protección, bajo rendimiento,
UNIX
� Sistemas con hebras: Livianos, rápidos, poca
protección, alto rendimiento, OS/2, Windows
NT.
13
� Planificación
Conjunto de políticas y mecanismos del
SO que gobiernan el orden en que se
ejecutan los procesos.
� Planificación a largo plazo: Decisión de agregar
procesos a la reserva de procesos a ejecutar.
� Planificación a medio plazo: Decisión de
agregar procesos al conjunto de procesos que
se encuentran parcial o completamente en
memoria.
� Planificación a corto plazo: Decisión sobre que
proceso disponible será ejecutado por el
microprocesador.
� Planificación de E/S: Decisión sobre que
solicitud de E/S pendiente, será tratada por un
dispositivo disponible.
14
� Se pueden relacionar las funciones de
planificación con el diagrama de transición de
estados de un proceso.
PLPPLPNuevo
Listo y
Suspendido Listo Ejecutando
Bloqueado y
Suspendido BloqueadoTerminado
PMP
PMP
PCP
15
� Planificador a largo plazo
� Determina cuales de los programas son
admitidos en el sistema controlando asi el grado
de multiprogramacion.
� Planificador de medio plazo
� Forma parte de la función de intercambio.
Controla las transiciones de suspendido a
preparado de los procesos retirados.
Ejecutando
Listo
Bloqueado
Bloqueado y
Suspendido
Listo y
Suspendido
Nuevo TerminadoPLP
PMP
PCP
16
� Planificador a corto plazo (dispatcher)
� Asigna el µp a un proceso entre los preparados
residentes en memoria. Se ejecuta cuando un
suceso conduce a la interrumpción del proceso
en ejecución u ofrece la posibilidad de
expulsarlo a favor de otro.
� Interrupciones basadas en tiempo (Tics de
reloj)
� Interrupciones y terminaciones de E/S
� Lammadas al sistema operativo
� Envio y recepción de señales
� Criterios de Planificación
Criterios orientados al usuario - Criterios de
rendimiento
– Tiempo de Respuesta: Para un proceso
interactivo, es el intervalo de tiempo
transcurrido desde que se emite una solicitud,
hasta que se comienza a recibir respuesta.
– Tiempo de Retorno: Es el intervalo de tiempo
transcurrido entre el lanzamiento de un proceso
y su finalización.
17
– Plazo: Si se pueden especificar plazos de
terminación de un proceso, se deben considerar
la maximización de plazos cumplidos.
Criterios orientados al usuario - Otros criterios
– Pervisibilidad: Un determinado trabajo se debe
ejecutar aproximadamente en el mismo tiempo
y con el mismo coste, sin importar la carga del
sistema.
Criterios orientados al sistema - Criterios de
rendimiento
– Productibilidad: Se debe intentar maximizar el
número de procesos terminados por unidad de
tiempo. Depende de la longitud media de cada
proceso, pero también de la técnica de
planificación.
– Utilizacion del Prosesador: Se considera el
porcentaje de tiempo que el procesador se
mantiene ocupado.
18
Criterios orientados al sistema - Otros criterios
– Equidad: En ausencia de directivas del usuario
o del SO, los procesos deben ser tratados de
igual forma. Ningún proceso debe sufrir
inanición.
– Prioridades: La planificación debe favorecer a
aquellos procesos a los que se haya asignado
mayor prioridad.
– Equilibrios: Se deben mantener ocupados los
recursos del sistema
� Algoritmos de Planificación
» Expropiativa
» No expropiativa
– Primero en llegar, primero en ser servido
(FCFS)
– Turno rotatorio (RR Round Robin)
– Primero el proceso mas corto (SPN, Shortest
process Next)
19
– Menor tiempo restante (SRT, Shortest
Remainning Time)
– Planificación expropiativa basada en prioridades
– Se utiliza realimentación con múltiples niveles
RQ0
RQ1
RQn
CPU
CPU
CPU
Liberar
Liberar
Liberar
Entrada
20
Gestión de Memoria
� Se ocupa de asignar memoria física de
capacidad finita a los procesos que la solicitan.
� Separación y protección de espacios de
memoria – Compartición
� Se pueden realizar distintea clasificaciones:
– Asignación Contigua
– Asignación No Contigua
21
� Asignación Contigua
� Cada objeto lógico es colocado en bloques
de memoria cuyas direcciones son
estrictamente contiguas.
� Partición Estática: Cuando se inicializa el
sistema
� Inconveniente: Fragmentación interna
� Partición Dinámica: En respuesta a
demandas del usuario
� Inconveniente: Fragmentación externa
22
� Esquemas de Gestión
� Monitor de un solo proceso (PC-DOS)
� Parte residente del SO
� Memoria
Procesos transitorios, cargados
y ejecutados uno por vez.
� Solo existe protección para el código del SO
� Registro valla
� Bits de protección
23
� Multiproceso - Partición estática
� Tabla de descripción de particiones (TDP)
� Estrategias de Asignación de Particiones
– Primer Ajuste: Asigna la primera partición libre,
lo suficientemente grande para acomodar al
proceso.
– Mejor Ajuste: El SO asigna la partición más
pequeña que satisfaga las necesidades del
proceso.
� La elección es según sea necesaria la
velocidad de ejecución o la utilización de
memoria.
Nº de
Partción
Direcc.
Base
Tamaño Estado
0 100 K Asig.
1
0 K
100 K 300 K Libre
2
3 500 K
400 K
250 K
100 K
Asig.
Asig.
4 750 K 250 K Libre
24
� Situaciones en que el SO no puede asignar
una partición:
1 Ninguna partición es lo suficientemente
grande. Mensaje de error.
Reconfiguración.
2 Todas las particiones están asignadas. Se
pospone la carga. Se libera una partición
(intercambio).
3 Hay particiones libres pero ninguna es lo
suficientemente grande. Se usan las dos
opciones anteriores.
� Intercambio (Swapping)
– Es el retiro de memoria de los procesos
suspendidos o expropiados y su posterior
reincorporación.
� Intercambiador: Proceso del SO encargado
de:
– Seleccionar procesos para retirarlos de
memoria
– Seleccionar procesos para incorporarlos a
memoria
25
– Gestionar y asignar espacio de intercambio.
� (Funciones de un planificador a medio plazo)
� Criterios de selección de procesos a ser
retirados de memoria.
– Procesos de baja prioridad
– Procesos que esperan sucesos lentos
– Tiempo que el proceso se encuentra instalado
en memoria
– Si han sido ejecutados mientras estaban en
memoria
� Archivo de intercambio: Almacena la imagen
dinámica de un proceso retirado.
– Global: Unico, grande, creado en la
inicialización, estático.
– Dedicados: Pequeños, uno por cada proceso,
dinámicos.
26
� Reubicación: Donde se almacena un
proceso que había sido retirado
temporariamente.
– Estática: El programa parcialmente ejecutado y
retirado de memoria, es recuperado en la
misma partición de la que fue desalojado.
Alta complejidad espacial y temporal.
– Dinámica: Utiliza direcciones virtuales. Se
realiza en tiempo de ejecución. Asistencia de
hardware para la correspondencia entre
direcciones virtuales y espacio físico.
27
� Compartición
� La gestión de memoria debe permitir la
compartición de datos y código entre
procesos cooperativos.
� Existen tres técnicas básicas:
• Los objetos compartidos los maneja el
SO como llamadas al sistema. Simple,
pero se genera un SO grande
monolítico y difícil de mantener.
• Mantener múltiples copias de los
objetos compartidos, uno por cada
partición de la cooperación. El SO es
el encargado de mantener
actualizados los datos. Lento y se
utiliza mucha memoria.
• Utilizar particiones de memoria
compartidas. Recarga de trabajo al
SO.
28
� Asignación de Memoria – Partición
Dinámica
� Algoritmos de selección
– Primer Ajuste (First Fit). El gestor de memoria
busca el primer bloque libre lo suficientemente
grande como para alojar la partición. Se
comienza a examinar desde la primera
posición de memoria.
– Siguiente Ajuste (Next Fit). Se comienza a
examinar la memoria desde la dirección
indicada por un puntero que fue guardado
donde termino la asignación anterior.
– Mejor Ajuste (Best Fit). Se recorre toda la
memoria libre hasta encontrar el bloque más
pequeño que pueda alojar la partición que esta
siendo creada.
– Peor Ajuste (Worst Fit). Siempre se asigna el
bloque más grande, siempre que este exceda
en tamaño al de la partición a crearse.
29
� Compactación
– Cuando la memoria resulta seriamente
fragmentada, hay que reubicar alguna o todas
las particiones en un extremo de la memoria y
asi combinar los huecos para formar una unica
area libre grande.
– Se puede realizar:
Siempre que sea posible
Solo cuando es necesaria
� Segmentación
– Consiste en dividir el espacio de memoria de
un proceso, en bloques que puedan ser
ubicados en areas no contiguas de memoria.
– Se realiza la ruptura del espacio de memoria
en varias entidades lógicas llamadas
segmentos.
30
� Asignación No Contigua
� Partes de un objeto lógico pueden estar
colocados en áreas no contiguas de memoria
física. Existe una correspondencia entre el
espacio de direcciones virtuales contiguo y
las posiciones de memoria física no
contiguas.
� Paginación
� La memoria física se divide en una serie
de porciones de tamaño fijo denominadas
marcos de página.
� El espacio de direcciones virtuales se
divide en bloques de igual tamaño llamados
páginas.
� La asignación de memoria consiste en
generar la correspondencia entre páginas
virtuales con sus marcos de página físicos, y
se realiza a partir de un mecanismo de
traducción de direcciones. Como la
correspondencia se hace separadamente, los
diferentes marcos asignados a un proceso,
no necesitan estar en áreas contiguas de
memoria física.
31
� Los métodos de traducción de direcciones se
realizan con la ayuda de tablas:
� (TMP) Tabla de mapa de páginas
� (TMM) Tabla de mapa de memoria
� Memoria Virtual
� Una imagen del espacio de memoria
real de un proceso se mantiene en memoria
secundaria, trayendo partes de esa imagen a
memoria principal, según sea necesario. La
memoria virtual permite la ejecución de
procesos parcialmente cargados.
� La memoria virtual, puede considerarse
como una extensión de la paginación o de la
segmentación o una combinación de ambas.
32
� La traducción de direcciones se realiza por
medio de:
� Tablas de mapa de páginas
� Tablas de descriptores de
segmentos
� Ambas
33
� La gestión de memoria virtual presenta
distintas políticas:
» .Política de asignación: Que cantidad
de memoria real se asigna a cada
proceso activo.
» .Política de acceso: Cuando y que
elementos se incorporan desde el
almacenamiento secundario a la
memoria principal.
» .Política de sustitución: Cuando hay
que incorporar un nuevo elemento y
no existe memoria real libre, que
elemento se desaloja.
» .Política de ubicación: Donde se
coloca el elemento nuevo.
� En general los elementos son traídos a
memoria principal cuando en el proceso en
ejecución produce una excepción por
elemento ausente. Es decir paginación o
segmentación por demanda. También se
utilizan políticas de prebúsqueda
34
� La política de ubicación sigue las reglas de la
paginación y segmentación.
� Políticas de Sustitución
� Si el gestor de memoria no dispone de
marcos de página libres cuando se genera
una excepcióm por elemento ausente puede:
» )Suspender el proceso con elemento
faltante hasta que haya espacio
suficiente en memoria.
» )Desalojar una página para dejarle
sitio a la del proceso que lo solicita.
� Algoritmos de sustitución
� Primero en entrar, primero en salir
(FIFO): Sustituye la página residente que
lleve mas tiempo en memoria. Se utiliza una
cola de páginas para llevar la cuenta del
orden relativo en que se cargan las páginas
en memoria.
35
� Menos recientemente usada, (LRU,
Least Recently Used): En la mayoría de los
casos mejor que el anterior ya que considera
los patrones de comportamiento de los
programas. Impone recargo de software y
requiere de soporte hardware.
� Optimo: Algoritmo teórico desarrollado
por Belady, requiere conocimiento del
comportamiento futuro de los procesos, por lo
que no es realizable y se utiliza como
referencia en simulaciones.
� Aproximaciones o Reloj: Dado que el
FIFO tiene bajo rendimiento y el LRU es
costoso, se utiliza una combinación de ambos
conocida como reloj o No Recientemente
Usado (NRU)
36
GESTION DE ARCHIVOS
� Servicios brindados por el SO a los
usuarios y aplicaciones, relativos al empleo de
archivos.
� Presenta los siguientes objetivos:
• Cumplir con las necesidades de gestión
de datos y con requisitos del usuario.
� Almacenamiento
� Recuperar todo
� Recuperar previo
� Recuperar uno
� Borrar uno
� Actualizar
� Insertar
37
• Garantizar dentro de lo posible que los
datos sean válidos.
• Optimizar el rendimiento, desde el
punto de vista del sistema:
productividad global y desde el punto
de vista del usuario: tiempo de
respuesta.
• Ofrecer soporte de entrada/salida para
diversos dispositivos de
almacenamiento.
• Minimizar las posibilidades de pérdida
o destrucción de datos.
• Proporcionar soporte de entrada/salida
para múltiples usuarios en sistema
multiusuario.
38
– Arquitectura de un sistema de archivos
� En forma genérica podríamos considerar
cinco niveles:
� Manejadores de dispositivos (Device
Drivers): Puede considerarse el nivel más
bajo. Se comunican directamente con
periféricos o sus controladores. Son
responsables de iniciar las operaciones de
E/S en un dispositivo (generalmente disco o
cinta) y procesar la terminación de una
petición de E/S.
� Sistema de Archivos Básico, o nivel
de E/S física. Este nivel maneja bloques de
datos que son intercambiados con sistemas
de disco o cinta. No comprende la estructura
de los datos, solo se encarga de ubicarlos en
dispositivos de almacenamiento secundario o
intermedio.
39
� Supervisor Básico de Entrada/Salida:
Es responsable de toda iniciación y
terminación de toda E/S con archivos. Tiene
estructuras de control que se encargan de la
E/S con los dispositivos, la planificación y el
estado de los archivos.
� E/S Lógica: Permite a los usuarios y
aplicaciones acceder a los registros. A
diferencia de l sistema de archivos básico
que trabaja con bloques, la E/S lógica lo hace
con registros.
� Método de Acceso: Es el nivel más
cercano al usuario. Proporciona una interfaz
entre las aplicaciones y los sistemas de
archivos y dispositivos que guardan datos.
– Organización y Acceso a Archivos
� La mayor parte de las estructuras de
archivos empleadas en sistemas reales, se
encuadran dentro de alguna de las siguientes
categorías o como combinación de ellas.
�
40
� Pilas: Es la forma más simple de
organización. Los datos se recogen por orden
de llegada. Son registros con ráfagas de
datos. Pueden tener campos diferentes o
similares en distinto orden. Cada campo debe
ser autodescriptivo (nombres, valor y
longitud).
� El acceso se hace en forma exhaustiva, para
encontrar un registro, es necesario examinar
uno por uno hasta ubicarlo.
� Esta clase de archivos aprovecha bien el
espacio, son fáciles de actualizar, pero fuera
de usos limitados no se adapta a la mayoría
de las aplicaciones.
� Archivos secuenciales.
� Es la forma más común de estructura de
archivo. Tiene un formato fijo para todos los
registros, estos tienen la misma longitud y el
mismo número de campos de tamaño fijo y
en un orden determinado.
41
� Un campo particular, generalmente el
primero de cada registro, se denomina campo
clave e identifica unívocamente al registro.
Los registros se almacenan en secuencia por
la clave (numérica, alfabética, etc.).
� La búsqueda secuencial ofrece pobre
rendimiento.
� Archivos secuenciales indexados.
Mantienen las características básicas de los
archivos secuenciales. Los registros se
organizan en una secuencia basada en un
campo clave, pero se agregan dos
características nuevas que son el índice de
archivo, para soportar accesos aleatorios y un
archivo de desborde (overflow).
42
� La estructura más simple, utiliza un solo
nivel de indexación. El índice, es un archivo
secuencial simple con dos campos: un campo
clave similar al del archivo principal y un
puntero al archivo principal. Para encontrar
un campo específico, se busca en el índice
hasta encontrar el valor mayor de la clave,
que sea igual o inmediatamente anterior al
valor deseado. La búsqueda continua en el
archivo principal a partir de la posición
indicada por el puntero.
� Cada registro del archivo principal tiene
un campo que resulta invisible para las
aplicaciones que es un puntero al archivo de
desborde. Cuando se agrega un nuevo
registro a un archivo, esto se realiza en el
archivo de desborde, pero se actualiza el
registro precedente del archivo principal con
un índice que apunta al nuevo registro en el
archivo de desborde.
43
� Este tipo de archivo, reduce
significativamente el tiempo necesario para
acceder a un registro. Se pueden utilizar
múltiples niveles de indexación para obtener
mayor eficacia en el acceso, aunque
complicando al Sist. Op.
� Archivos Indexados.
� En este caso no existen los conceptos de
secuencialidad y clave única. Los registros
son accedidos solo a través de sus índices.
No hay restricción en la ubicación de los
registros ya que cada uno está apuntado por
al menos a un índice. Se pueden utilizar
registros de longitud variable.
� Se suelen utilizar dos tipos de índices,
uno exhaustivo y uno parcial.
44
� Archivos directos o de dispersión.
� Explotan la capacidad de los discos para
acceder directamente a cualquier dirección de
memoria conocida. Se requiere de un campo
clave en cada registro pero no existe el
concepto de ordenamiento secuencial.
También utilizan archivos de desborde.
45
Directorios y Subdirectorios
� Son archivos del sistema operativo que
contienen información de otros archivos
contenidos en ellos, incluyendo atributos,
ubicación, propietarios, etc. Gran parte de
esta información es gestionada por el sistema
operativo.
� Algunas operaciones relacionadas con
los directorios son:
� Crear Directorio
� Buscar
� Borrar Archivo
� Listar Directorio
� Etc.
– Compartición de Archivos
� Es importante en sistemas multiusuario,
y su gestión se realiza teniendo en cuenta los
denominados derechos de acceso:
46
� Ninguno Adición
Usuario Específico
� Conocimiento Actualización
Grupos de Usuarios
� Ejecución Cambio de Protección
Todos
� Lectura Solamente Borrado
� En casos de compartición de archivos
por parte de dos o más usuarios con
derechos de acceso similares, el Sist. Op.
debe realizar tareas especiales, que
consideran los aspectos de exclusión mutua
e interbloqueo.
47
SISTEMAS OPERATIVOS DE TIEMPO REAL
� Un proceso o tarea de tiempo real es el
que se ejecuta en conexión con algún proceso,
función o conjunto de sucesos externos al
sistema informático y que debe cumplir uno o
más plazos para interactuar en forma correcta
y eficiente con el entorno exterior.
� Podemos decir que el procesamiento en
tiempo real, es un tipo de procesamiento en el
que la exactitud del sistema no depende solo
del resultado lógico de un cálculo, sino
también del instante en que se produzca este
resultado. Algunas aplicaciones de tiempo real
incluyen: control de procesos, robótica, control
de tráfico aéreo, sistemas de control y mando
de aviones, satélites, etc.
48
� Dado que los sucesos y por ende la
atención de los mismos se produce en tiempo
real, es posible hacer una clasificación en
función del plazo asociado a una tarea en
particular.
� Tarea rígida de tiempo real: Debe
cumplir un plazo, en caso contrario se
producirán daños o error fatal en el sistema.
� Tarea flexible de tiempo real: Tiene un
plazo de ejecución asociado, que es
conveniente pero no obligatorio y aunque
haya vencido el plazo, todavía tiene sentido
planificar y completar la tarea.
� Otra característica de las tareas de
tiempo real es que pueden ser:
� Aperiódica: es recurrente pero no a
intervalos regulares. Por ejemplo la llegada
de un avión al espacio aéreo de un
controlador.
� Periódicas: el estímulo o suceso ocurre de
manera regular cada ∆T segundos, como el
procesador de un TV que recibe un cuadro
cada 1/60 de segundo.
49
� Esporádicos (inesperados): por ejemplo el
sobrecalentamiento de un dispositivo.
� Los SOTR se pueden caracterizar por
presentar requisitos especiales en las
siguientes áreas:
� Determinismo: Un sistema es determinista
cuando realiza operaciones en intervalos de
tiempo predeterminados. Si existen varios
procesos que compiten por los recursos y por
el tiempo del procesador, ningún sistema será
completamente determinista. Hasta donde un
sistema puede satisfacer las peticiones en
forma determinista, depende de la velocidad
con que pueda responder a las interrupciones
y si el sistema posee los recursos para
gestionar todas las peticiones en el tiempo
exigido.
� Sensibilidad: El determinismo se refiere al
tiempo que tarda un SO en reconocer una
interrupción. La sensibilidad tiene en cuenta
el tiempo que tarda en dar servicio a la
interrupción.
50
� Existen tres características importantes
a tener en cuenta:
� 1.- La cantidad de tiempo necesario para
iniciar la gestión de la interrupción y
comenzar la ejecución de su rutina de
tratamiento (ISR, Interrupt Service Routine)
� 2.- La cantidad de tiempo necesario para
ejecutar la ISR depende generalmente de la
plataforma de hardware.
� 3.- El efecto de anidamiento de las
interrupciones. El servicio será mas lento si
una ISR puede ser interrumpida por otra
interrupción.
� El determinismo y la sensibilidad forman
conjuntamente el tiempo de respuesta a
sucesos externos. Este tiempo es critico en
SOTR.
51
� Fiabilidad: Es mucho más importante en
SOTR. Un fallo transitorio en un SO común,
puede solucionarse reiniciando el sistema. El
fallo de un procesador en sistemas
multiprocesadores, reduce el nivel de
servicio.
� En un SOTR, las perdidas o
degradaciones del rendimiento pueden tener
consecuencias catastróficas.
� Tolerancia a fallas: es una característica que
hace referencia a la capacidad de un sistema
de mantener máximas posibilidades de
trabajo y máxima cantidad de datos posibles
en caso de fallo. Un SOTR intentará corregir
el problema o minimizar sus efectos mientras
continua la ejecución.
� Un aspecto importante de la tolerancia a
fallos es la estabilidad. Un SOTR es estable
si en los casos en que es imposible cumplir
con todos los plazos de ejecución de las
tareas, el sistema si cumplirá con las tareas
más críticas y de mayor prioridad, aun
cuando no se cumplan los de algunas tareas
menos críticas.
52
� Para cumplir los requisitos anteriores,
los SOTR incluyen las siguientes
características:
• Pequeño tamaño (con una mínima
funcionalidad asociada)
• Cambios de contexto rápidos
• Capacidad para responder
rápidamente a interrupciones externas
• Multitarea con herramientas de
comunicación entre procesos, como
semáforos y señales
• Uso de archivos secuenciales para
almacenar datos a alta velocidad
• Planificación expropiativa basada en
prioridades
• Reducción de los intervalos en los que
están deshabilitadas las interrupciones
• Alarmas especiales y temporizadores
53
� El corazón de un SOTR es el planificador de
corto plazo. En el diseño de tales
planificadores, no es importante la equidad ni
el tiempo medio de respuesta. Lo que resulta
importante es que todas las tareas rígidas de
tiempo real comiencen y acaben en su plazo
y que la mayor cantidad de tareas flexibles
también sean ejecutadas.
– Planificación en tiempo real
– En el estudio de los algoritmos de
planificación de tiempo real, se observa
que los métodos de planificación
dependen de:
– )Si el sistema lleva a cabo un análisis de
planificación
– )En caso afirmativo si se realiza en forma
estática o dinámica
– )Si el resultado del análisis genera un plan
con respecto al cual se expiden las tareas
durante la ejecución.
54
– En base a las consideraciones anteriores
se pueden identificar las siguientes clases
de algoritmos:
� Métodos con tablas estáticas: Realizan un
análisis estático de las planificaciones
posibles. El resultado del análisis es un plan
que determina, durante la ejecución, cuando
debe comenzar o terminar la ejecución de
una tarea. Es aplicable a tareas periódicas.
Los datos iniciales son:
– Tiempo periódico de llegada
– Tiempo de ejecución
– Plazo periódico de finalización
– Prioridad relativa de cada tarea
– El planificador intenta trazar un plan que
le permita cumplir las exigencias de todas
las tareas periódicas. Es un método
predecible e inflexible, ya que cualquier
cambio de exigencia en una tarea,
requiere un nuevo plan.
55
– Métodos apropiativos con propiedades
estáticas: También se realiza un análisis
estático, pero no se traza ningún plan. En
cambio, se usa dicho análisis para asignar
prioridades a tareas, con lo que se puede
usar un planificador apropiativo con
prioridades convencional. En este caso la
asignación de prioridades se encuentra
relacionada con las restricciones de
tiempo asociadas a cada tarea.
– Métodos dinámicos de planificación: Se
determina la viavilidad durante la
ejecución (dinámicamente), en vez de
antes de empezar la ejecución
(estáticamente). Se acepta una nueva
tarea para ejecutar solo si es factible
cumplir con sus restricciones de tiempo.
56
– Métodos dinámicos de mejor resultado: No
se realiza ningún análisis de viavilidad, ya
que las tareas son generalmente
aperiódicas. El sistema intenta cumplir
todos los plazos y abandona cualquier
proceso ya iniciado y cuyo plazo no se
haya cumplido.
� Es la técnica utilizada en la mayoría de
los SOTR en la actualidad. Cuando llega una
tarea, el sistema le asigna una prioridad en
función de sus características. Se emplea
normalmente algún tipo de planificador por
plazos. En general se desconoce si se va a
cumplir una restricción de tiempo hasta que
vence el plazo o la tarea concluya. Esta es la
mayor desventaja, aunque son fáciles de
implementar.
57
– Planificación por plazos
– En las aplicaciones de tiempo real,
generalmente no preocupa la velocidad
absoluta, sino completar y/o iniciar las
tareas en el momento mas apropiado, ni
antes ni después, a pesar de las
peticiones dinámicas de los recursos,
sobrecarga de proceso y fallos de
hardware y software.
– Para mejorar el diseño y rendimiento de
un SOTR, se debería disponer de la
siguiente información:
– Plazo de comienzo: Instante en que la
tarea debe comenzar.
– Plazo de finalización: Instante en que la
tarea debe terminar. Generalmente las
aplicaciones de tiempo real tienen plazo
de comienzo o plazo de finalización, pero
no ambos.
58
– Tiempo de proceso: Tiempo necesario
para ejecutar una tarea hasta su
finalización. En algunos casos, este
tiempo se conoce y en otros el SO calcula
una media exponencial.
– Exigencias de recursos: El conjunto de
recursos, además del procesador, que
necesita una tarea para su ejecución.
– Prioridad: Mide la importancia relativa de
la tarea. Las tareas rígidas pueden tener
una prioridad absoluta, produciéndose un
fallo si el plazo no se cumple. Las tareas
flexibles son generalmente de menor
prioridad.
– Estructura de subtareas: Una tarea puede
descomponerse en subtarea obligatoria y
subtarea opcional. Solo la obligatoria tiene
plazo rígido.
59
– Cuando se consideran plazos, hay
distintos factores para la planificación en
tiempo real: que tarea se planifica a
continuación y que tipo de expropiación
se permite.
– Para una determinada política de
apropiación, tanto si se emplean plazos
de inicio como de finalización, utilizar la
política de planificación de la tarea con el
plazo más próximo, es la que da mejores
resultados.
– Cuando se especifican plazos de
comienzo, tiene sentido utilizar un
planificador no expropiativo y que cada
tarea se bloquee a sí misma después de
completar la parte obligatoria o crítica de
su ejecución, permitiendo satisfacer
plazos de comienzo de otras tareas.
– Si se utilizan plazos de terminación es
apropiada la estrategia apropiativa.
60
– Ejemplos
– Consideremos un ejemplo de
planificación periódica de tareas con plazo
de terminación. Dados dos sensores A y
B, el plazo para tomar datos del sensor A
es cada 20 ms y del sensor B cada 50 ms.
Se tarda 10 ms, incluida la sobrecarga del
SO para procesar los datos de A y 25 ms
los datos de B.
� Prod. Llegada Ejec. Plazo
� A 10 10 20
� A2 20 10 40
� A3 40 10 60
� A4 60 10 80
� A5 80 10 100
�
� B1 0 25 50
� B2 50 25 100
61
� Consideremos el caso de planificación por
prioridades con A de mayor prioridad que B
� Vemos que en este caso B1 no es ejecutado
en su totalidad.
� Veamos el mismo caso anterior cuando B
tiene mayor prioridad que A
� Podemos observar que tanto A1 como A4 no
pueden ser ejecutados dentro de sus
respectivos plazos de terminación.
A1 A2 A3 A4 A5
B1 B2
302010 40 50 70 80 9060 100
A1
B2A2B1 A4A3
A5,B2
A5B1 B2A1
A2 A4A3B1
B2
Plazo de
Terminación
A1
A2B1 A3
A5,B2
A5B2
A2 A4A3B1
Plazo de
terminación
62
– Consideremos ahora el caso de una
planificación que, en el instante de
apropiación, da prioridad a la tarea con
plazo más corto de finalización.
– En este caso, pueden cumplirse todos los
requisitos del sistema. Puesto que todas
las tareas son periódicas y predecibles, se
usa un método de planificación con tablas
estáticas.
– Consideremos un esquema que trate con
tareas aperiódicas con plazos de inicio
según la siguiente tabla
A1
B2A2B1 A4A3
A5,B2
A5B1A1
A2 A4A3B1
Plazo de
Termina
ción
63
�
� Proc. Lleg. TEjec. Plazo
� A 10 20 110
� B 20 20 20
� C 40 20 50
� D 50 20 90
� E 60 20 70
�
� Consideremos en primer lugar un caso de
planificación con plazo de inicio
B
302010 40 50 70 80 9060 100
C DB EA
E DC A
Instante
s de
llegada
Plazos
de
inicio
110
EDCA B
AEC
E
DB
DCA
64
– Vemos que en este caso la tarea B no
puede ser cumplida, aun cuando requiera
servicio inmediato. Este es un riesgo
común en la planificación de tareas
aperiódicas, especialmente con plazos de
inicio.
– Una variante de esta política, conocida
como la del plazo más próximo con
tiempos libres no forzosos, mejora el
rendimiento
– En este caso, se consideran conocidos
los plazos de terminación de cada tarea,
antes de que ellas estén listas. Siempre
se planifica la tarea con plazo más
próximo y se deja ejecutar hasta que
finalice.
EDC
B
B
AEC
E
DB
DC A
A
65
– Una tarea elegible puede no estar lista lo
que puede originar que el procesador
quede libre aunque haya tareas listas.
– En el ejemplo anterior, el sistema se
abstiene de planificar la tarea A aunque
es la única lista, debido a que su plazo es
el mas largo. Como resultado, todas las
tareas son atendidas aun cuando el
procesador no se utiliza con máxima
eficiencia.
66
Listado y Características de algunos SOTR
� VRTX: Versatile Real Time Executive
� Disponible para Intel, Motorola, VME
� Multitarea: Dispone de mecanismos para
satisfacer los requisitos de TR de la mayoría
de las aplicaciones empotradas
� Mecanismos de exclusión mutua, señalización
y comunicación
� VX Works
� Es de Wind River. Más económico que VRTX
� Utilitarios para depuración simbólica,
comunicación a través de redes por medio de
TCP/IP y sockets
� Estructura jerárquica
67
� Micronúcleo proporciona los servicios de:
– multitarea
– comunicación entre procesos
– sincronización
Herramientas de desarrollo en el anfitrión
Conexión anfitrión-empotrado
Herramientas del sist. empotrado
68
� RT-Mach
� Versión en tiempo real de MACH
� Incluye:
– Gestión de procesos ligeros basada en el
modelo ARTS, con características de TR
– Planificador activado por eventos integrado
en el núcleo
– Objetos residentes en memoria
– Herramientas de tiempo real: planificador
1-2-3 y monitor avanzado de tiempo real
(ARM).
RTEMS (Real time for military
systems)
Altas prestaciones:
multitarea
entorno homogéneo para mono y
multiprocesamiento
planificación con prioridades activadas por
eventos
69
– Planificación monotónica en frecuencia
opcional
– comunicación entre tareas y sincronización
– herencia de prioridades
– gestión de interrupciones
– gestión dinámica de memoria
– alto nivel de reconfigurabilidad
RTEMS
core
70
� SPRING
� Sistema operativo de tiempo real desarrollado
en la Univ. de Manchester
� Trata de resolver algunos conceptos
equivocados y deficiencias tradicionales en
SO de TR. Es un sistema activado por eventos
de gran flexibilidad y muy predecible.
� Se clasifican las tareas sobre la base del coste
relativo del incumplimiento del tiempo de
respuesta:
» Tareas críticas
» Tareas esenciales
» Tareas no esenciales
71
� QNX
� Proporciona un entorno completo de tiempo
real para redes de mono o multiprocesadores
� Arquitectura: Micronúcleo rodeado por un
conjunto de procesos opcionales que brindan
compatibilidad con POSIX y UNIX
� Servicios del micronúcleo: Comunicación entre
procesos, planificación y tratamiento de
interrupciones de bajo nivel.
� Fuera del micronúcleo la funcionalidad se
proporciona mediante servidores.
– Obligatorio: Servidor de procesos
– Opcionales: Gestor de sistemas de archivos
– Gestor de dispositivos
– Gestor de redes
HARTOS
Desarrollado para la arquitectura HARTS (red
hexagonal de multiprocesadores de memoria
compartida)
El núcleo proporciona una interfaz uniforme para
comunicaciones entre procesos de tiempo real
72
� CHORUS
� Núcleo para sistemas distribuidos. Similar a MACH.
� Reescrito para que sirva como núcleo en sistemas de
tiempo real.
� Mejoras:
� Núcleo mínimo (10-100Kb) con servicios básicos que
permiten implementar servidores UNIX, POSIX, etc.
� Procesos de tiempo real críticos.
� Personalizaciones, construidas sobre el micronúcleo
que permiten integrar CHORUS con otros sistemas
(QNX, VRTX, UNIX, OS2, etc.)
� Distribución transparente conconectividad total entre
los núcleos del sistema.
� Interfaces abiertas y servicios estándares.
73
� MARS
� Maintenable Real Time System
� Sistema distribuido de tiempo real tolerante a fallas,
para control de procesos.
� Desarrollado en la Universidad Técnica de Viena
� Claves:
� Tolerancia a fallas
� Planificación estática
� Reparación dinámica
� Manejo de redes redundantes
� SOTR Orientados a Objetos
� CHAOS: Concurrent Hierachical Object System
� Sistema basado en objetos
� El núcleo ofrece los sistemas básicos y sobre el mismo
se desarrollan sistemas de tiempo real