Performance Evaluation of Software Architectures José Costa Software for Embedded Systems Department of Computer Science and Engineering (DEI) Instituto Superior Técnico 2011-03-22 José Costa (DEI/IST) Performance Evaluation of Software Architectures 2011-03-22 1 / 17 Outline Software architectures - exercises José Costa (DEI/IST) Performance Evaluation of Software Architectures 2011-03-22 2 / 17
Exercise 005 Consider a system with Architecture: Round-robin Number of Tasks (Modules): 5 Execution times [ms] T1 1.5 T2 [3-4.5] T3 0.5 T4 [4-5] T5 0,1(does watchdog refreshment) The system has a watchdog timer with 10 ms period. The system has apparently random but frequent malfunctions. Why? Correct this problem. José Costa (DEI/IST) Performance Evaluation of Software Architectures 2011-03-22 3 / 17 Exercise 005 - Resolution Main cycle time 9,6 ms T1 + T2 + T3 + T4 + T5 11,6 ms Sometimes T5 does not arrive quickly enough to refresh the watchdog. To solve the problem we have two alternatives: Increase the watchdog period from 10 to 12 ms; Include in the main loop an additional refreshment of the watchdog (another call to T5). It is preferable to insert the new call between the calls to T2 and T3 The new main cycle time would be: 9,7 ms T1 + T2 + T5 + T3 + T4 + T5 11,7 ms. The maximum time between refreshments would be: max (T1+T2, T3+T4) = max (6 ms, 5.5 ms) = 6 ms. José Costa (DEI/IST) Performance Evaluation of Software Architectures 2011-03-22 4 / 17
Exercício 007 Considere o seguinte programa de um sistema embebido que interage com 4 dispositivos externos: /* Rotinas de interrupção */ void interrupt handle_device_a (void) { /* Serve o dispositivo A */ Insert_in_queue (function_a); } void interrupt handle_device_d (void) { /* Serve o dispositivo D */ Insert_in_queue (function_d); } /* Ciclo principal */ void main (void) { while (TRUE) { call Get_from_queue (); /* Chama a função à cabeça da lista e trata a informação do dispositivo correspondente */ } } José Costa (DEI/IST) Performance Evaluation of Software Architectures 2011-03-22 5 / 17 Exercício 007 - Resolução (1/5) Que arquitectura é que este programa tem? Fila de espera de funções (function queue). José Costa (DEI/IST) Performance Evaluation of Software Architectures 2011-03-22 6 / 17
Exercício 007 - Resolução (2/5) Quais são as principais vantagens e desvantagens desta arquitectura face às outras arquitecturas que conhece? Vantagens face às arquitecturas round-robin: Possibilidade de controlar, mesmo dinamicamente, as prioridades relativas das tarefas. Desvantagem: Maior complexidade do sistema operativo (sistema de suporte à execução). Desvantagem face aos sistemas operativos de tempo-real (RTOS): Uma tarefa mais prioritária tem que aguardar pela conclusão da tarefa que detém o controlo do processador. Vantagem: Simplicidade. José Costa (DEI/IST) Performance Evaluation of Software Architectures 2011-03-22 7 / 17 Exercício 007 - Resolução (3/5) Em operação o sistema apresentava falhas intermitentes. Requisitos do sistema - Tempo de latência da interrupção do dispositivo até ao início do tratamento da informação (entrada em Process_information_from_X) [µs]: Response times of the system[µs]: Device A 1.000 Device B 1.600 Device C 4.000 Device D 10.000 handle_device_a 100 Process_information_from_A 400 handle_device_b 50 Process_information_from_B 1.000 handle_device_c 40 Process_information_from_C 500 handle_device_d 35 Process_information_from_D 200 Latency time from interrupts 8 (hardware) José Costa (DEI/IST) Performance Evaluation of Software Architectures 2011-03-22 8 / 17
Exercício 007 - Resolução (3/5) Em face destes valores justique a ocorrência das falhas intermitentes calculando os tempos de latência para o tratamento da informação dos 4 dispositivos. tempo de latência de X = t (entrada em Process_information_from_x) - t (pedido de interrupção do dispositivo X) t_x = t_handle_device_x + t_ciclo_principal t_ciclo_principal = max(t_process_information_from_i) = 1000µs (tarefa B) tempo de latência de A = 100+1000=1100µs tempo de latência de B = 50+1000=1050µs tempo de latência de C = 40+1000=1040µs tempo de latência de D = 35+1000=1035µs A latência de A viola o requisito e, portanto, podem ocorrer situações em que o serviço de A não é devidamente completado. José Costa (DEI/IST) Performance Evaluation of Software Architectures 2011-03-22 9 / 17 Exercício 007 - Resolução (4/5) É possível alterar o programa inicial sem lhe modicar a arquitectura nem a estrutura interna das rotinas de interrupção e de processamento da informação, por forma a conseguir um funcionamento ável? Esta é uma limitação intrínseca da arquitectura, nas condições enunciadas não é possível melhorá-la. José Costa (DEI/IST) Performance Evaluation of Software Architectures 2011-03-22 10 / 17
Exercício 007 - Resolução (5/5) Sugira modicações ao programa inicial, mantendo a arquitectura geral, por forma a eliminar as falhas intermitentes. Mantém-se a arquitectura function-queue scheduling. A única possibilidade de resolver o problema é decompôr as funções mais demoradas em módulos mais pequenos, se a aplicação o permitir. Neste caso é a tarefa B (Process_information_from_B) que levanta problemas pela sua duração pelo que deveria ser decomposta em duas tarefas, não podendo nehuma delas demorar mais do que 900µs José Costa (DEI/IST) Performance Evaluation of Software Architectures 2011-03-22 11 / 17 Exercício 006 Pretende-se construir uma balança electrónica que dialoga com o exterior por comunicação série assíncrona a 19200 baud. Um sensor piezoeléctrico gera uma tensão eléctrica proporcional ao peso a medir. Esta tensão é convertida num valor digital por um conversor analógico-digital integrado no microcontrolador da balança. Este microcontrolador inclui igualmente timer e UART. O sistema deve efectuar medições de peso com intervalos de 20 ms. Sempre que recebe um pedido por comunicação série o sistema envia a média das 3 últimas medições efectuadas, indicando iguahnente se o peso está estável. A resposta não deve demorar mais do que 80 ms. José Costa (DEI/IST) Performance Evaluation of Software Architectures 2011-03-22 12 / 17
Exercício 006 - Resolução Este sistema deve ser considerado um sistema de tempo real? Embora sejam especicados vários tempos de resposta com limitações temporais, não é evidente, por falta de contexto da aplicação, que a sua violação não possa ocorrer sem falhas graves. Por outro lado os requisitos temporais, tirando a necessidade em manter a comunicação a 19200 baud, não são muito apertados pelo que não se considera este sistema de tempo-real. José Costa (DEI/IST) Performance Evaluation of Software Architectures 2011-03-22 13 / 17 Exercício 006 - Resolução Proponha, justicando sucintamente, uma arquitectura para o software do sistema. Arquitectura round-robin com interrupções. É a arquitectura mais simples com interrupções. A existência de interrupções neste caso simplicará a construção da aplicação, nomedamente o serviço dos timers e do canal série. José Costa (DEI/IST) Performance Evaluation of Software Architectures 2011-03-22 14 / 17
Exercício 006 - Resolução Indique em que tarefas organizaria o software e qual seria o papel de cada uma. Tarefas: T1: Serviço do canal série assíncrono T2: Leitura do peso T3: Cálculo da informação de peso a enviar. Interrupt handlers: H1: Transmissão de caracter pelo canal série. (Desdobrável, eventualmente, em duas rotinas de interrupção, uma para a recepção, a outra para a transmissão.) H2: Relógio de tempo real. Marca os períodos de leitura do peso. H3: Leitura do peso. Rotina conveniente se o conversor analógico-digital se sincronizar com o processador por interrupção. José Costa (DEI/IST) Performance Evaluation of Software Architectures 2011-03-22 15 / 17 References Exercícios de Sistemas Embebidos, Alberto Cunha. IST, 2006. José Costa (DEI/IST) Performance Evaluation of Software Architectures 2011-03-22 16 / 17
Next class Multitasking Operating Systems José Costa (DEI/IST) Performance Evaluation of Software Architectures 2011-03-22 17 / 17