UNIVERSIDADE FEDERAL DE UBERLÂNDIA
  

Timbre

Ficha de Componente Curricular

 

CÓDIGO:

 

COMPONENTE CURRICULAR:

SISTEMAS COMPUTACIONAIS EM TEMPO REAL

UNIDADE ACADÊMICA OFERTANTE:

FACULDADE DE ENGENHARIA ELÉTRICA

SIGLA:

FEELT

CH TOTAL TEÓRICA:

30 horas

CH TOTAL PRÁTICA:

15 horas

CH TOTAL:

45 horas

 

OBJETIVOS

Guiar e orientar o aluno a:

1. Conceituar sistemas em tempo real, paralelismo e conectar os assuntos nessas áreas;

2. Decidir sobre melhores arquiteturas e softwares necessários para os projetos de cada sistema;

3. Analisar o desempenho de sistemas em tempo real e/ou sistemas paralelos;

4. Utilizar softwares auxiliares para projetos de sistemas e de circuitos integrados;

5. O uso de softwares EDA/ECAD para automação de projetos.

Ao final do curso o aluno poderá aplicar os conhecimentos e técnicas adquiridos sobre sistemas em tempo real, paralelismo e projetos de circuitos integrados.

 

Ementa

Conceituação de sistemas em tempo real. Conceituação de sistemas com paralelismo. Sistemas concorrentes versus sistemas paralelos. Considerações de hardware de sistemas em tempo real e de arquiteturas paralelas. Particularidades de sistemas operacionais para sistemas em tempo real. Paradigma de paralelismo aplicado a linguagens de programação. Análises de desempenho. Uso de softwares EDA/ECAD (electronic design automation/ electronic computer-aided design) para automação de projetos de circuitos integrados.

 

PROGRAMA

1. Conceitos de Tempo Real

1.1. Terminologia; conceitos; definições

1.2. Características de projetos de sistemas em tempo real

1.3. Exemplos; equívocos comuns; breve histórico

1.4. Argumentos relacionados a paralelismo

2. Processamento paralelo

2.1. Conceitos e evolução; sistemas em tempo real e processamento paralelo

2.2. Componentes básicos de processamento paralelo

2.3. Tarefas, processos, processadores, características básicas e níveis de paralelismo

2.4. Etapas envolvidas no processamento paralelo: decomposição, designando tarefas para processos, orquestração, mapeando processos em processadores para execução

2.5. Vantagens: speedup; scaleup; tolerância a falhas; razão custo-desempenho; lidando com tarefas maiores

2.6. Fatores que influenciam o desempenho: paralelismo inerente no algoritmo; estruturação de tarefas; sincronização; overhead; passagem de mensagens

3. Considerações sobre Hardware em tempo real

3.1. Arquitetura básica

3.2. Interfaceamento: travamentos; acionamento por borda ou por nível; lógica tristate; estados de espera; interfaces e barramentos de sistemas

3.3. Unidade Central de Processamento: ciclos de busca e de execução; microcontroladores; formas de instrução; instruções de núcleo; modos de endereçamento; RISC versus CISC

3.4. Memória: acesso; tecnologias; hierarquia; organização

3.5. Entrada e Saída: programada; acesso direto à memória; mapeamento na memória; interrupções

3.6. Melhorando o desempenho: localidade ou referência; cache; pipelining; coprocessadores

3.7. Outros dispositivos especiais: ASIC, PAL/PLA; FPGA; transdutores; conversores A/D e D/A

4. Arquiteturas paralelas

4.1. Classificação de Flynn

4.2. Classificação baseada em arranjo de memória e comunicação entre elementos de processamento

4.3. Classificação baseada em interconexões entre elementos de processamento e módulos de memória

4.4. Classificação baseada na natureza característica dos elementos de processamento

4.5. Tipos específicos de arquiteturas paralelas

5. Sistemas Operacionais em tempo real

5.1. De pseudokernels a sistemas operacionais

5.2. Fundamentos teóricos de scheduling

5.3. Serviços de sistema para aplicações: buffers lineares e em anel; mailboxes; semáforos; problemas de deadlock e starvation; problemas de inversão de prioridade; serviços de timer e de clock

5.4. Discussões sobre gerenciamento de memória

5.5. Critérios de seleção de sistemas operacionais de tempo real

6. Linguagens de programação para sistemas em tempo real

6.1. Codificação de softwares para tempo real: adequações de linguagens de programação; padrões de codificação para softwares aplicados em tempo real

6.2. Visão geral de linguagens: assembly, linguagens procedurais, linguagens orientadas a objeto, linguagens específicas para aplicações em tempo real

6.3. Programação paralela e multithreading

6.4. Comparações dos modelos concorrente e paralelo

7. Metodologias de engenharia de requisitos

7.1. Engenharia de requisitos para sistemas em tempo real

7.2. Métodos formais em especificação de sistemas: máquinas de estado finito, diagramas de estado, redes de Petri

7.3. Documentação de requisitos: estrutura e composição; validações

8. Análise de desempenho em tempo real

8.1. Análise de desempenho em tempo real: sistemas de polled-loop e co-rotina; sistemas round-robin; sistemas de ponto fixo; sistemas não-periódicos

8.2. Aplicações da teoria de filas

8.3. Desempenho de Entrada/Saída

8.4. Análise de requisitos de memória

9. Análise de desempenho em paralelismo

9.1. Processamento sequencial

9.2. Processamento paralelo: arquiteturas homogêneas e heterogêneas; alocação de tarefa para processador

9.3. Interpretação de métricas

10. Projetos de circuitos integrados

10.1. Introdução a ferramentas de EDA/ECAD para projetos auxiliados por computador; editor de layout; simulações; síntese; colocação e roteamento

10.2. Estudo de caso: projeto de processador simples embarcado

10.3. Estudo de caso: projeto de sistema integrado de Processamento Digital de Sinais (tempo real e paralelo)

 

BIBLIOGRAFIA BÁSICA

1. COFER, R. C.; HARDING, Benjamin F. Rapid system prototyping with FPGAS: accelerating the design process. London: Newnes: 2005.

2. LAPLANTE, Phillip A. Real-time systems design and analysis. 3. ed. Hoboken: J. Wiley, 2004.

3. MUNIR, Arslan; GORDON-ROSS, Ann; RANKA, Sanjay. Modeling and optimization of parallel and distributed embedded systems. [s. l.]: Wiley, 2016.

4. TOKHI, M. Osman; HOSSAIN, M. Alamgir; SHAHEED M. Hasan. Parallel computing for real-time signal processing and control. London: Springer, 2003.

 

BIBLIOGRAFIA COMPLEMENTAR

1. D'AMORE, Roberto. VHDL: descrição e síntese de circuitos digitais. 2. ed. Rio de Janeiro: LTC, 2012.

2. DESCHAMPS, Jean-Pierre; BIOUL, Gery J. A.; SUTTER, Gustavo D. Synthesis of arithmetic circuits: FPGA, ASIC and embedded systems. Hoboken: Wiley, 2006.

3. JAIN, Raj. The art of computer systems performance analysis: techniques for experimental design, measurement, simulation, and modeling. New York: J. Wiley, 1991.

4. KOBAYASHI, Hisashi. System modeling and analysis: foundations of system performance evaluation. Noida: Dorling Kindersley, 2012.

5. LEE, Insup; LEUNG, Joseph Y-T.; SON, Sang H. (Ed.). HANDBOOK of real-time and embedded systems. Boca Raton: Chapman & Hall/CRC, 2008.

6. SHAW, Alan C. Sistemas e software de tempo real. Porto Alegre: Bookman, 2003.

7. WILSON, Peter. Design recipes for FPGAs. London: Newnes, 2016.

 

aprovação

 

Prof. Dr. Josué Silva de Morais

Coordenador do Curso de Graduação em Engenharia de Controle e Automação

Prof. Dr. Sérgio Ferreira de Paula Silva

Diretor da Faculdade de Engenharia Elétrica

 


logotipo

Documento assinado eletronicamente por Josué Silva de Morais, Coordenador(a), em 03/04/2019, às 10:47, conforme horário oficial de Brasília, com fundamento no art. 6º, § 1º, do Decreto nº 8.539, de 8 de outubro de 2015.


logotipo

Documento assinado eletronicamente por Sergio Ferreira de Paula Silva, Diretor(a), em 03/04/2019, às 11:41, conforme horário oficial de Brasília, com fundamento no art. 6º, § 1º, do Decreto nº 8.539, de 8 de outubro de 2015.


QRCode Assinatura

A autenticidade deste documento pode ser conferida no site https://www.sei.ufu.br/sei/controlador_externo.php?acao=documento_conferir&id_orgao_acesso_externo=0, informando o código verificador 1139133 e o código CRC 457E7186.




Referência: Processo nº 23117.027358/2019-96 SEI nº 1139133