Automação em Tempo Real

Objetivos:

Neste curso são estudados os conceitos de programação concorrente e de programação em tempo real tendo como alvo o desenvolvimento de aplicações típicas para a área de automação industrial. Isto inclui o projeto de sistemas supervisórios, soft CLPs, drives de comunicação, historiadores de processos, controladores baseados em PCs, etc. Todos os exemplos são desenvolvidos para o sistema operacional WindowsNT/2000 que hoje constitui a plataforma mais utilizada para o desenvolvimento de aplicações industriais.


Ementa:

  1. Introdução à programação concorrente

Conceitos básicos e definições

  1. Processos e Threads em ambiente Windows

  2. Sincronização: Exclusão mútua

Algoritmos básicos, CriticalSections e Mutexes.

  1. Sincronização: Semáforos, Eventos e Timers

Semáforos binários e contadores, o problema dos produtores e consumidores, o jantar dos filósofos, leitores e escritores.

  1. Entrada e Saída

Sistema de arquivos, Leitura e escrita síncrona, Acesso assíncrono, 

Asynchronous Procedure Call, Completion Ports, Change Notification.

  1. Inter Process Communication (IPC)

Comunicação síncrona e assíncrona, Sistema de mensagens do Windows, 

Memória compartilhada, Pipes não nomeados e nomeados, Mailslots,

MsgWaitForMultipleObjects.

  1. Programação em Tempo Real

Determinismo no tempo; Escalonadores síncronos e assíncronos,

Inversão de prioridades, tratamento de interrupções,

Sistemas operacionais para aplicação de tempo real (RTOS),

Algoritmos de escalonamento de tempo real; Extensores de tempo real; Windows CE.


Livro texto:  
  • SEIXAS FILHO, Constantino e SZUSTER, Marcelo, Programação concorrente em ambiente Windows - Uma visão de automação; Editora da UFMG. [em preparação].


Pré requisitos

 

Programação em linguagem de alto nível de preferência C/C++ ou Delphi em ambiente Windows.