Sistemas multiprogramados em tempo real
Os sistemas multiprogramados em tempo real são sistemas operacionais que combinam a multiprogramação com a capacidade de responder a eventos ou dados em tempo real, ou seja, dentro de prazos predefinidos.
Esses sistemas são usados em ambientes críticos, onde é essencial que as operações sejam executadas dentro de prazos específicos, sob o risco de falhas ou resultados indesejados.
Principais características
-
Multiprogramação: Assim como em outros sistemas multiprogramados, vários processos ou tarefas são carregados na memória ao mesmo tempo, e o sistema alterna entre eles para garantir o uso eficiente da CPU. No entanto, nos sistemas em tempo real, as tarefas têm prazos rigorosos que devem ser respeitados.
-
Respostas dentro de prazos garantidos: A principal característica de um sistema em tempo real é a necessidade de cumprir prazos (deadlines) para determinadas tarefas. Isso significa que o sistema deve ser capaz de completar uma tarefa dentro de um intervalo de tempo predefinido, o que é crucial em aplicações como controle de tráfego aéreo, sistemas médicos ou automação industrial.
-
Prioridade alta para tarefas críticas: Em sistemas de tempo real, algumas tarefas têm maior prioridade do que outras. Isso significa que o escalonador do sistema operacional deve ser capaz de garantir que as tarefas críticas sejam processadas primeiro, para que não percam seus prazos.
-
Preempção imediata: Um sistema multiprogramado em tempo real frequentemente usa a preempção imediata, o que significa que um processo de menor prioridade pode ser interrompido instantaneamente se uma tarefa de alta prioridade, com prazo curto, precisar ser executada. Esse tipo de controle garante que as tarefas mais urgentes sejam realizadas no momento adequado.
-
Determinismo: O comportamento dos sistemas em tempo real deve ser determinístico, o que significa que o sistema responde de maneira previsível e confiável às entradas, garantindo que a resposta aconteça dentro de um prazo conhecido e constante.
Exemplo
Um exemplo comum de sistema multiprogramado em tempo real é o software que controla um marcapasso. Esse dispositivo precisa monitorar constantemente os sinais cardíacos e fornecer impulsos elétricos dentro de intervalos de tempo extremamente curtos. Se houver um atraso no envio de um desses impulsos, o paciente pode sofrer sérios danos à saúde.
Outro exemplo são os sistemas de controle de tráfego aéreo, onde os computadores devem monitorar a posição de vários aviões e responder a eventos (como mudanças de rota ou altitude) em tempo real, para evitar colisões.
Diferenças com outros sistemas:
-
Sistemas multiprogramados interativos: Embora os sistemas interativos permitam que os usuários interajam em tempo real, eles não têm os mesmos requisitos de prazo crítico que os sistemas de tempo real. Em um sistema interativo, o atraso pode ser tolerado, mas em um sistema em tempo real, o não cumprimento de prazos pode levar a falhas graves.
-
Sistemas de tempo compartilhado (Time-sharing): Em sistemas de tempo compartilhado, o foco é dividir o tempo de CPU entre vários usuários de forma equitativa, enquanto em sistemas em tempo real, a prioridade é garantir que as tarefas críticas sejam concluídas dentro dos prazos estipulados.