Download Tema 7: Software y SS.OO. para computadores Industriales

Document related concepts

Sistema operativo wikipedia , lookup

Núcleo (informática) wikipedia , lookup

Emulador wikipedia , lookup

Interrupción wikipedia , lookup

Llamada al sistema wikipedia , lookup

Transcript
Tema 7:
Software y SS.OO. para computadores
Industriales
INDICE:
hSS.OO. para sistemas empotrados
hKernel para microcontroladores
Tema 7: Software y SS.OO para computadores industriales
Informática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial
1
Conceptos Básicos
h Un sistema operativo es un conjunto de programas que
ofrecen una serie de servicios a otros programas:
–
–
–
–
–
–
–
Administra recursos
Ofrece sistemas de protección
Virtualiza el acceso al hardware
Se comporta como un biblioteca de funciones
Aporta herramientas de desarrollo
Gestiona tareas
Mejora la portabilidad de las aplicaciones
Z kernel: conjunto de programas de un SS.OO. que tiene
acceso al hardware o realiza funciones de críticas de
administración
2
Tema 7: Software y SS.OO para computadores industriales
Informática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial
SS.OO. para computadores industriales
Conceptos Básicos
h Portabilidad: capacidad de la aplicaciones para se
ejecutadas en distintos sistemas informáticos
h El factor más importante que determina un sistema
informático es el procesador que usa, lo cual determina
la plataforma:
–
–
–
–
Intel o AMD (PC-x86)
Apple (PowerPC)
Sun (SPARC)
Silicon Graphics (MIPS)
Z Otros elementos a tener en cuenta son: buses,
arquitectura de la memoria, sistemas gráficos y
sonoros…
Tema 7: Software y SS.OO para computadores industriales
Informática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial
3
Conceptos Básicos
h Cada plataforma hardware tiene asociada una
software:
–
–
–
–
Windows
MacOs
Solaris
IRIS
ZTambién las hay multiplataforma:
ZGNU/LINUX
ZFreeBSD
4
Tema 7: Software y SS.OO para computadores industriales
Informática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial
Conceptos Básicos
hLa portabilidad puede entenderse en
niveles:
– Código Binario
• Máquina
• Intermedio
– Código Fuente
• Compilado
• Interpretado
Tema 7: Software y SS.OO para computadores industriales
Informática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial
5
Conceptos Básicos
h Compatibilidad a nivel de código fuente:
– Mismo lenguaje
– Mismo compilador (en muchos casos)
Z Un programa hecho en Visual C++ no compilará con
gcc
Z Las normas ISO pueden no ser soportadas por todas
las plataformas
Z El compilador genera código para una familia de
procesadores Æ no será posible la ejecución
inmediata en otros procesadores.
6
Tema 7: Software y SS.OO para computadores industriales
Informática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial
Conceptos Básicos
h Compatibilidad con código interpretado:
– Sólo es necesario un interprete en el sistema destino
• Perl ò JavaScript
Z No es un buena opción para sistemas empotrado, debido a la
ineficiencia
h Debe ejecutarse en el sistema operativo para el que fue
desarrollado Æ uso de bibliotecas que sean
multiplataforma:
–
–
–
–
–
–
OpenGL: Dibujo de Gráficos
OpenAL: Gestión del sonido
SDL: funciones multimedia
FLTK y vxWindows: Desarrollo de aplicaciones de escritorio
KDElibs: sistemas de escritorio
Pthreads: programación concurrente.
ZAl utilizar elementos comunes podemos perder algunas
de la funcionalidades mas interesantes de sistema final
Tema 7: Software y SS.OO para computadores industriales
Informática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial
7
Conceptos Básicos
h Compatibilidad a nivel de código máquinaÆ muy difícil
entre familias diferentes.
– Solaris compatible con CGN/Linux
– PC compatibles con MS-DOS o Windows
ZLa emulación puede ser una solución, pero no respeta
los tiempos del sistema final y es más lenta.
h Compatibilidad código intermedio:
– Lingo o Flash
– Java ó .NET
Z POSIX (Portable Operating System Intefaces) Æ
conjunto de estádares sobre sistemas operativos,
incluyen especificaciones para sistams operativos en
tiempo real
8
Tema 7: Software y SS.OO para computadores industriales
Informática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial
Elementos de un sistema informático
hProcesador
– Determina el resto de los componentes
– Sistemas de protección Æ limitar el uso de
recursos hardware e impedir que diferentes
tareas interfieran
• Modo usuario: modo más restringido Æ
aplicaciones
• Modo núcleo: acceso a todo Æ SS.OO., funciones
como deshabilitación de interrupciones.
Tema 7: Software y SS.OO para computadores industriales
Informática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial
9
Elementos de un sistema informático
h Tareas: Cualquier programa que se encuentre
cargado en memoria desde la que puede ser
procesado en el CPU.
– Deben se lo más independientes posibles
– Tendrán mecanismos para comunicarse con el
exterior y con otras tareas
– Dispondrán de una zona de memoria para almacenar
su estado y datos.
h Multitarea
• Monotarea: sistema que sólo puede ejecutar un programa
• Multitarea: se pueden mantener varios programas en
ejecución a la vez
10
Tema 7: Software y SS.OO para computadores industriales
Informática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial
Elementos de un sistema informático
– Los sistemas basado en DSP son monotarea
– Los basados en Windows o UNIX son Multitarea
– MS-DOS es monotarea, pero se puede implementar
la multitarea fácilmente.
– Tipos de multitarea:
• Cooperativa: cada tarea cede voluntariamente el uso de la
CPU cuando pasa un tiempo Æ malo en sistemas en tiempo
real (SS OO no apropiativos ej. Windows 3.11, sistema de
planificación estática.)
• Apropiativa: el sistema operativo toma el control de la CPU
aunque la tarea que esta en ejecución no se lo ceda
(multitarea expulsiva ej.: Windows XP, GNU/Linux, MacOS,
FreeBSD).
11
Tema 7: Software y SS.OO para computadores industriales
Informática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial
Elementos de un sistema informático
h Interrupciones: mecanismo por el cual se
comunica a un sistema informático que ha
ocurrido un evento externo Æ muy útiles para
sistemas en tiempo real Æ permite respuestas
rápidas a eventuales cambios externos
– Identificar el tipo
– Buscar dirección de la Rutina de Atención de la
Interrupción
– Salvar el estado de la tarea que se estuviera
ejecutando
– Saltar y ejecutar a la Rutina de Atención de la
Interrupción
– Recuperar el estado de la tarea que fue interrumpida.
12
Tema 7: Software y SS.OO para computadores industriales
Informática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial
Elementos de un sistema informático
hEn circunstancias delicadas es necesario
poder deshabilitar las interrupciones Æ
interrupciones enmascarables.
hLa inexistencia de un mecanismo de
interrupciones imposibilita la creación de
un Sistema Operativo en Tiempo Real.
13
Tema 7: Software y SS.OO para computadores industriales
Informática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial
Elementos de un sistema informático
h Latencia de interrupción: tiempo que se tarda en
comenzar el ciclo de reconocimiento de una
interrupción, en el peor de los casos:
– Tiempo en ejecutarse la instrucción más larga.
– El periodo de tiempo más largo en el que las interrupciones
están deshabilitadas
– Tiempo que se tarda en ejecutar las interrupciones con mas
prioridad, que se pudieran producir
h Tiempo de respuesta: tiempo desde que se solicitó las
interrupción hasta que comienza a ejecutarse la Rutina
de Servicio de Interrupción
h Tiempo de procesamiento
h Tiempo de recuperación: tiempo que transcurre entre
que se produce la interrupción y se vuelve al estado
original
14
Tema 7: Software y SS.OO para computadores industriales
Informática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial
Elementos de un sistema informático
h Para minimizar el impacto de una interrupción:
– El tiempo en el que se pueden deshabilitar las
interrupciones lo menor posible
– El tiempo de procesado pequeño
• Bucle limitados
• Computación simple, no operaciones complejas
15
Tema 7: Software y SS.OO para computadores industriales
Informática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial
Elementos de un sistema informático
h La rutina de servicio de interrupción no genera
la salida sino que es una tarea normal la que lo
hace
h Se comunican por medio de una cola (FIFO).
16
Tema 7: Software y SS.OO para computadores industriales
Informática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial
Elementos de un sistema informático
h Interrupciones no enmascarables son las que no
se pueden deshabilitar:
–
–
–
–
Notificación de avería en el reloj
Tensión de alimentación baja
RESET
Watch dog
h Pulso de reloj está producido por un sistema
resonador basado en un cristal de cuarzo.
– Permite realizar temporizadores
– Para desarrollar un sistema operativo en tiempo real
es necesario emplear al menos una interrupción de
reloj.
17
Tema 7: Software y SS.OO para computadores industriales
Informática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial
Elementos de un sistema informático
h Niveles de memoria: una parte de SS.OO. se
encarga de gestionar la memoria
h La memoria esta dividida en niveles:
– Para tener más memoria
– Para tener los datos en los registro de la CPU cuando
se necesiten
18
Tema 7: Software y SS.OO para computadores industriales
Informática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial
Elementos de un sistema informático
h Para acelerar la búsqueda:
– Coherencia espacial
– Coherencia temporal
h En la memorias caché se almacena la
información que se supone que el procesador
va ha usar en un futuro cercano
h Si pasa mucho tiempo desde que se uso un
dato, este se descarte y se pone en su lugar
otro que tenga alta probabilidad de ser usado, si
fue modificado se guarda su modificación el
lugar de donde viniera.
19
Tema 7: Software y SS.OO para computadores industriales
Informática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial
h Sistema Operativo de Tiempo Real (S.O.T.R.):
S.O. diseñado específicamente para ejecutar
tareas con restricciones de tiempo real.
– SOTR tiene una gran integración con la máquina
donde se ejecuta.
– Da soporte para la ejecución de tareas de control
simples y monótonas que rara vez cambian a lo largo
de la vida útil del sistema
– No da soporte para el desarrollo y para la depuración
Æ Necesidad de una computadora adicional para
llevar a cabo estas tareas.
ZSOTR tienen un gran determinismo temporal
20
Tema 7: Software y SS.OO para computadores industriales
Informática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial
h Tiempo de primera respuesta: tiempo desde que se empieza a
ejecutar la tarea y se ofrece el primer resultado.
Tema 7: Software y SS.OO para computadores industriales
Informática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial
21
h Máquina desnuda
22
Tema 7: Software y SS.OO para computadores industriales
Informática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial
h Carecen de S.O.
h Pequeños
h Tareas sencillas
h El programador, debe realizar todas las rutinas
de servicio de interrupción, los subprogramas de
E/S y las rutinas de computo
h Se suele programar en C o en ensamblador
h Existe comunicación directa entre el software y
el hardware
h Todas la tareas comparte la misma zona de
memoria
23
Tema 7: Software y SS.OO para computadores industriales
Informática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial
h Sistema Operativo Monolítico
24
Tema 7: Software y SS.OO para computadores industriales
Informática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial
h Cuenta con las rutinas de servicio de interrupciones y
con conjunto de interfaces para el acceso de recursos.
h El uso del hardware se hace a través del S.O. por medio
de llamadas que se ejecutan de forma transparente para
las aplicaciones
h Protección de recursos, implementa algún mecanismo
de asignación de recursos, incluido el procesador
h Capacidad para hacer conmutar de modo al procesador
h Rutinas de interrupción muy simple, el trabajo
computacional se pasa a las tareas de aplicaciones
h Cada tarea usa una zona de memoria independiente
h El núcleo no es modular
h Tiene soporte para multitarea
25
Tema 7: Software y SS.OO para computadores industriales
Informática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial
h Sistema Operativo estructurado en capas
26
Tema 7: Software y SS.OO para computadores industriales
Informática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial
h Módulos independientes
h Cada módulo se encarga de un aspecto
diferente: tareas primitivas, tareas clientes,
memoria, archivos, dispositivos, etc.
h Para acceder a las capas más profundas es
necesario pasar por la capas intermedias Æ
tambien para accerder al hardware
h Las llamadas van hasta la capa correspondiente
y vuelven al usuario
h Biblioteca de funciones
h El sistema de ralentiza conforme aumenta el
número de capas
h Cambios en una capa afectan al resto
Tema 7: Software y SS.OO para computadores industriales
Informática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial
27
h Micronúcleo (µ-kernel)
28
Tema 7: Software y SS.OO para computadores industriales
Informática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial
h Menor cohesión entre las partes
h El núcleo sólo se encarga de las tareas
esenciales: asignación CPU, conmutación entre
tareas, etc.
h Más seguro Æ un fallo en un modulo no afecta
al resto
h Facilidad para insertar nuevos módulos, o
cambios en los mismos
h Pierde rendimiento frente al monolítico Æ las
rutinas no comparten zonas de memoria
h Biblioteca de funciones de bajo nivel
Tema 7: Software y SS.OO para computadores industriales
Informática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial
29
Apropiativo Vs. No apropiativo.
h El núcleo apropiativo (el S.O. toma la CPU cuando lo necesita):
– Es el más difícil de desarrollar, pero es más fácil de usar la
determinación teórica de la ejecutabilidad de un sistema complejo es
más complicada que con un núcleo no apropiativo.
– Es más complejo, pero maximiza el uso de la CPU al permitir la
coexistencia de tareas de TR y otras tareas no críticas.
h El núcleo no apropiativo (las tareas se ceden el uso de la CPU):
– A menudo se debe invertir más tiempo programando el resto del
sistema debido a las capacidades tan limitadas del núcleo, pero es
mejor para aquellos procesadores que estén técnicamente muy
limitados como los que no disponen de interrupciones por
temporización.
– Puede ser más predecible en los tiempos de respuesta para STR
simples, pero en esos casos se requiere un conocimiento temporal
exacto de todas las tareas que intervengan.
– Es más fácil calcular teóricamente el máximo tiempo en completar un
trabajo determinado, ya que no será interrumpido por otros, y la
sincronización entre tareas está implícita en el código.
30
Tema 7: Software y SS.OO para computadores industriales
Informática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial
hCapacidad de un sistema para varias
cosas a la vez Æ El S.O. debe mantener
la información de cada tarea en ejecución.
hUso concurrente de recursos: cuando
varias tareas usan el mismo recurso
– Dispositivos E/S
– Zona de memoria, variables globales
– Código de una rutina.
31
Tema 7: Software y SS.OO para computadores industriales
Informática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial
32
Tema 7: Software y SS.OO para computadores industriales
Informática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial
33
Tema 7: Software y SS.OO para computadores industriales
Informática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial
34
Tema 7: Software y SS.OO para computadores industriales
Informática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial
hEjercicio
Realizar las modificaciones en el programa
anterior para ejecutar la función
CompruebaNumero() de la forma más
segura. Para ella se cuenta con las llamadas
HabilitarInt() y DeshabilitarInt()
que respectivamente habilitan y deshabilitan
las interrupciones enmascarables
35
Tema 7: Software y SS.OO para computadores industriales
Informática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial
36
Tema 7: Software y SS.OO para computadores industriales
Informática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial
Kernel para microcontroladores: µC/OS-II
h µC/OS-II: Kernel en tiempo real
– Código fuente: se ofrece el código fuente, que puede ser
modificado.
– Portable: Escrito en ANSI C, sólo lo estrictamente necesario
está escrito en lenguaje ensamblador de la máquina objetivo.
Puede ser compilado para multitud de procesadores:
•
•
•
•
•
•
•
•
•
•
37
Analog Devices AD21xx
Advanced Risc Machines ARM6, ARM7
Hitachi 64180, H8/3xx, SH series
Intel 80x86 (Real and PM), Pentium, Pentium-II, 8051, 8052, MCS251, 80196, 8096
Mitsubishi M16 and M32
Motorola PowerPC, 68K, CPU32, CPU32+, 68HC11, 68HC16
Philips XA
Siemens 80C166 and TriCore
Texas instruments TMS320
Zilog Z-80 and Z-180
Tema 7: Software y SS.OO para computadores industriales
Informática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial
Kernel para microcontroladores: µC/OS-II
h “ROMable”: Se puede incluir en la version final del
producto sin coste adicional
h Pequeño y ampliable: Se puede incluir sólo aquello que
es necesario, su tamaño puede reducirse a 2K bytes de
código y 200 bytes de datos (los modules se indican con
un simple #define)
h Preventivo: Se ejecuta como una tarea de alta prioridad.
h Multitarea: puede ejecutar hasta 64 tareas: 8 son del
sistema. Implementa 64 niveles de prioridad.
h Determinista: Es posible conocer el tiempo que tardan
en ejecutarse todas las funciones del sistema. Dicho
tiempo NO depende del numero de tareas que tenga la
aplicación
38
Tema 7: Software y SS.OO para computadores industriales
Informática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial
Kernel para microcontroladores: µC/OS-II
h Pila de las tareas: Permite asignar una cantidad
de memoria diferente a cada tarea.
h Ofrece: Buzones, colas, semáforos,
monitorización de tareas, monitorización del
tiempo,…
h Control de Interrupciones con 255 niveles.
h Es usado en cientos de productos comerciales:
cámaras, instrumentos musicales,
h Validado para uso en sistemas críticos y de uso
en entornos médicos.
Z www.uCOS-II.com
39
Tema 7: Software y SS.OO para computadores industriales
Informática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial