Desarrollo de sistemas empotrados y concurrencia en programación

Etapas del desarrollo

Analisis, Diseño (UML: Unified Modeling Language), Programación, Testeo y Mantenimiento.

Paradigmas del desarrollo

Metodo en cascada, Metodo en espiral, Metodo de prototipos, Métodos ágiles

Sistema Empotrado

Sistema informático específicamente diseñado para resolver un problema concreto. Un sistema empotrado es un sistema con procesador que no es de propósito general.

Hardware en Empotrados

En unos casos HW es el de un PC: cajeros automático o PC-104. Pero en la mayoría es específico para: reducir costo, reducir consumo, reducir peso, optimizar prestaciones.

Tipos de ROM

ROM: grabada al fabricar el chip. EPROM: se borra con luz ultravioleta, se programa en dispositivo especial. EEPROM: borra y programa por software (proceso lento y con número finito de borrados.

Alimentación en empotrados

Se optimiza para el sistema { *consumo ajustado *disipación mínima. Suelen monitorizarse por el sistema { *tomar medida cuando va a fallar *redundantes en sistemas caóticos. Muchos sistemas Emp. utilizan baterías con control de la carga y la descarga. En los PCs debe haber generación de voltajes necesarios. Debe estar conectado a red eléctrica, estar sobredimensionado (implica ampliación HW), sin optimizar consumo.

STR

Sistema informático que tiene que responder a un estímulo de entrada generado externamente en un tiempo finito y específico. Interaccionan con el entorno. Podemos ver todos los sistemas como tiempo STR y pueden ser: STR BLANDO: de no cumplir produce degradación del rendimiento (Botón tele). STR DURO: de no cumplir se produce fallo o catástrofe. (Sistema de vuelo, ABS)

Software en empotrados

Debe ser fiable (fallos pueden ser muy costosos). Una vez instalado difícil de cambiar el software (correcciones o nuevas versiones solamente). Necesaria y extensa depuración: tanto SW como HW.

Fiabilidad en empotrados

Se aplican técnicas para salida de fallos o estados inadecuados: *temporizador perro guardián (resetea el sistema si este no es puesto a 0). *Subsistemas redundantes entre los que se puede elegir. *Modelo Software para estados de fallo (da parte de la funcionalidad).

Software Libre

Se llama SL porque está dotado de las 4 libertades: libertad para usarlo, libertad para copiarlo, libertad para modificarlo y libertad para distribuirlo. SOFTWARE LIBRE != SOFTWARE GRATIS // SOFTWARE NO LIBRE = SOFTWARE PRIVATIVO.

Ventajas del SL

El software libre es más fiable (se ha demostrado por tasa de fallos). Razones: *el software es revisado por otros. *comunidad unida para arreglar problemas (se informa de errores y se arreglan y mandan correcciones) *Desarrolladores se preocupan de la fiabilidad (código a la vista, genera mayor reputación). VENTAJAS PARA EL CLIENTE: No está a merced del vendedor y se evita los gastos derivados de licencias.

Preprocesado

Puro tratamiento de texto en fichero fuente. (genera ‘otro’ fichero fuente. Opción -E en el compilador). Acciones: *Quitar comentarios *Incluir otros ficheros fuente *Definir Etiquetas *Definir Macros *Quitar Código según condiciones. Definir etiquetas (definir constantes): *se sustituyen en el preprocesado *NO OCUPAN ESPACIO EN LA MEMORIA *Código más legible y modificable. Definir macros: *Parecidos a funciones *Se sustituyen (generan más código). Quitar código según condiciones: Distinto ejecutable según: *versiones del programa *arquitectura (portabilidad).

Librerías

Parte muy importante del C. Dependen del sistema operativo (algunas estándar y en todos los S.O.) Necesarios los ‘includes’. Indicarlos en el enlazado.

POO

Objetos y sus interacciones para hacer programas informáticos. Objetos: *Tienen estado: ATRIBUTOS *Realizan acciones: MÉTODOS. Seguridad: *Los atributos de un objeto solo modificados por sus métodos. *Objetos solo ‘reciben mensajes’ y ‘reaccionan’

Abstracción

Proceso inverso a la herencia: *Lo común a una serie de clases *Forma habitual de pensar estructuras de clases *De clase abstracta no se pueden instanciar objetos.

Polimorfismo

Objeto se hace pasar por cualquiera de sus clases ancestro, pero actúa como lo que es)

Sobrecarga

Varias funciones con el mismo nombre. (Se diferencian en número y tipo de argumentos de entrada: SIGNATURA.

Sobrecarga de operadores

Definir comportamiento cuando operando es un objeto: *simplificar los sistemas *clases como tipos básicos: string, iteradores,…

Concurrencia

Proceso: instancia de un programa en ejecución: *procesos concurrentes (solapan ejecución) *Procesos paralelos (se ejecutan al mismo tiempo)

Proceso UNIX

*Tiene un identificador: PID *Tienen un proceso padre: PPID *Hijos mueren antes que los padres *Deben ser esperados por sus padres (sino quedan zombis) *No comparten memoria (solo ficheros abiertos)

Problemas concurrencias

Exclusión mutua: {*Sección crítica: instrucciones que acceden al recurso compartido *Exclusión mutua: solo debe haber un proceso en su sección crítica. EJS: Impresora o variable compartida. Sincronización { *Acceden al recurso: cuando se esté en un estado adecuado. *Bloquear procesos si estado no adecuado.

Propiedades (soluciones) concurrencia

Las soluciones deben cumplir: SEGURIDAD (Exclusión mutua, Sincronización, No interbloqueo) VIVEZA (No interbloqueo activo (consumo de CPU sin producir), No inanición (postergación indefinida): *proceso nunca puede acceder al recurso *cuando se definen prioridades)

Hilos

Secuencia de ejecución independiente (*dentro de un proceso *entidades ligeras (crear un proceso= 23.61 microseg vs crear un hilo = 2.10 microseg) *comparten memoria (Variables globales y memoria dinámica (malloc))

Memoria y control del tiempo

*En STR es fundamental (medir el tiempo y controlar duración de las acciones) *Clasificación de las tareas (Periódicas: intervalos fijos y Específicas: interrupciones externas) *Hay que solucionar (relojes/temporizadores, retardos y tareas periódicas, timeouts y planificadores.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.