Download Tema 7: Software y SS.OO. para computadores Industriales
Document related concepts
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