Buscar

teorico3

Prévia do material em texto

Sistemas de Tempo Real
Material Teórico
Responsável pelo Conteúdo:
Prof. Dr. Cléber Silva Ferreira da Luz
Revisão Textual:
Prof.ª Dr.ª Selma Aparecida Cesarin
Programação de Sistemas Operacionais para Aplicações em Tempo Real
• Introdução;
• Sistemas Operacionai;
• Sistemas Operacionais de Tempo Real;
• Funções e Serviços de um so de Tempo Real;
• Exemplos de Sistemas Operacionais de Tempo Real;
• Conclusões e Resumo da Unidade.
 · Apresentar todos os conceitos presentes no desenvolvimento de um 
Sistema Operacional para Aplicações de Tempo Real.
OBJETIVO DE APRENDIZADO
Programação de Sistemas Operacionais 
para Aplicações em Tempo Real
Orientações de estudo
Para que o conteúdo desta Disciplina seja bem 
aproveitado e haja maior aplicabilidade na sua 
formação acadêmica e atuação profissional, siga 
algumas recomendações básicas: 
Assim:
Organize seus estudos de maneira que passem a fazer parte 
da sua rotina. Por exemplo, você poderá determinar um dia e 
horário fixos como seu “momento do estudo”;
Procure se alimentar e se hidratar quando for estudar; lembre-se de que uma 
alimentação saudável pode proporcionar melhor aproveitamento do estudo;
No material de cada Unidade, há leituras indicadas e, entre elas, artigos científicos, livros, vídeos 
e sites para aprofundar os conhecimentos adquiridos ao longo da Unidade. Além disso, você 
também encontrará sugestões de conteúdo extra no item Material Complementar, que ampliarão 
sua interpretação e auxiliarão no pleno entendimento dos temas abordados;
Após o contato com o conteúdo proposto, participe dos debates mediados em fóruns de discus-
são, pois irão auxiliar a verificar o quanto você absorveu de conhecimento, além de propiciar o 
contato com seus colegas e tutores, o que se apresenta como rico espaço de troca de ideias e 
de aprendizagem.
Organize seus estudos de maneira que passem a fazer parte 
Mantenha o foco! 
Evite se distrair com 
as redes sociais.
Mantenha o foco! 
Evite se distrair com 
as redes sociais.
Determine um 
horário fixo 
para estudar.
Aproveite as 
indicações 
de Material 
Complementar.
Procure se alimentar e se hidratar quando for estudar; lembre-se de que uma 
Não se esqueça 
de se alimentar 
e de se manter 
hidratado.
Aproveite as 
Conserve seu 
material e local de 
estudos sempre 
organizados.
Procure manter 
contato com seus 
colegas e tutores 
para trocar ideias! 
Isso amplia a 
aprendizagem.
Seja original! 
Nunca plagie 
trabalhos.
UNIDADE Programação de Sistemas Operacionais para Aplicações em Tempo Real
Introdução
Sistemas Operacionais de Tempo Real são Sistemas Operacionais voltados para 
aplicações de Tempo Real. Assim como num Sistema de Tempo Real, um Sistema 
Operacional de Tempo Real responde a eventos pré-definidos em um intervalo de 
tempo conhecido e bem definido. 
Em Sistemas Operacionais de Tempo Real, o tempo de resposta a um evento é 
o aspecto mais importante. Todos os eventos devem ser respondidos respeitando 
os prazos de tempo. 
Um Sistema Operacional de Tempo Real também possui a característica de ser 
totalmente confiável, mesmo na ocorrência de uma falha; o Sistema Operacional 
de Tempo Real deve responder o evento no intervalo de tempo determinado. 
O primeiro passo no estudo de Sistemas Operacionais para aplicações de Tempo 
Real é entender o que é um Sistema operacional. Após termos bem claro o que é um 
Sistema Operacional, conseguiremos compreender facilmente todos os conceitos e 
elementos por trás de um Sistema Operacional para aplicações de Tempo Real.
Em um Sistema Computacional, um Sistema Operacional (SO) é o Programa 
mais importante do Sistema. Ele atua como um intermediário entre o usuário e o 
hardware de um computador. 
O objetivo do Sistema Operacional fornece um ambiente para que o usuário 
possa executar seus Programas. Dessa forma, podemos dizer que o objetivo central 
do SO é facilitar o uso de Sistemas Computacionais. 
Um objetivo secundário do SO é usar os hardwares do Sistema Computa-
cional de forma eficiente. A próxima seção apresenta mais detalhes sobre um 
Sistema Operacional.
Sistemas Operacionais
Um Sistema Operacional (SO) pode ser considerado um Programa que visa a 
realizar uma intermediação entre um usuário e o hardware de um computador. 
Seu objetivo é fornecer um ambiente no qual os usuários possam executar seus 
Programas de maneira eficiente. Numa definição clássica de Sistemas Operacio-
nais, um SO pode ser considerado um gerenciador, que atua gerenciando os diver-
sos recursos computacionais, tais como, softwares, hardwares, dados e dados de 
entrada e saída, entre outros.
Por mais complexo que possa parecer, um Sistema Operacional é um conjunto 
de rotinas executado pelo processador, da mesma forma que nossos Programas. 
Sua principal função é controlar o funcionamento do computador, como um geren-
te dos vários recursos disponíveis do Sistema. 
8
9
O nome Sistema Operacional não é único para designar esse Conjunto de Pro-
gramas. Nomes como monitor, executivo, supervisor ou controlador possuem, nor-
malmente, o mesmo significado.
Funções que um Sistema operacional deve desempenhar:
• Permitir que os Programas armazenem e obtenham informação;
• Isolar os Programas dos detalhes específicos de hardware;
• Controlar o fluxo de dados entre os componentes de um computador;
• Permitir que os Programas sejam executados sem a interferência de outros 
Programas;
• Permitir que os Programas independentes cooperem periodicamente e com-
partilhem informações;
• Responder aos erros ou a solicitações dos usuários;
• Impor um escalonamento entre Programas que solicitam recursos;
• Facilitar o acesso aos recursos do Sistema.
O Sistema Operacional, então, serve de 
interface entre o usuário e os recursos dis-
poníveis no Sistema, tornando essa comu-
nicação transparente e permitindo ao usu-
ário uma utilização mais eficiente e com 
menores chances de erros. 
Sistemas Operacionais 
de Tempo Real
As principais funções de um SO são 
gerenciar os recursos de hardware e de 
software do Sistema Computacional e 
fornecer serviços específicos para os 
usuários do Sistema Computacional. Sis-
temas Operacionais de Tempo Real tam-
bém realizam as mesmas funções e servi-
ços de um SO.
Todavia, um SO de Tempo Real possui 
requisitos diferentes que surgem por causa 
da sua natureza. Uma característica funda-
mental que os diferes é a Previsibilidade. 
Essa característica se aplica de modo mais crítico em relação ao tempo. Todos 
os serviços devem ser realizados dentro de um intervalo de tempo conhecidos e 
Figura 1 – Sistema Operacional como uma interface
Fonte: Adaptado de iStock/Getty Images
9
UNIDADE Programação de Sistemas Operacionais para Aplicações em Tempo Real
determinados. Essa característica também é aplicada em todos os recursos geren-
ciados pelo SO de Tempo Real, tais como, armazenamento, dispositivos de E/S e 
arquivos. É importante também, que a gerência de falhas seja previsível. 
Outras características que os difere são a Visibilidade e o Controle para to-
dos os recursos do Sistema. Em um SO convencional, uma grande quantidade 
de hardware do Sistema Computacional é totalmente escondida e abstraída do 
usuário. Entretanto, em um SO de Tempo Real, os usuários devem ser capazes de 
acessar e controlar os recursos físicos do Sistema para garantir a previsibilidade. 
Habitualmente, um SO de Tempo Real é um Sistema aberto, isto é, aquele que de-
fine um conjunto de mecanismos apropriados e flexíveis. Um SO de Tempo Real deve 
possibilitar a definição de um amplo domínio de políticas, por exemplo, definição de di-
ferentes políticas de gerenciamento de memória, de gerenciamento de entrada e saída 
de dados e de gerenciamento de arquivos, entre outros. Criando um amplo conjunto de 
definições de políticas, o Sistema Operacional de Tempo Real se torna mais robusto. 
Um Sistema Operacional de Tempo Real compartilha dos mesmos conceitos e 
classificações de um Sistema de Tempo Real. Porexemplo, um SO de Tempo Real 
também é classificado em Crítico e Não Crítico. 
SOs de Tempo Real Críticos obedecem ao intervalo de tempo para a realiza-
ção da tarefa, isto é, não pode haver perda de prazo na realização de uma tarefa. 
O não cumprimento dos prazos pode causar resultados fatais. 
Em um SO de Tempo Real, uma realização de tarefa pode ser encarada como 
uma alocação de recurso, uma alocação de memória e uma abertura de um arquivo,e 
entre outros. Todavia, a tarefa deve cumprir o prazo de forma rigorosa; senão, resul-
tados fatais podem ocorrer. 
Um SO de Tempo Real crítico também é subclassificado em Seguro em Caso 
de Falha e Operacional em Caso de Falha. 
Seguro em Caso de Falha significa que, caso ocorram falhas, o SO consegue 
atingir um ou mais estados seguros. Operacional em Caso de Falha significa que, se 
ocorrerem falhas, o SO se degrada e consegue fornecer um tipo de serviço mínimo. 
No SO Tempo Real não Crítico, o tempo também é o fator mais importante; 
todavia, se ocorrerem falhas, elas são aceitáveis. Dessa forma, caso ocorra perda 
de prazo, os danos resultantes não serão letais.
Um SO de Tempo Real também pode ser classificado como Hard Real-Time, 
Soft Real-Time, Real Real-Time e Firm Real-Time. 
Hard Real-Time significa que o SO deve respeitar todos os prazos de forma 
absoluta, isto é, a perda de prazo não é tolerada. Soft Real-Time significa que se 
o SO perder algum prazo final, ocasionalmente, é tolerável. Os SO classificados 
como Real Real-Time são SOs Hard Real-Time que possuem prazos de respos-
tas extremamente curtos. 
10
11
Na classificação Firm Real-Time estão os Soft Real-Time que não possuem 
benefícios de entrega de serviço sem atraso. Para um melhor entendimento sobre 
essas classificações, consulte a Unidade I – Definição de Conceitos Básicos e da 
importância de Sistemas Computacionais para aplicações Tempo-Real.
Funções e Serviços de um so de Tempo Real
Um Sistema Operacional de Tempo Real deve realizar algumas funções básicas, 
tais como, criar Processos, gerenciar Processos, escalonar Processos, gerenciar 
memória, gerenciar arquivos, gerenciar dados de entrada e saída e, também, ge-
renciar todos os hardwares disponíveis no Sistema Operacional.
A próxima seção apresenta detalhes sobre Processos.
Processos
Um dos serviços mais importantes que o SO de Tempo Real realiza é criar, con-
trolar e destruir Processos. 
Um Processo é basicamente um Programa em Execução. O termo Processo se re-
fere ao Programa em Execução e, também, todos os elementos necessários para que o 
Programa o execute, como, espaço de memória, código binário do Programa, espaço 
para armazenar dados de processamento e controlador de instruções (responsável por 
controlar quais instruções do programa falta serem executadas), entre outros. 
A maneira mais fácil de obter uma boa noção de Processos é pensar nos Siste-
mas de tempos compartilhados. Periodicamente, o SO decide parar de executar 
um Processo e começar a executar outro. 
Quando um Processo é suspenso temporariamente, mais tarde ele deve ser rei-
niciado exatamente no mesmo estado em que estava quando foi suspenso. Dessa 
forma, todas as informações do Programa devem ser armazenadas em algum lugar 
seguro durante a suspensão. 
Um Processo pode criar outros Processos. Nesse caso, temos uma relação de 
pai e filho, criando uma árvore de Processos, como é mostrado na Figura 2.
C
A
B
FED
Uma árvore de processos
- A criou dois processos �lhos: B e C
- B criou dois processos �lhos: D, E e F
Figura 2 – Relação entre Processos
Fonte: Acervo do Conteudista
11
UNIDADE Programação de Sistemas Operacionais para Aplicações em Tempo Real
Processos são executados na CPU do computador. Um Processo possui 3 estados:
1. Executando (realmente sendo executado na CPU nesse instante);
2. Pronto (executável; temporariamente parado para permitir que outro 
Processo execute na CPU);
3. Bloqueado (incapaz de executar até que algum evento externo aconteça).
A Figura 3 ilustra o ciclo de estados de um Processo.
Bloqueado
1
3
2
1 - O processo bloqueia para entrada
2 - O agendador seleciona outro processo
3 - O agendador seleciona esse processo
4 - A entrada torna-se disponível
4
Executando
Pronto
Figura 3 – Ciclo de estados de um Processo
Fonte: Adaptado de Tanenbaum
O agendador é responsável por selecionar o Processo e colocá-lo para executar 
na CPU. A próxima seção apresenta detalhes sobre um agendador.
Escalonamento
Outra função importante de um SO de Tempo Real é escalonar o Processo 
para ser executado pelo processado. Quando um Processo fica em estado de 
pronto, ele é colocado em fila de Processos, esperando a sua vez de ser escalonado 
para utilizar o processador, conforme ilustrado na Tabela 1. 
Tabela 1 – Fila de Processos
Processos
0 1 ... n – 2 n – 1
Agendador
Fonte: Acervo do Conteudista
A função de escalonamento é chamada de agendador ou escalonador. Fre-
quentemente, o termo em inglês Sheduling é utilizado para fazer referência à 
função de escalonamento do SO. 
Os Processos que se encontram em estado de prontos ficam numa fila e o escalo-
nador de Processos seleciona um Processo e o coloca para ser executado na CPU. 
Esse procedimento é ilustrado na Figura 4.
12
13
Espera
Execução
Processo
Processo
Processo
Processo
Processo
Pronto
Escalonador
Figura 4 – Escalonamento
Fonte: Acervo do Conteudista
Essa seleção é realizada a partir de um método de escalonamento, que selecio-
na o Processo utilizando um algoritmo de escalonamento. 
Existem diversos algoritmos de escalonamento; cada algoritmo de escalonamen-
to implementa uma lógica de seleção. 
Os algoritmos de escalonamento são classificados em dois grupos:
• Algoritmos de escalonamento estáticos; 
• Algoritmos de escalonamento dinâmicos.
Essa classificação baseia-se nas regras de escalonamento quanto à consideração 
do estado atual da aplicação. Como, por exemplo, no escalonamento estático, que 
não são consideradas as alterações do estado atual da aplicação. 
Dessa forma, as tarefas são alocadas antes da execução da aplicação e a execu-
ção é feita em função do escalonamento estabelecido. 
O escalonamento dinâmico detecta alterações no estado atual da aplicação e 
gerencia os recursos com base nas informações atuais da aplicação. 
As tarefas são alocadas em tempo de execução, considerando as informações 
e as condições da aplicação. Métodos de escalonamentos serão estudados com 
profundidade na unidade V – Métodos de Escalonamento.
É interessante lembrar que problemas de escalonamento de tarefas não ocorrem 
somente em Sistemas Operacionais; ocorrem, constantemente, em Sistemas de 
Tempo Real. 
Imagine o seguinte cenário: chegam duas tarefas ao mesmo tempo para o Sis-
tema de Tempo Real. Qual se deve atender primeiro? 
Os Sistemas de Tempo possuem uma política de escalonamento muito rígida, 
pois, habitualmente, chegam diversas tarefas ao mesmo tempo e o Sistema deve 
realizar a escolha de qual realizar primeiro a partir de um mecanismo de escalona-
mento, que selecionará a tarefa a ser executada primeiro utilizando determinadas 
regras implementadas no escalonador.
13
UNIDADE Programação de Sistemas Operacionais para Aplicações em Tempo Real
Threads 
Em Sistemas Operacionais de Tempo Real, é comum que Processos trabalhem 
em conjunto para realizar uma determinada tarefa. Frequentemente, quando dois 
Processos trabalham em conjunto, eles compartilham o mesmo recurso, seja ele 
um espaço de memória, seja um arquivo. Dessa forma, é necessário haver comu-
nicação e sincronização, entre os Processos.
Normalmente, num Processo, há uma única linha de execução. Entretanto, em 
alguns Sistemas Operacionais modernos, é fornecido suporte para múltiplas linhas 
de execução dentro de um Processo. 
Essas linhas de controle, normalmente, são chamadas Threads ou, ocasional-
mente, Processos Leves. 
Threads possuem os mesmos estados de um Processo, compartilham o mes-
mo espaço de endereçamento, permitindo queum thread possa alterar dados de 
outro thread. 
Assim como os Processos, Threads podem compartilhar o mesmo endereço 
de memória também. Habitualmente, Threads trabalham de forma cooperativa, 
assim como os Processos.
Thread 2
Thread 3
Processo
Thread 1
Figura 5 – Threads
Fonte: Acervo do Conteudista
Comunicação entre Threads
Habitualmente, Threads trabalham em conjunto para realizar um único traba-
lho. O mesmo se aplica a Processos. 
Com isso, em Sistemas Operacionais de Tempo Real, é necessário haver um 
mecanismo de comunicação e de sincronização. 
No trabalho em conjunto, frequentemente, há necessidade de compartilhar al-
guns armazenamentos de dados que podem ser lidos e gravados. 
O armazenamento compartilhado pode estar na memória principal ou pode 
ser um arquivo compartilhado; a localização da memória compartilhada não muda 
a natureza da comunicação ou os problemas que surgem. 
14
15
Para entender os problemas que surgem com o armazenamento compartilhado, 
imagine uma variável chamada cont. Essa variável contém o valor 10 e é compar-
tilhada entres os Processos A e B. 
Tanto o Processo A como o Processo B realizam uma operação de soma em 
cont. Uma operação de soma é realizada por três operações primitivas, Leitura, 
Soma e Armazenamento. 
O Processo A está em execução na CPU. Ele lê o conteúdo de cont., soma 1 ao 
valor de cont., mas, nesse momento, o Processo A perde a prioridade de execução 
na CPU e fica no estado de Pronto. 
Em seguida, o Processo B entra em estado de execução e lê o valor de cont., 
soma 1 e grava o resultado em cont. Logo após, o Processo B fica no estado de 
Pronto, deixando o Processo A usar a CPU. 
Agora, o Processo A continua na operação que ele parou, ou seja, continua a 
partir da escrita e escreve o resultado da soma em cont.
Nesse caso, o que houve com valor de cont.? 
O valor de cont. está corrompido, não é mais um valor confiável. Quando esse 
cenário ocorrer, dizemos que ocorreu uma condição de corrida.
Proceso BProceso A
Cont.
Figura 6 – Condição de Corrida
Fonte: Acervo do Conteudista
Para evitar condições é preciso implementar um mecanismo de execução mú-
tua, isto é, quando uma Thread estiver acessando a variável Cont., nenhuma outra 
Thread pode acessá-la. 
De uma maneira mais simples, é preciso criar um mecanismo de sincronização, 
que permita que uma Thread por vez acesse a variável Cont.. Existem diversas 
soluções para o problema de sincronização. 
O problema de sincronização e as suas soluções são abordados com mais deta-
lhes na Unidade VI – Problemas de sincronismo e temporização.
Todavia, nesta Unidade, iremos apresentar uma solução para o problema da 
variável Cont. 
Uma solução possível para evitar condição de corrida e, implicitamente, im-
plementar um mecanismo de sincronização nesse problema é criar uma variável 
de bloqueio. 
15
UNIDADE Programação de Sistemas Operacionais para Aplicações em Tempo Real
Nessa solução, é criada uma variável “bloqueio” com o valor 0, que significa 
que ninguém está acessando a variável Cont, e o valor 1 significa que alguém esta 
acessando Cont. 
Por exemplo, vamos supor que a Thread T1 acesse primeiro a variável Cont.; 
ao acessar a variável, a Thread T1 muda o valor de bloqueio para 1, impossibili-
dade de outras Threads acessarem a variável Cont. 
Quando a Thread T1 termina de acessar a Cont., ela muda o valor de bloqueio 
para 0, possibilitando que outras Threads acessem a variável Cont.
T2T1
Cont.
T1bloqueio = 0;
bloqueio = 1;
bloqueio = 0;
Figura 7 – Solução variável de bloqueio
Fonte: Acervo do Conteudista
Vale ressaltar que o problema de sincronização e as suas soluções serão abor-
dados com detalhes na Unidade VI – Problemas de Sincronismo e Temporização.
É importante enfatizar, também, que problemas de sincronização não aparecem 
somente em Sistemas Operacionais de Tempo Real, aparecem, constantemente, 
em Sistemas de Tempo Real como um todo. 
Imagine a seguinte situação: são necessários dois recursos (A e B) para realizar 
uma única tarefa. O Recurso A é responsável por iniciar a tarefa e, depois de algum 
tempo de processamento, o Recurso B continua o processamento. 
B não pode realizar o processamento se A não o iniciar primeiro. Esse exemplo, 
e diversos outros, ocorrem constantemente em Sistemas de Tempo Real.
Memória
Outra função importante de SO de Tempo Real é gerenciar a memória do Sis-
tema Computacional. Um computador possui diferentes níveis de memórias. Cada 
nível tem um propósito, uma capacidade e forma de acesso diferente. 
Os níveis de memória de computador são:
• Registradores;
16
17
• Memória Cache;
• Memória Principal;
• Memória Secundária. 
A Figura 8 ilustra os níveis de memória. Esta ilustração mostra a capacidade e a 
velocidade de cada nível:
Registradores
Memória Cache
Memória Principal
Memória Secundária
Maior custo
Maior Velocidade
Maior Capacidade
Figura 8 – Níveis de memória de um computador
Fonte: Acervo do Conteudista
Registradores são pequenos espaços de memórias presentes nos processa-
dores. Sua velocidade é extremamente rápida. É um nível de memória presente 
no processador. 
Por exemplo, para que o processador realize a soma entre 2 dois números, ele 
precisa de espaço de memória para armazenar os dois números e, posteriormente, 
armazenar o resultado. Esses números são armazenados em registradores, para 
possibilitar que o processador realize a soma. 
A Memória Cache também é uma memória de alta velocidade. O tempo de 
acesso a um dado nela armazenado é muito menor do que se ele estivesse na me-
mória principal, ou na memória secundária. 
Essa memória é nível de processador, isto é, uma memória dedicada a arma-
zenar dados para o processador. Esse nível de memória é mais lento do que os 
registradores; todavia, permite armazenar uma quantidade maior de dados. Essa 
quantidade é bem limitada, mas é maior que a dos registradores. Seu objetivo é 
armazenar dados que são utilizados com mais frequência; dessa forma, o proces-
samento fica mais rápido.
A Memória Primária, também chamada de memória RAM, tem velocidade re-
lativamente rápida; porém, é mais lenta do que a memória cache e os registradores. 
Em contrapartida, tem uma capacidade de armazenamento superior à dos regis-
tradores e cache. O objetivo da memória primária é fornecer espaço de memória 
para os programas serem executados. Todos os programas, inclusive o SO, são 
executados nesse nível de memória. 
17
UNIDADE Programação de Sistemas Operacionais para Aplicações em Tempo Real
A Memória Secundária é um meio permanente de armazenamento de progra-
mas e dados. Nesse nível, o acesso é mais lento se comparado ao acesso à memória 
cache ou à principal. Todavia, sua capacidade de armazenamento é superior a qual-
quer outro nível de memória. Exemplos de dispositivos de memória secundária: HD.
Dispositivos de Entrada e Saída de Dados
Fornecer gerenciamento de entrada e saída de dados é outra função que o SO 
de Tempo Real deve realizar. Dispositivos de entrada e saída de dados são utilizados 
para permitir a comunicação entre o computador e o mundo exterior. 
Os dispositivos de E/S podem ser divididos em duas categorias:
• Dispositivos que são utilizados como memória secundária;
• Dispositivos que servem para a interface homem-máquina.
Dispositivos que são utilizados como memórias secundárias são dispositivos que 
possibilitam estender o meio físico de armazenamento de dados. Por exemplo, um 
pen driver, é um dispositivo utilizado como memória secundária. 
Já os dispositivos que servem para a interface homem-máquina são aqueles 
dispositivos que possibilitam a entrada e saída de dados do computador para o 
ambiente externo, ou vice e versa. Por exemplo, um teclado ou um monitor são 
exemplos de dispositivos que servem como interface homem-máquina.
Arquivos
Outra função que um SO de Tempo Real deve fornecer é o gerenciamento 
de arquivos. 
Arquivos possibilitam o armazenamento de informações e devem ser armazena-
dasao longo do tempo; são constituídos de informações logicamente relacionadas. 
Por exemplo, um Programa pode ser considerado arquivo, porque é totalmente 
construído de informações lógicas. 
• Arquivos podem ser classificados em:
• Arquivos Executáveis; 
• Arquivos Lógicos;
• Arquivos de Somente Leitura;
• Arquivos de Somente Escrita. 
Arquivos armazenam informações, geralmente, em grandes quantidades. Essas in-
formações precisam ser armazenadas para serem utilizadas em diversos momentos. 
Dessa forma, ao se desligar o computador, essas informações não podem ser 
perdidas. Quando utilizadas, elas devem ser acessadas e lidas na memória do com-
18
19
putador. Há muitas formas de acesso às informações. Alguns Sistemas fornecem 
apenas um tipo, já outros, disponibilizam diferentes métodos, conforme a necessi-
dade da aplicação. 
Um SO de Tempo Real deve fornecer mecanismos para armazenar, buscar, apa-
gar, alterar e organizar arquivos, com o objetivo de facilitar o acesso às informações. 
Deve, também, permitir que as aplicações (Programas) criem e manipulem ar-
quivos. Dessa forma, é necessário que o SO de Tempo Real forneça mecanismos 
como o “System Calls de E/S” que são chamados de Sistemas, que possibilitam a 
aplicação de manipular o arquivo.
Dispositos
Aplicação
System Call de E/S
Figura 9 – System Calls de E/S
Fonte: Acervo do Conteudista
As chamadas de Sistemas (System Calls) de E/S deve fornecer os comandos, como:
• Create() – Responsável por criar arquivos; 
• Open() – Responsável por abrir arquivos;
• Read() – Responsável por ler arquivos;
• Write() – Responsável por escrever arquivos;
• Close() – Responsável por fechar arquivos;
• Rename() – Responsável por renomear arquivos;
• Delete() – Responsável por deletar arquivos.
Um arquivo deve possuir, ainda, atributos, tais como, nome, tamanho, data da 
criação, proteção e também, o uid (id do usuário) do criador do arquivo. O meca-
nismo de gerência de arquivo do SO é responsável por tudo isso.
19
UNIDADE Programação de Sistemas Operacionais para Aplicações em Tempo Real
Exemplos de Sistemas Operacionais 
de Tempo Real
Existem diversos Sistemas Operacionais de Tempo Real no Mercado.
Entre eles, estão; 
• RedHat Enterprise Linux for Real Time – Criado pela Empresa RedHat, 
o “RedHat Enterprise Linux for Real Time” é um Sistema Operacional de 
Tempo Real em Ambiente Linux;
• AIX – Advanced Interactive eXecutive – Este Sistema Operacional de Tempo 
é uma versão do Unix executados em computadores de médio porte da IBM;
• RTA-OSEK – Um Sistema de Tempo Real voltado para o comércio automotivo;
• AMX – Sistema de Tempo Real criado pela Empresa KADAK;
• CMX – Um Sistema Operacional desenvolvido pela Empresa CMX Company;
• RT-Linux – um Sistema Operacional desenvolvido para atender tarefas de 
Tempo Real e também tarefas que não acontecem de Tempo Real.
Conclusões e Resumo da Unidade
Sistemas Operacionais (SO) para aplicações de Tempo Real são Sistemas Ope-
racionais que devem responder a eventos pré-definidos em um intervalo de tempo 
conhecido, tendo como objetivos primários responder a eventos e respeitar o pra-
zo de resposta deles.
Assim como um Sistema de Tempo Real, um SO de Tempo Real deve ser al-
tamente confiável e deve responder aos eventos dentro do prazo determinado, 
mesmo na presença de falhas.
Para compreender de fato o que é um Sistema Operacional de Tempo Real, é 
necessário primeiro entender o que é um Sistema Operacional. 
Um Sistema Operacional pode ser visto como um gerenciador de recursos, que 
gerencia todos os recursos de um Sistema Computacional. Seu objetivo é fornecer um 
ambiente para que o usuário possa executar seus Programas de forma fácil e eficaz. 
Dessa forma, ele também pode ser visto como um intermediário entre o usuário 
e o hardware de um Sistema Computacional. Um Sistema Operacional de Tempo 
Real é um SO Convencional, isto é, possui o mesmo objetivo que um SO Conven-
cional. Todavia, é um SO que deve responder um evento pré-definido num prazo 
de tempo estipulado. Caso isso não aconteça, danos irreversíveis podem ocorrer.
Um SO de Tempo Real também possui as mesmas características de um Sistema 
de Tempo Real. Um SO de Tempo Real pode ser classificado em SO de Tempo 
Real crítico e não crítico. 
20
21
O crítico não tolera perda de prazo e no não crítico, ocasionalmente, a perda 
de prazo é tolerada. 
Um SO de Tempo Real crítico pode ser classificado como Seguro em Caso de 
Falhas e Operacional em Caso de Falha. Seguro em Caso de Falha, o SO consegue 
atingir um ou mais estados possíveis caso ocorra falhas. Seguro em Caso de Falhas, 
o SO se degrada e fornece algum tipo de serviço mínimo.
Um SO de Tempo Real também pode ser classificado como Hard Real-Time, 
Soft Real-Time, Real Real-Time e Firm Real-Time. Hard Real-Time leva em 
consideração o prazo para realizar uma tarefa. 
Um SO de Tempo Real deve fornecer serviços básicos, tais como, gerencia-
mento de Processos, gerenciamento de memória, gerenciamento de arquivos e 
gerenciar todos os recursos físicos do Sistema Computacional.
No gerenciamento de Processos, o SO deve fornecer mecanismos para criação, 
escalonamento, manipulação e destruição de Processos. Um Processo pode ser 
abstraído como um Programa em execução. 
Todavia, não é apenas um Programa em execução; é tudo o que um Programa 
precisa para rodar, tal como, memória para se executado, memória para armaze-
namento de dados e pilha de instrução, entre outros; o termo Processo envolve 
tudo isso. 
Um Processo possui 3 estados, executando, pronto e bloqueado. Executando: 
o Processo está em execução na CPU; Pronto: significa que o Processo está apto 
para ser executado na CPU; todavia, está aguardando a sua vez chegar; Bloqueado: 
significa que o Processo está bloqueado esperando um evento externo acontecer. 
Quando um Processo está pronto, ele fica em fila de espera, esperando sua 
vez de ser executado na CPU. Um agendador é responsável por selecionar um 
Processo e colocá-lo na CPU para executar. Essa seleção é feita por um método 
de escalonamento. 
Normalmente, um Processo tem apenas uma linha de execução. Todavia, SO 
de Tempo Real fornece suporte a múltiplas linhas de execução em um Processo. 
Essas linhas de execução são chamadas de Threads. Habitualmente, Threads 
trabalham juntos para realizar uma atividade. Frequentemente, nessas atividades 
há necessidade das threads se comunicarem. Na comunicação entre threads, há 
necessidade de haver um mecanismo de sincronização. 
Outra funcionalidade que um SO deve oferecer é o gerenciamento de memória. 
Um Sistema computacional possui níveis de memórias, que são; registradores, 
memória cache, memória primária e memória secundária.
Registradores são pequenos espaços de memória presentes nos processadores; 
a memória cache é um nível de memória dedicada ao processador; já a memória 
primária é utilizada para executar programas e a memória secundária é utilizada 
para armazenar arquivos.
21
UNIDADE Programação de Sistemas Operacionais para Aplicações em Tempo Real
Fornecer um gerenciamento de entrada e saída de dados é outra função que o 
SO de Tempo Real deve realizar. Dispositivos de entrada e saída de dados são utili-
zados para permitir a comunicação entre o computador e o mundo exterior. Outra 
funcionalidade que um SO de Tempo Real deve ter é disponibilizar um mecanismo 
de gerência de arquivo. 
Arquivos possibilitam o armazenamento de informações que devem ser armaze-
nadas ao longo do tempo e são constituídos de informações logicamente relaciona-
das. O SO deve fornecer “chamadas de Sistema” para as aplicações manipularem 
os arquivos.
Como visto nesta Unidade, um Sistema Operacional de Tempo Real é um Sis-
tema Operacional Convencional que se preocupa em responder eventos pré-defi-
nidos, respeitando prazos. 
Um Sistema Operacional de Tempo Real deve fornecer serviços que são muito 
importantes para aplicações de Tempo Real. 
No Mercado, há diversos tipos de Sistemas Operacionaisde Tempo Real, cada 
um com objetivos diferentes e aplicados em contextos diferentes. 
22
23
Material Complementar
Indicações para saber mais sobre os assuntos abordados nesta Unidade:
 Sites
Sistemas de Tempo Real – Parte 1
https://goo.gl/w3BRV1
 Vídeos
Sistema em Tempo Real - SO
https://youtu.be/gaO9o-ZfMiU
Sistemas de tempo real
https://youtu.be/HTLZUCkdQbA
 Leitura
Sistemas de Tempo Real
https://goo.gl/4bcgvB
23
UNIDADE Programação de Sistemas Operacionais para Aplicações em Tempo Real
Referências
GALVIN, S. Sistemas Operacionais conceitos. 5.ed. São Paulo: Prentice Hall, 2000.
______. Sistemas Operacionais conceitos. 3.ed. São Paulo: Prentice Hall, 1998. 
SHAW, A. C. Sistemas E Software de Tempo Real, Porto Alegre: Bookman, 2003.
TANENBAUM, A. S. Sistemas Operacionais Modernos. 2.ed. São Paulo: 
Pearson Prentice Hall, 2003.
24

Continue navegando