BCC722 - Programação de Sistemas em Tempo Real - 2024-2

Carga horária da disciplina: 4 horas/aula


Professor(es) em 2024-2

Turma 11 Professor:
André Luiz Carvalho Ottoni - e-mail

Horários:
Segunda-feira (19h00 - 20h40)
Quinta-feira (21h00 - 22h40)

Objetivos

Capacitar o discente a desenvolver sistemas com restrições de tempo real.

Ementa

Introdução aos sistemas de tempo real, classificação dos sistemas, caracterização;
Concorrência;
Conceitos básico de sistemas operacionais;
Escalonamento para sistemas de tempo real;
Objetos de sincronização e seção crítica;
Comunicação entre tarefas;
Comunicação de tempo real;
Métodos formais para tempo real: modelagem; linguagens e Verificação.
Estudo de caso de sistemas operacionais de tempo real;
Desenvolvimento de sistemas de tempo real;

Conteúdo Programático

- Introdução aos Sistemas de Tempo-Real.
        - Definições
        - Classificações
- Sistemas Concorrentes.
        - Conceito
        - Problemas
- Conceitos de sistemas operacionais.
        - Processos.
        - Tarefas
        - Escalonamento
- Algoritmos para escalonamento em tempo real.
- Objetos de sincronização e seção crítica.
        - Sincronização entre tarefas: espera-ocupada, semáforos
        - Bloqueio perpétuo (´deadlock´), conceitos de justiça (´fairness´) e variedade (´liveness´)
- Comunicação entre tarefas.
        - Memória compartilhada.
        - Troca de mensagens
- Comunicação de Tempo-real.
        - Arquitetura de comunicação de tempo-real
        - Métodos de acesso: Token-bus, FDDI, DQDB, outros
        - Protocolos de tempo-real
- Métodos formais para tempo real.
        - Modelagem.
        - Linguagens
        - Verificação
- Sistemas operacionais de tempo real.
        - Tarefas periódicas e aperiódicas (esporádicas).
        - Parâmetros temporais associados às tarefas: tempo de chegada, tempo de pronto, tempo de execução, período, prazo (´deadline´)
        - Funções dos sistemas operacionais de tempo-real: criação/morte de tarefas, funções de temporização, sincronização e comunicação, outras funções.
        - Arquitetura do núcleo de tempo-real: estado das tarefas, blocos de controle de tarefas (BCT), fila(s) de pronto, de espera e de temporização, tratamento de interrupção/exceção.
        - Políticas de escalonamento (´scheduling´): escalonadores cíclicos, prioridade com preempção, protocolo de herança de prioridade, prazo mais cedo (´earliest deadline´), menor folga (´least laxity´).
        - Medidas de desempenho: tempo de preempção, tempo de latência de interrupção, tempo de operação sobre semáforos, tempo de deteção de inversão de prioridade, tempo de latência de despacho (´dispatching´) de tarefa.
        - Tendências associadas aos sistemas operacionais de tempo- real: UNIX de tempo-real, padrão POSIX (IEEE 1003.4), conceito de threads, arquiteturas baseadas em microkernel, sistemas operacionais de tempo-real para multiprocessamento.
- Desenvolvimento de sistemas de tempo real: API uC/OS.

Bibliografia

- Programação Concorrente Em Ambiente Windows - Uma Visão de Automação - Seixas Filho, Constantino; Szuster, Marcelo.
- Real-Time Concepts for Embedded Systems - Qing Li.

Bibliografia complementar

- Real-Time Systems and Programming Languages (Fourth Edition) Ada 2005, Real-Time Java and C/Real-Time POSIX - Alan Burns and Andy Wellings.
- uC/OS-III, The Real-Time Kernel - Jean J Labrosse.
- Operating System Concepts - Abraham Silberschatz, Greg Gagne, Peter B Galvin.

Departamento de Computação  |  ICEB  |  Universidade Federal de Ouro Preto
Campus Universitário Morro do Cruzeiro  |  CEP 35400-000  |  Ouro Preto - MG, Brasil
Telefone: +55 31 3559-1692  |  decom@ufop.edu.br


escort bahçelievler