You are on page 1of 41

Sistemas en Tiempo Real

INTRODUCCION
UNTECS
Ciclo 2014 1
Ing. Luis M. Sigeas Siadn
Introduccin
Presentacin
Objetivos del curso
Qu es un Sistema en Tiempo Real?
Predecibilidad
Objetivos del curso
Conocer la necesidad de tener sistemas
en tiempo real eficientes en un sistema
de computacin.
Conocer las distintas partes de un SO,
cmo se relacionan.
Ver cmo se implementa en algn
sistema operativo real la gestin de los
recursos mediante un STR.
Sistema en Tiempo Real
Un sistema de tiempo real es un sistema de
procesamiento de informacin el cual tiene que
responder a estmulos de entrada generados
externamente en un perodo finito y especfico.
Las respuestas correctas dependen no solo
de los resultados lgicos sino tambin del
tiempo en que son entregadas.
Las fallas para responder a tiempo son tan
malas como una mala respuesta!.
tarea
tarea
tarea
S.OP
Comunicaciones
Software de Tiempo-Real
Medio
Ambiente
E/S
Digital
E/S
Analgico
Otras
E/S
Reloj
Otras
Computadoras
Computadora
Elementos de un STR
Caractersticas de un STR
Tiempo.
Administracin y control del tiempo.
Tareas deben ser asignadas y terminadas antes de su
plazo.
La ejecucin correcta no solo considera la lgica sino
tambin el tiempo en que se producen los resultados.
Confiabilidad.
Predecibilidad
Tolerancia a Fallos.
Seguridad.
Ambiente.
Caractersticas dinmicas del ambiente.
Caractersticas de un STR
Un sistema en tiempo real es una combinacin de
computadoras, dispositivos de E/S, hardware y
software de propsito especfico en donde:
existe una fuerte interaccin con el ambiente.
el ambiente cambia con el tiempo
el sistema debe controlar y/o reaccionar a diferentes
aspectos del ambiente.
Como resultado:
Se imponen restricciones de tiempos al software.
El software es naturalmente concurrente.
Se exige una alta confiabilidad.
Predecibilidad
Una caracterstica distintiva de un sistema en tiempo real es la
predecibilidad. La cual implica que debe ser posible demostrar o
comprobar a priori que los requerimientos de tiempos se cumplen en
cualquier circunstancia.
Como consecuencia, la predecibilidad implica:
una cuidadosa planificacin de tareas y recursos.
cumplimiento predecible de requisitos temporales:
determinismo.
anticipacin a fallos, y sus requerimientos temporales.
consideraciones de sobrecargas: degradacin controlada.
consideraciones de elementos de inpredecibilidad.
dotar al sistema con capacidades de monitorizacin y
control de tiempos (hardware, software, sistema operativo,
lenguaje, lineas y protocolos de comunicaciones).
Cmo lograr la predecibilidad?
Definir con precisin los requerimientos de tiempo real
necesarios.
Disear un sistema capaz de garantizar los requerimientos de
tiempo real.
Medir y controlar los tiempos y el efecto de los fallos y de las
operaciones de recuperacin de fallos.
Acotar el efecto de las causas de inpredecibilidad: fallos,
comunicaciones, cache.
Definir semnticas apropiadas para tolerancia a fallos.
Definir protocolos de comunicacin acotados en tiempo.
Incluir en la arquitectura mecanismos para detectar y controlar
fallos de cumplimiento de tiempos.
Lenguajes orientados a problemas Usuarios
Lenguaje Ensamblador
Maquina: Sistema Operativo
Arquitectura: Set de Instrucciones
Microarquitectura
Lgica Digital
Nivel 5
Nivel 4
Nivel 3
Nivel 2
Nivel 1
Nivel 0
Traduccion (Compilador)
Traduccin (Ensamblador)
Interpretacin parcial (Sist.Operativo)
Interpretacin o ejecucin directa
Hardware
Ao Nombre Hecho por Comentarios
1834 Analytical Engine Babbage Primer intento de estructurar una computadora digital
1936 Z1 Zuse Primera maquina calculadora con relay
1943 Colossus Gob. Britanico Primera computadora electrnica
1944 Mark I Aiken Primera computadora americana de prop. General
1946 ENIAC I Eckert/Mauchley Inicio de historia de computadoras modernas
1949 EDSAC Wilkes Primera computadora que almacena programas
1951 Whirlwind I M.I.T. Primera computadora en tiempo real
1952 IAS Von Neumann Muchas de las computadoras actuales usan este diseo
1960 PDP-1 DEC Primera microcomputadora
1961 1401 IBM Popular maquina enorme para negocios pequeos
1962 7094 IBM Domino la computacion cientifica en los aos 60
1963 B5000 Burroughs Primera maquina diseada con lenguajes de alto nivel
1964 360 IBM Primer producto diseado como una familia
1964 6600 CDC Primera supercomputadora cientifica
1965 PDP-8 DEC Primera computadora para el mercado masivo
1970 PDP-11 DEC Domino las microcomputadoras en los aos 70
1974 8080 Intel Primera computadora de 8-bit de prop. General
1974 CRAY-1 Cray Primera computadora vectorial
1978 VAX DEC Primera superminicomputadora de 32bit
1981 IBM PC IBM Inicio de la era moderna de computadoras personales
1985 MIPS MIPS Primera maquina RISC comercial
1987 SPARC Sun Primera workstation RISC basadas en SPARC
1990 RS6000 IBM Primera Maquina Superescalar
Desarrollo de las Computadoras
Memoria
Unidad
de
Control
Unid. De
Aritmtica /
Lgica
Input
Output
Acumulador
Maquina Original de Von Neumann
Componentes de un
computador
Procesador
Capaz de realizar operaciones interpretas
de ordenes especificas.
Unidad de Control
Decodifica las instrucciones permitiendo
determinar la operacin que se requiere
Muchas operaciones son controladas por
el microcdigo
Ciclo de Instruccin
Decodifica la instruccin
Selecciona el microcdigo respectivo
Calcula la direccin de memoria
Fetch del contenido de la instruccin
Unidad de Aritmtica y lgica
Realiza las operaciones ordenadas por
la Unidad de control
Caractersticas
Operaciones que puede desarrollar
Velocidad expresado en termino de tiempo
de ejecucin
El rango de dgitos
Tipica computadora en 1981 y
2003
1981 2003 factor
CPU MHZ 10 3500 350
DRAM Capacidad 128Kb 256MB 2000
Capacidad disco 10MB 40GB 40000
ancho banda red 9600 b/s 155MB /s 15000
# bits direccion 16 64 4
Precio $25,000 $2,000 12.5
Qu es un Sistema
Operativo?
Un programa que sirve de intermediario
entre los usuarios y el HW
Pertenece al software del sistema
Objetivos
Ejecutar las aplicaciones de los usuarios
Facilitar la interaccin con el computador
Administrar eficientemente los recursos
Qu es un Sistema
Operativo?...
Es un administrador de recursos
como si fuera un gobierno del hardware
programa de control
ojo, no realiza trabajo productivo
Es una interfaz con el hardware
aade caracteristicas no existente en el hw
oculta caractersticas inconvenientes del hw
mquina extendida
Componentes Sistema
Operativo
Sistema
Operativo
Manejo de
comunicaciones
Manejo archivos
y directorios
Manejo de procesos
Manejo
memoria
interna
Componentes del sistema de cmputo
Hardware - prove los componentes bsicos de
cmputo (CPU, memoria, dispositivos de E/S).
Sistema Operativo - controla y coordina el uso del
hardware entre los varios programas de aplicacin
para los diferentes usuarios.
Programas de Aplicacin - define las formas en
que los recursos del sistema son utilizados para
resolver los problemas de cmputo de los usuarios
(compiladores, bases de datos, juegos de video,
programas de negocios).
Usuarios (gente, maquinas, otras computadoras).
Componentes del Sistema Operativo
Manejador de recursos - administra y aloja los
recursos.
Programa de control - controla la ejecucin de los
programas de usuarios y las operaciones de los
dispositivos de entrada/salida.
Kernel - el programa que corre en todo momento
(todo lo demas es programa de aplicacin).
Usuario
Programa Aplicacin Programa Utileras
Debuggers Macros Editores texto
Compiladores Ensamblador Cargadores
SISTEMA OPERATIVO
c
o
m
u
n
i
c
a
c
i
o
n
e
s
m
e
m
o
r
i
a

i
n
t
e
r
n
a

a
r
c
h
i
v
o
s

y
d
i
r
e
c
t
o
r
i
o
s
MAQUINA
Relacin usuario, sistema operativo y hardware de la
mquina
m
e
m
o
r
i
a

e
x
t
e
r
n
a
Breve Historia de los Sistemas Operativos
1940. Primeras Computadoras
1950. Sistemas en Batch
1960. Multiprogramacion y Timesharing.
1970. Minicomputadoras y
Microprocesadores.
Finales de 70s y 80s. Computadoras
personales, Redes, Sistemas Distribuidos y
Sistemas Paralelos, Sistemas de Tiempo
Real.
1990. WWW, Sistemas de Computo Mobil,
PCs.
Primeros sistemas - principios de los 1940s
Estructura
Grandes maquinas ejecutandose desde una consola
Computadora dedicada a un usuario/programador a la vez.
Programador / usuario como operador
Tarjetas perforadas o cintas programadas
Programacion y depuracion mediante switches y focos de luz.
Primer Software
Ensambladores, cargadores, linkers , Librerias de subrutinas
comunes
Compiladores
Drivers de dispositivos
Uso ineficiente de recursos
Baja utilizacin del CPU
Mucho tiempo en inicializacin del sistema (setup time)
Programacion y depuracion es lenta y tediosa.
1950`s. Sistemas Batch
Cuenta con un operador distinto al usuario.
Incluye un lector de tarjetas. El usuario/programador
somete un conjunto de tarjetas perforadas que
contienen un job a ejecutarse.
Reduce el tiempo de inicializacin ejecutando en
batch jobs similares.
Jobs de varios usuarios son ejecutados en secuencia
por un monitor residente. Primer sistema operativo
rudimentario.
Monitor residente
control inicial en el monitor
transfiere el control a el primer job
cuando el job termina se transfiere el control al monitor
$JOB 10,47 DUPONT
$FORTRAN
PROGRAMA
$LOAD
$RUN
DATOS
$END
Sistema por Lotes, batch
1401
7094
( b )
1401
( d )
( c )
( e )
( f )
( a)
Sistema Fuera de Lnea, outline
1960s. Multiprogramacin
Sistemas multiprogramados - varios jobs se
conservan en memoria al mismo tiempo, y el cpu se
comparte entre ellos
Rutinas de E/S provista por el sistema ejecutadas
simultaneamente con procesamiento del CPU.
Administracin de memoria - el sistema debe
reservar memoria para varios jobs.
Administracin del CPU - el sistema debe elegir entre
varios jobs listos para ejecucin.
Administracin de dispositivos.
1960s. Sistemas de Tiempo Compartido
El CPU se comparte entre varios jobs que se
encuentran residentes en memoria y en disco ( el
CPU se asigna a un job solo si este esta en
memoria).
Un job es enviado dentro y fuera del la memoria
hacia el disco.
Existe comunicacin en-linea entre el usuario y el
sistema; cuando el sistema operativo finaliza la
ejecucin de un comando, busca el siguiente
estatuto de control no de una tarjeta perforada, sino
del teclado del operador.
Existe un sistema de archivos en-linea el cual esta
disponible para los datos y cdigo de los usuarios
Uniprogramacin
Ejecucin. Ejecucin.
espera espera
tiempo
La Multiprogramacin
JOB 1
JOB 2
JOB 3
JOB 4
SISTEMA OPER.
(MONITOR)
128K
0
La multiprogramacin
T1
T1
T1 T2
T2
T2 CPU
E/S
Sin
T1
T1
T1 T2
T2
T2 CPU
E/S
con
LECTORA
TARJETAS
CPU
IMPRESORA
DE LINEA
DISCO
ARCHIVO SPOOL
DE SALIDA
ARCHIVO SPOOL
DE ENTRADA
El Spooling
J1
J2
J3
S. O.
usuario 1
usuario 2
usuario 3
El Tiempo Compartido
1970-1980. Mini-computadoras y
Microprocesadores
Computadoras de menor tamao.
Desarrollo de sistemas operativos (UNIX, DOS,
CP/M).
Mejora en las interfaces de usuario.
Introduccion de Microprocesadores.
Desarrollo de lenguajes de programacion.
1980. Sistemas de cmputo personales
Computadoras Personales- sistemas de cmputo
dedicados a un solo usuario.
Dispositivos de E/S- teclados, raton, pantalla,
impresoras..
Conveniente al usuario y de respuesta rpida.
Puede adaptarse a la tecnologa para soportar otros
sistemas operativos.
1980s. Sistemas Distribuidos
Sistemas Distribuidos - distribuyen el cmputo entre
varios procesadores geogrficamente dispersos.
Sistemas debilmente acoplados - cada procesador
tiene su propia memoria local y el procesador se
comunica con los demas procesadores mediante
lineas de comunicacin, buses de alta velocidad y
lineas telefnicas.
Ventajas:
Comparticin de recursos
Incremento en la velocidad de cmputo
comparticin de carga
Confiabilidad
Comunicacion
1980s. Redes
Estaciones de Trabajo: (Sun, Vax, Silicon Graphics).
Redes de Area Local (Ethernet, Token Ring, FDDI,
ATM), Redes de larga distancia (Arpanet).
Redes organizadas como clientes-servidores.
Servicios de S.O. Protocolos de comunicacin,
encripcion de datos, seguridad, consistencia en
datos distribuidos.
1980-1990`s. Sistemas Paralelos
Sistemas paralelos - sistemas de mltiples
procesadores con mas de 1 procesador con
comunicacin entre ellos.
Sistema fuertemente acoplado - los procesadores
comparten memoria y reloj; la comunicacin
usualmente se realiza mediante memoria
compartida.
Ventajas:
Incremento de throughput
Economica
Incremento en la confiabilidad
1990`s-2000.
Computo Paralelo (Teraflops).
PCs poderosas (1.5 GigaHertz) , Computadoras
Multimedia.
Redes de Comunicacin de distancia mundial, con
envio de imgenes, grandes cantidades de datos,
audio y video.
World Wide Web.
Notebooks utilizando tecnologias de comunicacin
inalambrica: Computo Mobil.
Computo Embebido y Robotica.
1990-2000`s-Sistemas de Tiempo Real
A menudo utilizados como dispositivo de control en
aplicaciones dedicadas, como control de
experimentos cientficos, sistemas de procesamiento
de imagenes mdicas, sistemas de control industrial,
etc...
Exige complimiento de restricciones de tiempos.
Sistemas de tiempo real criticos.
Cumplimiento forzoso de plazos de respuesta.
Predecibilidad y analisis de cumplimineto de plazos de
respuesta
Sistemas de tiempo real acrticos.
Exigencia suave de plazos de respuesta.
Atencin lo mas rapido posible a eventos, en promedio.