Anda di halaman 1dari 4

Sistemas Operacionais – Tecnologias de Informação – Aula 2

Tipos de Sistemas Operacionais

Sistemas em Lote (Batch)


Os primeiros computadores eram grandes equipamentos operados a partir de um
console. Seus dispositivos de entrada mais comuns eram leitores de cartão e unidades
de fita. Os de saída eram impressoras, unidades de fita e perfuradores de cartão. O
usuário (geralmente um programador) interagia com o computador por intermédio de
um operador. O usuário prepara uma tarefa (job) composta de programa, dados e
informações de controle. Esta tarefa era entregue ao operador sob a forma de um
conjunto de cartões perfurados. Após o processamento (que poderia durar mais de um
dia) lhe era entregue a saída do processamento: uma impressão (em geral) ou alguns
dados para interpretação de erros de execução.
Nesta época o sistema operacional ficava residente em memória e sua principal tarefa
era transferir o controle de uma tarefa para o subseqüente.
Os operadores tentavam otimizar este processo reunindo tarefas em lotes com
características semelhantes e executando-as como um grupo.
Trabalhando neste regime, era comum a UCP (Unidade Central de Processamento,
também conhecida com CPU, de Central Processing Unit) ficar ociosa durante
atividades de entrada ou saída de dados (conhecida como E/S ou I/O, de
Input/Output). Os dispositivos de E/S, geralmente, contém componentes mecânicos,
intrisicamente mais lentos do que os dos dispositivos eletrônicos. Melhorias nos
dispositivos de E/S tornaram-nos mais rápidos, mas as UCP avançaram ainda mais
rápido.
A solução deste problema começou a se desenhar com a introdução dos discos rígidos
em 1957, pela IBM. O primeiro deles podia armazenar a incrível – para a época –
quantidade de 5 MB. Um disco rígido poderia manter todas as tarefas e fornecer
acesso direto a todos eles.
Isso possibilitou a criação da multiprogramação. O sistema operacional pode manter
várias tarefas na memória ao mesmo tempo. Estas tarefas são um subconjunto das
tarefas matidas em um pool de tarefas. Uma desta tarefas é posta em execução. Em
algum instante esta tarefa pode deixar a UCP ociosa (por estar esperando uma
operação de E/S, por exemplo). Originalmente a UCP ficaria realmente ociosa. Em
um ambiente de multiprogramação o sistema operacional passa o controle da UCP
para outra tarefa e a executa.
Uma das decisões que o sistema operacional precisa tomar pelo usuário é a escolha
de quais tarefas do pool devem ser mantidas na memória. Esta tomada de decisão é
denominada escalonamento de tarefas. Para manter diversas tarefas na memória o
sistema operacional precisa implementar algum tipo de gerenciamento de memória.
Outra questão delicada é selecionar qual de diversas tarefas aptas a serem executadas
será alocada para a UCP, o que é conhecido como escalonamento de processador ou
de processamento.
Sistemas de Tempo Compartilhado
Estes são uma extensão lógica da multiprogramação e vieram permitir a interação do
usuário com o sistema computacional.
Um sistema de computação interativo permite a comunicação direta entre o usuário
e o sistema. O tempo de resposta do sistema deve ser curto, em geral abaixo de 1
segundo.
Como cada ação destas tende a ser curta, pode-se planejar um sistema com diversos
usuários, pois um pequeno tempo da UCP precisa ser alocada a cada um deles. Como
o sistema operacional alterna rapidamente entre um usuário e outro, cada usuário tem
a impressão de que o sistema computacional está dedicado ao seu uso. Esta é a base
dos sistemas de compartilhamento de tempo, que são aqueles que compartilham os
recursos de um sistema computacional entre diversos usuários por intermédio da
multiprogramação. Este conceito foi desenvolvido em 1957, por Bob Bemer.
Neste tipo de sistema cada usuário tem ao menos um programa um programa
separado na memória.

Sistemas de computadores pessoais


Os computadores pessoais surgiram na década de 1970. Os primeiros sistemas
operacionais deste tipo de computador não eram multiusuário, nem multitarefa.
Contudo, este sistemas operacionais beneficiarem-se com características
desenvolvidas para os sistemas operacionais dos mainframes.

Sistemas paralelos
São cada vez mais comuns os sistemas computacionais que contam com mais de uma
UCP. São denominados como sistemas multiprocessador. Estes têm mais de uma
UCP, ou processador, em comunicação ativa, compartilhando barramento, clock e até
mesmo memória e dispositivos periféricos. Estes são chamados sistemas fortemente
acoplados ou tightly coupled.
Com o maior número de processadores, espera-se a execução de mais tarefas, em
menos tempo. Este acréscimo na produtividade dos sistemas (escalabilidade) não é
diretamente proporcional ao acréscimo de número de processadores. Existem perdas
relacionadas aos esforços necessários para a manutenção harmoniosa do trabalho
entre os processadores e para contornar disputas por recursos compartilhados.
Estes sistemas geram economia pelo compartilhamento de periféricos, memória
primária e secundária e fontes de alimentação. São convenientes pois possibilitam
armazenamento mais centralizado de dados.
Este sistema fornece maior disponibilidade que é a probabilidade de um sistema
estar operando corretamente e disponível para uso em um dado instante de tempo,
mesmo na ocorrência de falhas, defeitos físicos ou imperfeições que ocorram em
algum componente de hardware ou de software em um dado sistema.
Outro benefício é a confiabilidade. A falha de um processador irá diminuir a
eficiência do sistema, mas não o interromperá. Esta capacidade é conhecida como
degradação normal e os sistemas que a implementam são conhecidos por ser
tolerantes a falhas. A operação contínua na presença de falhas requer mecanismos
que detectem, façam o diagnóstico e correção das falhas.
Convém esclarecer que estas falhas equivalem à expressão em inglês fault, cuja
tradução recomendada pela Sociedade Brasileira de Computação (SBC) é
“falha” mas pode ser encontrada na literatura como “defeito”. Trata-se de
problemas em um componente de um sistema computacional. Se este problema
levar a geração de um dado incorreto ou inexato, dá-se um erro (error). Ao
causar a indisponibilidade de um programa ou mesmo do sistema este erro cria
uma failure, interpretada como “defeito” pela SBC, “falha” em determinados
casos, “avaria” em Portugal. Para minimizar possíveis confusões, talvez seja
recomendável utilizar tanto as expressões “falha” ou “defeito” para fault, “erro”
para error e disfunção para as failures.

São comuns os sistemas multiprocessadores utilizarem multiprocessamento


simétrico ou SMP (de Symmetric MultiProcessing). Nele cada processador executa
uma cópia idêntica do sistema operacional, que comunicam-se entre si como for
necessário e tem tempo uniforme de acesso à memória. Também é possível a
arquitetura NUMA (Non-Uniform Memory Access), onde o tempo de acesso à
memória varia em função da localização física dos processadores em relação à da
memória. Outra forma de trabalho é a de multiprocessamento assimétrico, na qual
cada processador recebe uma tarefa específica. Um processador mestre controla o
sistema e os outros (escravos) recebem instruções dele. A distinção pode ser
implementada em hardware ou software.
Com o barateamento dos processadores, mais responsabilidades podem ser atribuídas
aos processadores escravos de um sistemas com multiprocessamento assimétrico. Por
exemplo, um processador escravo com sua própria memória pode gerenciar um
sistema de disco (até implementando seus próprios algoritmos de escalonamento e
filas de disco) ou controlar interfaces gráficas. É também comum esta arquitetura que
ela não é mais considerada como multiprocessamento real.

Sistemas de Tempo Real


Estes são utilizados quando existem requisitos rígidos de tempo na operação de um
processador ou no fluxo de dados. Geralmente o sistema operacional, os aplicativos
ou ambos recebem dados de sensores, analisam estes dados e ajustam controles e
atuadores. São Sistemas de Tempo Real alguns que controlam experimentos
científicos, de imagens médicas, de controle industrial e de injeção de combustíveis
em motores de veículos.
Os sistemas de tempo real crítico garante que as tarefas críticas sejam executadas a
tempo. Para tanto, todos os atrasos do sistema devem ser limitados. Geralmente o
armazenamento secundário é limitado ou ausente. Sistemas de Tempo Real Crítico
podem ser divididos em Sistemas de Falha Segura e de Falha Operacional. Nos de
Falha Segura são garantidos um ou mais estados seguros aos quais estes sistemas
podem ser levados em caso de disfunção. Os de Falhas Operacionais não possuem
estes estados seguros facilmente identificáveis e devem prover um mínimo de
serviços ou funcionalidades mesmo em caso de erros ou disfunções.
Os sistemas de tempo real não-crítico são os que nos quais as tarefas críticas de
tempo real recebam prioridade sobre as demais tarefas e mantenham esta prioridade
até a conclusão destas tarefas. Não é conveniente seu uso para controle industrial ou
robótico, mas pode ser adequado para multimídia, realidade virtual, exploração
submarina e extraplanetária. Estes casos exigem recursos avançados que não podem
ser implementados nos sistemas de tempo real crítico.

Sistemas distribuídos
As redes de computadores, em especial a Internet, rompeu o limite de pessoalidade
dos computadores pessoais. Uma rede de computadores pode ser vista como uma
coleção de processadores que não compartilham memória ou clock. Nela os
processadores comunicam-se entre si por várias linhas de comunicação que podem
ser barramentos ou linhas telefõnicas. Estes são conhecidos como sistemas
fracamente acoplados, loosely coupled systems ou ainda sistemas distribuídos.
Como as linhas de comunicação entre os processadores não são compostas
exclusivamente de barramentos, a eficiência desta comunicação é menor do que a dos
sistemas fortemente acoplados.
Um sistema fracamente acoplado com todos os hosts executando um mesmo grupo de
aplicações é um cluster, onde dois ou mais servidores são interligados, normalmente,
por algum tipo de conexão de alto desempenho. O usuário não conhece os nomes dos
membros do cluster e nem sabe quantos são. Estes sistemas também são chamados de
Beowulf. Sistemas em cluster são utilizados para serviços de bancos de dados,
garantindo alta disponibilidade, escalabilidade e balanceamento de carga.
Um formato específico de cluster é a computação em grade (grid computing) onde
são utilizados recursos heterogêneos (diferentes plataformas, arquiteturas de software
e hardware e sistemas operacionais), localizados em diferentes lugares, conectados
por redes com padrões abertos.
Graças aos recursos de rede surgiu o conceito de sistema operacional de rede, que
fornece métodos de compartilhamento de arquivos e dispositivos. Eles implementam
a troca de mensagens entre diferentes computadores.

Este trabalho está licenciado por Cid Rodrigues de Andrade sob uma Licença Creative Commons Atribuição-Uso Não-
Comercial 2.5 Brasil. Para ver uma cópia desta licença, visite http://creativecommons.org/licenses/by-nc/2.5/br/ ou
envie uma carta para Creative Commons, 171 Second Street, Suite 300, San Francisco, California 94105, USA.

Anda mungkin juga menyukai