Paginas

quarta-feira, 8 de agosto de 2012

O que um sistema operacional faz?

  Antes de falarmos profundamente do sistema operacional MS-DOS vamos saber um pouco sobre o que um sistema operacional faz. No nível mais simples, o sistema operacional realiza duas tarefas:

  1. Gerencia os recursos de hardware e software do sistema. Em um computador de mesa, esses recursos incluem o processador, a memória, o espaço em disco etc. Em um telefone celular, o sistema operacional gerencia o teclado, a tela, a agenda, a bateria e a conexão de rede;
  2. Proporciona uma maneira estável e consistente para lidar com o hardware, sem ter de conhecer todos os detalhes do hardware.

  A primeira tarefa, ou seja, o gerenciamento de recursos de software e hardware é uma tarefa extremamente importante. Diversos programas e métodos de entrada de dados competem pela atenção da CPU (Unidade Central de Processamento) e demandam memória, espaço em disco e largura de banda de entrada/saída. O sistema operacional faz o papel do bom pai. Ele cuida para que cada aplicativo tenha os recursos necessários para o funcionamento e gerencia a capacidade limitada do sistema para atender a todos os usuários e aplicativos.

  A segunda tarefa é fornecer uma interface consistente para os aplicativos. A interface é especialmente importante se mais de um tipo de computador utiliza o sistema operacional ou se o hardware do computador é constantemente atualizado. Uma API (Application Program Interface - Interface de Programação de Aplicativos) permite que o desenvolvedor do software escreva um programa em um computador e tenha um alto nível de segurança de que este aplicativo vai rodar em outro computador do mesmo tipo, mesmo que a quantidade de memória e a área de armazenamento sejam diferentes.

Tipos de Sistemas Operacionais

  Existem vários tipos de sistemas operacionais hoje em dia, a evolução dos mesmos tem sido muito influenciado devido a necessidade de realizar mais de uma operação ao mesmo tempo e de ter mais velocidade no processamento para aumentar a produção.


  • Sistemas Monotarefas:  Nos sistemas monotarefas a sua principal definição é que ele gerencia apenas uma tarefa por vez ou seja se estamos editando um texto no editor de texto podemos apenas fazer aquilo não se pode fazer gerenciar outra tarefa enquanto não terminar a primeira. Ele já é um sistema em que todos os recursos do Hardware estão disponíveis para uso, porém devido a ociosidade da máquina o custo era Alto, Tempo de ociosidade Alta, e a produtividade muito baixa. Exemplo disso é o DOS.


  • Sistemas Multitarefa:  O próprio nome já diz, são sistemas que nos permite dividir o processador para gerenciar mais de uma tarefa “ao mesmo tempo” claro que coloquei ao mesmo tempo entre parênteses pois não é bem assim, digamos que o programa que estamos executando fica ocioso no processador enquanto o processador processa outros dados, mais isso ocorre em um tempo tão curso que o usuário não percebe. Podemos destacar também o compartilhamento de recursos, a melhoria no desempenho da máquina, e o sistemas são muito mais complexos podemos falar que do DOS que o sistema tinha alguns Kb apenas hoje os sistemas multitarefas tem alguns mb ou gbs. Exemplo: Windows, Linux, Mac OS.


  • Sistemas Multiprocessados:  No sistemas multiprocessados eles são sistemas com mais de um processador, geralmente são usados para fins científicos pois o preço são bem caros, podemos destacar neles o processamento paralelo e são naturalmente multiprogramáveis e bem complexos.

A inicialização do sistema operacional

  Quando você liga o computador, o primeiro programa executado é, geralmente, um conjunto de instruções armazenadas na memória ROM. Este código examina o hardware do sistema para ter certeza de que tudo está funcionando corretamente. Este autoteste, conhecido como POST (power-on self test) verifica a CPU, a memória, a BIOS (Basic Input Output System - Sistema de Entrada e Saída Binário ), procura por erros e armazena o resultado em uma memória especial. Ao completar o POST, o software carregado na memória ROM (às vezes chamado de BIOS ou firmware) ativa as unidades de disco do computador.

  Na maioria dos computadores modernos, quando o computador ativa o disco rígido ele encontra o trecho inicial do sistema operacional, conhecido como bootstrap loader (sistema de inicialização).

  O bootstrap loader é um pequeno programa que tem uma única função. Ele carrega o sistema operacional na memória e permite que ele comece a operar. Em sua forma mais básica, o bootstrap configura os pequenos programas de driver que fazem interface e controlam os vários subsistemas de hardware do computador. Ele configura as partes da memória que contêm o sistema operacional, as informações de usuário e os aplicativos.

  Ele também estabelece as estruturas de dados responsáveis pelos inúmeros sinais, flags e semáforos que são usados para a comunicação com (e entre) os subsistemas e aplicativos do computador. Então ele entrega o controle do computador ao sistema operacional.
  As tarefas do sistema operacional, na maioria das vezes, se encaixam em seis categorias:

  • gerenciamento do processador;
  • gerenciamento da memória;
  • gerenciamento de dispositivos;
  • gerenciamento de armazenamento;
  • interface de aplicativos;
  • interface do usuário;

Gerenciamento Do Processador

  Uma forma simples de explicar o que é um processo é dizer que o mesmo representa “um programa em execução”. Geralmente, quando usamos um computador usamos vários programas ao mesmo tempo, podemos mandar um e-mail enquanto escutamos uma música, ou mesmo entrar no Orkut estando com um editor de texto aberto finalizando alguma tarefa (como o Microsoft Word).  Sabemos, portanto, que podemos usar vários programas ao mesmo tempo em um único computador. É responsabilidade do sistema operacional “organizar” esses processos no computador, permitindo que os mesmos compartilhem recursos de forma organizada. Podemos dizer que o Sistema Operacional atua como um gerente de processos.

  Digamos que temos um simples computador com apenas um processador. Como o Sistema Operacional faz com que possamos, por exemplo, escutar música e navegar na Internet ao mesmo tempo? Vale a pena lembrar que o próprio Sistema Operacional é também um programa e, portanto, ele também precisa do processador para executar.

  A solução encontrada para essa questão é: compartilhar!!  Os processos precisam compartilhar o processador. Você já pode ter vivido o seguinte cenário: existe apenas um único jogo eletrônico e você e todos seus amigos querem jogar. Para resolver o impasse, você faz o seguinte: “Você usa o game por 30 minutos e depois passa para o próximo da fila de interessados em jogar!!”.

  Pois bem, podemos ver os processos como um conjunto de amigos que querem usar um recurso que é limitado (o processador), assim, o que o Sistema Operacional vai fazer é disponibilizar o processador para cada processo por um determinado período de tempo. Dessa forma, temos a impressão de que os programas estão sendo executados ao mesmo tempo (em paralelo). Mas, o que acontece na verdade é que os processos formam uma fila e cada um usa o processador por um período de tempo pequeno (na ordem de milésimos de segundo) e passa para o processo seguinte na fila.

  E assim continua até que todos os processos usem o processador que passa a ser disponibilizado para o processo no início da fila e tudo se repete. Assim, teremos a impressão de que estamos com diversos aplicativos em aberto. Essa impressão é conhecida como pseudoparalelismo, pois, apesar dos programas não estarem realmente sendo executados ao mesmo tempo (em paralelo), eles ficam se alternando numa frequência que garante a operação simultânea de diversos aplicativos.

  Fica então a cargo do Sistema Operacional gerenciar os processos, determinando a ordem de uso do processador, garantindo que cada um tenha acesso e tempo suficiente para executar normalmente.

  Como o sistema operacional gerencia o armazenamento e a memória

  Quando o sistema operacional gerencia a memória do computador, duas grandes tarefas precisam ser cumpridas. Cada processo deve ter memória suficiente para ser executado. Ele não pode utilizar a memória de outro processo e outro processo também não pode utilizar a sua memória.

  Os diferentes tipos de memória no sistema devem ser bem utilizados para que cada processo seja executado de forma eficaz. Para realizar a primeira tarefa, o sistema operacional tem de definir os limites de memória para cada tipo de software e aplicativo.

  Quando os aplicativos começam a ser carregados na memória, eles são carregados em blocos. O tamanho desses blocos é determinado pelo sistema operacional. Se o tamanho do bloco é 2 megabytes, todo processo carregado receberá um pedaço da memória que é múltiplo de 2 megabytes. Os aplicativos serão carregados nestes tamanhos fixos de blocos. Os blocos iniciarão e terminarão nos limites estabelecidos por palavras de 4 ou 8 bytes. Esses blocos e limites organizam o carregamento dos aplicativos, impedindo sobreposição. Depois que o processo estiver concluído, a pergunta que nos resta é: o que se pode fazer quando o espaço de 500 megabytes for ocupado?

   Na maioria dos computadores, é possível adicionar mais memória, além da capacidade original. Isto funciona, mas custa caro. Este fato também ignora um dado importante da computação: a maioria da informação que um aplicativo armazena na memória não está sendo usada o tempo inteiro. Como um processador só pode acessar um local da memória por vez, a maior parte da memória RAM não é utilizada.

    Como o espaço de disco rígido é mais barato do que a memória RAM, mover a informação da memória RAM para o disco rígido é uma solução sem custo algum. Esta técnica é conhecida como gerenciamento da memória virtual.

  O armazenamento em disco é apenas um dos tipos de memória que podem ser gerenciados pelo sistema operacional. Também é a memória mais lenta. A seguir, veja uma classificação por velocidade dos tipos de memória em um computador.
  • Memória principal: Está é a memória RAM, medida em mega e  em gigabytes. 
  • Memória secundária: É um tipo de armazenamento magnético rotativo que mantém os aplicativos e dados prontos para serem usados. Também serve como memória RAM virtual gerenciada pelo sistema operacional.

  O sistema operacional deve equacionar as necessidades dos diversos processos com a disponibilidade dos diferentes tipos de memória. Ele pode mover dados em blocos (chamados de páginas) para a memória disponível de acordo com a necessidade dos processos.
  Vamos conhecer agora as ferramentas utilizadas pelo sistema operacional para executar cada uma dessas funções.

Como o sistema operacional gerencia os dispositivos

  O caminho entre o sistema operacional e todo hardware que não está na placa-mãe passa por um programa especial chamado driver. A função principal do driver é funcionar como tradutor entre os sinais elétricos dos subsistemas de hardware e a linguagem de programação de alto nível do sistema operacional e dos aplicativos. Os drivers pegam os dados que o sistema operacional definiu como um arquivo e transforma-os em seqüências de bits. Estes bits são armazenados em locais específicos dos dispositivos de armazenamento ou se transformam em pulsos de laser em uma impressora.

  O funcionamento dos drivers depende do tipo de hardware, mas a maioria dos drivers é executada quando o dispositivo é acionado, eles funcionam de maneira semelhante a qualquer outro processo. O sistema operacional dá prioridade aos drivers para que o recurso do hardware seja liberado e disponibilizado o mais rápido possível.

  Uma razão para que os drivers sejam separados do sistema operacional é para que novas funções sejam adicionadas ao driver (e aos subsistemas de hardware) sem que o sistema operacional seja modificado, recompilado e redistribuído. O desenvolvimento de novos drivers, geralmente realizado ou pago pelo fabricante do subsistema (em vez do desenvolvedor do sistema operacional) melhora as capacidades de entrada/saída de todo o sistema.

  O gerenciamento de entrada/saída está relacionado com o gerenciamento das filas e buffers. Funções de armazenamento especial pegam esses bits de um dispositivo, talvez um teclado ou uma porta USB, e os distribuem para a CPU em uma taxa lenta o suficiente para que sejam absorvidos. Esta função é especialmente importante quando muitos processos estão sendo executados e o processador está sobrecarregado.

  O sistema operacional diz para o buffer que continue coletando informações de entrada do dispositivo. Mas os dados não serão enviados para a CPU enquanto o processo que estiver usando a entrada não for suspenso. Então, quando o processo de obtenção de dados de entrada estiver ativo de novo, o sistema operacional vai dizer para o buffer que ele pode enviar dados. Este processo permite que um teclado ou um modem interajam com usuários externos ou computadores em alta velocidade, mesmo quando a CPU não pode executar informações de entrada destas fontes.

  Gerenciar os recursos do sistema do computador é uma boa parte da função de um sistema operacional e, no caso de sistemas operacionais de tempo real, este pode ser todo o trabalho. Para outros sistemas operacionais, o objetivo é fornecer, de maneira simples e consistente, poder de processamento para aplicativos e usuários.




Postado por: Luana Miranda

Fontes:
http://analistasuportetec.blogspot.com.br/;
http://www.metropoledigital.ufrn.br/aulas/disciplinas/sist_operacional/aula_10.html

Nenhum comentário:

Postar um comentário