You are on page 1of 3

c

c
Um computador sem seu software nada mais é do que um pedaço inútil de metal. No entanto, quando equipado com o software
adequado, ele é capaz de armazenar, processar e recuperar informações, encontrar erro de síntaxe em textos, executar uma imen sa
variedade de jogos eletrônicos e de engajar seu usuário em muitas outrar atividades bastante produtivas.
O software de um computador pode ser dividido, a grosso modo, em duas categorias: | | | 
, que gerenciam a
operação do próprio computador, e os | 
   |, que resolvem problemas para seus usuários. O mais importante
dos programas de sistema é o 
|
 | , que controla todos os recursos do computador, e fornece a base sobre a qual
os programas aplicativos são escrito s.
Um sistema de computador moderno é composto por um ou mais processadores, uma certa quantidade de memória principal
(algumas vezes denominada memória de núcleos, apesar da tecnologia de construção de memórias com núcleos magnéticos ter
caído em desuso há pelo menos uma década), terminais, discos magnéticos, interfaces de rede e um conjunto de dispositivos de
entrada/saída. Em resumo, um sistema bastante complexo. Escrever programas que tomem conta de todos estes componentee,
fazendo-os trabalhar corretamente - e mais que isto, de maneira otimizada - é uma tarefa bastante difícil de realizar. Se todo
programador tivesse que s preocupar em como o disco trabalha, e com as dezenas de coisas que podem dar errado quando da
realização de uma leitura, é muito pro vável que muitos programas hoje em operação simplesmente não tivessem sido escritos, ou
não tivessem funcinando a contento.
Há muitos anos, ficou claro que se deveria encontrar uma maneira de afastar o usuário da complexidade do hardware. A forma
encontrada, que evolui gradualmente, foi a de colocar uma camada de software em cima do hardware, para gerenciar todos os
componentes do sistema, apresentando-o ao usuário com uma interface muito simples de entender e de programar. c
ual interface é conhecida como   . A camada de software construída sobre o hardware nada mais é do que o 

|
 | .
A situação descrita anteriormente é mostrada abaixo: c

Sistema Bancário c Sistema Comercial c Jogosc


Interpretador de
Compiladores c Editores de uexto c comandos c
cc programas de aplicação c
Sistema Operacional c
cc programas de sistema c
Linguagem de Máquina c
cc hardware c
Microcódigo c c

Dispositivos Físicos c
c

Na parte de baixo está o hardware, o qual em muitos casos é composto de duas ou mais camadas. A mais baixa delas contém os
dispositivos físicos, representados por chips de circuito integrado, fios, fontes de alimentação, tubos de raios catódicos, e assim por
diante. A forma como tais dispositivos são construídos e como eles trabalham pertence à área de co nhecimento de engenheiros,
eletrônicos, não sendo, portanto, para o profissional da Ciências da Computação. c
A seguir, temos uma camada composta por um tipo de software bastante primitivo, que controla diretamente os dispositivos
anteriormente citados, forn ecendo uma interface bastante simples para a próxima camada. ual software, denominado microcódigo,
composto por um conjunto de microprogramas, usualmente está gravado numa memória do tipo read only. c
Ele na verdade é um interpretador que busca as instruções de máquina na memória principal (ADD, MOVE, etc), gerando um
conjunto de sinais de controle necessários à execução de tais instruções pelo hardware. Para executar uma instrução de ADD, p or
exemplo, o microprograma específico precisa determinar onde estão armazenados os valores a serem adicionados, buscá-los da
memória, adicioná-los e armazenar o resultado em um registrador ou na própria memória. O conjunto de instruções que o
microcódigo interpreta é denominado 

 do processador. A linguagem de máquina é um conceito abstrato,
não fazendo, portanto, parte do hardware da máquina, embora alguns fabricantes a descrevam como tal, levando muita gente a
confundi-la com a própria máquina. Em alguns processadores, as funções do microcódigo são real izadas pelo hardware. Obviamente
que neste caso não existe a camada do microcódigo. c
A linguagem de máquina é composta por um conjunto de 50 a 300 instruções, a maioria das quais movimenta dados dentro da
máquina, realiza operações artméticas e compara valo res. Nesta camada, os dispositivos de entrada/saída são controlados pela
carga de valores em registradores especiais, denominados 
 |

 |  | . Por exemplo, podemos comandar um
disco, carregando em seus registradores os valores de endereço inicial do disco e na memória principal de um bloco de informações a
ser movimentado entre estes meios de armazenamento, o valor de um contador de bytes a serem transferidos, e a direção da
transferência das informações (leitura ou escrita). Na prática sã o necessários muito mais parâmetros além dos citados, alguns dos
quais altamente complexos, como por exemplo as informações de estado que o disco retorna para o processador. A questão da
temporização das operações de entrada/saída também é muito importante na programação de tais dispositivos. c
A principal função do sistema operacional é a de esconder toda esta complexidade, oferecendo ao programador um conjunto de
instruções mais convenientes para o desenvolvimento de seu trabalho. Por exemplo, READ BLOCK FR OM FILE é conceitualmente
mais simples do que se preocupar com o movimento das cabeças do disco. c
Acima do sistema operacional, estão os demais softwares do sistema, usualmente conhecidos como interpretadores de comando
(shell), compiladores, editores, etc. É importante observar que tais programas não fazem parte do sistema operacional, apesar de
serem normalmente fornecidos pelo fabricante do computador. Este ponto é crucial de análise. O sistema operacional é a porção de
software que roda no ||

ou || 
 |, com o objetivo de proteger o hardware da ação direta do usuário final da
máquina, ação esta que pode vir a ser desastrosa. As máquinas mais antigas não implementavam tal proteção, deixando o hardwar e
bastante vulnerável.c
Os demais componentes do software do sistema, tal como os compiladores e editores, rodam no || |. Caso um
determinado usuário não simpatize com um compilador, ele pode escrever seu próprio compilador. No entanto, ele não pode
escrever o programa de tratamento das interrupções de disco, que vem a ser parte integrante do sistema operacional, geralmente
protegido por hardware contra tentativas do usuário de modificá -lo.
Finalmente, acima dos programas do sistema, encontram -se os programas de aplicação. uais programas são escritos pelos usuários
para resolver problemas específicos, que envolvam o processamento comercial de informações, cálculos científicos, jogos eletr ônicos,
etc. c

c
â 
A arquitetura (conjunto de instruções, organização da memória, estrutura de entrada/saída e estrutura do barramento) da maioria
dos computadores é bastante primitiva e difícil de programar, em especial a parte de E/S.
A interface entre o sistema operacional e os programas de usuários é definida pelo conjundo de instruções estendi das, fornecidas
pelo sistema. uais instruções são conhecidas como  
 
 
  , que criam, apagam e usam diversos
objetos gerenciados pelo sistema operacional. Os mais importantes de tais objetos são os processos e os arquivos. c

â  !
Um conceito chave da teoria dos sistemas operacionais é o conceito de processo. Um processo é basicamente um programa em
execução, sendo constituído do código executável, dos dados referentes ao código, da pilha de execução, do valor do contador de
programa (registrador PC), do valor do apontador de pilha (registrador SP), dos valores dos demais registradores do hardware, além
de um conjunto de outras informações necessárias à execução do programa. c
A melhor forma de se adquirir uma idéia intuitiva do processo é imaginar sistemas de compartilhamento de tempo do processador
onde periodicamente, o sistema operacional decide interromper a execução de um dado processo, iniciando a execução de outro, em
razão do primeiro haver excedido seu tempo de uso do p rocessador compartilhado. c
Neste caso, sendo o processo temporariamente suspenso, há necessidade de restaurá-lo mais tarde, no exato ponto em que ele foi
interrompido. Isto significa que todas as informações relativas ao processo precisam ser salvas em algu m lugar, durante o tempo em
que durar a suspensão de sua execução. Por exemplo, se o processo estiver com diversos arquivos abertos, haverá necessidade d e
se guardar a posição exata em que se encontrava na pesquisa de tais arquivos, de maneira que uma leit ura subsequente à
c
reativação do processo leia o dado correto.

Em muitos sistemas operacionais, todas as informações sobre cada um dos processos que não pertençam aos espaços de
endereçamento c

cc

cc

cc

cc

cc

cc
c
c
c

Home - Nossa Equipe - Mapa do Site - Hardware - S.O. - Redes


c
uutoriais - Downloads - Links - Fale Conosco - E-mail
c

You might also like