Yrd Doç Dr Ziya AVŞAR* Niğde Üniversitesi, Fen-Ed Fakültes
TURKÎ-İ BASİTİN KONUMU
Constitui uma definição útil aquela que caracteriza um sistema RT como aquele em que há requisitos de sincronismo de eventos internos ao sistema em relação a eventos externos ao sistema, isto é, as especificações temporais exigem que entradas e saídas devam ocorrer em determinados instantes, definidos com respeito ao tempo natural. Um sistema que não é RT pode ser designado de tempo-virtual.
Como ilustração da diferença entre as duas abordagens, caracterizam-se como de tempo-virtual sistemas de informações convencionais onde um banco de dados disponibi- liza as entradas para a aplicação no momento que esta as requer, e está disponível para receber as saídas geradas pelo processamento no instante em que estas são geradas pela aplicação.
Como contra-exemplo, é RT um sistema computacional de monitoramento e controle industrial que deve obter a leitura de sensores mediante eventos que ocorrem assincrona- mente em relação aos estados internos do sistema (por exemplo um alarme), e deve gerar saídas em tempos referentes à dinâmica do processo, também independentes da tempo- rização interna da aplicação. No primeiro caso, o projeto do sistema não leva em conta a preocupação com a sincronização entre as entradas e saídas com relação ao ambiente, as quais podem ocorrer segundo o tempo virtual interno ao sistema.
No segundo caso, as entradas não estão disponíveis quando a aplicação às requisitam, tampouco as saídas podem ser geradas a qualquer momento; o sistema deve sincronizar-se à eventos externos de modo a estar pronto para receber as entradas quando elas estiverem temporariamente disponíveis, e deve gerar as saídas em tempo hábil determinado pela dinâmica do ambiente (é o sistema que se sincroniza ao ambiente e não vice-versa).
A fim de descrever e caracterizar os diferentes tipos de sistemas RT, bem como os métodos para escalonamento e gerência de recursos, utilizam-se termos gerais para tratar da carga de trabalho de sistemas computacionais e de comunicação. Desta forma, a unidade de trabalho agendada e executada por um sistema será denominada por este tra- balho como requisição (referindo-se a job), enquanto que o grupo de tarefas relacionadas, que conjuntamente desempenham alguma função no sistema, recebem o nome de tarefa (task). A transmissão de pacotes de dados, recuperação de um arquivo, cálculo para um sistema de controle são exemplos de uma tarefa (Liu, 2000).
Existem três modelos principais de tarefas tratadas em sistemas RT convencionais: periódicas, esporádicas e aperiódicas. Uma tarefa é dita periódica se ela apresenta várias instâncias (ou iterações) e um período fixo (intervalo regular) entre liberações consecutivas, com as requisições de processamento do mesmo tamanho. Um exemplo seria o de uma tarefa periódica processando sinais de radar a cada 2 segundos. Uma tarefa esporádica possui zero ou mais instâncias, apresentando um espaço mínimo entre duas liberações consecutivas. Por exemplo, uma tarefa esporádica pode executar uma manobra de emergência de uma aeronave quando o botão de emergência é pressionado, com um tempo mínimo de 20 segundos entre duas requisições de emergência. Já uma tarefa aperiódica nada mais é que uma tarefa esporádica com uma freqüência de ocorrência e durações indeterminadas (Cheng, 2002).
Restrições de tempo
Aplicações RT são caracterizadas por restrições de tempo, as quais devem ser re- speitadas para que se tenha o comportamento temporal desejado ou necessário de uma requisição do sistema. Dentre todos os parâmetros que compõem estas restrições, o tipi- camente presente em todas as requisições RT é o deadline. Ele corresponde ao instante máximo (prazo) em que uma requisição deve ser concluída. Pelo fato do tempo máximo de resposta permitido a uma requisição dado em geral na forma relativa, o parâmetro deadline, quando indicando um instante referente ao tempo natural do ambiente, é mais referenciado por deadline absoluto (Laplante, 2004; Liu, 2000).
Outras restrições temporais são importantes na definição deste comportamento tem- poral:
• Tempo de início: corresponde ao instante de início do processamento da requisição em uma ativação.
• Tempo de término: define o instante de conclusão da execução de uma requisição. • Tempo de resposta: equivale ao tempo entre o recebimento de um estímulo ex- terno pelo sistema (um conjunto de entradas) e a realização do comportamento esperado do sistema (resposta), incluindo a disponibilização de todas as saídas as- sociadas.
• Tempo de execução: especifica a quantidade de tempo gasto para completar a execução de uma dada requisição, quando ela executa sozinha e de posse de todos os recursos necessários. Este é um parâmetro que depende diretamente da com- plexidade da requisição e da velocidade do processador utilizado para sua execução. Ele é útil para se determinar, na maioria das vezes, se uma requisição cumprirá seu deadline.
• Tempo de chegada: define o instante em que o escalonador toma conhecimento da ativação de uma requisição. Nas periódicas (seção 2.3.3), o tempo de chegada coincide sempre com o início do período de ativação. Requisições aperiódicas (seção 2.3.3), por sua vez, apresentam o tempo de chegada coincidindo com o tempo de requisição do processamento aperiódico.
• Tempo de liberação (release time): coincide com o instante em que uma requisição está disponível para processamento, o que pode ser modelado como a inclusão da requisição em uma fila de jobs prontos para serem executados. Em geral, é assumido que tão logo uma tarefa chegue a mesma será liberada para esta fila. A partir disto ela poderá ser escalonada e executada a qualquer momento, dependendo apenas da disponibilidade de seus dados e do cumprimento das dependências de controle existentes. Tempo de liberação e deadlines são dois parâmetros muito utilizados para a distinção de tarefas de sistemas RT e tempo-virtual.
• Release Jitter : representa a máxima liberação de uma requisição, dado o fato que nem sempre ocorre a coincidência do tempo de chegada com a liberação da requi- sição.