Sistema Operacional RTOS O que é um sistema operacional de tempo real (RTOS)? Em geral, um sistema operacional (SO) é responsável por gerenciar os recursos de hardware e hospedar os aplicativos que são executados no computador. Um sistema operacional de tempo real (RTOS) também executa essas tarefas, mas é projetado especialmente para rodar aplicações com extrema precisão e alto grau de confiabilidade. Isso pode ser especialmente importante para sistemas de medição e controle. Os sistemas operacionais de tempo real foram projetados para trabalhar com resposta a eventos e com sistemas de controle em malha fechada. Um exemplo de aplicação com resposta a eventos, na qual é imprescindível a utilização de RTOS é um sistema de airbag automotivo, este sistema necessita de precisão e confiabilidade, pois a resposta a um estímulo deve ser feita em um determinado espaço de tempo. Já um exemplo de aplicação de controle em malha fechada em que o RTOS é necessário, é para o controle de velocidade em automóveis, pois também é necessário precisão e confiabilidade. Ambos os sistemas exigem a realização de uma operação dentro de um tempo determinado. Esse tipo de desempenho é chamado de determinístico. Sistemas de tempo real podem ser classificados como “soft” ou “hard”. Para sistemas de tempo real do tipo soft, a utilidade de um sistema geralmente é inversamente proporcional ao tempo de resposta, após um determinado prazo ter sido perdido. Por exemplo, quando pressionamos um botão do telefone para atender uma chamada, a conexão deve ser estabelecida logo após o botão ter sido apertado, contudo, o prazo não é tão crítico e pequenos atrasos podem ser tolerados. Sistemas de tempo real do tipo “hard” são aqueles em que a utilidade do sistema torna-se zero em caso de perda do prazo. Uma unidade de controle de um motor (ECU) automotivo deve processar sinais de entrada e calcular a temporização da faísca da vela dentro de um prazo. Se houver perda desse prazo, o motor não irá operar corretamente. A utilidade de uma tarefa após a perda de prazo depende se o sistema de tempo real é do tipo “soft” ou do tipo “hard”, como mostrado na figura 1. Em contraste, sistemas operacionais de tempo real proporcionam a capacidade de priorizar tarefas, para que as tarefas mais críticas possam sempre ter controle do processador quando necessário. Essa propriedade possibilita a criação de aplicações com resultados que podem ser previstos. Sistemas operacionais de tempo real são necessários quando o processador está envolvido em operações como controle de malha fechada e tomada de decisão em tempo crítico. Essas aplicações necessitam que decisões temporizadas sejam feitas baseadas em dados recebidos. Por exemplo, um equipamento de entrada e saída realiza a amostragem de um sinal de entrada e o envia diretamente para a memória. Então, o processador deve analisar o sinal e enviar a resposta adequada ao equipamento de entradas e saídas. Nessa aplicação, o software deve estar envolvido na malha, portanto, você precisa de um sistema operacional de tempo real para garantir a resposta dentro de um espaço de tempo fixo. Além disso, aplicações que requerem tempo de execução estendido ou operações autônomas são geralmente implementadas com sistemas operacionais de tempo real. Desempenho em Tempo Real O equívoco mais comum associado ao desempenho em tempo real é dizer que ele aumenta a velocidade de execução do programa. Apesar de ser verdade em alguns casos, a aplicação é melhorada proporcionando temporização precisa e previsível. Com essas melhorias, você pode determinar o tempo exato quando certo evento ocorrerá. Controle em Tempo Real Com controle em tempo real, é possível monitorar e simular continuamente um sistema físico. Aplicações de controle em tempo real executam repetidamente uma tarefa definida pelo usuário com um intervalo de tempo específico entre cada execução. A maioria dos sistemas de controle em tempo real monitora um sistema físico, comparam o estado atual com o estado desejado e então simulam o sistema físico baseando-se nessa comparação. O tempo que leva para que essa malha execute é considerado o tempo de ciclo da malha. O tempo de ciclo da malha de controle varia baseado na complexidade do sistema. Sistema Operacional Monousuário (monotarefa) Em computação, chama-se monotarefa um sistema operacional que permite a realização de apenas uma tarefa de cada vez. Um dos mais famosos sistemas operacionais monotarefa é o MS-DOS, um dos primeiros sistemas operacionais para computadores pessoais. Monousuário, monotarefa. Esse sistema operacional foi criado para que um único usuário possa fazer uma coisa por vez. O Palm OS dos computadores Palm é um bom exemplo de um moderno sistema operacional monousuário e monotarefa. O Sistema Operacional Monotarefa possui as seguintes características: - É executado por um único processador e é capaz de gerenciar a execução de um único programa (tarefa) do usuário por vez. - Permite que o processador, a memória e os periféricos fiquem dedicados a um único usuário; são, portanto monousuários (monoterminais). - O processador fica ocioso quando o programa espera pela ocorrência de uma E/S. - São sistemas de simples implementação. Atualmente, a grande maioria dos sistemas operacionais é de tipo multitarefa, onde o tempo de processamento é repartido entre as diversas tarefas, dando a impressão ao usuário que elas são executadas simultaneamente. Ex: Windows XP, Vista, Linux, etc. Sistema Operacional Monousuário (multitarefa) Um sistema operativo multitarefa permite que um utilizador trabalhe com dois ou mais programas em simultâneo. Na prática o microprocessador não executa os diversos programas de uma só vez, mas reserva uma fração de tempo para cada um dos programas. Existem diferentes técnicas de gestão da multitarefa. Consoante o método utilizado, a estabilidade do sistema operativo é afetadas Multitarefa cooperativa: Neste caso de multitarefa, os utilizadores podem executar dois ou mais programas, mas o programa que se encontra em primeiro plano ganha o controlo sobre o microprocessador e mantém esse controlo até que a tarefa termine. Só depois é que o microprocessador é libertado para se ocupar com os restantes programas. Neste caso o que é que acontece se um dos programas pára de funcionar? O programa que está parado, ou “travado”, não liberta o microprocessador e conseqüentemente o computador “congela”, ou fica “suspenso”, e o utilizador tem que reiniciar o computador. O Windows 3.11 e as versões anteriores à versão Mac OS 8 utilizavam este tipo de multitarefa. Multitarefa preempetiva: A multitarefa preempetiva é melhor do que a anterior e permite que o sistema operativo recupere o controlo caso um aplicativo interrompa a sua execução. O utilizador perde todos os trabalhos que não tinham sido guardados no programa que travou, mas a falha neste aplicativo não vai influenciar o funcionamento do restante sistema. Os sistemas operativos atuais para computadores pessoais já utilizam este tipo de multitarefa, como é o caso do Unix, Linux, Windows 95, 98, Me, Windows NT, 2000 e XP, Mac OS 8 e versões mais recentes, e o OS/2, entre outros. No entanto, nem todos os sistemas que utilizam a multitarefa preempetiva, agirem de modo eficiente. Gestão de programas - Multitarefa Multitarefa multithreading Um sistema mais recente de multitarefa é designado por multithreading e permite que o computador execute mais do que uma tarefa de um único programa. Para facilitar o multithreading, os programadores devem dividir os programas em tarefas distintas, denominadas por threads. Com este tipo de multitarefa o utilizador pode estar a executar uma tarefa de um programa aplicativo e em simultâneo podem estar a ser executadas outras tarefas desse programa. Podemos também obter beneficio quando se executam vários programas aplicativos. Os sistemas operativos mais eficazes combinam a multitarefa preempetiva e o multithreading. Os sistemas operativos para computadores pessoais mencionados na multitarefa preempetiva também suportam o multithreading Sistema Operacional Multiusuário Um sistema operacional multiusuário permite que diversos usuários utilizem simultaneamente (ao mesmo tempo) os recursos do computador. Imagine 2 usuários acessando o mesmo computador ao mesmo tempo utilizando 2 ou mais programas ao mesmo tempo. Isso é um Sistema Operacional multiusuário/multitarefa. Como exemplo de sistemas operacionais multiusuário tem: o Unix, VMS e sistemas operacionais mainframe como o MVS. Os recursos que são compartilhados são geralmente uma combinação de: Processador. Memória. Armazenamento secundário (disco rígido). Programas. Periféricos, tais como impressoras, plotters, scanners, etc. Para que vários usuários usar um único computador, programas de ações e usar um sistema operacional unificado, que são dedicados a eles inteiramente; tendo a impressão de que eles fazem simultaneamente. Diferencia entre Windows Server e sistema multiusuário Se o sistema operacional permite acesso a rede não quer dizer que o mesmo é um sistema multiusuário. O Windows Server suporta usuários conectados por rede, entretanto, esses sistemas não são sistemas multiusuários. Eles tem um usuário administrador que é único. O que acontece é que todos os usuários remotos conectados e programas executados na verdade são executados no sistema pelo usuário administrador. Nome: Lucas Alves de Sousa 1° Turma de técnico em Informática para internet