1. SISTEMAS OPERATIVOS
DE TIEMPO REAL
Prof. Roberto Vignoni
Facultad de Ingeniería,UNLP
1
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
2
3. Sistemas Operativos
Programas del Sistema
Software
Programas de Aplicación
Internet Sist. Contable Juegos Aplicaciones
Compilad. Editores Interpretes (Modo usuario)
Sistema Operativo (Modo supervisor)
Lenguaje de Máquina Instrucciones - Assembler
Microprogramación
Dispositivos Físicos C.I. Plaquetas, cables, etc.
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.
3
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.
4
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
Multiprogramación Tiempo
Por lotes compartido
Objetivo Maximizar la Minimizar el
Principal Utilizacion del µp Tiempo de resp.
Origen de
las Instrucciones de Ordenes dadas
Instrucci control incluidas desde una
ones con el trabajo terminal
Al sist.
Op.
– CTSS del MIT primer sistema de tiempo compartido
sobre IBM 7904
MIT
Bell Labs MULTICS (Información
GE multiplexada y servicios de
computación)
5
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
6
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.
7
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
8
9. Desde el punto de vista del SO, los procesos
pueden adoptar distintos estados
Expropiado
Admitir Liberar
Nuevo Listo Ejecución Terminado
Planificado
Espera
Suceso
Suspendido
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
9
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)
10
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
11
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.
12
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.
13
14. Se pueden relacionar las funciones de
planificación con el diagrama de transición de
estados de un proceso.
Nuevo
PLP PLP
Listo y Ejecutando
Suspendido Listo
PMP PCP
Bloqueado y Terminado
Suspendido Bloqueado
PMP
14
15. Ejecutando
Listo
Bloqueado
PCP
Bloqueado y
Suspendido
Listo y
Suspendido
PMP
Nuevo PLP Terminado
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.
15
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.
16
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.
17
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)
18
19. – Menor tiempo restante (SRT, Shortest
Remainning Time)
– Planificación expropiativa basada en prioridades
– Se utiliza realimentación con múltiples niveles
RQ0 Liberar
Entrada
CPU
Liberar
RQ1
CPU
Liberar
RQn
CPU
19
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
20
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
21
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
22
23. Multiproceso - Partición estática
Tabla de descripción de particiones (TDP)
Nº de Direcc. Tamaño Estado
Partción Base
0 0K 100 K Asig.
1 100 K 300 K Libre
2 400 K 100 K Asig.
3 500 K 250 K Asig.
4 750 K 250 K Libre
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.
23
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
24
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.
25
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.
26
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.
27
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.
28
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.
29
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. 30
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.
31
32. La traducción de direcciones se realiza por
medio de:
Tablas de mapa de páginas
Tablas de descriptores de
segmentos
Ambas
32
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
33
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.
34
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)
35
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
36
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.
37
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.
38
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.
39
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.
40
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).
41
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.
42
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.
43
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.
44
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:
45
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.
46
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.
47
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.
48
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.
49
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.
50
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.
51
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
52
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.
53
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.
54
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.
55
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.
56
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.
57
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.
58
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.
59
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
60
61. A1 A2 A3 A4 A5
B1 B2
10 20 30 40 50 60 70 80 90 100
Consideremos el caso de planificación por
prioridades con A de mayor prioridad que B
A1 B1 A2 B1 A3 B2 A4 B2 A5 B2
Plazo de
Terminación
A1 A2 B1 A3 A4 A5,B2
Vemos que en este caso B1 no es ejecutado
en su totalidad.
Veamos el mismo caso anterior cuando B
tiene mayor prioridad que A
B1 A2 A3 B2 A5
Plazo de
terminación A1 A2 B1 A3 A4 A5,B2
Podemos observar que tanto A1 como A4 no
pueden ser ejecutados dentro de sus
respectivos plazos de terminación.
61
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.
A1 B1 A2 B1 A3 A4 B2 A5
Plazo de
Termina
ción A1 A2 B1 A3 A4 A5,B2
– 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
62
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
Instante
A B C D E
s de
llegada
10 20 30 40 50 60 70 80 90 100 110
Plazos
de B C E D A
inicio
Consideremos en primer lugar un caso de
planificación con plazo de inicio
A B C D E
A C E D
B C E D A
63
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
A B C D E
B C E D A
B C E D A
– 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.
64
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.
65
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
66
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
67
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
68
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
69
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
70
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
71
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.
72
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
73