Tema 7: Software y SS.OO. para computadores Industrialesicaro.eii.us.es/descargas/Tema...

20
Tema 7: Software y SS.OO para computadores industriales Informática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial 1 Tema 7: Tema 7: Software y Software y SS.OO SS.OO . para computadores . para computadores Industriales Industriales INDICE: SS.OO. para sistemas empotrados Kernel para microcontroladores Tema 7: Software y SS.OO para computadores industriales Informática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial 2 Conceptos Básicos Conceptos Básicos 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 kernel: conjunto de programas de un SS.OO. que tiene acceso al hardware o realiza funciones de críticas de administración

Transcript of Tema 7: Software y SS.OO. para computadores Industrialesicaro.eii.us.es/descargas/Tema...

Page 1: Tema 7: Software y SS.OO. para computadores Industrialesicaro.eii.us.es/descargas/Tema 7(05-06).pdf · acceso al hardware o realiza funciones de ... Ælimitar el uso de recursos hardware

Tema 7: Software y SS.OO para computadores industrialesInformática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial11

Tema 7:Tema 7:Software y Software y SS.OOSS.OO. para computadores . para computadores IndustrialesIndustriales

INDICE:SS.OO. para sistemas empotradosKernel para microcontroladores

Tema 7: Software y SS.OO para computadores industrialesInformática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial22

Conceptos BásicosConceptos Básicos

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

kernel: conjunto de programas de un SS.OO. que tiene acceso al hardware o realiza funciones de críticas de administración

Page 2: Tema 7: Software y SS.OO. para computadores Industrialesicaro.eii.us.es/descargas/Tema 7(05-06).pdf · acceso al hardware o realiza funciones de ... Ælimitar el uso de recursos hardware

Tema 7: Software y SS.OO para computadores industrialesInformática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial33

SS.OOSS.OO. para computadores industriales. para computadores industrialesConceptos BásicosConceptos Básicos

Portabilidad: capacidad de la aplicaciones para se ejecutadas en distintos sistemas informáticosEl 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)

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 industrialesInformática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial44

Conceptos BásicosConceptos Básicos

Cada plataforma hardware tiene asociada una software:– Windows– MacOs– Solaris– IRIS

También las hay multiplataforma:GNU/LINUXFreeBSD

Page 3: Tema 7: Software y SS.OO. para computadores Industrialesicaro.eii.us.es/descargas/Tema 7(05-06).pdf · acceso al hardware o realiza funciones de ... Ælimitar el uso de recursos hardware

Tema 7: Software y SS.OO para computadores industrialesInformática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial55

Conceptos BásicosConceptos Básicos

La portabilidad puede entenderse en niveles:– Código Binario

• Máquina• Intermedio

– Código Fuente• Compilado• Interpretado

Tema 7: Software y SS.OO para computadores industrialesInformática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial66

Conceptos BásicosConceptos Básicos

Compatibilidad a nivel de código fuente:– Mismo lenguaje– Mismo compilador (en muchos casos)

Un programa hecho en Visual C++ no compilará con gcc

Las normas ISO pueden no ser soportadas por todas las plataformas

El compilador genera código para una familia de procesadores no será posible la ejecución inmediata en otros procesadores.

Page 4: Tema 7: Software y SS.OO. para computadores Industrialesicaro.eii.us.es/descargas/Tema 7(05-06).pdf · acceso al hardware o realiza funciones de ... Ælimitar el uso de recursos hardware

Tema 7: Software y SS.OO para computadores industrialesInformática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial77

Conceptos BásicosConceptos BásicosCompatibilidad con código interpretado:– Sólo es necesario un interprete en el sistema destino

• Perl ò JavaScriptNo es un buena opción para sistemas empotrado, debido a la ineficiencia

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.

Al utilizar elementos comunes podemos perder algunas de la funcionalidades mas interesantes de sistema final

Tema 7: Software y SS.OO para computadores industrialesInformática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial88

Conceptos BásicosConceptos Básicos

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

La emulación puede ser una solución, pero no respeta los tiempos del sistema final y es más lenta.Compatibilidad código intermedio:– Lingo o Flash– Java ó .NET

POSIX (Portable Operating System Intefaces) conjunto de estádares sobre sistemas operativos, incluyen especificaciones para sistams operativos en tiempo real

Page 5: Tema 7: Software y SS.OO. para computadores Industrialesicaro.eii.us.es/descargas/Tema 7(05-06).pdf · acceso al hardware o realiza funciones de ... Ælimitar el uso de recursos hardware

Tema 7: Software y SS.OO para computadores industrialesInformática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial99

Elementos de un sistema informáticoElementos de un sistema informático

Procesador – 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 industrialesInformática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial1010

Elementos de un sistema informáticoElementos de un sistema informático

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.Multitarea

• Monotarea: sistema que sólo puede ejecutar un programa• Multitarea: se pueden mantener varios programas en

ejecución a la vez

Page 6: Tema 7: Software y SS.OO. para computadores Industrialesicaro.eii.us.es/descargas/Tema 7(05-06).pdf · acceso al hardware o realiza funciones de ... Ælimitar el uso de recursos hardware

Tema 7: Software y SS.OO para computadores industrialesInformática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial1111

Elementos de un sistema informáticoElementos 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).

Tema 7: Software y SS.OO para computadores industrialesInformática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial1212

Elementos de un sistema informáticoElementos de un sistema informático

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.

Page 7: Tema 7: Software y SS.OO. para computadores Industrialesicaro.eii.us.es/descargas/Tema 7(05-06).pdf · acceso al hardware o realiza funciones de ... Ælimitar el uso de recursos hardware

Tema 7: Software y SS.OO para computadores industrialesInformática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial1313

Elementos de un sistema informáticoElementos de un sistema informático

En circunstancias delicadas es necesario poder deshabilitar las interrupciones interrupciones enmascarables.

La inexistencia de un mecanismo de interrupciones imposibilita la creación de un Sistema Operativo en Tiempo Real.

Tema 7: Software y SS.OO para computadores industrialesInformática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial1414

Elementos de un sistema informáticoElementos de un sistema informáticoLatencia 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 producirTiempo de respuesta: tiempo desde que se solicitó las interrupción hasta que comienza a ejecutarse la Rutina de Servicio de InterrupciónTiempo de procesamientoTiempo de recuperación: tiempo que transcurre entre que se produce la interrupción y se vuelve al estado original

Page 8: Tema 7: Software y SS.OO. para computadores Industrialesicaro.eii.us.es/descargas/Tema 7(05-06).pdf · acceso al hardware o realiza funciones de ... Ælimitar el uso de recursos hardware

Tema 7: Software y SS.OO para computadores industrialesInformática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial1515

Elementos de un sistema informáticoElementos de un sistema informático

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

Tema 7: Software y SS.OO para computadores industrialesInformática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial1616

Elementos de un sistema informáticoElementos de un sistema informático

La rutina de servicio de interrupción no genera la salida sino que es una tarea normal la que lo haceSe comunican por medio de una cola (FIFO).

Page 9: Tema 7: Software y SS.OO. para computadores Industrialesicaro.eii.us.es/descargas/Tema 7(05-06).pdf · acceso al hardware o realiza funciones de ... Ælimitar el uso de recursos hardware

Tema 7: Software y SS.OO para computadores industrialesInformática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial1717

Elementos de un sistema informáticoElementos de un sistema informático

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

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.

Tema 7: Software y SS.OO para computadores industrialesInformática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial1818

Elementos de un sistema informáticoElementos de un sistema informático

Niveles de memoria: una parte de SS.OO. se encarga de gestionar la memoriaLa memoria esta dividida en niveles:– Para tener más memoria– Para tener los datos en los registro de la CPU cuando

se necesiten

Page 10: Tema 7: Software y SS.OO. para computadores Industrialesicaro.eii.us.es/descargas/Tema 7(05-06).pdf · acceso al hardware o realiza funciones de ... Ælimitar el uso de recursos hardware

Tema 7: Software y SS.OO para computadores industrialesInformática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial1919

Elementos de un sistema informáticoElementos de un sistema informático

Para acelerar la búsqueda:– Coherencia espacial– Coherencia temporal

En la memorias caché se almacena la información que se supone que el procesador va ha usar en un futuro cercanoSi 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.

Tema 7: Software y SS.OO para computadores industrialesInformática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial2020

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.

SOTR tienen un gran determinismo temporal

Page 11: Tema 7: Software y SS.OO. para computadores Industrialesicaro.eii.us.es/descargas/Tema 7(05-06).pdf · acceso al hardware o realiza funciones de ... Ælimitar el uso de recursos hardware

Tema 7: Software y SS.OO para computadores industrialesInformática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial2121

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 industrialesInformática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial2222

Máquina desnuda

Page 12: Tema 7: Software y SS.OO. para computadores Industrialesicaro.eii.us.es/descargas/Tema 7(05-06).pdf · acceso al hardware o realiza funciones de ... Ælimitar el uso de recursos hardware

Tema 7: Software y SS.OO para computadores industrialesInformática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial2323

Carecen de S.O. PequeñosTareas sencillasEl programador, debe realizar todas las rutinas de servicio de interrupción, los subprogramas de E/S y las rutinas de computoSe suele programar en C o en ensambladorExiste comunicación directa entre el software y el hardwareTodas la tareas comparte la misma zona de memoria

Tema 7: Software y SS.OO para computadores industrialesInformática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial2424

Sistema Operativo Monolítico

Page 13: Tema 7: Software y SS.OO. para computadores Industrialesicaro.eii.us.es/descargas/Tema 7(05-06).pdf · acceso al hardware o realiza funciones de ... Ælimitar el uso de recursos hardware

Tema 7: Software y SS.OO para computadores industrialesInformática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial2525

Cuenta con las rutinas de servicio de interrupciones y con conjunto de interfaces para el acceso de recursos.El uso del hardware se hace a través del S.O. por medio de llamadas que se ejecutan de forma transparente para las aplicacionesProtección de recursos, implementa algún mecanismo de asignación de recursos, incluido el procesadorCapacidad para hacer conmutar de modo al procesadorRutinas de interrupción muy simple, el trabajo computacional se pasa a las tareas de aplicacionesCada tarea usa una zona de memoria independienteEl núcleo no es modularTiene soporte para multitarea

Tema 7: Software y SS.OO para computadores industrialesInformática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial2626

Sistema Operativo estructurado en capas

Page 14: Tema 7: Software y SS.OO. para computadores Industrialesicaro.eii.us.es/descargas/Tema 7(05-06).pdf · acceso al hardware o realiza funciones de ... Ælimitar el uso de recursos hardware

Tema 7: Software y SS.OO para computadores industrialesInformática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial2727

Módulos independientesCada módulo se encarga de un aspecto diferente: tareas primitivas, tareas clientes, memoria, archivos, dispositivos, etc.Para acceder a las capas más profundas es necesario pasar por la capas intermedias tambien para accerder al hardwareLas llamadas van hasta la capa correspondiente y vuelven al usuarioBiblioteca de funcionesEl sistema de ralentiza conforme aumenta el número de capasCambios en una capa afectan al resto

Tema 7: Software y SS.OO para computadores industrialesInformática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial2828

Micronúcleo (µ-kernel)

Page 15: Tema 7: Software y SS.OO. para computadores Industrialesicaro.eii.us.es/descargas/Tema 7(05-06).pdf · acceso al hardware o realiza funciones de ... Ælimitar el uso de recursos hardware

Tema 7: Software y SS.OO para computadores industrialesInformática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial2929

Menor cohesión entre las partesEl núcleo sólo se encarga de las tareas esenciales: asignación CPU, conmutación entre tareas, etc.Más seguro un fallo en un modulo no afecta al restoFacilidad para insertar nuevos módulos, o cambios en los mismosPierde rendimiento frente al monolítico las rutinas no comparten zonas de memoriaBiblioteca de funciones de bajo nivel

Tema 7: Software y SS.OO para computadores industrialesInformática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial3030

Apropiativo Vs. No apropiativo.

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.

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 temporalexacto 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 lasincronización entre tareas está implícita en el código.

Page 16: Tema 7: Software y SS.OO. para computadores Industrialesicaro.eii.us.es/descargas/Tema 7(05-06).pdf · acceso al hardware o realiza funciones de ... Ælimitar el uso de recursos hardware

Tema 7: Software y SS.OO para computadores industrialesInformática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial3131

Capacidad de un sistema para varias cosas a la vez El S.O. debe mantener la información de cada tarea en ejecución.

Uso concurrente de recursos: cuando varias tareas usan el mismo recurso– Dispositivos E/S– Zona de memoria, variables globales– Código de una rutina.

Tema 7: Software y SS.OO para computadores industrialesInformática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial3232

Page 17: Tema 7: Software y SS.OO. para computadores Industrialesicaro.eii.us.es/descargas/Tema 7(05-06).pdf · acceso al hardware o realiza funciones de ... Ælimitar el uso de recursos hardware

Tema 7: Software y SS.OO para computadores industrialesInformática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial3333

Tema 7: Software y SS.OO para computadores industrialesInformática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial3434

Page 18: Tema 7: Software y SS.OO. para computadores Industrialesicaro.eii.us.es/descargas/Tema 7(05-06).pdf · acceso al hardware o realiza funciones de ... Ælimitar el uso de recursos hardware

Tema 7: Software y SS.OO para computadores industrialesInformática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial3535

EjercicioRealizar 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

Tema 7: Software y SS.OO para computadores industrialesInformática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial3636

Page 19: Tema 7: Software y SS.OO. para computadores Industrialesicaro.eii.us.es/descargas/Tema 7(05-06).pdf · acceso al hardware o realiza funciones de ... Ælimitar el uso de recursos hardware

Tema 7: Software y SS.OO para computadores industrialesInformática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial3737

KernelKernel para microcontroladores: para microcontroladores: µµCC/OS/OS--IIIIµ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:

• Analog Devices AD21xx• Advanced Risc Machines ARM6, ARM7• Hitachi 64180, H8/3xx, SH series• Intel 80x86 (Real and PM), Pentium, Pentium-II, 8051, 8052, MCS-

251, 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 industrialesInformática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial3838

KernelKernel para microcontroladores: para microcontroladores: µµCC/OS/OS--IIII

“ROMable”: Se puede incluir en la version final del producto sin coste adicionalPequeñ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)Preventivo: Se ejecuta como una tarea de alta prioridad.Multitarea: puede ejecutar hasta 64 tareas: 8 son del sistema. Implementa 64 niveles de prioridad.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

Page 20: Tema 7: Software y SS.OO. para computadores Industrialesicaro.eii.us.es/descargas/Tema 7(05-06).pdf · acceso al hardware o realiza funciones de ... Ælimitar el uso de recursos hardware

Tema 7: Software y SS.OO para computadores industrialesInformática Industrial 3º Ing. Técnico Industrial en Electrónica Industrial3939

KernelKernel para microcontroladores: para microcontroladores: µµCC/OS/OS--IIII

Pila de las tareas: Permite asignar una cantidad de memoria diferente a cada tarea.Ofrece: Buzones, colas, semáforos, monitorización de tareas, monitorización del tiempo,…Control de Interrupciones con 255 niveles.Es usado en cientos de productos comerciales: cámaras, instrumentos musicales, Validado para uso en sistemas críticos y de uso en entornos médicos.www.uCOS-II.com