SISTEMAS DE TEMPO REAL

•	monitora ou controla processos que podem estar ocorrendo externamente ao computador.
•	necessita responder a estímulos externos que podem ser gerados periodicamente ou não.
•	estímulos podem servir para indicar que HÁ leitura de dados.
•	na análise desses dados, o sistema pode ter que gerar sinais de controle, também dentro de intervalos de tempo máximos.
•	é realizado por um conjunto de tarefas
o	executadas sob algumas restrições que envolvem
•	precedência,
•	utilização e compartilhamento de recursos,
•	distribuição em diferentes computadores e
•	 necessidade de comunicação.

•	O escalonamento das tarefas passa a ser, então, fator fundamental para que as restrições de tempo possam ser satisfeitas.

Objetivo - Monitorar ou Controlar

Para monitorar/controlar um processo, sua execução tem que ser cuidadosamente considerada no tempo: não se pode, perder os dados de entrada e nem demorar demais para o envio dos sinais de controle.

Características de Sistemas de Tempo Real

Sistemas de tempo real:
•	grandes e complexos
•	Apresentam componentes separados que necessitam um controle concorrente
•	Apresentam facilidades para interação com hardware de propósito especial
•	Exigem confiabilidade e segurança extremas
•	Necessitam garantir tempos de resposta
•	Reativos – respondem a eventos periódicos ou aperiódicos

A corretude desse tipo de sistema não está apenas no resultado lógico, mas também no instante em que este resultado é entregue.
Uma falha em responder dentro do tempo estabelecido pode ser tão grave quanto uma resposta errada.

Tipos de Sistemas de Tempo Real
•	Tempo real difícil ("hard") - absolutamente imperativo que as respostas ocorram até o momento estabelecido ("deadline"). 
exemplo, sistemas de controle de tráfego aéreo.
o	Tempo real real - sistemas que são tempo real "hard" e cujos tempos de resposta são muito curtos. 
exemplo, sistema guia para um míssil.
•	Tempo real suave ("soft") - deadlines são importantes, mas que continuam funcionando corretamente mesmo se algum deadline for ocasionalmente perdido. A violação de um requisito de tempo não é crítica. 
exemplo, a exibição de um filme.
o	Tempo real firme - sistemas que são tempo real "soft" mas para os quais não há benefício algum se houver atraso no serviço. 
exemplo, seleção de peças através da análise de imagem em uma linha de produção, caso haja demora na decisão para recusar uma peça, pode ocorrer da peça continuar na linha.

Restrições em Sistemas de Tempo Real
atividades que devem ser cumpridas dentro de prazos de tempo limitados coexistem com outras atividades que não são críticas do ponto de vista temporal.

•	Tarefas periódicas são aquelas que são ativadas de acordo com um período, ou seja, se repetem com uma freqüência pré-definida.
•	Tarefas não periódicas são aquelas que podem ser ativadas a qualquer momento, possuindo, portanto, um tempo A de ativação arbitrário.

As restrições de tempo, sem considerar a periodicidade:
•	tempo de chegada ou de ativação da tarefa (A),
•	tempo da tarefa estar pronta para iniciar sua execução (P),
•	a duração de execução ou tempo máximo para a execução da tarefa (E),
•	deadline ou prazo limite para a tarefa estar realizada e ter sua execução terminada (D).

Restrições em Sistemas de Tempo Real

Tarefas não periódicas que não possuam deadline D, em princípio, devem ser executadas o mais rápido possível. Exemplos de tarefas não periódicas:
•	atendimento À requisição de um operador,
•	recuperação de falha,
•	alarme.

Tarefas periódicas são aquelas que são ativadas exatamente uma vez por período T, definido e constante.

Instâncias das tarefas tÊm suas restrições temporais nos mesmoS termos das tarefas aperiódicas

Restrições em Sistemas de Tempo Real
outras restrições
•	Distribuição - as tarefas podem ter suas execuções distribuídas ou centralizadas, de acordo com a arquitetura do sistema.
•	Recursos - a tarefa pode necessitar de outros recursos além da CPU, tais como: dispositivos de E/S, estruturas de dados, arquivos, bases de dados, exclusividade de acesso, etc.
•	Precedência - restrições de precedência entre um conjunto de tarefas especificam o relacionamento entre as tarefas. Se uma tarefa precede outra, esta primeira deve terminar antes da segunda começar.
•	Concorrência - tarefas podem concorrer pelo acesso a recursos, desde que a consistência destes não seja violada.
•	Comunicação - tarefas cooperantes comunicam-se, sendo que o tipo de comunicação interfere com seus requisitos de tempo, principalmente se forem componentes de um sistema distribuído. A comunicação ocorre através de primitivas para sincronização e comunicação, tais como semáforos, monitores, troca de mensagens, etc.
•	Alocação de tarefas - quando múltiplas instâncias de uma tarefa são executadas para fins de tolerância a falhas, as diferentes instâncias devem ser executadas em processadores diferentes.

Exercícios
1.	O que é um sistema de tempo real?
2.	Como caracterizar um sistema de exibição de um filme em termos de requisitos temporais: hard ou soft?
3.	Como caracterizar um sistema que monitora sinais vitais de um paciente em uma UTI em termos de requisitos temporais: hard ou soft? 
4.	Justifique se o driver que está sendo construído pelo seu grupo constitui um sistema de tempo real. Se o driver for um sistema de tempo real, como caracterizar o driver que está sendo construído por seu grupo em termos de restrições temporais: periodicidade, precedência, comunicação, recursos e preempção?
5.	Dê um exemplo de sistema real hard, que não tenha sido usado no material 
6.	Dê um exemplo de sistema real soft, que não tenha sido usado no material