Uma Abordagem De Escalonamento Heterogêneo Preemptivo E Não Preemptivo Para Sistemas De Tempo Real Com Garantia Em Multiprocessadores
Total Page:16
File Type:pdf, Size:1020Kb
View metadata, citation and similar papers at core.ac.uk brought to you by CORE provided by Repositório Institucional da UFSC UNIVERSIDADE FEDERAL DE SANTA CATARINA DEPARTAMENTO DE AUTOMAÇÃO E SISTEMAS Renan Augusto Starke UMA ABORDAGEM DE ESCALONAMENTO HETEROGÊNEO PREEMPTIVO E NÃO PREEMPTIVO PARA SISTEMAS DE TEMPO REAL COM GARANTIA EM MULTIPROCESSADORES Florianópolis 2012 Renan Augusto Starke UMA ABORDAGEM DE ESCALONAMENTO HETEROGÊNEO PREEMPTIVO E NÃO PREEMPTIVO PARA SISTEMAS DE TEMPO REAL COM GARANTIA EM MULTIPROCESSADORES Dissertação submetida ao programa de Pós- Graduação em Engenharia de Automação e Sistemas para a obtenção do Grau de Mestre em Engenharia de Automação e Sis- temas. Orientador: Rômulo Silva de Oliveira, Dr. Florianópolis 2012 Catalogação na fonte pela Biblioteca Universitária da Universidade Federal de Santa Catarina S795a Starke, Renan Augusto Uma abordagem de escalonamento heterogêneo preemptivo e não preemptivo para sistemas de tempo real com garantia em multiprocessadores [dissertação] / Renan Augusto Starke ; orientador, Rômulo Silva de Oliveira. - Florianópolis, SC, 2012. 200 p.: il., grafs., tabs. Dissertação (mestrado) - Universidade Federal de Santa Catarina, Centro Tecnológico. Programa de Pós-Graduação em Engenharia de Automação e Sistemas. Inclui referências 1. Engenharia. de sistemas. 2. Automação. 3. Multiprocessadores. 4. Escalonamento. 5. Memória cache. I. Oliveira, Rômulo Silva de. II. Universidade Federal de Santa Catarina. Programa de Pós-Graduação em Engenharia de Automação e Sistemas. III. Título. CDU 621.3-231.2(021) Renan Augusto Starke UMA ABORDAGEM DE ESCALONAMENTO HETEROGÊNEO PREEMPTIVO E NÃO PREEMPTIVO PARA SISTEMAS DE TEMPO REAL COM GARANTIA EM MULTIPROCESSADORES Esta Dissertação foi julgada aprovada para a obtenção do Título de “Mestre em Engenharia de Automação e Sistemas”, e aprovada em sua forma final pelo programa de Pós-Graduação em Engenharia de Automação e Siste- mas. Florianópolis, 10 de fevereiro 2012. José Eduardo Ribeiro Cury, Dr. Coordenador Banca Examinadora: Rômulo Silva de Oliveira, Dr Presidente Alexandre José da Silva, MSc Carlos Barros Montez, Dr George Marconi de Araújo Lima, Ph.D AGRADECIMENTOS Agradeço ao meu orientador Rômulo Silva de Oliveira pela dedica- ção, incentivo, paciência e pelas ótimas sugestões quando o caminho parecia obscuro. Agradeço à minha família pela confiança e apoio dado no decorrer do curso. Em especial agradeço aos meus pais pelo acesso à uma educação de boa qualidade e íntegra. Agradeço também aos amigos do LTIC pela amizade, ajuda em corre- ções, compartilhamento e aprimoramento das ideias. Por fim agradeço a CAPES pelo apoio financeiro que tornou possível a realização deste trabalho. Aprender é a única coisa de que a mente nunca se cansa, nunca tem medo e nunca se arre- pende. Leonardo da Vinci RESUMO Sistemas de tempo real são sistemas onde o correto funcionamento não de- pende somente da resposta lógica correta, mas também do tempo no qual ela foi dada. Igualmente do ponto de vista lógico, a viabilidade temporal da aplicação deve ser determinada através de técnicas, como por exemplo análise do tempo de reposta. Este tipo de aplicação está cada vez mais pre- sente atualmente e a demanda de processamento é tamanha que necessita-se de processadores com múltiplos núcleos complexos. É perceptível que o de- senvolvimento dos multiprocessadores está muito mais avançado em relação às técnicas de análise de tais sistemas e, portanto, é evidente a necessidade de pesquisa com objetivo de promover maior confiabilidade e redução de su- perdimensionamentos. O objetivo deste trabalho é promover uma solução de escalonamento que considere a escalonabilidade em conjunto com a anali- sabilidade do código da aplicação. Atualmente, a pesquisa de sistemas de tempo real trata o problema do escalonamento isolado do problema de obten- ção do parâmetro do tempo de computação da tarefas (WCET – Worst Case Execution Time). Dependendo da arquitetura do processador, as premissas adotadas no cálculo do WCET são incompatíveis com as premissas de escalo- namento, o que gera uma contradição fundamental entre o cálculo do WCET e os algoritmos de escalonamento. A incompatibilidade das premissas pode ser ilustrada pela preempção em arquiteturas com memória cache, onde o cál- culo de WCET assume execução contínua da tarefa, o que não é verdade em grande parte dos algoritmos de escalonamento. Este trabalho propõe o uso de uma abordagem heterogênea em multiprocessadores onde parte dos nú- cleos operam em regime preemptivo e parte em regime não preemptivo para tentar lidar com as diferentes considerações sobre preempção. As análises realizadas mostram que existe vantagem em usar a abordagem heterogênea. Palavras-chave: tempo real, Worst Case Execution Time, multiprocessado- res, escalonamento. ABSTRACT Real-time systems are systems where the correct functioning depends not only on the logically correct response, but also the time when it was given. As the the logic functionality, the application response time could be analy- zed to determine the viability of a real-time system. This type of application is increasingly present today and the processing demand is such that complex multi-core processors are needed. It is noticeable that the development of multiprocessor is a long way ahead compared with the techniques of analy- sis of such systems and is therefore necessary researches to promote more reliability and to reduce over-specified systems. The objective of this work is to promote a solution that considers scheduling in conjunction with the analyzability of the application code. Currently, the real-time research consi- ders the scheduling problem isolated from the WCET (Worst Case Execution Time) problem. Depending on the processor architecture, the values obtai- ned by computing WCET are incompatible with the scheduling model which creates a fundamental contradiction between the assumptions of calculation of WCET and scheduling algorithms. This work proposes the use of a he- terogeneous approach where part of the multiprocessor cores operate under preemptive and part on a non-preemptive scheduling. The analysis shows that there are advantages using the heterogeneous approach. Keywords: real-time, Worst Case Execution Time, multiprocessors, schedu- ling. LISTA DE FIGURAS Figura 1 Técnicas de balanceamento de pipeline..................... 38 Figura 2 Exemplo de unificação de recursos de um pipeline.. 41 Figura 3 Exemplo de pipeline diversificado. 43 Figura 4 Exemplo de pipeline dinâmico.. 44 Figura 5 Relação e hierarquia de memória. 45 Figura 6 Interação entre cache e TLB. 50 Figura 7 Modelo padrão desenvolvido para análise estática de código (CULLMANN et al., 2010). 57 Figura 8 Exemplo de grafo de controle fluxo . 63 Figura 9 Exemplo de grafo de análise de pilha . 63 Figura 10 Exemplo de grafo de análise de tempo . 64 Figura 11 Grafo de fluxo de controle para o exemplo da tabela hash. 66 Figura 12 Grafo de pior tempo de execução da tabela hash.. 68 Figura 13 Grafo de utilização de pilha para exemplo da tabela hash. 69 Figura 14 Exemplo de anomalia temporal. 89 Figura 15 Exemplo de atrasos de cache direto e indireto. 96 Figura 16 Atraso de preempção da tarefa 1 sobre a tarefa 2. 98 Figura 17 Resumo das técnicas de inclusão de efeitos na cache no teste de escalonabilidade . 103 Figura 18 Diagrama de blocos do processador FreeScale MPC5668G (CULLMANN et al., 2010) . 106 Figura 19 Particionamento de um conjunto de tarefas T sob o mesmo regime de preempção. 112 Figura 20 Particionamento de um conjunto de tarefas T sob diferentes regimes de preempção. 112 Figura 21 Resultados do escalonamento não preemptivo. 128 Figura 22 Resultados do escalonamento preemptivo, g = 20% de Ci . 130 Figura 23 Resultados do escalonamento heterogêneo para 4 processado- res, g = 20% de Ci .................................................133 Figura 24 Resultados do escalonamento heterogêneo para 16 processa- dores, g = 20% de Ci .............................................. 134 Figura 25 Comparação entre particionamento homogêneo e heterogêneo para 4 processadores com g = 20% de Ci .............................135 Figura 26 Comparação entre particionamento homogêneo e heterogêneo para 16 processadores com g = 20% de Ci ........................... 136 Figura 27 Técnicas de balanceamento de pipeline (Apêndice). 155 Figura 28 Exemplo de unificação de recursos de um pipeline (Apêndice).159 Figura 29 Pipeline com inclusão de atalhos (Apêndice).. 163 Figura 30 Pipeline do i486 (a) e Pentium (b) (Apêndice). 165 Figura 31 Exemplo de pipeline diversificado (Apêndice).. 166 Figura 32 Exemplo de pipeline dinâmico (Apêndice). 167 Figura 33 Exemplo de pipeline superescalar (SEHN; LIPASTI, 2005) (Apêndice). 170 Figura 34 Exemplo de máquina de estados finitos para previsão de con- trole de fluxo (Apêndice). 172 Figura 35 Relação e hierarquia de memória (Apêndice).. 173 Figura 36 Propriedades da memória cache (Apêndice). 179 Figura 37 Interação entre cache e TLB (Apêndice). 185 Figura 38 Processamento escalar e vetorial de um supercomputador (Apên- dice). 192 Figura 39 Porções de trabalho vetorizado e sequencial (Apêndice). 193 Figura 40 Perfil de execução de um pipeline de N estágios (Apêndice). 194 Figura 41 Perfil de execução de um pipeline com flutuação (Apêndice). 194 Figura 42 Modelo de um pipeline com flutuação (Apêndice). 196 LISTA DE TABELAS Tabela 1 Especificação das instruções aritméticas/ponto flutuante.. 39 Tabela 2 Especificação das instruções de acesso a memória. 40 Tabela 3 Especificação das instruções controle