quinta-feira, 16 de julho de 2009

Sistema operacional


Um sistema sistema operacional é um programa ou um conjunto de programas cuja função é servir de interface entre um computador e o usuário.
Segundo alguns autores (Silberschatz et al, 2005; Stallings, 2004; Tanenbaum, 1999), existem dois modos distintos de conceituar um sistema operacional:
pela perspectiva do usuário ou programador (visão top-down): é uma abstração do hardware, fazendo o papel de intermediário entre o aplicativo (programa) e os componentes físicos do computador (hardware); ou
numa visão bottom-up, de baixo para cima: é um gerenciador de recursos, i.e., controla quais aplicações (processos) podem ser executadas, quando, que recursos (memória, disco, periféricos) podem ser utilizados.
A sigla usual para designar esta classe de programas é SO (em português) ou OS (do inglês Operating System).


Funcionamento

Um sistema operacional possui as seguintes funções:
gerenciamento de processos;
gerenciamento de memória;
sistema de arquivos;
entrada e saída de dados.

Gerenciamento de processos

O sistema operacional multitarefa é preparado para dar ao usuário a ilusão que o número de processos em execução simultânea no computador é maior que o número de processadores instalados. Cada processo recebe uma fatia do tempo e a alternância entre vários processos é tão rápida que o usuário pensa que sua execução é simultânea.
São utilizados algoritmos para determinar qual processo será executado em determinado momento e por quanto tempo.
Os processos podem comunicar-se, isto é conhecido como IPC (Inter-Process Communication). Os mecanismos geralmente utilizados são:
sinais,
pipes,
named pipes,
memória compartilhada,
soquetes (sockets),
semáforos,
trocas de mensagens.
O sistema operacional, normalmente, deve possibilitar o multiprocessamento (SMP ou NUMA). Neste caso, processos diferentes e threads podem ser executados em diferentes processadores. Para essa tarefa, ele deve ser reentrante e interrompível, o que significa que pode ser interrompido no meio da execução de uma tarefa.


Gerenciamento de memória

O sistema operacional tem acesso completo à memória do sistema e deve permitir que os processos dos usuários tenham acesso seguro à memória quando o requisitam.
Vários sistemas operacionais usam memória virtual, que possui 3 funções básicas:
assegurar que cada processo tenha seu próprio espaço de endereçamento, começando em zero, para evitar ou resolver o problema de relocação (Tanenbaum, 1999);
prover proteção da memória para impedir que um processo utilize um endereço de memória que não lhe pertença;
possibilitar que uma aplicação utilize mais memória do que a fisicamente existente.

Sistema de arquivos

A memória principal do computador é volátil, e seu tamanho é limitado pelo custo do hardware. Assim, os usuários necessitam de algum método para armazenar e recuperar informações de modo permanente.
Um arquivo é um conjunto de bytes, normalmente armazenado em um dispositivo periférico não volátil (p.ex., disco), que pode ser lido e gravado por um ou mais processos.
O sistema de arquivos é a estrutura que permite o gerenciamento de arquivos -- criação, destruição, leitura, gravação, controle de acesso, etc.


Interface de uso

Os sistemas operacionais fornecem abstração de hardware para que o computador possa se tornar útil, mas para o poder ser utilizado, é necessário fornecer também uma interface para que o usuário possa desfrutar dos recursos do sistema. Atualmente existem dois tipos de interface que são usados: o GUI (graphical user interface) e o CUI (command line interface).

Nesse tipo de interface, o usuário tem a disposição um ambiente de trabalho composto por menus, ícones, janelas e outros itens disponíveis. O usuário interage com esse tipo de interface usando o mouse, podendo também usar o teclado e teclas de atalho. É possível fazer todo tipo de tarefa usando interface gráfica, como edição de vídeos e imagens, sendo somente alguns tipos muito específicos de tarefas que se saem melhor em linha de comando. Acrescentar facilidade de uso e agilidade é o objetivo da GUI, tendo a desvantagem de consumir muito mais memória que interfaces CUI. Em sistemas unix-likes, existe a possibilidade de escolher o gerenciador de janelas a utilizar, aumentando em muito a liberdade de escolha do ambiente.

Classificações

Em relação ao seu projeto (arquitetura), segundo Tanenbaum (1999):
Kernel monolítico ou monobloco: o kernel consiste em um único processo executando numa memória protegida (espaço do kernel) executando as principais funções. Ex.: OS/2, Windows, Linux, FreeBSD.
Microkernel ou modelo cliente-servidor: o kernel consiste de funções mínimas (comunicação e gerenciamento de processos), e outras funções, como sistemas de arquivos e gerenciamento de memória, são executadas no espaço do usuário como serviços; as aplicações (programas) são os clientes. Ex.: GNU Hurd, Mach.
Sistema em camadas: funções do kernel irão executar em camadas distintas, de acordo com seu nível de privilégio. Ex.: Multics.
Monitor de máquinas virtuais: fornece uma abstração do hardware para vários sistemas operacionais. Ex.: VM/370, VMware, Xen.
Quanto à capacidade de processamento, pode-se usar a seguinte classificação:
Monotarefa: pode-se executar apenas um processo de cada vez Ex.: MS-DOS.
Multitarefa: além do próprio SO, vários processos de utilizador (tarefas) estão carregados em memória, sendo que um pode estar ocupando o processador e outros ficam enfileirados, aguardando a sua vez. O compartilhamento de tempo no processador é distribuído de modo que o usuário tenha a impressão que vários processos estão sendo executados simultaneamente. Ex: OS/2, Windows, Linux, FreeBSD e o Mac OS X.
Multiprocessamento: o SO distribui as tarefas entre dois ou mais processadores.
Multiprogramação: o SO divide o tempo de processamento entre vários processos mantendo o processador sempre ocupado.


Exemplos de sistemas operacionais ativos
Windows
Mac OS X
Linux
Solaris
FreeBSD
Haiku
eComStation
FreeDOS
Unix System V
AmigaOS
Minix
Eset

Exemplos de sistemas operacionais importantes que foram descontinuados
MS-DOS
OS/2
BeOS
NeXTStep
CP/M

Um comentário:

  1. Meninas, que tal reduzirem o texto e por as referencias (locais de pesquisa)???
    Saudações
    Professora Giseli Rodrigues

    ResponderExcluir