Xiolones (discussão | contribs)
Sem resumo de edição
Etiqueta: visualeditor
Mrk16 (discussão | contribs)
Pesquisa referente ao tema Sistemas operacionais
Etiqueta: visualeditor
 
(7 revisões intermediárias por 3 usuários não estão sendo mostradas)
Linha 1: Linha 1:
== '''Conceito''' ==
*'''1 Conceito'''
Vemos o sistema operacional como um programa (''software'' ou ''firmware'') que atua como intermediário entre um usuário de computador e o hardware do computador.  O sistema operacional é o software mais importante do computador, pois é ele que gerencia a memória e os processos do computador, bem como todo seu software e hardware. É ele que permite que um usuário consiga se comunicar com o computador mesmo sem saber a linguagem dele, assim, sem um SO um computador se torna inútil ao usuário. O principal trabalho do SO é garantir a distribuição coordenada da CPU (''Unidade Central de Processamento'') para assegurar o que cada programa que está rodando precisa.<blockquote>O Sistema Operacional tem como alguns de seus objetivos :</blockquote>
-Executar programas do usuário de forma simples e transparente através de uma interface adequada para que possa utilizá-lo.
-Fazer o computador conveniente de usar.
-Usar o hardware do computador de forma eficiente.
-Garantir a integridade e a segurança de dados armazenados  e processados no sistema.


[[arquivo:imagemopss.jpg]]  [[arquivo:imageops.jpg]]
Sistemas operacionais são uma área de pesquisa importantíssima no âmbito da computação, pois permitem que nos comuniquemos de maneira mais efetiva com os recursos do computador, sem o sistema operacional intermediando o nosso acesso seria necessário um profundo conhecimento a respeito do hardware para operar o computador e até mesmo tarefas corriqueiras (como copiar e colar um arquivo), seriam extremamente complicadas, demoradas e sujeitas a erros.


== Estrutura ==
O sistema operacional é uma estrutura de software ampla e complexa, que incorpora aspectos de baixo nível (como drivers de dispositivos e gerência de memória física) e de alto nível (como programas utilitários e a própria interface gráfica).
A estrutura e o funcionamento de um SO são tópicos de difícil compreensão.Um SO não é executado como uma aplicação sequencial, com início, meio e fim. As rotinas do SO são executadas sem uma ordem predefinida.


<blockquote>Existem diferentes estruturas de sistemas operacionais, por exemplo: </blockquote>
<br>
*'''2 Estrutura'''


==== Sistemas monolíticos ====
Apesar de ser constantemente retratado como tal, é errado pensar no sistema operacional como apenas uma camada que executa acima do Hardware, ele na verdade é composto de diversos componentes com seus
Também conhecida como estrutura simples, é a estrutura dos primeiros SO's. Consistida, basicamente, em designar o modelo em que o sistema operacional é codificado por via de uma coleção de procedimentos, onde é permitido a qualquer um deles em qualquer parte do programa "chamar" outro procedimento. A organização mais simples de um sistema como um conjunto de procedimentos que podem interagir livremente umas com as outras. É vantajoso usá-lo quando se quer obter grande desempenho, porém tem o risco do sistema parar por causa de um erro.
objetivos e funcionalidades. Alguns dos componentes mais relevantes de um
sistema operacional são:


==== Sistemas em camadas ====
Núcleo : é o coração do sistema operacional, responsável pela gerência dos recursos do hardware usados pelas aplicações. Ele também implementa as principais abstrações utilizadas pelos programas ou aplicativos.
Designa os modelos de sistemas operacionais montados sobre uma hierarquia de camadas. Organiza o sistema operacionais em camadas, montando uma sobre a outra. Por exemplo, usando um sistema de 6 (seis) camadas.
A camada 0 (zero) lidava com alocação do processador.
A camada 1 fazia o gerenciamento da memória.
A camada 2 fazia a comunicação entre o console do operador e cada processo.
A camada 3 gerenciava dispositivos de entrada e saída.
A camada 4 localizavam-se os programas de usuários.


==== Sistemas Cliente-Servidor ====
Drivers : módulos de código específicos para acessar os dispositivos físicos. Existe um driver para cada tipo de dispositivo, como discos rígidos IDE, SCSI, portas USB, placas de vídeo, etc. Muitas vezes o driver é construído pelo próprio fabricante do hardware e em forma compilada (em linguagem de máquina) para ser acoplado ao restante do sistema operacional.
É uma estrutura de aplicação compartilhada que distribui as tarefas e cargas de trabalho entre os fornecedores de um recurso ou serviço, denotados como servidores, e os requerentes dos serviços,  designados como clientes.


Geralmente os clientes e servidores comunicam através de uma rede de computadores em computadores distintos, mas tanto o cliente quanto o servidor podem residir no mesmo computador.
Código de inicialização : a inicialização do hardware requer uma série de tarefas complexas, como reconhecer os dispositivos instalados, testá-los e configurá-los adequadamente para seu uso posterior. Outra tarefa importante é carregar o núcleo do sistema operacional em memória e iniciar sua execução.


=== Interação ===
Como usuário, você normalmente interagir com o sistema operacional através de um conjunto de comandos. Por exemplo, o sistema operacional DOS contém comandos como ''copiar'' e ''renomear'' para copiar arquivos e alterar os nomes dos arquivos, respectivamente. Os comandos são aceitos e executado por uma parte do sistema operacional chamado o processador de comando ou linha de comando intérprete. Interfaces gráficas de usuário permitem que você digite os comandos apontando e clicando em objetos que aparecem na tela.


=== Classificação dos sistemas operacionais ===
Programas utilitários : são programas que facilitam o uso do sistema computacional, fornecendo funcionalidades complementares ao núcleo, como formatação de discos e mídias, configuração de dispositivos, manipulação de arquivos (mover, copiar, apagar), interpretador de comandos, terminal, interface gráfica, gerência de janelas, etc.
'''Multi-usuário''': permite que dois ou mais usuários para executar programas ao mesmo tempo. Alguns sistemas operacionais permitem centenas ou mesmo milhares de usuários simultâneos.


'''Multiprocessamento:''' suporta a execução de um programa em mais de uma CPU.
<br>
*'''2.1 Sistemas monolíticos'''
Um sistema operacional de estrutura monolítica é escrito através de diversas rotinas que interagem entre si para garantir o funcionamento das funções desejadas no


'''Multitarefa:''' Permite que mais de um programa para executar simultaneamente.
Neste tipo de arquitetura é importante que cada função/rotina do sistema tenhas seus parÂmetros e resultados bem definidos, para que dessa forma possam interagir livremente e integrar o programa sem que uma falha comprometa todo o funcionamento do sistema operacional. 


'''Multithreading:''' Permite que diferentes partes de um único programa para executar simultaneamente.
Suas principal vantagem é o tempo de resposta, como as funções que o sistema desempenha são implementadas diretamente no núcleo a eficácia do software é uma das melhores dentre as arquiteturas, mas como não há módulos para segmentar a aplicação, todas as informações e rotinas são visíveis às outras o que pode comprometer a confidencialidade do software e a fácil comunicação entre todas as rotinas faz com que uma falha em qualquer uma das rotinas possa comprometer o funcionamento do software como um todo.


'''Real Time:''' Responde a entrada instantaneamente. Sistemas Operacionais de propósito geral, como o DOS e UNIX, não são em tempo real.
<br>
*'''2.2 Sistemas em camadas'''
Como o próprio nome sugere nessa arquitetura o sistema operacional é segmentado em camadas. Visto que os sistemas são divididos, as implementações de um módulo do sistema, podem referenciar apenas as implementações do módulo atual ou das camadas inferiores à ela.


'''Desktop:'''  é o famoso computador de mesa, destinado ao usuário doméstico e corporativo para a realização de atividades cotidianas, como edição de texto, , planilhas, navegação na internet e reproduções de mídias simples. Suas principais características são interface gráfica bem planejada, o suporte à  interatividade e a operação de rede. Exemplos: Linux, MacOS X e Windows (XP. Vista, 7, 8, etc.) .
Quanto mais superficial a camada mais próxima ela estará do usuário e quanto mais "profunda" mais perto ela estará do Hardware, A camada 0 da aplicação pode, por exemplo, gerenciar o escalonamento dos processos na CPU enquanto camadas mais superficiais ofereceriam interfaces gráficas para facilitar a utilização do usuário.<br>


'''Mobile:''' os sistemas operacionais para mobile são projetados especificamente para dispositivos móveis, como telefones, tablets, leitores de MP3 e outros portáteis. Os mais populares são : Android (Google), IOS (designado apenas para produtos Apple) e Windows Phone (Microsoft).
*'''2.3 Sistemas Cliente-Servidor'''
 
Na arquitetura de sistemas Cliente-Servidor as implementações e funcionalidades são dividas em dois tipos: Os procedimentos "Cliente" e os procedimentos "Servidor". Também é comum que haja o mínimo possível de operações sendo executadas do lado do "cliente", deixando a maioria dos processos executando no servidor, dessa maneira sempre que o usuário faz uma requisição a aplicação do cliente envia uma requisição para o servidor e o servidor, por sua vez, faz o processamento necessário para resolver a requisição do cliente e devolve apenas a resposta.
 
<br>
*'''2.4 Interação'''
 
Visto que a principal premissa do sistema operacional é facilitar nossa interação com a máquina, é lógico deduzir que há funções que nos permitam acessar diretamente as informações e rotinas do sistema operacional, nos exemplos a seguir é demonstrado como podemos interagir com o sistema operacional através da linguagem "C",utilizando a função System para recuperar informações do sistema.
 
/*
      *  exemplo uso de system: leitura com atualizacao de data
      */
    #include <stdio.h>
    #include <stdlib.h>
    int main(int argc, char *argv[]) {
      FILE *arq;
      int ch;
      char comando[60];
      /* testa se numero de argumentos correto */
      if (argc != 2) {
        printf("Uso: %s <nome arquivo>\n",argv[0]);
        return(1);
      }
      /* abre arquivo para leitura */
      arq = fopen(argv[1],"r");
      if (arq == 0) {
        perror(argv[1]);
        return(1);
      }
      /* atualiza data do arquivo */
      /*-- prepara comando */
      sprintf(comando, "touch %s", argv[1]);
      /*-- executa */
      system(comando);
      /* apresenta arquivo carater a carater */
      do {
        ch = getc(arq);
        putchar(ch);
      } while (ch != EOF);
      /* finalizacoes */
      fclose(arq);
      return(0);
    }
Nesse exemplo utilizando a linguagem C é possível acessar uma arquivo na memória do sistema e atualizar informações.
 
<br>
*'''2.5 Classificação dos sistemas operacionais'''
<br>
'''Batch (de lote) :''' os sistemas operacionais mais antigos trabalhavam “por lote”, ou seja, todos os programas a executar eram colocados em uma fila, com seus dados e demais informações para a execução. O processador recebia os programas e os processava sem interagir com os usuários, o que permitia um alto grau de utilização do sistema. Atualmente, este conceito se aplica a sistemas que processam tarefas sem interação direta com os usuários, como os sistemas de processamento de transações em bancos de dados. Além disso, o termo “em lote” também é usado para designar um conjunto de comandos que deve ser executado em sequência, sem interferência do usuário. Exemplos desses sistemas incluem o OS/360 e VMS, entre outros.
 
'''De rede :''' um sistema operacional de rede deve possuir suporte à operação em rede, ou seja, a capacidade de oferecer às aplicações locais recursos que estejam localizados em outros computadores da rede, como arquivos e impressoras. Ele também deve disponibilizar seus recursos locais aos demais computadores, de forma controlada. A maioria dos sistemas operacionais atuais oferece esse tipo de funcionalidade.
 
 
 
'''Distribuído :''' em um sistema operacional distribuído, os recursos de cada máquina estão disponíveis globalmente, de forma transparente aos usuários. Ao lançar uma aplicação, o usuário interage com sua janela, mas não sabe onde ela está executando ou armazenando seus arquivos: o sistema é quem decide, de forma transparente. Os sistemas operacionais distribuídos já existem há tempos (Amoeba [Tanenbaum et al., 1991] e Clouds [Dasgupta et al., 1991], por exemplo), mas ainda não são uma realidade de mercado.
 
 
 
'''Multi-usuário :''' um sistema operacional multi-usuário deve suportar a identificação do “dono” de cada recurso dentro do sistema (arquivos, processos, áreas de memória, conexões de rede) e impor regras de controle de acesso para impedir o uso desses recursos por usuários não autorizados. Essa funcionalidade é fundamental para a segurança dos sistemas operacionais de rede e distribuídos. Grande parte dos sistemas atuais são multi-usuários. 
 
 
 
'''Desktop :''' um sistema operacional “de mesa” é voltado ao atendimento do usuário doméstico e corporativo para a realização de atividades corriqueiras, como edição de textos e gráficos, navegação na Internet e reprodução de mídias simples. Suas principais características são a interface gráfica, o suporte à interatividade e a operação em rede. Exemplos de sistemas desktop são os vários sistemas Windows (XP, Vista, 7, etc.), o MacOS X e Linux. 
 
 
 
'''Servidor :''' um sistema operacional servidor deve permitir a gestão eficiente de grandes quantidades de recursos (disco, memória, processadores), impondo prioridades e limites sobre o uso dos recursos pelos usuários e seus aplicativos. Normalmente um sistema operacional servidor também tem suporte a rede e multi-usuários.
 
 
 
'''Embarcado :''' um sistema operacional é dito embarcado (embutido ou embedded) quando é construído para operar sobre um hardware com poucos recursos de processamento, armazenamento e energia. Aplicações típicas desse tipo de sistema aparecem em telefones celulares, sistemas de automação industrial e controladores automotivos, equipamentos eletrônicos de uso doméstico (leitores de DVD, TVs, fornos-micro-ondas, centrais de alarme, etc.). Muitas vezes um sistema operacional embarcado se apresenta na forma de uma biblioteca a ser ligada ao programa da aplicação (que é fixa). LynxOS, µC/OS, Xylinx e VxWorks são exemplos de sistemas operacionais embarcados para controle e automação. Sistemas operacionais para telefones celulares inteligentes (smartphones) incluem o Symbian e o Android, entre outros.
 
 
 
'''Tempo real :''' ao contrário da concepção usual, um sistema operacional de tempo real não precisa ser necessariamente ultra-rápido; sua característica essencial é ter um comportamento temporal previsível (ou seja, seu tempo de resposta deve ser conhecido no melhor e pior caso de operação). A estrutura interna de um sistema operacional de tempo real deve ser construída de forma a minimizar esperas e latências imprevisíveis, como tempos de acesso a disco e sincronizações excessivas. 
 
Existem duas classificações de sistemas de tempo real: soft real-time systems, nos quais a perda de prazos implica na degradação do serviço prestado. Um exemplo seria o suporte à gravação de CDs ou à reprodução de músicas. Caso o sistema se atrase, pode ocorrer a perda da mídia em gravação ou falhas na música que está sendo tocada. Por outro lado, nos hard real-time systems a perda de prazos pelo sistema pode perturbar o objeto controlado, com graves consequências humanas, econômicas ou ambientais. Exemplos desse tipo de sistema seriam o controle de funcionamento de uma turbina de avião a jato ou de uma caldeira industrial. 
 
Exemplos de sistemas de tempo real incluem o QNX, RT-Linux e VxWorks. Muitos sistemas embarcados têm características de tempo real, e vice-versa.
 
*3 Referências
 
Wikipedia: h[https://pt.wikipedia.org/wiki/Sistema_operativo ttps://pt.wikipedia.org/wiki/Sistema_operativo]
 
Sistemas Operacionais: Conceitos e Mecanismos - Prof. Carlos Alberto Maziero : http://wiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=so:so-cap01.pdf
 
Sistemas Operacionais - Prof. Dr. Márcio Andrey Teixeira : http://ctd.ifsp.edu.br/~marcio.andrey/images/estrutura_so-ifsp-catanduva.pdf

Edição atual tal como às 01h13min de 23 de maio de 2017

  • 1 Conceito

Sistemas operacionais são uma área de pesquisa importantíssima no âmbito da computação, pois permitem que nos comuniquemos de maneira mais efetiva com os recursos do computador, sem o sistema operacional intermediando o nosso acesso seria necessário um profundo conhecimento a respeito do hardware para operar o computador e até mesmo tarefas corriqueiras (como copiar e colar um arquivo), seriam extremamente complicadas, demoradas e sujeitas a erros.

O sistema operacional é uma estrutura de software ampla e complexa, que incorpora aspectos de baixo nível (como drivers de dispositivos e gerência de memória física) e de alto nível (como programas utilitários e a própria interface gráfica).


  • 2 Estrutura

Apesar de ser constantemente retratado como tal, é errado pensar no sistema operacional como apenas uma camada que executa acima do Hardware, ele na verdade é composto de diversos componentes com seus objetivos e funcionalidades. Alguns dos componentes mais relevantes de um sistema operacional são:

Núcleo : é o coração do sistema operacional, responsável pela gerência dos recursos do hardware usados pelas aplicações. Ele também implementa as principais abstrações utilizadas pelos programas ou aplicativos.

Drivers : módulos de código específicos para acessar os dispositivos físicos. Existe um driver para cada tipo de dispositivo, como discos rígidos IDE, SCSI, portas USB, placas de vídeo, etc. Muitas vezes o driver é construído pelo próprio fabricante do hardware e em forma compilada (em linguagem de máquina) para ser acoplado ao restante do sistema operacional.

Código de inicialização : a inicialização do hardware requer uma série de tarefas complexas, como reconhecer os dispositivos instalados, testá-los e configurá-los adequadamente para seu uso posterior. Outra tarefa importante é carregar o núcleo do sistema operacional em memória e iniciar sua execução.


Programas utilitários : são programas que facilitam o uso do sistema computacional, fornecendo funcionalidades complementares ao núcleo, como formatação de discos e mídias, configuração de dispositivos, manipulação de arquivos (mover, copiar, apagar), interpretador de comandos, terminal, interface gráfica, gerência de janelas, etc.


  • 2.1 Sistemas monolíticos

Um sistema operacional de estrutura monolítica é escrito através de diversas rotinas que interagem entre si para garantir o funcionamento das funções desejadas no

Neste tipo de arquitetura é importante que cada função/rotina do sistema tenhas seus parÂmetros e resultados bem definidos, para que dessa forma possam interagir livremente e integrar o programa sem que uma falha comprometa todo o funcionamento do sistema operacional. 

Suas principal vantagem é o tempo de resposta, como as funções que o sistema desempenha são implementadas diretamente no núcleo a eficácia do software é uma das melhores dentre as arquiteturas, mas como não há módulos para segmentar a aplicação, todas as informações e rotinas são visíveis às outras o que pode comprometer a confidencialidade do software e a fácil comunicação entre todas as rotinas faz com que uma falha em qualquer uma das rotinas possa comprometer o funcionamento do software como um todo.


  • 2.2 Sistemas em camadas

Como o próprio nome sugere nessa arquitetura o sistema operacional é segmentado em camadas. Visto que os sistemas são divididos, as implementações de um módulo do sistema, podem referenciar apenas as implementações do módulo atual ou das camadas inferiores à ela.

Quanto mais superficial a camada mais próxima ela estará do usuário e quanto mais "profunda" mais perto ela estará do Hardware, A camada 0 da aplicação pode, por exemplo, gerenciar o escalonamento dos processos na CPU enquanto camadas mais superficiais ofereceriam interfaces gráficas para facilitar a utilização do usuário.

  • 2.3 Sistemas Cliente-Servidor

Na arquitetura de sistemas Cliente-Servidor as implementações e funcionalidades são dividas em dois tipos: Os procedimentos "Cliente" e os procedimentos "Servidor". Também é comum que haja o mínimo possível de operações sendo executadas do lado do "cliente", deixando a maioria dos processos executando no servidor, dessa maneira sempre que o usuário faz uma requisição a aplicação do cliente envia uma requisição para o servidor e o servidor, por sua vez, faz o processamento necessário para resolver a requisição do cliente e devolve apenas a resposta.


  • 2.4 Interação

Visto que a principal premissa do sistema operacional é facilitar nossa interação com a máquina, é lógico deduzir que há funções que nos permitam acessar diretamente as informações e rotinas do sistema operacional, nos exemplos a seguir é demonstrado como podemos interagir com o sistema operacional através da linguagem "C",utilizando a função System para recuperar informações do sistema.

/*
     *   exemplo uso de system: leitura com atualizacao de data
     */
    #include <stdio.h>
    #include <stdlib.h>

    int main(int argc, char *argv[]) {
      FILE *arq;
      int ch;
      char comando[60];

      /* testa se numero de argumentos correto */
      if (argc != 2) {
        printf("Uso: %s <nome arquivo>\n",argv[0]);
        return(1);
      }

      /* abre arquivo para leitura */
      arq = fopen(argv[1],"r");
      if (arq == 0) {
        perror(argv[1]);
        return(1);
      }

      /* atualiza data do arquivo */
      /*-- prepara comando */
      sprintf(comando, "touch %s", argv[1]);
      /*-- executa */
      system(comando);

      /* apresenta arquivo carater a carater */
      do {
        ch = getc(arq);
        putchar(ch);
      } while (ch != EOF);

      /* finalizacoes */
      fclose(arq);
      return(0);
    }

Nesse exemplo utilizando a linguagem C é possível acessar uma arquivo na memória do sistema e atualizar informações.


  • 2.5 Classificação dos sistemas operacionais


Batch (de lote) : os sistemas operacionais mais antigos trabalhavam “por lote”, ou seja, todos os programas a executar eram colocados em uma fila, com seus dados e demais informações para a execução. O processador recebia os programas e os processava sem interagir com os usuários, o que permitia um alto grau de utilização do sistema. Atualmente, este conceito se aplica a sistemas que processam tarefas sem interação direta com os usuários, como os sistemas de processamento de transações em bancos de dados. Além disso, o termo “em lote” também é usado para designar um conjunto de comandos que deve ser executado em sequência, sem interferência do usuário. Exemplos desses sistemas incluem o OS/360 e VMS, entre outros.

De rede : um sistema operacional de rede deve possuir suporte à operação em rede, ou seja, a capacidade de oferecer às aplicações locais recursos que estejam localizados em outros computadores da rede, como arquivos e impressoras. Ele também deve disponibilizar seus recursos locais aos demais computadores, de forma controlada. A maioria dos sistemas operacionais atuais oferece esse tipo de funcionalidade.


Distribuído : em um sistema operacional distribuído, os recursos de cada máquina estão disponíveis globalmente, de forma transparente aos usuários. Ao lançar uma aplicação, o usuário interage com sua janela, mas não sabe onde ela está executando ou armazenando seus arquivos: o sistema é quem decide, de forma transparente. Os sistemas operacionais distribuídos já existem há tempos (Amoeba [Tanenbaum et al., 1991] e Clouds [Dasgupta et al., 1991], por exemplo), mas ainda não são uma realidade de mercado.


Multi-usuário : um sistema operacional multi-usuário deve suportar a identificação do “dono” de cada recurso dentro do sistema (arquivos, processos, áreas de memória, conexões de rede) e impor regras de controle de acesso para impedir o uso desses recursos por usuários não autorizados. Essa funcionalidade é fundamental para a segurança dos sistemas operacionais de rede e distribuídos. Grande parte dos sistemas atuais são multi-usuários. 


Desktop : um sistema operacional “de mesa” é voltado ao atendimento do usuário doméstico e corporativo para a realização de atividades corriqueiras, como edição de textos e gráficos, navegação na Internet e reprodução de mídias simples. Suas principais características são a interface gráfica, o suporte à interatividade e a operação em rede. Exemplos de sistemas desktop são os vários sistemas Windows (XP, Vista, 7, etc.), o MacOS X e Linux. 


Servidor : um sistema operacional servidor deve permitir a gestão eficiente de grandes quantidades de recursos (disco, memória, processadores), impondo prioridades e limites sobre o uso dos recursos pelos usuários e seus aplicativos. Normalmente um sistema operacional servidor também tem suporte a rede e multi-usuários.


Embarcado : um sistema operacional é dito embarcado (embutido ou embedded) quando é construído para operar sobre um hardware com poucos recursos de processamento, armazenamento e energia. Aplicações típicas desse tipo de sistema aparecem em telefones celulares, sistemas de automação industrial e controladores automotivos, equipamentos eletrônicos de uso doméstico (leitores de DVD, TVs, fornos-micro-ondas, centrais de alarme, etc.). Muitas vezes um sistema operacional embarcado se apresenta na forma de uma biblioteca a ser ligada ao programa da aplicação (que é fixa). LynxOS, µC/OS, Xylinx e VxWorks são exemplos de sistemas operacionais embarcados para controle e automação. Sistemas operacionais para telefones celulares inteligentes (smartphones) incluem o Symbian e o Android, entre outros.


Tempo real : ao contrário da concepção usual, um sistema operacional de tempo real não precisa ser necessariamente ultra-rápido; sua característica essencial é ter um comportamento temporal previsível (ou seja, seu tempo de resposta deve ser conhecido no melhor e pior caso de operação). A estrutura interna de um sistema operacional de tempo real deve ser construída de forma a minimizar esperas e latências imprevisíveis, como tempos de acesso a disco e sincronizações excessivas. 

Existem duas classificações de sistemas de tempo real: soft real-time systems, nos quais a perda de prazos implica na degradação do serviço prestado. Um exemplo seria o suporte à gravação de CDs ou à reprodução de músicas. Caso o sistema se atrase, pode ocorrer a perda da mídia em gravação ou falhas na música que está sendo tocada. Por outro lado, nos hard real-time systems a perda de prazos pelo sistema pode perturbar o objeto controlado, com graves consequências humanas, econômicas ou ambientais. Exemplos desse tipo de sistema seriam o controle de funcionamento de uma turbina de avião a jato ou de uma caldeira industrial. 

Exemplos de sistemas de tempo real incluem o QNX, RT-Linux e VxWorks. Muitos sistemas embarcados têm características de tempo real, e vice-versa.

  • 3 Referências

Wikipedia: https://pt.wikipedia.org/wiki/Sistema_operativo

Sistemas Operacionais: Conceitos e Mecanismos - Prof. Carlos Alberto Maziero : http://wiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=so:so-cap01.pdf

Sistemas Operacionais - Prof. Dr. Márcio Andrey Teixeira : http://ctd.ifsp.edu.br/~marcio.andrey/images/estrutura_so-ifsp-catanduva.pdf