Академический Документы
Профессиональный Документы
Культура Документы
SISTEMAS
OPERACIONAIS
1 INTRODUO
O computador um aparelho que executa tarefas repetitivas e armazena uma grande
quantidade de dados. atravs de programas e/ou aplicativos, que somos capazes de
interagir com o computador.
O computador basicamente dividido em Hardware e Software.
O hardware composto por circuitos eletrnicos (processador, memria, portas de
entrada/ sada, etc) e perifricos eletro-ptico-mecnicos (teclados, mouses, discos rgidos,
unidades de disquete, CD ou DVD, dispositivos USB, etc). Por sua vez, o software de
aplicao e representado por programas destinados ao usurio do sistema e que constituem
a razo final de seu uso, como editores de texto, navegadores Internet ou jogos. Entre os
aplicativos e o hardware reside uma camada de software multifacetada e complexa,
denominada genericamente de Sistema Operacional.
Ou seja, um S.O. um programa ou um conjunto de programas cuja a funo
servir de interface entre o computador (hardware) e o usurio.
Unidades de medida
A menor unidade utilizvel para representao de informaes em um
computador o BIT, que assume os valores 0 ou 1. Essa representao, dita binria, est
relacionada com o fato das informaes serem armazenadas fisicamente no computador na
forma de uma polaridade eltrica (positivo ou negativo) ou magntica (norte ou sul nos
ims). Como um nico bit insuficiente para representar informaes mais complexas, eles
so agrupados e combinados. Num primeiro agrupamento, eles so reunidos em conjuntos
de oito, recebendo a denominao de BYTE (8 bits).
Quando nos referimos s informaes armazenadas em um computador
utilizamos, portanto, o termo byte, que corresponde a um caractere. Tendo em vista que a
unidade byte consideravelmente pequena quando indicamos valores mais extensos,
utilizamos mltiplos do byte: kilobyte, megabyte, gigabyte, terabyte, etc.
1.1 Objetivos
Existe uma grande distancia entre os circuitos eletrnicos e dispositivos de hardware
e os programas aplicativos em software. Os circuitos so complexos, acessados atravs de
interfaces de baixo nvel (geralmente usando as portas de entrada/sada do processador) e
muitas vezes suas caractersticas e seu comportamento dependem da tecnologia usada em
sua construo. Por exemplo, a forma de acesso de baixo nvel a discos rgidos IDE difere
da forma de acesso a leitores de CD. Essa grande diversidade pode ser uma fonte de dores
de cabea para o desenvolvedor de aplicativos. Portanto, torna-se desejvel oferecer aos
programas aplicativos uma forma de acesso homognea aos dispositivos fsicos, que
permita abstrair as diferenas tecnolgicas entre eles.
O sistema operacional uma camada de software que opera entre o hardware e os
programas aplicativos voltados ao usurio final. O sistema operacional e uma estrutura de
software ampla,muitas vezes complexa, que incorpora aspectos de baixo nvel (como
drivers de dispositivos e gerencia de memria fsica) e de alto nvel (como programas
utilitrios e a prpria interface grfica).
A figura 1 ilustra a arquitetura geral de um sistema de computao tpico. Nela,
podemos observar elementos de hardware, o sistema operacional e alguns programas
aplicativos.
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 informaes para a execuo. O processador recebia um programa aps o
outro, processando-os em seqncia, o que permitia um alto grau de utilizao do
sistema. Ainda hoje o termo em lote usado para designar um conjunto de
comandos que deve ser executado em seqncia, sem interferncia do usurio.
Exemplos desses sistemas incluem o OS/360 e VMS, entre outros.
De rede: um sistema operacional de rede deve possuir suporte A operao em
rede, ou seja, a capacidade de oferecer as aplicaes locais recursos que estejam
localizados em outros computadores da rede, como arquivos e impressoras. Ele
tambm deve disponibilizar seus recursos locais aos demais computadores, de
forma controlada. A maioria dos sistemas operacionais atuais oferece esse tipo de
funcionalidade.
Distribudo: em um sistema operacional distribudo, os recursos de cada mquina
esto disponveis globalmente, de forma transparente aos usurios. Ao lanar uma
aplicao, o usurio interage com sua janela, mas no sabe onde ela esta executando
ou armazenando seus arquivos: o sistema quem decide, de forma transparente. Os
sistemas operacionais distribudos j existem h tempos (Amoeba [TKvRB91] e
Clouds [DRJLAR91], por exemplo), mas ainda no so uma realidade de mercado.
Multi-usuario: Um sistema operacional multi-usuario deve suportar a identificao
do dono de cada recurso dentro do sistema (arquivos, processos, reas de
memria, conexes de rede) e impor regras de controle de acesso para impedir o uso
desses recursos por usurios no autorizados. Essa funcionalidade e fundamental
para a segurana dos sistemas operacionais de rede e distribudos. Grande parte dos
sistemas atuais so multi-usuarios.
Desktop: um sistema operacional de mesa voltado ao atendimento do usurio
domestico e corporativo para a realizao de atividades corriqueiras, como edio
de textos e grficos, navegao na Internet e reproduo de mdias simples. Suas
principais caractersticas so a interface grfica, o suporte a interatividade e a
3 - Funcionalidades
Para cumprir seus objetivos de abstrao e gerncia, o sistema operacional deve
atuar em varias frentes. Cada um dos recursos do sistema possui suas particularidades, o
que impe exigncias especficas para gerenciar e abstrair os mesmos. Sob essa
perspectiva, as principais funcionalidades implementadas por um sistema operacional tpico
so:
5 - Proteo do ncleo
Um sistema operacional deve gerenciar os recursos do hardware, fornecendo-os as
aplicaes conforme suas necessidades. Para assegurar a integridade dessa gerencia,
essencial garantir que as aplicaes no consigam acessar o hardware diretamente, mas
sempre atravs de pedidos ao sistema operacional, que avalia e intermdia todos os acessos
ao hardware. Mas como impedir as aplicaes de acessar o hardware diretamente?
Ncleo, drivers, utilitrios e aplicaes so constitudos basicamente de cdigo de
maquina. Todavia, devem ser diferenciados em sua capacidade de interagir como hardware:
enquanto o ncleo e os drivers devem ter pleno acesso ao hardware (para poder configurlo e gerenci-lo), os utilitrios e os aplicativos devem ter acesso mais restrito a ele, para no
interferir nas configuraes e na gerencia, o que acabaria desestabilizando o sistema inteiro.
Alem disso, aplicaes com acesso pleno ao hardware tornariam inteis os mecanismos de
segurana e controle de acesso aos recursos (arquivos, diretrios, reas de memria, etc).
Para permitir a diferenciao de privilegio de acesso entre os diferentes tipos de
software, os processadores modernos contam com dois ou mais nveis de privilgio de
execuo. Esses nveis so controlados por flags especiais nos processadores, e a mudana
de um nvel de execuo para outro controlada por condies especificas. O processador
Pentium, por exemplo, conta com 4 nveis de privilegio (sendo 0 o nvel mais privilegiado),
embora a maioria dos sistemas operacionais construdos para esse processador s o use os
nveis extremos (0 para o ncleo e drivers do sistema operacional e 3 para utilitrios e
aplicaes). Na forma mais simples desse esquema, podemos considerar dois nveis bsicos
de privilegio:
Nvel ncleo: tambm denominado nvel supervisor, sistema, monitor ou ainda
kernelspace. Para um cdigo executando nesse nvel, todo o processador esta
acessvel:todos os registradores, portas de entrada/sada e reas de memria podem ser
acessados em leitura e escrita. Alem disso, todas as instrues do processador podem ser
executadas. Ao ser ligado, o processador entra em operao neste nvel.
Nvel usurio (ou userspace): neste nvel, somente um sub-conjunto das instrues do
processador, registradores e portas de entrada/sada esto disponveis. Instrues
perigosas como HALT (parar o processador) e RESET (reiniciar o processador) so
proibidas para todo cdigo executando neste nvel. Alem disso, o hardware restringe o uso
da memria, permitindo o acesso somente a reas previamente definidas. Caso o cdigo em
execuo tente executar uma instruo proibida ou acessar uma rea de memria
inacessvel, o hardware ira gerar uma exceo, desviando a execuo para uma rotina de
tratamento dentro do ncleo, que provavelmente ira abortar o programa em execuo (e
tambm gerar a famosa frase este programa executou uma instruo ilegal e ser
finalizado, no caso do Windows).
fcil perceber que, em um sistema operacional convencional, o ncleo e os drivers
operam no nvel ncleo, enquanto os utilitrios e as aplicaes operando nvel usurio,
confinados em reas de memria distintas, conforme ilustrado na figura 3
tambm seria de se esperar sua adoo no domnio dos sistemas operacionais. No entanto,
alguns inconvenientes limitam sua aceitao nesse contexto:
O empilhamento de varias camadas de software faz com que cada pedido de uma
aplicao demore mais tempo para chegar ate o dispositivo perifrico ou recurso a ser
acessado, prejudicando o desempenho do sistema.
No obvio como dividir as funcionalidades de um ncleo de sistema operacional em
camadas horizontais de abstrao crescente, pois essas funcionalidades so interdependentes, embora tratem muitas vezes de recursos distintos.
Em decorrncia desses inconvenientes, a estruturao em camadas apenas
parcialmente adotada hoje em dia. Muitos sistemas implementam uma camada inferior de
abstrao do hardware para interagir com os dispositivos (a camada HAL Hardware
Abstraction Layer, implementada no Windows NT e seus sucessores), e tambm organizam
em camadas alguns sub-sistemas como a gerncia de arquivos e o suporte de rede (seguindo
o modelo OSI). Como exemplos de sistemas fortemente estruturados em camadas podem
ser citados o IBM OS/2 e o MULTICS.