Sei sulla pagina 1di 61

e-Tec Brasil

Aula 1 Viso geral de Sistemas


Operacionais
Objetivos
Compreender os conceitos bsicos de Sistemas Operacionais.
Conhecer suas funes principais.
Analisar o Sistema Operacional como uma mquina de nveis.
1.1 Conceitos bsicos
Diferentemente do que muitas pessoas imaginam, o computador no faz nada
sozinho. Ele apenas processa uma srie de informaes inseridas pelo usurio
para ento fornecer os resultados. As informaes inseridas e os resultados
que recebemos precisam estar num formato que ns humanos conseguimos
entender. Para facilitar essa comunicao entre homem e computador, foram
criados os softwares ou programas de computador. Na realidade, tudo que
fazemos com um computador pela execuo desses programas.
De acordo com um dos principais autores da rea,
Um sistema operacional um programa que atua como intermedirio
entre o usurio e o hardware de um computador. O propsito de um
sistema operacional propiciar um ambiente no qual o usurio possa
executar outros programas de forma conveniente, por esconder detalhes
internos de funcionamento e ecincia, por procurar gerenciar de forma
justa os recursos do sistema (Silberschatz, Galvin e Gagne, 2000, p.22].
Vamos estender o conceito de sistema operacional ao longo do curso, mas
podemos den-lo, de forma simples, como um conjunto de rotinas executa-
das pelo processador com a principal funo de controlar o funcionamento
do computador, gerenciando os diversos recursos disponveis no sistema. Na
Figura 1.1 vemos a posio que um Sistema Operacional ou simplesmente
SO ocupa dentre os vrios elementos que compem um sistema de com-
putao. Voc deve observar que a palavra Usurios est sendo usada
com dois sentidos diferentes: para as pessoas que utilizam o computador e
para os programas e utilitrios instalados no computador.
Sistema Operacional
Sistema Operacional: segundo
o Aurlio (verbete sistema),
sistema operacional um conjunto
integrado de programas bsicos,
projetado para supervisionar e
controlar a execuo de programas
de aplicao em um computador.
e-Tec Brasil Aula 1 Viso geral de Sistemas Operacionais 15
Hardware
Sistemas
Operacionais
Usurios
Programadores
e Analistas
Usurios Aplicativos
Figura 1.1: Viso do Sistema Operacional
Fonte: Adaptado de Machado, 2004
Resumidamente, o sistema operacional tem a funo de proteger a mquina
do usurio e proteger o usurio da mquina.
1.2 Funes principais
Na Figura 1.1 foi destacado o controle de hardware. Esta uma das funes
bsicas do SO e pode ser desmembrada em:
a) Facilidade de acesso aos recursos do sistema
Um sistema de computao possui, normalmente, diversos componentes,
como monitores, impressoras e discos rgidos. Quando utilizamos um desses
dispositivos, no nos preocupamos com a maneira como realizada esta
comunicao e os inmeros detalhes envolvidos.
Uma operao frequente como, por exemplo, a leitura de um arquivo em
um CD ou disco pode parecer simples. Existe um conjunto de rotinas espe-
ccas, controladas pelo sistema operacional, que so responsveis por acio-
nar a cabea de leitura e gravao da unidade de disco, posicionar na trilha
e setor onde esto os dados, transferir os dados do disco para a memria e,
nalmente, informar ao programa a chegada dos dados.
O sistema operacional, ento serve de interface entre o usurio e os re-
cursos de hardware, tornando esta comunicao transparente (ou imper-
ceptvel) e permitindo ao usurio um trabalho mais eciente e com menos
possibilidades de erros.
Voc pode obter mais
informaes sobre setor e
trilha no livro Organizao
Estruturada de Computadores,
de Andrew S. Tanembaum, 5
Edio, Editora Prentice-Hall,
ou na prpria internet em sites
especializados como o Clube
do Hardware em http://www.
clubedohardware.com.br
Sistemas Operacionais e-Tec Brasil 16
b) Compartilhamento de recursos de forma organizada e protegida
Se imaginarmos, por exemplo, que uma impressora pode ser utilizada por
vrios usurios do sistema, ento dever existir algum controle para impedir
que a impresso de um usurio interrompa a impresso de outro. O sistema
operacional o responsvel por permitir o acesso organizado a esse e a ou-
tros recursos disponveis no computador.
O compartilhamento de recursos permite a diminuio de custos, na medida
em que mais de um usurio pode utilizar as mesmas facilidades concorrente-
mente, tais como discos, impressoras, linhas de comunicao, etc. Com isto,
uma mesma impressora (ou linha de comunicao ou outro recurso) pode
atender a vrios usurios.
No s no controle do acesso a hardware compartilhado que o sistema ope-
racional atua, ele nos permite executar vrias tarefas, como imprimir um docu-
mento, copiar um arquivo pela internet ou processar uma planilha, entre ou-
tros. O SO deve ser capaz de controlar a execuo concorrente de todas essas
tarefas. Ainda podemos dizer que, embora alguns programas sejam escritos
baseados nas instrues de um determinado processador, ser responsabilida-
de do sistema operacional executar tarefas bsicas do micro, ou seja, ensinar
ao processador como desenhar uma janela ou imprimir um documento.
De um modo geral, os programas que os usurios executam no so
escritos para um processador, mas sim para um SO. Isto facilita a comu-
nicao do programa com o hardware do computador. As tarefas so
executadas pelo SO, tornando os programas menores e mais fceis de
serem programados (Machado e Maia, 2004. p.1-3).
PROGRAMAS
Sistema Operacional
Hardware
Figura 1.2: O Sistema Operacional funciona como uma interface entre o
hardware e os programas de usurios
Fonte: Adaptado de Machado, 2004
Conforme mostra a Figura 1.2, o SO o intermedirio entre hardware e
programas utilizados pelos usurios.
e-Tec Brasil Aula 1 Viso geral de Sistemas Operacionais 17
Em uma situao ideal, somente o sistema operacional deve ter acesso ao
hardware do computador. Um programa que desejasse, por exemplo, fazer
um desenho no monitor, obrigatoriamente teria de repassar esta tarefa ao
sistema operacional. Este, por sua vez, iria analisar o pedido do programa e,
considerando o pedido vlido, o executaria. Caso um determinado progra-
ma resolvesse fazer um pedido estranho (por exemplo, apagar todos os da-
dos do disco rgido), o SO simplesmente poderia ignorar tal pedido, terminar
a execuo do programa e informar a ocorrncia ao usurio.
Um programa de usurio no deve acessar recursos do computador diretamen-
te, deve antes passar pela intermediao e autorizao do sistema operacional.
Essa a condio ideal de um sistema operacional ESTVEL e SEGURO. Isto
acontece, sobretudo, em sistemas operacionais para gerenciamento de rede
local (Windows Server, Unix e Linux) e entre os sistemas operacionais para
PCs que no foram desenvolvidos para serem servidores de rede como o
MacOS e Windows nas suas verses XP, Vista e Windows 7.
O antigo DOS no trabalhava nessas condies. Na poca em que foi criado,
o PC tinha pouqussima memria RAM (1 MB) e o sistema operacional, como
cava residente em memria, tinha de ser o menor possvel. Uma soluo
para diminuir o tamanho do SO foi permitir aos programas que acessassem
diretamente o hardware do micro para tarefas especiais, como desenhar
grcos ou enviar dados impressora. A Figura 1.3 ilustra isto.
PROGRAMAS
HARDWARE
DOS
Figura 1.3: O Sistema DOS permitia acesso direto ao hardware pelos programas de usurio
Fonte: Adaptado de Machado, 2004
No entanto, isso acabava gerando um problema maior: se um programa
zesse um acesso indevido diretamente ao hardware do computador ou se
o programa no estivesse bem escrito, isso inevitavelmente era reetido no
hardware, fazendo com que o programa parasse por travamento. Esse pro-
blema continuou em verses do Windows 3.x, 95, 98 e ME, por utilizarem o
mesmo ncleo do DOS, permitindo acessos direto ao hardware.
Sistemas Operacionais e-Tec Brasil 18
1.3 Mquina de nveis
A linguagem entendida pelo computador uma linguagem binria de difcil
entendimento pelos seres humanos, sendo chamada de linguagem de bai-
xo nvel ou de mquina. As linguagens mais prximas aos seres humanos
so classicadas como linguagens de alto nvel. Os computadores enten-
dem apenas programas feitos em sua linguagem binria. Os seres humanos,
no entanto, elaboram programas em linguagens de alto nvel.
Um computador, visto somente como um gabinete composto de circuitos
eletrnicos, cabos e fontes de alimentao (hardware), no tem nenhuma
utilidade. por meio de programas (software) que o computador consegue
armazenar dados em discos, imprimir relatrios, gerar grcos, realizar cl-
culos, entre outras funes. O hardware o responsvel pela execuo das
instrues de um programa, com a nalidade de se realizar alguma tarefa.
Nos primeiros computadores, a programao era realizada em painis, atra-
vs de os, exigindo um grande conhecimento do hardware e de linguagem
de mquina. Isso trazia uma grande diculdade para os programadores da
poca, que normalmente eram os prprios engenheiros projetistas e cons-
trutores desses computadores.
A soluo para esse problema foi o surgimento do Sistema Operacional, que
tornou a interao entre usurio e computador mais simples, convel e e-
ciente. A partir desse acontecimento, no existia mais a necessidade de o pro-
gramador se envolver com a complexidade do hardware para poder trabalhar;
ou seja, a parte fsica do computador tornou-se transparente para o usurio.
Podemos considerar o computador como uma mquina de nveis ou cama-
das, em que inicialmente existem dois nveis: o nvel 0 (hardware) e o nvel
1 (sistema operacional). Desta forma, o usurio pode enxergar a mquina
como sendo apenas o sistema operacional, ou seja, como se o hardware no
existisse. Esta viso modular e abstrata chamada mquina virtual.
Para o sistema operacional, o programador e os programas tambm so
usurios, pois usam recursos disponibilizados pelo SO. Em vrios pontos des-
te texto, voc poder ver que a palavra usurio se aplica ao programador
ou ao programa.
Entretanto, um computador no possui apenas dois nveis, e sim tantos nveis
quantos forem necessrios para adequar o usurio s suas diversas aplicaes.
Existem muitas linguagens de
alto nvel utilizadas para os
mais diversos ns, como C,
C++ e Java. Os cdigos-fontes
escritos nessas linguagens
precisam ser convertidos em
linguagem binria. Por exemplo,
a linguagem C utiliza uma
forma de converso diferente da
utilizada pela linguagem Java.
e-Tec Brasil Aula 1 Viso geral de Sistemas Operacionais 19
Quando o usurio est trabalhando em um desses nveis, no necessita saber
da existncia das outras camadas, acima ou abaixo de sua mquina virtual.
Aplicativos
Utilitrios
Hardware
Sistema Operacional
Linguagem
de Mquina
Microprogramao
Dispositivos Fsicos
Figura 1.4: O computador como mquina de nveis
Fonte: Adaptado de Machado, 2004
Atualmente, a maioria dos computadores possui a estrutura mostrada na
Figura 1.4, podendo conter mais ou menos camadas. A linguagem utilizada
em cada um desses nveis diferente, variando da mais elementar (baixo
nvel) mais sosticada (alto nvel). Os aplicativos so programas executados
pelo usurio. Os utilitrios so programas de uso genrico e frequente, ge-
ralmente fornecidos junto com o SO. Cada um desses nveis ser abordado
com mais detalhes nas prximas aulas.
Um sistema operacional pode ento ser denido sob dois aspectos: como uma
mquina estendida ou mquina virtual e como um gerenciador de recursos.
O sistema operacional, como uma mquina virtual, esconde do programador
detalhes do hardware, apresentando uma viso simples, mais conveniente e
mais fcil de utilizar.
O sistema operacional, como um gerenciador de recursos, fornece uma alo-
cao controlada e ordenada dos recursos do computador entre os vrios
programas que competem por esses recursos. Os recursos incluem processa-
dores, memrias, dispositivos de E/S (unidades de disco, impressoras, mouse,
etc.), interfaces de rede, dentre outros.
Quando um computador tem vrios usurios, existe a necessidade de se
proteger a memria , os dispositivos de E/S e os outros recursos. O sistema
operacional ento mantm informao sobre quem est usando qual recur-
Sistemas Operacionais e-Tec Brasil 20
so (para garantir os recursos a quem precisa deles), contabilizar o uso (para
evitar que um usurio use por um perodo injustamente longo) e mediar
quando h pedidos conitantes sobre um mesmo recurso.
Resumo
Nesta aula voc aprendeu alguns conceitos bsicos sobre sistemas operacio-
nais, algumas questes importantes sobre seu funcionamento e funes prin-
cipais. Viu tambm como a estruturao de um sistema em camadas pode ser
vantajosa em termos de ecincia de todo o ambiente computacional.
Atividades de aprendizagem
1. Quais seriam as principais diculdades que um programador te-
ria no desenvolvimento de uma aplicao em um ambiente sem um
sistema operacional?
2. Explique o conceito de mquina virtual. Qual a grande vantagem em
utilizar esta metodologia?
3. Dena o conceito de uma mquina de camadas.
4. Explique a seguinte frase: O Sistema Operacional protege o usurio da
mquina e a mquina do usurio.
e-Tec Brasil Aula 1 Viso geral de Sistemas Operacionais 21
e-Tec Brasil
Aula 2 Histrico e classicao
Objetivos
Conhecer o histrico de Sistemas Operacionais.
Compreender como as inovaes de hardware colaboraram com o
desenvolvimento dos Sistemas Operacionais.
Classicar os sistemas conforme suas caractersticas principais.
2.1 Histrico
Vimos que o sistema operacional interage diretamente com o hardware e,
com isso, inuenciado diretamente pela evoluo do mesmo. Portanto, a
evoluo dos sistemas operacionais est, em grande parte, relacionada ao
desenvolvimento de equipamentos cada vez mais velozes, compactos e de
custos baixos e necessidade de aproveitamento e controle destes recursos.
Assim, ao falar sobre o histrico dos sistemas operacionais, estaremos recor-
dando um pouco a evoluo do hardware. Devemos lembrar que as datas
das fases da evoluo so aproximadas.
Desde os tempos do computador programado por chaves e cabos at o
surgimento do teclado e impressora de caracteres, procurou-se ao longo do
processo evolutivo do computador tornar a sua utilizao mais amigvel,
precisa, rpida e ecaz.
O conjunto de equipamentos e recursos utilizados para que o homem possa
controlar o computador genericamente denominado interface. O aprimo-
ramento da interface atingiu o ponto em que o usurio passou a interagir
com pequenos desenhos ou smbolos de objetos comuns ao seu trabalho.
Pensou-se em representar, por exemplo, a tarefa de impresso de documentos
pelo desenho de uma pequena impressora e a eliminao de um documento
por uma pequena lixeira. Surgiram os cones. O histrico da evoluo foi di-
vidido em fases, cada uma marcada pela evoluo signicativa do hardware,
do software, da interao com o sistema ou por aspectos de conectividade.
Primeiramente, devemos ressaltar que o mapeamento das datas de evolues
e-Tec Brasil Aula 2 Histrico e classicao 23
e geraes dos Sistemas Operacionais e das Arquiteturas de Computadores
so, de certa forma, vagas e imprecisas, mas com certa estrutura.
a) Primeira fase (1945-1955) - Vlvulas e Painis de Programao
No incio da Segunda Guerra Mundial, surgiram os primeiros computadores
digitais, formados por milhares de vlvulas, que ocupavam reas enormes,
sendo de funcionamento lento e duvidoso.
O ENIAC (Electronic Numerical Integrator and Computer) foi o primeiro com-
putador digital de propsito geral. Criado para a realizao de clculos ba-
lsticos, sua estrutura possua 17.468 vlvulas, 10 mil capacitores, 70 mil
resistores e pesava 32 toneladas. Quando em operao era capaz de realizar
cinco mil adies por segundo.
A programao era feita em painis, atravs de os, utilizando linguagem
de mquina. No existia o conceito de sistema operacional. Outros com-
putadores foram construdos nessa poca, mas eram utilizados apenas em
universidades e rgos militares.
Muitas empresas foram fundadas ou investiram no setor, como, por
exemplo, a IBM, o que levou criao dos primeiros computadores para
aplicaes comerciais.
b) Segunda fase (1956-1965) - Transistores e Sistemas em Lote (batch)
A criao do transistor e das memrias magnticas contribuiu para o enorme
avano dos computadores da poca. O transistor permitiu o aumento da
velocidade e da conabilidade do processamento; as memrias magnticas
permitiram o acesso mais rpido aos dados, maior capacidade de armazena-
mento e computadores menores.
Surgiram os primeiros sistemas operacionais, para tentar automatizar as tare-
fas manuais at ento realizadas e as primeiras linguagens de programao,
como Assembly e Fortran. Os programas deixaram de ser feitos diretamente
no hardware, o que facilitou enormemente o processo de desenvolvimento
de programas. Surgiu o processamento em batch, em que um lote (batch) de
programas e de dados era submetido ao computador por vez.
Sistemas Operacionais e-Tec Brasil 24
Processamento
Processamento
Processamento
Fita de Entrada
Fita de Sada
Cartes Perfurados Fita de Entrada
Fita de Sada
Relatrios
Figura 2.1: Ciclos de processamento na segunda fase
Fonte: Adap tado de Machado, 2004
Os programas passaram a ser perfurados em cartes que, submetidos a uma
leitora, eram processados e gravados em uma ta de entrada, conforme Fi-
gura 2.1. A ta de entrada, ento, era lida pelo computador, que executava
um programa de cada vez, processando e gravando o resultado em uma ta
de sada. Ao trmino de todos os programas, as tas de sada eram lidas e
processadas novamente para serem impressas, gerando assim os relatrios.
Com o processamento em batch, um grupo de programas era submetido de
uma s vez, o que diminua o tempo existente entre a execuo dos progra-
mas, permitindo, assim, melhor uso do computador.
c) Terceira fase (1966-1980) - Circuitos Integrados e Multiprogramao
Por meio dos circuitos integrados e, posteriormente, dos microprocessadores,
foi possvel viabilizar e difundir o uso de sistemas computacionais por empre-
sas, devido diminuio de seus custos de aquisio. Houve um aumento no
poder de processamento e diminuio no tamanho dos equipamentos.
A evoluo dos processadores de entrada/sada permitiu que, enquanto um
programa esperasse por uma operao de leitura/gravao, o processador
executasse um outro programa. Para tal, a memria foi dividida em parti-
es, em que um programa esperava sua vez para ser processado. A essa
tcnica de compartilhamento da memria principal e processador deu-se o
nome de multiprogramao.
Multiprogramao
Multiprogramao a execuo
simultnea de dois ou
mais programas.
e-Tec Brasil Aula 2 Histrico e classicao 25
Com a substituio das tas por discos no processo de submisso dos pro-
gramas, o processamento batch tornou-se mais eciente, pois permitia a
alterao na ordem de execuo das tarefas, at ento somente sequencial.
A essa tcnica de submisso de programas chamou-se spooling, que, mais
tarde, tambm viria a ser utilizada no processo de impresso.
Os sistemas operacionais, mesmo com a evoluo do processamento batch e a
multiprogramao, ainda estavam limitados a processamentos que no exigiam
comunicao com o usurio. Para permitir a interao rpida entre o usurio e o
computador, foram adicionados terminais de vdeo e teclado (interao on-line).
A multiprogramao evoluiu, preocupada em oferecer aos usurios tem-
pos de resposta razoveis e uma interface cada vez mais amigvel. Para tal,
cada programa na memria utilizaria o processador em pequenos intervalos
de tempo. A esse sistema de diviso de tempo do processador chamou-se
time-sharing (tempo compartilhado).
Outro fato importante nessa fase foi o surgimento do sistema operacional UNIX.
Ao nal dessa fase, com a evoluo dos microprocessadores, surgiram os
primeiros microcomputadores, muito mais baratos que qualquer um dos
computadores at ento comercializados.
d) Quarta fase (1981-1990) - Computadores Pessoais
Os mini e superminicomputadores se rmaram no mercado e os microcom-
putadores ganharam um grande impulso. Surgem as estaes de trabalho
(workstations) que, apesar de monousurias, permitem que se executem
diversas tarefas concorrentemente, criando o conceito de multitarefa.
No nal dos anos 80 os computadores tiveram um grande avano, decorrente
de aplicaes que exigiam um enorme volume de clculos. Para acelerar o pro-
cessamento, foram adicionados outros processadores, exigindo dos sistemas
operacionais novos mecanismos de controle e sincronismo. Com o multipro-
cessamento, foi possvel a execuo de mais de um programa simultaneamen-
te, ou at de um mesmo programa por mais de um processador. Foram intro-
duzidos processadores vetoriais e tcnicas de paralelismo de processamento,
fazendo com que os computadores se tornassem ainda mais poderosos.
Duas inovaes de hardware
foram fundamentais para o
surgimento da multiprogramao:
os discos magnticos e as
interrupes de hardware. Os
discos magnticos compem
praticamente todas as mquinas
atuais, com vrios Gigas e at
Terabytes de capacidade de
armazenamento. As interrupes
de hardware so sinais que as
controladoras de dispositivos
enviam CPU para avisar que as
operaes de entrada ou
sada foram nalizadas ou
tiveram algum problema.
Nos sistemas time-sharing, os
usurios possuam um terminal que
podia interagir com o programa em
execuo. Esses usurios tinham
a iluso de possuir a mquina
dedicada execuo de seu
programa. O que no era verdade!
Essa iluso vinha da diviso de
tempo de processamento de CPU
entre os usurios
Existem na internet muitas
informaes sobre o sistema
UNIX, sistema pai de muitos
sistemas operacionais atuais,
como o Linux, Solaris e outros.
Procure o vdeo na internet
chamado de Revoluo dos
Sistemas Operacionais, do
Ingls Revolution OS, que
conta um pouco dessa histria.
Sistemas Operacionais e-Tec Brasil 26
O uso das redes distribudas se difundiu por todo o mundo, permitindo o
acesso a outros sistemas de computao, independentemente de cidade,
pas e, at mesmo, fabricante. Os softwares de rede passaram a estar intima-
mente relacionados com o sistema operacional de cada mquina e surgem
os sistemas operacionais de rede.
e) Quinta fase (1991-2000)
Houve grandes avanos em termos de hardware, software e telecomunica-
es como consequncia da evoluo das aplicaes, que necessitavam cada
vez mais de capacidade de processamento e armazenamento de dados. Sis-
temas especialistas, sistemas multimdia, bancos de dados distribudos, inte-
ligncia articial e redes neurais so apenas alguns exemplos da necessidade
cada vez maior de informao e de capacidade de processamento.
O conceito de processamento distribudo explorado nos sistemas operacio-
nais, de forma que suas funes estejam espalhadas por vrios processado-
res atravs de redes de computadores.
A dcada de 90, foi denitiva para a consolidao dos sistemas opera-
cionais baseados em interfaces grcas (TANENBAUM, 2000, p. 4 a 12).
Atualmente temos as plataformas multicore (vrios ncleos) disponveis em
computadores pessoais e at notebooks, possibilitando cada vez mais a pa-
ralelizao de aplicaes e elevando, em muito, o tempo de execuo dos
programas. Os fanticos pelos jogos de computador que o digam!
Vamos relembrar as principais caractersticas e evolues de cada fase? Faa
um quadro, sumarizando cada uma das cinco fases, para ajud-lo no estu-
do e entendimento da evoluo de hardware necessria para o desenvolvi-
mento dos sistemas operacionais. Para cada fase, anote os acontecimentos
mais importantes.
2.2 Tipos de Sistemas Operacionais
Os tipos de sistemas operacionais e sua evoluo esto relacionados direta-
mente com a evoluo do hardware e das aplicaes por ele suportadas e
podem ser classicados conforme Figura 2.2.
e-Tec Brasil Aula 2 Histrico e classicao 27
Tipos de Sistemas
Operacionais
Sistemas
Monoprogamveis/
Monotarefas
Sistemas
Monoprogamveis/
Multitarefa
Sistemas
com Multiplos
Processadores
Figura 2.2: Tipos de sistemas operacionais
Fonte: Adaptado de Macha, 2004
Considerando o processamento, podemos classicar os sistemas opera-
cionais de acordo com a quantidade de tarefas que podem ser executadas
simultaneamente.
Monoprogramveis ou Monotarefa podem executar apenas um progra-
ma por vez. Para que um usurio possa executar outro programa, dever
aguardar a nalizao do programa corrente. Esta era uma caracterstica dos
primeiros sistemas operacionais que estavam relacionados ao surgimento
dos primeiros computadores na dcada de 60.
Caracterizavam-se por permitir que todos os recursos de hardware cassem
exclusivamente dedicados a um nico programa. Em consequncia, sua prin-
cipal desvantagem residia no fato de que enquanto um programa aguarda-
va por um evento externo, como a digitao de um caractere do teclado,
o processador permanecia ocioso. Alm disso, tanto a memria principal
quanto os recursos de E/S (Entrada e Sada) como impressoras e discos eram
subutilizados, uma vez que todos estariam dedicados a um nico programa
como mostra a Figura 2.3.
Programa/Tarefa
Memria
UCP
Dispositivos de E/S
Figura 2.3: Sistema monoprogramvel ou monotarefa
Fonte: Adaptado de Machado, 2004
Monoprogramveis
ou Monotarefa
Sistemas monoprogramveis ou
monotarefa so aqueles em que
executado, por vez, um nico
programa ou uma nica tarefa.
Sistemas Operacionais e-Tec Brasil 28
Sistemas Multiprogramveis ou Multitarefa: os recursos computacionais so
compartilhados entre os diversos usurios e suas aplicaes. Podemos ob-
servar o compartilhamento de memria e do processador. Nesse caso, o
compartilhamento de tempo no processador distribudo. Assim, o usurio
tem a impresso que vrios processos esto sendo executados simultanea-
mente. Um dos processos ocupa o processador enquanto os outros cam
enleirados, aguardando a sua vez de entrar em execuo. Cabe ao sistema
operacional o papel de gerenciar de forma ordenada e protegida o acesso
concorrente aos recursos disponveis.
Sistemas multiprogramveis ou multitarefa permitem o compartilhamento
dos recursos computacionais entre diversos usurios e aplicaes, permitin-
do sua execuo concorrente.
A vantagem desse tipo de sistema uma melhor utilizao dos recursos dis-
ponveis, o que resulta em menor tempo de resposta das aplicaes. Alm de
um custo reduzido, uma vez que haver o compartilhamento dos recursos
entre as diferentes aplicaes e aumento da produo do usurio.
Graas aos sistemas multiprogramveis possvel editar um documento no
MS Word, navegar na internet, ouvir msica, utilizar os mensageiros instan-
tneos (MSN), tudo ao mesmo tempo!
Sistemas com mltiplos processadores: o sistema operacional distribui as
tarefas entre dois ou mais processadores. A vantagem desse tipo de sistema
permitir que mais de um programa possa ser executado simultaneamente
ou que um mesmo programa seja dividido em vrias partes e executado si-
multaneamente nos vrios processadores, aumentando o desempenho.
Esse tipo de sistema surgiu da necessidade de aplicaes que requeriam um
grande poder computacional, como sistemas de previso do tempo, modela-
gens, simulaes, desenvolvimento aeroespacial, entre outros. Com mltiplos
processadores, possvel reduzir drasticamente o tempo de processamento
destas aplicaes. Inicialmente, as conguraes limitavam-se a poucos pro-
cessadores, mas, atualmente existem sistemas com milhares de processadores.
Sistemas com mltiplos
processadores
Sistemas com mltiplos proces-
sadores caracterizam-se por
possuir duas ou mais CPUs
interligadas e trabalhando de
forma conjunta na soluo
de um problema.
Os sistemas com mltiplos
processadores podem ser
classicados em fortemente
acoplados e fracamente
acoplados, em funo da
comunicao entre CPUs e o
grau de compartilhamento da
memria. Em sistemas fortemente
acoplados, h uma nica memria
principal compartilhada por todos
os processadores, enquanto em
sistemas fracamente acoplados
cada sistema tem sua prpria
memria. Com isso, a taxa de
transferncia entre processadores
em sistemas fortemente
acoplados bem maior que em
sistemas fracamente acoplados.
e-Tec Brasil Aula 2 Histrico e classicao 29
Resumo
Nesta aula voc pde perceber como o desenvolvimento de inovaes de
hardware foi importante para a evoluo dos sistemas operacionais ao longo
dos anos. Viu tambm como podemos classicar os sistemas operacionais
por suas caractersticas principais. Alguns conceitos bsicos importantes fo-
ram vistos e que sero de fundamental relevncia para as aulas seguintes.
Ento se cou alguma dvida, revise esta aula!
Atividades de aprendizagem
1. Por que dizemos que existe uma subutilizao de recursos em sistemas
monoprogramveis?
2. Quais as vantagens dos sistemas multiprogramveis?
3. O que caracteriza o processamento batch? Que aplicaes podem ser
processadas neste tipo de ambiente?
4. Qual a grande diferena entre sistemas fortemente acoplados e fraca-
mente acoplados?
Sistemas Operacionais e-Tec Brasil 30
e-Tec Brasil
Aula 3 Elementos de hardware e
software Parte I
Objetivos
Conhecer a arquitetura bsica de computadores.
Descrever os principais dispositivos de entrada e sada.
Compreender conceitos de software utilitrio.
3.1 Hardware
O hardware do computador constitudo por um conjunto de componentes
interligados: processadores, memria principal, registradores, terminais, im-
pressoras e discos magnticos, alm de outros dispositivos fsicos.
Os componentes fsicos do computador so agrupados em trs subsistemas bsicos:
Unidade Central de Processamento (CPU);
Memria;
Dispositivos de Entrada e Sada.
3.1.1 Unidade Central de Processamento (CPU)
A CPU tem como funo principal unicar todo o sistema, controlando as
funes realizadas em cada unidade funcional. responsvel pela execuo
de todos os programas, que obrigatoriamente devero estar armazenados
na memria principal.
A unidade central de processamento dividida em dois componentes bsicos:
Unidade de controle (UC);
Unidade lgica e aritmtica (ULA);
A UC responsvel por controlar as atividades de todos os componentes
do computador, mediante a emisso de pulsos eltricos (sinais de con-
trole) gerados por um dispositivo chamado clock. Esse controle pode ser
exercido, por exemplo, sobre a gravao de um dado no disco ou a busca
e-Tec Brasil Aula 3 Elementos de hardware e software Parte I 31
de uma instruo na memria.
A ULA responsvel pela realizao de operaes lgicas (testes e compara-
es) e aritmticas (somas e subtraes).
A velocidade de processamento de uma unidade central de processamento
(CPU) determinada pelo nmero de instrues que o processador executa
por unidade de tempo, normalmente em segundos. A unidade de medida
MIPS (milhes de instrues por segundo).
A transmisso de dados entre o receptor e o transmissor controlada por um
sinal de controle chamado clock. Este sinal usado para sincronizar o transmis-
sor com o receptor, isto , para informar ao receptor que um dado est sendo
transmitido. utilizado pela unidade de controle para a execuo das instrues.
O clock um dispositivo localizado na unidade central de processamento,
que gera pulsos eltricos sncronos em um determinado intervalo de tem-
po (sinal de clock). A quantidade de vezes que este pulso se repete em um
segundo dene a frequncia do clock. Toda transmisso paralela utiliza um
sistema de clock. Esses sistemas de clock, entretanto, so independentes,
isto , o sistema de clock usado na transmisso de dados entre o processador
e a memria RAM no o mesmo usado na transmisso de dados entre o
disco rgido e a placa-me, por exemplo.
3.1.2 Memrias
A memria tem por funo armazenar internamente toda informao que
manipulada pelo computador: os programas e os dados. A memria pode ser
classicada quanto sua velocidade (ou tempo) de acesso, capacidade de ar-
mazenamento, custo e volatilidade. Em funo dessas caractersticas, pode-se
estabelecer uma hierarquia de tipos de memrias, conforme Figura 3.1.
Registradores
Memria Cache
Memria Principal
Memria Secundria
Menor custo
e velocidade
de acesso
Maior
capacidade de
armazenamento
Figura 3.1: Comparativo dos diversos tipos de memria
Fonte: Adaptado de Machado, 2004
Atualmente os nossos
processadores conseguem
executar bilhes de instrues
por segundo!
Sistemas Operacionais e-Tec Brasil 32
a) Registradores
So dispositivos de alta velocidade, localizados sicamente na unidade central
de processamento, para armazenamento temporrio de dados. O nmero de
registradores varia em funo da arquitetura de cada processador. Existem
registradores de uso especco (com propsitos especiais) e de uso geral.
Os registradores de uso especco so:
Contador de instrues - responsvel por armazenar o endereo da pr-
xima instruo que a unidade central de processamento dever executar.
Toda vez que uma instruo j est sendo processada o endereo da pr-
xima instruo a ser processada armazenado no contador de instrues;
Apontador de pilha: responsvel por armazenar o endereo de memria
do topo da pilha. Pilha uma estrutura de dados onde o sistema mantm
informaes sobre tarefas que estavam sendo processadas, mas que por
algum motivo tiveram que ser interrompidas;
Registrador de estado: responsvel por armazenar informaes sobre a exe-
cuo do programa (status do programa). A cada instruo executada, o re-
gistrador de estado alterado conforme o resultado gerado pela instruo.
b) Memria cache
uma memria voltil de alta velocidade. Quando o processador faz
referncia a um dado armazenado na memria principal, verifica antes se
este dado no est armazenado na memria cache. Ao encontrar o dado
armazenado na memria cache, o processador no acessa a memria princi-
pal, diminuindo o tempo de processamento.
c) Memria principal
a memria responsvel pelo armazenamento dos programas que esto
sendo executados pela CPU em um certo instante, bem como dos dados
utilizados pelos programas em execuo. Para que um programa possa ser
executado pela CPU necessrio que ele seja previamente armazenado na
memria principal. Existem ainda dois tipos de memria: ROM (read only
memory memria somente leitura) e RAM (random access memory me-
mria de acesso randmico).
Para aumentar o desempenho
no funcionamento das memrias
caches feita a hierarquizao
da cache em mltiplos nveis.
O nvel da cache mais alto
chamado de L1 (Level 1),
com baixa capacidade de
armazenamento e com altssima
velocidade de acesso. O segundo
nvel, L2 (Level 2), possui maior
capacidade de armazenamento,
porm com velocidade de
acesso inferior a L1, e assim
sucessivamente. Quando a CPU
necessita de uma informao da
memria principal, primeiramente
verica a cache L1, caso no ache,
segue para a cache L2, assim
por diante. Se no encontrar em
nenhum dos nveis, busca o dado
na memria principal.
e-Tec Brasil Aula 3 Elementos de hardware e software Parte I 33
Quando usamos o termo memria para um computador, normalmente
estamos nos referindo sua memria RAM. Se um programa que o usurio
pretenda executar no estiver na memria RAM, ento ele deve ser transfe-
rido de um sistema de memria secundrio (como discos rgidos, unidades
de CD-ROM e etc.) para a memria RAM.
A RAM um tipo de circuito eletrnico de memria que permite a leitura e
a escrita de dados em seu interior. S que ela uma memria voltil (como
os registradores e a cache), isto , cortando-se sua alimentao eltrica, apa-
gamos os dados que estavam nela armazenados.
J a caracterstica principal da ROM que o seu contedo no perdido
quando cortamos a sua fonte de alimentao e por isso utilizada para
manter os programas iniciais do computador. Quando ligamos o micro, o
processador no sabe o que fazer; ele precisa executar um programa; este
programa necessrio para dar o boot gravado em uma memria ROM,
localizada na placa-me do computador.
Um programa armazenado em ROM recebe o nome de rmware. Na me-
mria ROM do micro h basicamente trs programas (rmware) principais:
BIOS (Basic Input/Output System, Sistema bsico de Entrada/Sada);
POST (Power On Self Test, Autoteste ao Ligar);
Setup (programa que permite alterar vrios itens da congurao
do computador).
A memria principal composta por unidades de acesso chamadas clulas,
cada uma capaz de armazenar um determinado nmero de bits. Cada clula
tem um endereo, conforme Figura 3.2, que uma referncia posio da c-
lula dentro da memria, como o endereo de uma casa. Quando um programa
deseja ler ou escrever um dado em uma clula, deve primeiro especicar qual o
endereo de memria desejado. O endereo da clula a ser acessada ca arma-
zenado em um registrador denominado registrador de endereo de memria.
Sistemas Operacionais e-Tec Brasil 34
0
1
2
N
Endereos
Clulas
Instruo
ou Dado
Figura 3.2: Clulas de memria e seus endereos
Fonte: Adaptado de Machado, 2004
O nmero de clulas endereadas na memria principal limitado pelo ta-
manho do registrador de endereo. No caso de o registrador possuir n bits,
a memria poder enderear 2
n
clulas.
d) Memria secundria
Memria secundria um termo genrico para designar diversos compo-
nentes que permitem gravar e ler dados permanentes. O seu acesso lento,
se comparada com as memrias cache ou principal, porm relativamente
apresentam custo mais baixo e capacidade de armazenamento superior.
Exemplos de memria secundria so as tas magnticas, discos rgidos
(HDs), CDs, DVDs, etc.
3.1.3 Dispositivos de entrada e sada
Permitem a comunicao entre o computador e o mundo externo. Alguns
dispositivos servem para a comunicao homem-mquina, como teclados,
monitores de vdeo, impressoras, plotters, entre outros. A implementao
de interfaces mais amigveis permite cada vez mais que pessoas sem co-
nhecimento especco sobre informtica possam utilizar o computador. So
alguns exemplos desses tipos de dispositivos: Scanner, caneta tica, mouse,
dispositivos sensveis voz humana, e etc.
3.1.4 Barramento
A CPU, a memria principal e os dispositivos de E/S so interligados atravs
de linhas de comunicao denominadas barramentos, barras ou vias. Um
Clulas de memria
Clulas de memria so unidades
de acesso da memria principal.
Alm das memrias RAM e ROM
descritas no texto, temos ainda
a PROM (memria programvel
somente de leitura) que pode
ser gravada pelo usurio uma
nica vez, a EPROM (memria
programvel e apagvel somente
de leitura) que pode ser gravada
ou regravada por meio de um
equipamento que fornece as
voltagens adequadas em cada
pino (para apagar os dados
deve-se utilizar raios ultravioleta
no chip), e por ltimo temos a
EEPROM (memria programvel
e apagvel eletronicamente
somente de leitura), que pode ser
gravada, apagada ou regravada
utilizando um equipamento que
fornece as voltagens adequadas
em cada pino.
e-Tec Brasil Aula 3 Elementos de hardware e software Parte I 35
barramento um conjunto de os paralelos (linhas de comunicao), por
onde trafegam informaes, como dados, endereos ou sinais de controle.
Um esquema grco de um barramento mostrado na Figura 3.3.
CPU
Memria
Dispositivo E/S
Fluxo de Dados
Fluxo de Controle
Unidade
Lgica e
Aritmtica
Unidade de
Controle
Registradores
Figura 3.3: Esquema grco dos barramentos
Fonte: Adaptado de Machado, 2004
O barramento pode ser classicado como unidirecional (transmisso em
um s sentido) ou bidirecional (transmisso em ambos os sentidos). Existem
trs tipos de barramentos, que se diferenciam uns dos outros de acordo
com o que transportam:
Barramento de dados: transmite informaes entre a memria princi-
pal e a unidade central de processamento;
Barramento de endereos: utilizado pela unidade central de processa-
mento para especicar o endereo da clula de memria que ser acessada;
Barramento de controle: por onde a unidade central de processamen-
to envia os pulsos de controle relativos s operaes de leitura e gravao.
3.1.5 Pipelining
O conceito de processamento pipeline a diviso de uma tarefa em uma se-
quncia de subtarefas. O processador, por meio de suas vrias unidades funcio-
nais pipeline, funciona de forma a permitir que, enquanto uma instruo se en-
contra na fase de execuo, uma outra instruo possa estar na fase de busca.
A tcnica de pipelining pode ser empregada em sistemas com um ou mais
Sistemas Operacionais e-Tec Brasil 36
processadores, em diversos nveis, e tem sido a tcnica de paralelismo mais
utilizada para maior desempenho dos sistemas de computadores.
Podemos fazer a comparao de um pipelining com um motor de carro de
quatro tempos e vrios cilindros. Enquanto um cilindro est na fase de ali-
mentao, outro est na fase de compresso, outro na de exploso e assim
por diante. Isto aumenta bastante a ecincia do motor.
3.2 Software
Na Figura 1.4 vimos trs camadas/nveis de software: aplicativos, utilitrios e
sistema operacional. Os software ou programas executados pelos usurios
so atualmente chamados, atualmente, de aplicativos. Antigamente se cha-
mavam simplesmente programas. Quase tudo que o usurio consegue fazer
utilizando o computador necessita de um aplicativo. Esses programas podem
ser, por exemplo, um editor de textos, uma planilha ou um programa de im-
posto de renda, de controle de estoques ou de contas a receber.
Antigamente havia uma distino mais ntida entre os aplicativos e os utilit-
rios, pois havia um personagem a mais no cenrio: o operador do computa-
dor. Este executava algumas atividades especcas, como copiar de ta para
disco e vice-versa ou operar as impressoras. Para executar essas atividades o
operador precisava de uma srie de programas, como, por exemplo, um pro-
grama para localizar um arquivo no computador. A maioria dos programas
requeridos pelo operador era chamada de utilitrios.
Hoje em dia continua a existir um conjunto de programas, utilizados como
interface entre o usurio e o hardware. O termo utilitrio , assim, uma refe-
rncia a softwares relacionados com servios do sistema operacional, como
os compiladores, linkers, depuradores e outros.
Os software aplicativos podem ser identicados como aqueles que esto
mais prximos do usurio comum, como os navegadores, editores de texto,
jogos, etc. J os software utilitrios so aqueles que fazem a intermediao
entre os aplicativos e o ncleo do sistema operacional, possuindo funes
mais especcas e geralmente mais restritas, como ligadores, depuradores,
compiladores, etc.
Dentre os software utilitrios podemos destacar alguns que do apoio
programao de computadores: tradutores, compiladores, montadores, in-
e-Tec Brasil Aula 3 Elementos de hardware e software Parte I 37
terpretadores, ligadores, carregadores, depuradores. Nas prximas sees
estaremos abordando esses utilitrios com mais detalhes.
3.2.1 Tradutores, compiladores e montadores
Com o surgimento das primeiras linguagens de montagem (Assembly) e as
linguagens de alto nvel, o programador passou a se preocupar menos com
aspectos de hardware e a escrever em uma linguagem mais prxima da
linguagem humana.
Apesar das vantagens proporcionadas pelas linguagens de montagem e de alto
nvel, que propiciaram um aumento enorme na produtividade dos programado-
res, os programas no esto prontos para serem executados diretamente pela
CPU. Eles devero passar por uma etapa de converso, quando a codicao
do programa traduzida para cdigo de mquina. essa a funo do tradutor.
O utilitrio tradutor tem a funo de converter todo o cdigo fonte escrito
em linguagem de alto nvel para cdigo de mquina.
O tradutor, pelo tipo de linguagem de programao utilizada, pode ser cha-
mado de montador ou compilador:
Programa fonte Programa objeto Tradutor
Montador
Linguagem
de Montagem
Mdulo objeto
Compilador Mdulo objeto
Linguagem
de Alto Nvel
Figura 3.4: Representao das diferenas entre o tradutor, montador e compilador
Fonte: Adaptado de Machado, 2004
3.2.2. Interpretador
Assim chamado um tradutor que no gera o mdulo objeto. A partir de um
programa fonte, escrito em linguagem de alto nvel, o interpretador, no momen-
to da execuo do programa, traduz cada instruo e a executa em seguida.
Sua desvantagem o tempo gasto na traduo das instrues de um pro-
grama toda vez que este for executado, j que no existe a gerao de
um cdigo executvel.
A denominao montador ocorre
quando gerado o mdulo
objeto (a linguagem de mquina)
a partir de uma linguagem de
montagem (assembler). A
denominao compilador dada
ao utilitrio responsvel por
gerar, a partir de um programa
escrito em linguagem de alto
nvel (Cobol, C, Delphi, etc.),
um programa em linguagem de
mquina (mdulo objeto)
Sistemas Operacionais e-Tec Brasil 38
Alguns exemplos de linguagens interpretadas so o Basic e o Perl.
3.2.3. Linker
O linker (ligador) o utilitrio responsvel por gerar, a partir de um ou mais
mdulos objeto, um nico programa executvel, conforme Figura 3.5. Sua
funo resolver todas as referncias simblicas existentes entre os mdulos
- objeto, reservar memria para a execuo do programa e determinar uma
regio da memria onde o programa ser carregado para sua execuo.
Mdulo objeto
.
.
.
Mdulo objeto
Mdulo objeto
Linker
Programa
Executvel
Figura 3.5: Representao do papel do linker
Fonte: Adaptado de Machado, 2004
Em ambientes multiprogramveis esse tipo de alocao xa feita pelo linker
invivel porque neste caso a memria compartilhada entre diversos pro-
gramas: pouco provvel que no momento em que o sistema carrega um
programa, sua rea de memria que foi predeterminada esteja disponvel. A
soluo para isso permitir que um programa possa ser executado em qual-
quer regio disponvel da memria, durante a sua carga (cdigo relocvel).
Esse tipo de relocao no realizado pelo linker, e sim por outro utilitrio,
chamado loader, responsvel por carregar os programas na memria.
3.2.4. Loader
O loader (carregador) o utilitrio responsvel por colocar sicamente na mem-
ria principal um programa para sua execuo. Pode permitir que um programa
seja carregado em regies diferentes toda vez que for trazido para a memria.
Quando o loader carrega um programa para memria principal, ele alo-
ca uma rea de cdigo, uma rea de dados e uma rea de pilha. A rea
de cdigo armazena o programa executvel, a rea de dados armazena
as variveis e constantes utilizadas no programa e a rea de pilha armaze-
na os endereos de retorno das funes ou procedimentos chamados du-
Os IDEs (Ambientes Integrados
de Desenvolvimento), como
o Dev C++, executam essas
funes (de compilador e linker
e at a carga do executvel)
de uma vez, quando voc
aperta o F9. Voc no percebe
quando executada cada uma
delas, embora sejam distintas.
Voc s consegue ver, na pasta
onde voc est trabalhando,
os programas fonte (com
terminao .c ou .cpp) e o
executvel (terminao .exe);
o mdulo objeto intermedirio
(criado durante a compilao)
voc no v mais.
e-Tec Brasil Aula 3 Elementos de hardware e software Parte I 39
rante a execuo do programa. O funcionamento do carregador depende
do cdigo gerado pelo linker e, de acordo com este, pode ser classicado
como absoluto ou relocvel:
Loader absoluto - o loader s necessita conhecer o endereo de
memria inicial e o tamanho do mdulo para realizar o carregamento.
Ento, o loader transfere o programa da memria secundria para a me-
mria principal e inicia sua execuo;
Loader relocvel - o programa pode ser carregado em qualquer posi-
o de memria e o loader responsvel pela relocao no momento
do carregamento.
O processo completo de compilao, link-edio e carga de um programa
mostrado na Figura 3.6.
Ligao
Dinmica
Tempo
de Carga
Tempo de
Execuo
Mdulo de
Carga
Programa-fonte
Programa-fonte
Compilador
ou Montador
Link edio
Biblioteca
do Sistema
Carregador
Biblioteca do
Sistema Carregada
Dinamicamente
Imagem
Binria na
Memria
Outros
Mdulos
Objeto
Figura 3.6: As vrias etapas do desenvolvimento e processamento de um programa
Fonte: Adaptado de Silberschatz, Galvin e Gagne, 2000
Sistemas Operacionais e-Tec Brasil 40
3.2.5. Depurador
O desenvolvimento de programas est sujeito a erros de lgica, indepen-
dentemente da metodologia ou linguagem utilizadas pelo programador. O
depurador o utilitrio que permite ao usurio acompanhar e controlar a
execuo de um programa a m de detectar erros na sua estrutura. O depu-
rador ajuda a detectar os erros, mas no os corrige. O depurador geralmente
oferece ao usurio os seguintes recursos:
acompanhar a execuo de um programa instruo por instruo;
possibilitar a alterao e a visualizao do contedo de variveis;
colocar pontos de parada dentro do programa, de forma que, durante a
execuo, o programa pare nos pontos determinados;
especicar em forma de envio de mensagem, toda vez que o contedo
de uma varivel for modicado.
Resumo
Nesta aula voc pde estudar e identicar os elementos bsicos de uma ar-
quitetura clssica de computadores. Pode compreender as funes e carac-
tersticas de cada elemento de hardware. Nesta aula, zemos tambm um
apanhado inicial sobre softwares utilitrios que, mesmo sem percebermos
muitas vezes, nos ajudam e muito em tarefas do dia a dia.
Atividades de aprendizagem
1. O que so memrias volteis e no volteis?
2. Quais os benefcios de uma arquitetura de memria cache com mltiplos
nveis?
3. Diferencie as funes bsicas dos dispositivos de E/S.
4. Como a tcnica de pipelining melhora o desempenho dos sistemas
computacionais?
5. Por que o cdigo-objeto gerado pelo tradutor ainda no pode ser
executado?
6. Por que a execuo de programas interpretados ainda mais lenta que a
de programas compilados?
Esses recursos de depurao
de programas tambm esto
presentes em IDEs, geralmente
na opo Debug.
e-Tec Brasil Aula 3 Elementos de hardware e software Parte I 41
e-Tec Brasil
Aula 4 Elementos de hardware e
software Parte II
Objetivos
Conhecer conceitos mais especcos sobre programas de sistema.
Analisar o mecanismo de interrupo na concorrncia entre pro-
cessos.
Descrever as operaes de entrada e sada.
Conhecer as caractersticas dos sistemas em lote e sistemas de
tempo compartilhado.
Compreender a funcionalidade de alguns servios do sistema ope-
racional.
Analisar as caractersticas bsicas de uma arquitetura de sistema
operacional.
4.1 Linguagem de controle
Denominada, tambm de linguagem de comando, a forma mais direta de
um usurio se comunicar com o sistema operacional (SO). oferecida por
todos os SO para que, atravs de comandos simples, o usurio possa ter
acesso a rotinas especcas do sistema.
Os comandos, quando digitados (ou executados) pelo usurio, so interpre-
tados por um programa denominado interpretador de comandos ou shell. A
linha de comando reconhecida, o shell verica sua sintaxe, envia mensa-
gens de erro e faz chamadas de rotinas dos sistemas. O usurio dispe assim,
de uma interface interativa direta com o sistema operacional, para realizar
tarefas bsicas como acessar um arquivo em disco ou consultar um diretrio.
As linguagens de controle evoluram no sentido de permitir uma interao
mais amigvel, utilizando interfaces grcas, colocando os programas em
uso em janelas e utilizando cones para comunicao com o usurio. Quan-
do voc cria uma pasta, renomeia ou apaga um arquivo, clica em cima de
e-Tec Brasil Aula 4 Elementos de hardware e software Parte II 43
uma planilha ou texto para edit-los, voc est interagindo com o shell e
utilizando recursos dessa linguagem de comando.
4.2 Programas de sistema ou utilitrios
Os utilitrios tambm so chamados comumente programas de sistema. Os
SO mais modernos vm aumentando a coleo desses tipos de programas.
Voc deve lembrar que h pouco tempo atrs voc precisava de um progra-
ma especco para gravar arquivos em CDs e DVDs e para assistir um lme.
Hoje estas funes esto embutidas no SO.
Os programas de sistema fornecem um ambiente conveniente para a execu-
o de uma srie de tarefas de uso do computador ou de perifricos espec-
cos. Alguns deles so simplesmente interfaces de usurio s chamadas ao
sistema; outros so consideravelmente mais complexos.
Podem ser divididos em categorias tais como:
a) Gerncia de arquivos - criam, excluem, copiam, renomeiam, imprimem,
listam e geralmente manipulam arquivos e diretrios. Precisam trabalhar
com diversos tipos de mdia: CD, DVD, HD, disquete, pendrive, etc;
b) Informaes de status - simplesmente pedem ao sistema informaes
relativas ao status da mquina ou de perifricos: data, hora, quantidade
de memria ou espao em disco disponvel, nmero de usurios conec-
tados, nmero de documentos aguardando impresso e outras informa-
es semelhantes;
c) Modicao de arquivo - vrios editores de texto podem estar dispo-
nveis para criar e modicar o contedo dos arquivos armazenados em
disco, ta ou outro tipo de mdia;
d) Comunicaes - esses programas oferecem o mecanismo para criar co-
nexes virtuais entre processos, usurios e diferentes sistemas de compu-
tao. Permitem aos usurios enviar mensagens s telas uns dos outros,
navegar pelas pginas da web, efetuar logon remotamente ou transferir
arquivos de uma mquina para outra;
e) Spooling - permitem manipular a la de impresso de documentos em
uma ou mais impressoras ligadas ao sistema.
Embora todos ou quase todos
os SO modernos usem uma
interface grca para interagir
com o usurio, o prompt da linha
de comandos tambm continua
a existir.
medida que novos perifricos
se popularizam e novas funes
so atribudas ao computador,
essa lista de utilitrios tende
a crescer. Alm disto, uma
funo antes exercida por um
utilitrio pode ser incorporada
denitivamente ao SO, como
citamos o exemplo da leitura e
gravao de CD e DVD.
Sistemas Operacionais e-Tec Brasil 44
4.3. Linguagem de mquina
Todos os programas, para serem processados, precisam estar em linguagem
de mquina. Essa a linguagem que o processador realmente consegue
entender. Um programa em linguagem de mquina totalmente codicado
em formato binrio, o que torna praticamente impossvel o entendimento
pelo usurio.
O programa em linguagem de mquina pode ser diretamente processado pela
unidade central de processamento (CPU) no requerendo qualquer tipo de
traduo ou relocao. Um programa em linguagem de mquina no pode
ser executado em outra mquina de modelo diferente, nem em outro SO.
Cada processador possui um conjunto nico de instrues de mquina pre-
viamente denido pelo fabricante. Estas instrues especicam detalhes
como registradores, modos de endereamento de memria, tipo de dados
que caracterizam um processador e suas potencialidades. Por sua vez, cada
SO tem um grupo de instrues especco, chamada API Application Pro-
gramIinterface que os compiladores usam para traduzir as instrues escri-
tas na linguagem de alto nvel para a linguagem entendida pelo linker. Isso
faz com que um programa compilado em Linux no funcione com Windows;
ou que um programa compilado em um PC no funcione em um Apple.
4.4. Mecanismo de interrupo
Os sistemas multiprogramveis tornaram mais eciente a utilizao dos re-
cursos computacionais, por permitirem a execuo simultnea (concorrente)
de vrios programas, permitindo que, quando um programa estiver realizan-
do uma operao de E/S, outros possam utilizar o processador. Essa possi-
bilidade do processador executar instrues em paralelo com as operaes
de E/S permitiu que diversas tarefas fossem executadas ao mesmo tempo.
Outro aspecto importante que devemos ressaltar a melhor utilizao da
memria principal, que antes, em sistemas monotarefa, era subutilizada,
agora pode conter vrios programas residentes concorrendo pela utilizao
do processador.
Os sistemas operacionais podem ser vistos como um conjunto de rotinas
que executam concorrentemente de forma ordenada. A possibilidade de o
processador executar instrues em paralelo com operaes de E/S permite
que diversas tarefas sejam executadas concorrentemente.
Um exemplo de tentativa de
transformar os programas
independentes do SO e do
modelo do equipamento a
plataforma Java. Pesquise mais
sobre o assunto no site
http://www.java.com/pt_BR
e-Tec Brasil Aula 4 Elementos de hardware e software Parte II 45
Durante a execuo de um programa, alguns eventos inesperados podem
ocorrer, interrompendo o seu uxo normal de execuo e ocasionando um
desvio forado. Estes eventos so conhecidos por interrupo ou exceo e
podem ser consequncia da sinalizao de algum dispositivo de hardware
externo ao processador ou da execuo de instrues do prprio programa.
Sempre que ocorre uma interrupo, o sistema operacional chamado para
executar uma rotina de tratamento apropriada. Antes de realizar o desvio, o
sistema operacional deve salvar o estado do processo interrompido, para que
este possa continuar do ponto onde parou, quando voltar a ser executado.
Um exemplo de interrupo ocorre quando um dispositivo avisa ao processa-
dor que alguma operao de E/S j est completa. Nesse caso, o processador
deve interromper o programa para tratar o trmino da operao.
Quando isso ocorre, o programa que est em execuo interrompido e o
controle desviado para uma rotina responsvel por tratar o evento ocorrido,
denominada de rotina de tratamento de interrupo. Para que o programa
interrompido possa voltar a ser executado posteriormente, se faz necessrio
que, no momento da interrupo, um conjunto de informaes sobre sua
execuo seja preservado. Essas informaes consistem no contedo dos
registradores, que devero ser restaurados para que seja dada continuidade
execuo do programa, conforme a Figura 4.1.
Salva contedo
dos registradores na
pilha de controle
Identica a
origem do evento
Obtm o endereo
da rotina de
tratamento
Restaura o contedo
dos registradores
Rotina de
tratamento
Programa
Interrupo
ou exceo
Figura 4.1: Mecanismo de interrupo
Fonte: Adaptado de Machado, 2004
Para cada tipo de interrupo existe uma rotina de tratamento associada,
Sistemas Operacionais e-Tec Brasil 46
para a qual o uxo de execuo dever ser desviado. A identicao do tipo de
evento ocorrido fundamental para determinar o endereo da rotina de trata-
mento. No momento da interrupo, o processador dever saber para qual roti-
na de tratamento dever encaminhar o uxo em execuo que foi interrompido
Os eventos que causam a interrupo podem ser classicados como sncro-
nos ou assncronos. Um evento classicado como assncrono, independen-
te dos dados de entrada e das instrues do programa, ou seja, pode ocorrer
em qualquer ponto do programa. Essas interrupes no esto relacionadas
com a instruo do programa corrente, so eventos imprevisveis, podem
ocorrer mltiplas vezes (exemplo: interrupo gerada pelo mouse, teclado,
perifricos, etc.). Isto possibilita a ocorrncia de mltiplas interrupes si-
multneas, o que no seria interessante para nosso programa em execuo.
Uma maneira de evitar essa situao a rotina de tratamento inibir as de-
mais interrupes. No caso, na ocorrncia de outras interrupes durante a
execuo da rotina de tratamento, elas sero ignoradas, ou seja, no rece-
bero tratamento. Em outras palavras, elas s sero tratadas quando a rotina
de tratamento da interrupo atual terminar. Interrupes com a caracters-
tica de poder ser desabilitada so chamadas de interrupes mascarveis.
As interrupes que no podem ser desabilitadas so chamadas no-masca-
rveis. Alguns exemplos de eventos que geram interrupes no-masca-
rveis so: pressionar o boto reset, falha no hardware, etc.
J um evento classicado como sncrono, resultado direto da execuo do
programa corrente. Tais eventos so previsveis, e se um mesmo programa
for executado vrias vezes com a mesma entrada de dados, os eventos sn-
cronos ocorrero sempre nos mesmos pontos (instrues) do programa.
4.5. Operaes de Entrada e Sada (E/S)
Nos primeiros sistemas de computao, os perifricos eram controlados pelo
processador por meio de instrues especiais, chamadas instrues de E/S.
Essas instrues continham detalhes especcos de cada perifrico. Devido
a isso, esse modelo criava uma forte dependncia entre o processador e os
dispositivos de E/S.
Para evitar esse problema, criou-se o controlador ou interface (Figura 4.2),
que permitiu ao processador operar de maneira independente dos disposi-
tivos de E/S. Com esse novo elemento, o processador no precisava mais se
interrupes mascarveis
so aquelas com a caracterstica
de poderem ser desabilitadas.
Interrupes no-mas-
carveis
so aquelas com a caracterstica
de poderem ser desabilitadas.
e-Tec Brasil Aula 4 Elementos de hardware e software Parte II 47
comunicar diretamente com os perifricos, nem conhecer detalhes de ope-
rao especcos de cada perifrico. Com isso, foram muito simplicadas as
instrues de E/S do processador.
UCP
Memria
Principal
Controlador
Dispositivos de E/S
Figura 4.2: Controlador dos dispositivos de E/S
Fonte: Adaptado de Machado, 2004
Por meio do controlador, o processador gerenciava as operaes de E/S, sem
se preocupar com os detalhes de implementao de cada dispositivo. Com
esse novo elemento, o processador no mais se comunicava diretamente
com os perifricos, mas sim, pelo controlador.
E/S programada - esse foi um dos primeiros modelos de operao de
E/S. Aps o processador iniciar a transferncia de dados, cava consul-
tando o estado do perifrico sucessivamente, at que a operao de E/S
chegasse ao m, mantendo o processador ocupado at o trmino da E/S
(espera ocupada, do ingls busy wait). Como o processador executa uma
instruo muito mais rpida que uma operao de E/S realizada pelo con-
trolador, havia um enorme desperdcio de tempo do processador;
E/S por polling - em relao ao modelo anterior, a evoluo ocorreu
ao permitir que algumas instrues pudessem ser executadas entre su-
cessivas consultas sobre o estado de uma operao de E/S. Com isso
introduziu-se certo grau de paralelismo. Isso porque permitiu que outros
programas pudessem ser executados, enquanto uma operao de E/S era
realizada, mas, em determinados intervalos de tempo o sistema opera-
cional deveria interromp-los para vericar o estado da operao de E/S.
Caso houvesse vrias operaes de E/S pendentes, o processamento seria
interrompido diversas vezes para a vericao do estado das operaes;
Sistemas Operacionais e-Tec Brasil 48
E/S controlada por interrupo - ao invs de o sistema car periodica-
mente testando o estado das operaes pendentes, o prprio controlador
interrompe o processador para informar o trmino da operao. Cabe ao
controlador a responsabilidade de controlar as operaes de E/S. Quando
essa operao termina, o controlador interrompe o processador para que
este realize a transferncia de dados para a memria principal. Aps essa
transferncia, o processador est livre para executar outros programas.
Apesar disso, se houver a transferncia de um grande volume de dados,
o processador ser interrompido diversas vezes, reduzindo o seu desem-
penho. Para solucionar esse problema, foi implementada a tcnica de
transferncia de dados chamada DMA (Direct Memory Access);
Acesso Direto Memria (DMA) - a tcnica DMA permite que o con-
trolador de E/S transmita um bloco de dados entre os dispositivos de
E/S e a memria principal. O controlador acessa a memria diretamente,
sem a necessidade da interveno do processador, exceto no incio e
no nal da transferncia. O controlador realiza a operao de E/S, bem
como a transferncia de dados entre a memria e o dispositivo de E/S, e,
somente ao nal, interrompe o processador para avisar que a operao
foi concluda. A rea de memria utilizada pelo controlador na tcnica de
DMA chamada buffer de entrada/sada.
Faa as seis atividades a seguir:
1. Porque o uso do linker se tornou invivel em sistemas multiprogram-
veis? E qual seria a soluo adotada para o problema gerado?
2. Qual a funo da linguagem de controle?
3. Por que o mecanismo de interrupo fundamental para a implementa-
o da multiprogramao?
4. Explique o mecanismo de funcionamento das interrupes.
5. Pesquise sobre o termo traps em sistemas operacionais e em que situa-
es elas ocorrem.
6. O que DMA e qual a vantagem desta tcnica?
Um sistema operacional fornece o ambiente no qual os programas so exe-
e-Tec Brasil Aula 4 Elementos de hardware e software Parte II 49
cutados. Esse ambiente formado por um conjunto de rotinas que oferecem
servios aos usurios, s aplicaes e ao prprio sistema. A esse conjunto
de rotinas denominamos kernel. A Figura 4.3 nos mostra em que nvel se
encontra o kernel em um sistema computacional. O kernel considerado o
ncleo do sistema operacional.
Aplicativos
Utilitrios
Ncleo do
Sistema Operacional
Hardware
Figura 4.3: Posicionamento do ncleo do sistema operacional em um sistema
computacional
Fonte: Adaptado de Machado, 2004
As principais funes do ncleo encontradas nos sistemas operacionais so:
Tratamento de interrupes e excees;
Criao e eliminao de processos e threads;
Sincronizao e comunicao entre processos e threads;
Gerncia de memria;
Gerncia do sistema de arquivos;
Gerncia dos dispositivos de entrada e sada;
Suporte a redes locais e distribudas;
Contabilizao do uso do sistema;
Auditoria e segurana do sistema.
Sistemas Operacionais e-Tec Brasil 50
Podemos destacar como funes principais do kernel do sistema operacional
as quatro gerncias: gerncia de processos, gerncia de memria, gerncia
de entrada e sada, e gerncia de sistema de arquivos.
Existem vrios pontos de vista pelos quais poderamos analisar um sistema
operacional:
Examinando os servios oferecidos aos usurios;
Analisando a interface disponibilizada aos usurios e programadores;
Desmontando o sistema em seus componentes mais bsicos.
Procure enumerar as atividades que voc realiza e recursos que voc costu-
ma utilizar em computadores no seu dia a dia, para depois comparar com os
servios prestados por um sistema operacional, listados ao nal desta aula.
4.6. Sistemas em lote
Os primeiros computadores eram mquinas dependentes de um operador.
Os dispositivos de entrada comuns eram leitoras de cartes e unidades de
ta, e os de sada eram impressoras, unidades de ta e perfuradoras de car-
tes. O usurio no interagia diretamente com o computador. Em vez disso,
ele preparava uma tarefa (job), que consistia no programa, dados e algumas
informaes de controle sobre a natureza da tarefa (cartes de controle) e
o entregava ao operador do computador. Algum tempo depois o resultado
do programa podia ser obtido como uma listagem, uma ta, novo pacote
de cartes ou uma listagem dos contedos dos registradores no caso de erro
do programa.
O sistema operacional nesses primeiros computadores era bem simples. Sua
principal tarefa era transferir controle automaticamente de uma tarefa para
a prxima tarefa. O sistema operacional estava sempre residente na memria
e executava uma tarefa de cada vez.
Para acelerar o processamento, os operadores reuniam as tarefas em lotes
com necessidades semelhantes e os executavam no computador como um
grupo. Assim os programadores deixavam seus programas com o operador e
o operador classicava os programas em lotes com requisitos semelhantes.
medida que o computador cava disponvel, executava outro lote ou batch.
O monitor residente foi
considerado o primeiro sistema
operacional (rudimentar).
Era um programa que cava
permanentemente em memria
e sua funo era transferir a
execuo de um job para outro.
e-Tec Brasil Aula 4 Elementos de hardware e software Parte II 51
A sada de cada tarefa seria enviada de volta ao programador apropriado.
Neste ambiente de execuo, a CPU cava muitas vezes ociosa porque
as velocidades dos dispositivos mecnicos de E/S (leitores de carto)
eram intrinsecamente menores do que as dos dispositivos eletrnicos
(CPU). Com o tempo, claro, melhorias na tecnologia e a introduo
de discos resultaram em dispositivos de E/S mais rpidos (Silberschatz,
Galvin e Gagne, 2000. p. 5).
4.7. Escalonamento de tarefas e multipro-
gramao
A introduo da tecnologia de disco permitiu que o sistema operacional
mantivesse todas as tarefas em um disco, em vez de em uma leitora de car-
tes serial. Surge ento o conceito de escalonamento de tarefas e posterior-
mente de multiprogramao.
A multiprogramao aumenta a utilizao da CPU, organizando as tarefas
de forma que a CPU esteja sempre ocupada. Assim, o SO mantm vrias
tarefas na memria simultaneamente, todas competindo pelos recursos do
computador, conforme Figura 4.4.
Programa/Tarefa Programa/Tarefa
Programa/Tarefa Programa/Tarefa
Memria UCP
Dispositivos de E/S
Figura 4.4: Sistema multiprogramvel ou multitarefa
Fonte: Adaptado de Machado, 2004
O sistema operacional escolhe e comea a executar a tarefa carregada na
memria. Em alguns momentos a tarefa que est em execuo dever espe-
No muito comum vermos
tarefas sendo executadas em
batch. Entretanto, existem
alguns procedimentos que
guardam bastante semelhana:
os processos de backup e
recuperao de bancos de
dados, bem como o processo
de inicializao do Windows.
Em ambos os casos uma srie
de tarefas so executadas de
forma automtica, em sequncia
e de forma mais ou menos
independente da vontade do
usurio.
Sistemas Operacionais e-Tec Brasil 52
rar a concluso de alguma outra tarefa, como uma operao de E/S, que
muito mais lenta. Em um sistema operacional no multiprogramado, a CPU
caria ociosa. Em um sistema de multiprogramao, o sistema operacional
simplesmente passa para outra tarefa e a executa. Quando esta segunda
tarefa precisar esperar, a CPU passar para outra tarefa e assim por diante.
Por m, a primeira tarefa terminar a sua operao de E/S e ter a CPU de
volta. Neste esquema, a CPU nunca ca ociosa.
Todos os jobs, ou tarefas, que entram no sistema so mantidos num pool
de jobs (espcie de la). Esse pool de jobs consiste em todos os processos
residentes no disco aguardando alocao da memria principal (espao na
memria). O nmero de jobs que pode ser mantido simultaneamente na
memria principal geralmente muito menor do que o nmero de jobs que
pode estar no pool de jobs. Se vrios jobs estiverem prontos para serem car-
regados na memria e se no houver espao suciente para todos, o sistema
operacional dever fazer a escolha. Essa tomada de deciso chamada de
escalonamento de tarefas ou de jobs.
Os sistemas em batch multiprogramados forneciam um ambiente no qual os
vrios recursos do sistema, como por exemplo a CPU, memria e dispositivos
perifricos, eram utilizados de forma ecaz, mas no permitiam a interao
do usurio com o sistema de computao. Tempo compartilhado (time sha-
ring) ou multitarefa uma extenso da multiprogramao: a CPU executa
vrios jobs alternando entre eles (multiprogramao), mas as trocas ocorrem
com tanta frequncia que o usurio pode interagir com seu programa como
se tivesse uma mquina exclusiva para ele. Assim se permite a comunicao
direta entre o usurio e o sistema. Devido a esse tipo de interao, os siste-
mas de tempo compartilhado tambm caram conhecidos como sistemas
on-line ou de tempo real (real time). O usurio passa instrues ao sistema
operacional ou a um programa diretamente, usando o teclado ou um mou-
se, e espera por resultados imediatos. O tempo de resposta deve ser curto.
Um sistema operacional de tempo compartilhado permite que muitos usu-
rios compartilhem o computador ao mesmo tempo. Como cada ao ou
comando em um sistema de tempo compartilhado tende a ser curto, apenas
um pequeno tempo de CPU necessrio para cada usurio. Como o sistema
alterna rapidamente de um usurio para outro, cada usurio tem a impres-
so de que todo o sistema de computao est dedicado a ele, enquanto,
na verdade, o computador est sendo compartilhado por muitos usurios.
Escalonamento de tarefas
consiste em selecionar uma
tarefa, de um conjunto de
tarefas aptas para execuo, que
ser a prxima a ser executada
pela CPU
e-Tec Brasil Aula 4 Elementos de hardware e software Parte II 53
Nos sistemas time sharing os usurios podem interagir com o programa em
execuo, muitas vezes atravs de terminais, tendo a iluso de possuir a m-
quina dedicada a execuo de seu programa. Porm, o ocorre na verdade,
a diviso de tempo de processamento entre os usurios.
4.8. Servios de Sistemas Operacionais
Um outro enfoque que pode ser dado ao estudo dos sistemas operacionais
encarar o SO como um prestador de servios: um sistema operacional fornece
um ambiente para a execuo de programas, ou seja: fornece certos servios a
programas e aos usurios destes programas. Este enfoque interessante, pois,
frequentemente, voc ver na literatura abordagens das funes ou estrutura
do SO como servios. Estes servios podem ser assim classicados:
a) Execuo de programa - o sistema deve ser capaz de carregar um pro-
grama na memria e executar esse programa. Tambm deve ser capaz de
encerrar a sua execuo, quer de forma normal ou anormal (indicando erro);
b) Operao de E/S - um programa em execuo pode precisar de E/S.
Essa operao de E/S pode envolver um arquivo ou dispositivo de E/S.
Portanto, o sistema operacional deve fornecer os meios para realizar as
operaes de E/S;
c) Manipulao do sistema de arquivos - os programas precisam ler e
gravar arquivos, criar e excluir arquivos por nome; essas atividades devem
ser gerenciadas pelo sistema operacional;
d) Comunicao - existem muitas circunstncias nas quais um processo
precisa trocar informaes com outro processo. Essa comunicao entre
processos pode ocorrer com processos em um mesmo computador ou
entre processos que esto executando em diferentes sistemas de compu-
tao ligados por uma rede. As comunicaes podem ser implementadas
via memria compartilhada ou pela tcnica de troca de mensagens, na
qual pacotes de informaes so movidos entre processos pelo sistema
operacional;
e) Deteco de erros - O sistema operacional precisa estar constantemente
ciente de possveis erros. Os erros podem ocorrer no hardware da CPU e da
memria, em dispositivos de E/S ou no programa de usurio. Para cada tipo
de erro o sistema operacional deve tomar a medida adequada para garantir
o funcionamento correto e consistente (e no simplesmente travar).
Sistemas Operacionais e-Tec Brasil 54
Outras funes dos sistemas operacionais servem no somente para ajudar o
usurio, mas para garantir a operao eciente do sistema em si, tais como:
a) Alocao de recursos - recursos (memria e dispositivos de E/S) devem
ser alocados para cada um dos processos que esto em execuo simul-
tnea;
b) Contabilizao - preciso manter um registro dos usurios que utili-
zam os recursos do computador, em que quantidade e quais recursos.
Este registro pode ser usado para contabilizao. Estas estatsticas de uso
podem ser uma ferramenta valiosa para os pesquisadores que desejam
recongurar o sistema para melhorar os servios oferecidos;
c) Proteo - quando vrios processos independentes forem executados
ao mesmo tempo, um processo no poder interferir na rea de outro
processo ou do prprio sistema operacional. A proteo visa garantir que
todo acesso aos recursos do sistema seja controlado. Estende-se tambm
proteo dos dispositivos de E/S externos (modens, placa de rede, etc.)
de tentativas de acesso invlidas e ao registro de todas as conexes para
deteco de invases.
Resumo
Nesta aula vimos o conceito de interpretador de comandos (shell), qual a sua
funcionalidade em um sistema operacional. Aprendemos tambm algumas
questes sobre a linguagem de mquina que utilizada pela CPU para exe-
cutar os programas. Por m analisamos alguns conceitos importantes sobre
interrupes de software e hardware e o funcionamento das operaes de
entrada e sada que envolvem tanto a mquina em si quanto o sistema ope-
racional propriamente dito. Aprendemos sobre a gura do kernel em um
sistema operacional bem como suas principais funes. Vimos alguns tipos
de sistemas operacionais que comearam o histrico de sistemas multipro-
gramados, a conceituao de jobs e tarefas e a importncia dos discos mag-
nticos para a evoluo de nossos sistemas atuais. Analisamos a estrutura do
sistema como um prestador de servios.
Atividades de aprendizagem
1. O kernel possui 4 funes de gerncia que so essenciais para um siste-
ma operacional. Quais so?
2. Por que podemos armar que os discos magnticos foram de fundamental
importncia para o surgimento da multiprogramao nos sistemas atuais?
e-Tec Brasil Aula 4 Elementos de hardware e software Parte II 55
3. Quais as principais caractersticas dos primeiros sistemas operacionais?
4. Um bom escalonador de tarefas aquele que consegue equilibrar bem
tarefas orientadas a entrada e sada e tarefas orientadas a processamen-
to. Explique esta frase.
5. Quais so as principais caractersticas dos sistemas time sharing?
6. No exerccio passado no incio desta aula foi pedido para voc enumerar
as atividades e recursos que voc costuma utilizar em computadores.
Relacione com os servios e funes dos sistemas operacionais descritos
nesta aula.
Sistemas Operacionais e-Tec Brasil 56
e-Tec Brasil
Aula 5 Arquitetura do Sistema
Operacional
Objetivos
Conhecer os modos de acesso ao processador como forma de pro-
teo do sistema.
Compreender a estrutura das chamadas de sistema utilizadas para
a comunicao com o kernel do sistema.
Analisar as caractersticas de uma arquitetura de sistema operacio-
nal dividido em camadas ou no.
Vericar o funcionamento e importncia de um interpretador de
comandos.
5.1. Modos de acesso
Vimos que os programas de computador ou aplicaes em geral, consistem
de conjuntos de instrues a serem executadas pelo processador ou CPU.
Existem certas instrues que no podem ser disponibilizadas diretamente
disposio das aplicaes, pois a sua utilizao indevida ocasionaria srios
problemas integridade do sistema. Estas instrues, como operaes de
E/S, s podem ser executadas pelo sistema operacional, isso para impedir a
ocorrncia de problemas de segurana e mesmo a violao do prprio siste-
ma. As instrues que tm o poder de comprometer o sistema so conheci-
das como instrues privilegiadas, enquanto as instrues no-privilegiadas
so as que no oferecem perigo ao sistema.
Para que uma aplicao possa executar uma instruo privilegiada, o proces-
sador implementa o mecanismo de modos de acesso. Existem basicamente
dois modos de acesso: modo usurio e modo kernel. Quando o processa-
dor trabalha no modo usurio, uma aplicao s pode executar instrues
no-privilegiadas (instrues que no oferecem riscos), tendo acesso a um
nmero reduzido de instrues; no modo kernel a aplicao pode ter acesso
ao conjunto total de instrues do processador.
e-Tec Brasil Aula 5 Arquitetura do Sistema Operacional 57
Quando um programa que esteja no modo usurio tenta executar uma ins-
truo privilegiada, gerado um erro de proteo. O processador sinaliza
este erro atravs de uma exceo, o sistema operacional ser chamado e o
programa ser nalizado. Voc deve estar se perguntando como ocorrem
as transies entre os modos de acesso, ou seja, do modo usurio para o
modo kernel e vice-versa. No momento da carga do sistema (boot), o siste-
ma operacional inicia em modo kernel. Aps estar carregado em memria, o
sistema operacional permite que os programas de usurios sejam carregados
apenas em modo usurio.
Chaveamento dos modos:
Interrupo - modo usurio modo protegido.
Instruo - modo protegido modo usurio.
Se um programa estiver executando em modo usurio e ocorrer qualquer tipo
de interrupo (interrupo de hardware, exceo ou interrupo de softwa-
re), o modo de acesso alterado para o modo kernel. Com isso, a rotina de
tratamento executada em modo kernel. Ao nal de toda rotina de tratamen-
to, h uma instruo especca que, antes de retornar para o programa do
usurio, altera o modo de acesso para o modo usurio (Figura 5.1).
Programa
do Usurio
Salva contexto
dos registradores
Altera modo
do processador
para kernel
Altera modo do
processador
para usurio
Restrutura o contexto
dos registradores
S
y
s
t
e
m

C
a
l
l
Figura 5.1: Mudana dos modos de acesso durante uma interrupo
Fonte: Adaptado de Machado, 2004
A melhor maneira de controlar o acesso s instrues privilegiadas permitir
Sistemas Operacionais e-Tec Brasil 58
que apenas o sistema operacional tenha acesso a elas. Sempre que uma
aplicao necessita de um servio que incorra em risco para o sistema, a so-
licitao feita atravs de uma system call. Esta altera o modo de acesso do
processador para um modo mais privilegiado (modo kernel). Ao trmino da
rotina do sistema, o modo de acesso retornado para o modo usurio. Caso
um programa tente executar uma instruo privilegiada, sem o processador
estar no modo kernel, uma exceo gerada e o programa encerrado.
Caso uma aplicao tenha acesso a reas de memria onde est carregado
o sistema operacional, um programador mal-intencionado ou um erro de
programao poderia gravar nesta rea, violando o sistema. Com o meca-
nismo de modo de acesso, para uma aplicao escrever numa rea onde
resida o sistema operacional o programa deve estar sendo executado no
modo kernel.
5.2. System calls (Chamadas ao sistema)
As chamadas ao sistema (system calls) fornecem a interface entre um proces-
so e o sistema operacional. Essas chamadas esto disponveis como instru-
es em linguagem assembly e, em geral, so listadas nos manuais usados
por programadores em linguagem assembly, conforme Figura 5.2.
Aplicao
System Call
Biblioteca
Ncleo do
Sistema
Operacional
Hardware
Figura 5.2: Chamada de sistema (system call)
Fonte: Adaptado de Machado, 2004
Certos sistemas permitem que as chamadas ao sistema sejam feitas direta-
mente de um programa de linguagem de nvel mais alto e, nesse caso, as
chamadas normalmente lembram chamadas de subrotinas ou de funes
predenidas. Vrias linguagens como C, C++ e Perl foram denidas para
substituir a linguagem assembly na programao de sistemas. Essas lingua-
gens permitem que as chamadas ao sistema sejam feitas diretamente. Por
exemplo, as chamadas ao sistema do Unix podem ser feitas diretamente a
partir de um programa em C ou em C++.
Como um exemplo da forma em que as chamadas de sistema so usadas,
consideremos escrever um programa simples para ler dados de um arquivo e
copi-los para outro arquivo. Cada passo dado pelo programa praticamente
efetua uma chamada ao sistema:
A documentao dos SO
costuma disponibilizar estas
chamadas com uma srie
de funes cujo conjunto
chamado de API Application
Program Interface. Esta sigla API
pode ser usada tambm para
designar de uma forma genrica
como uma grande aplicao
(como um gerenciador de
banco de dados) aceita receber
solicitaes de outras aplicaes.
e-Tec Brasil Aula 5 Arquitetura do Sistema Operacional 59
a) A primeira entrada que o programa precisar so os nomes dos dois arqui-
vos: de entrada e de sada. Uma abordagem fazer o programa pedir ao
usurio os nomes dos dois arquivos. Em sistemas baseados em mouse e
cones, um menu de nomes de arquivos geralmente exibido em uma janela
(esta lista de diretrios e arquivos fornecida por uma chamada ao SO); o
usurio pode usar o mouse para selecionar o nome de origem. Uma janela
pode ser aberta para que o nome do arquivo de destino seja especicado;
b) Depois que os dois nomes de arquivos tiverem sido obtidos, o programa
deve abrir o arquivo de entrada e criar o arquivo de sada. Cada uma
dessas operaes requer uma chamada ao sistema;
c) Agora que os dois arquivos esto prontos, entramos em um lao que l
dados do arquivo de entrada (uma chamada ao sistema) e os grava no
arquivo de sada (outra chamada ao sistema). Lembramos que entre essas
operaes de leitura e escrita podero ocorrer alguns erros que geraro
outras chamadas ao sistema. Por exemplo, a operao de escrita pode
encontrar erros, dependendo do dispositivo de sada (falta de espao em
disco, m fsico da ta, etc.);
d) Finalmente, depois que o arquivo todo tiver sido copiado, o programa
dever fechar os dois arquivos (outra chamada ao sistema), gravar uma
mensagem na console (mais uma chamada ao sistema) e nalmente ter-
minar normalmente (a chamada nal ao sistema).
Como podemos observar, os programas fazem uso pesado do sistema operacio-
nal. Entretanto, a maioria dos usurios nunca chega a ver esse nvel de detalhe.
As chamadas de sistema ocorrem de diferentes maneiras, dependendo do
SO e do computador que est sendo usado. Geralmente, mais informaes
so necessrias alm de simplesmente identicar a chamada ao sistema de-
sejada; o tipo e a quantidade exata de informaes variam de acordo com a
chamada em questo (os parmetros, que voc j viu ao criar suas funes
em programao). Por exemplo, para obter entrada preciso especicar o
arquivo ou dispositivo a ser usado como origem e o endereo e o tamanho
do buffer (espao) de memria no qual a entrada deve ser lida.
As chamadas de sistema podem ser agrupadas basicamente em cinco cate-
gorias principais de acesso ou controle:
Controle de processo;
Sistemas Operacionais e-Tec Brasil 60
Manipulao de arquivos;
Manipulao de dispositivos;
Manuteno de informaes;
Comunicaes.
Aplicao
Comandos
de E/S
Comandos
de E/S
System calls de E/S
Rotinas de E/S
Device drivers
Dispositivo de E/S
Figura 5.3: Operaes de entrada/sada atravs das system calls
Fonte: Adaptado de Machado, 2004
Um dos objetivos principais das system calls de E/S simplicar a interface
entre as aplicaes e os dispositivos. Com isso, elimina-se a necessidade de
duplicao de rotinas idnticas nos diversos aplicativos, alm de esconder do
programador caractersticas especcas associadas programao de cada
dispositivo. So as chamadas de sistema que iro intermediar a solicitao de
uso de algum dispositivo feito pelas aplicaes. O programador ao elaborar
uma aplicao no precisa fazer nenhuma referncia congurao do dis-
positivo a ser utilizado. A Figura 5.3 ilustra a comunicao entre a aplicao
e os dispositivos de E/S de maneira simplicada.
e-Tec Brasil Aula 5 Arquitetura do Sistema Operacional 61
5.3. Arquiteturas do ncleo (kernel)
O projeto de um sistema operacional bastante complexo e deve atender a
diversos requisitos, algumas vezes conitantes, como conabilidade, porta-
bilidade, fcil manuteno, exibilidade e desempenho.
A estrutura do ncleo do sistema operacional, ou seja, a maneira como o
cdigo do sistema organizado e o inter-relacionamento entre seus diversos
componentes, pode variar conforme a concepo do projeto. A seguir sero
abordadas as principais arquiteturas dos sistemas operacionais.
5.3.1. Arquitetura monoltica
Neste tipo de organizao, arquitetura monoltica, a forma mais comum de
ser encontrada aquela que estrutura o sistema como um conjunto de ro-
tinas que podem interagir livremente umas com as outras, conforme Figura
5.4. A estrutura monoltica pode ser comparada com uma aplicao forma-
da por vrios procedimentos que so compilados separadamente e depois
linkados, formando um grande e nico programa executvel.
Aplicao Aplicao
Modo Usurio
Modo Kernel
System call
Hardware
Figura 5.4: Arquitetura monoltica
Fonte: Adaptado de Machado, 2004
Sistemas Operacionais e-Tec Brasil 62
Um sistema to grande e complexo quanto um sistema operacional moder-
no deve ser cuidadosamente construdo para que funcione bem e possa ser
facilmente modicado. Uma abordagem comum dividir a tarefa em peque-
nos componentes em vez de ter um sistema monoltico.
5.3.2. Arquitetura de camadas
Um sistema em camadas divide o sistema operacional em camadas sobre-
postas. Cada mdulo oferece um conjunto de funes que podem ser utili-
zadas por outros mdulos. Voc viu chamarmos o computador de mquina
de nveis no primeiro captulo; por sua vez o prprio SO pode ser encarado
desta forma.
A principal vantagem da abordagem em camadas a modularidade. As ca-
madas so selecionadas de forma que cada uma utilize as funes (opera-
es) e servios apenas das camadas de nvel mais baixo. Essa abordagem
simplica a depurao e vericao do sistema, alm de criar uma hierarquia
de nveis de modos de acesso, protegendo as camadas mais internas. A Figu-
ra 5.5 apresenta esta formao em camadas para o DOS; entretanto, o nvel
de segurana baixo, pois permitida a comunicao com camadas mais
baixas sem passar pelas intermedirias.
Programa
Dispositivo
do MS-DOS
Drivers de Dispositivo BIOS em ROM
Programa de Sistema Residente
Figura 5.5: Estrutura em camadas do MS-DOS
Fonte: Adaptado de Silberschatz, Galvin e Gagne, 2000
A primeira camada pode ser depurada sem preocupao com o resto do
sistema, porque, por denio, ela s utiliza o hardware bsico (que
e-Tec Brasil Aula 5 Arquitetura do Sistema Operacional 63
considerado correto) para implementar suas funes. Depois que a primeira
camada depurada, pode-se presumir seu funcionamento correto enquanto
a segunda camada depurada e assim por diante. Se for encontrado um
erro durante a depurao de determinada camada, o erro deve estar nessa
camada, porque as camadas inferiores j foram depuradas. Assim, o projeto
e a implementao do sistema so simplicados quando o sistema dividido
em camadas.
A principal diculdade da abordagem em camadas est na denio ade-
quada das vrias camadas. Como uma camada semente poder usar as
camadas que esto em um nvel inferior, preciso haver um planejamento
cuidadoso.
Um ltimo problema com implementaes em camadas que elas tendem a
ser menos ecientes. Por exemplo, quando um programa de usurio executa
uma operao de E/S (entrada e sada), ele executa uma chamada de sistema
(system call) que desviada para a camada de E/S, que chama a camada de
gerncia de memria, que, por sua vez, chama a camada de escalonamento
de CPU, que ento passada para o hardware. Em cada camada, os par-
metros podem ser modicados, os dados precisam ser transferidos e assim
por diante. Cada camada acrescenta novo custo chamada ao sistema; o
resultado nal uma chamada ao sistema que demora mais do que em um
sistema sem camadas.
As limitaes da ecincia causaram reaes contra a estrutura em camadas
nos ltimos anos. Menos camadas com mais funcionalidades esto sendo
projetadas, fornecendo a maior parte das vantagens do cdigo modulariza-
do e evitando difceis problemas da denio e interao em camadas.
5.3.3. Arquitetura microkernel
medida que o Unix se expandiu, o kernel tornou-se grande e difcil de
gerenciar. Foi desenvolvido, ento, um sistema operacional usando a abor-
dagem de microkernels. O resultado um kernel menor. Uma tendncia dos
sistemas operacionais modernos tornar o ncleo do sistema operacional
menor e o mais simples possvel. Em geral, os microkernels fornecem gern-
cia mnima de memria e processos, alm de um recurso de comunicao.
A principal funo do microkernel fornecer um recurso de comunicao
entre programa cliente e os vrios servios que tambm esto em execuo
no espao de usurio. Para implementar esta ideia, o sistema dividido em
Sistemas Operacionais e-Tec Brasil 64
processos, sendo cada um responsvel por oferecer um conjunto de servios,
como servios de arquivo, servios de criao de processos, servios de me-
mria, servios de escalonamento, etc.
Se o programa cliente desejar acessar um arquivo, ele dever interagir com o
servidor de arquivos. Mas o programa cliente e o servio nunca vo interagir
diretamente; em vez disso, eles se comunicam indiretamente trocando men-
sagens com o microkernel.
Sempre que uma aplicao deseja algum servio, ela solicita ao processo
responsvel. Neste caso, a aplicao que solicita um servio chamada de
cliente, enquanto o processo que responde solicitao chamado de ser-
vidor. Um cliente, que pode ser uma aplicao de um usurio ou um outro
componente do sistema operacional, solicita um servio enviando uma men-
sagem. funo do ncleo do sistema realizar a comunicao, ou seja, a
troca de mensagens entre o cliente e o servidor.
Os benefcios da abordagem do microkernel incluem a facilidade de expandir
o sistema operacional. Todos os novos servios so adicionados ao espao de
usurio e, consequentemente, no exigem modicao do kernel. Quando o
kernel precisa ser modicado, as alteraes tendem a ser menores, porque o
microkernel um kernel menor. O microkernel tambm fornece mais segu-
rana e conabilidade, pois a maior parte dos servios est sendo executada
como processos de usurio, em vez de kernel. Se um servio falhar, o resto
do sistema operacional permanece inalterado.
O kernel coordena a troca de mensagens entre as aplicaes (clientes e servi-
doras). O Windows NT projetado para executar vrias aplicaes, incluindo
Win32 (aplicaes nativas do Windows), OS/2 e POSIX. A estrutura cliente-
-servidor do Windows NT est representada na Figura 5.6.
Kernel
Servidor
Win 32
Aplicativo
Win 32
Servidor
OS/2
Aplicativo
OS/2
Aplicativo
Posix
Servidor
Posix
Figura 5.6: Estrutura do Windows NT 4.0 (ncleo e servidores de aplicaes)
Fonte: Adaptado de Machado, 2004
e-Tec Brasil Aula 5 Arquitetura do Sistema Operacional 65
A utilizao deste modelo permite que os servidores executem em modo
usurio, ou seja, no tenham acesso direto a certos componentes do siste-
ma. Apenas o ncleo do sistema, responsvel pela comunicao entre clien-
tes e servidores, executa no modo kernel. Como consequncia, se um erro
ocorrer em um servidor, este servidor pode parar, mas o sistema no car
inteiramente comprometido.
Como os servidores se comunicam atravs de trocas de mensagens, no
importa se os clientes e servidores esto sendo processados em um sistema
com um nico processador, com mltiplos processadores ou ainda em um
ambiente de sistema distribudo.
Apesar de todas as vantagens deste modelo, sua implementao na prtica
muito difcil devido a certas funes dos sistemas operacionais exigirem
acesso direto ao hardware, como operaes de entrada e sada. Na realida-
de, o que implementado mais usualmente uma combinao do modelo
de camadas com o modelo cliente-servidor.
5.4. Interpretador de comandos
Um dos utilitrios mais importantes para um sistema operacional o inter-
pretador de comandos (ou shell), que a interface entre o usurio e o sis-
tema operacional. Alguns sistemas operacionais incluem o interpretador de
comandos no kernel (ncleo do sistema operacional). Outros podem tratar o
interpretador de comandos como um programa especial que ca executan-
do quando um job iniciado ou quando um usurio entra no sistema (em
sistemas de tempo compartilhado).
Muitos comandos do usurio so passados ao sistema operacional por ins-
trues de controle digitadas em uma linha da tela. Esse programa cha-
mado de interpretador da linha de comandos. Sua funo simples: obter
o comando seguinte e execut-lo. Antes das interfaces grcas esta era a
nica forma de comunicao entre a pessoa do usurio e o SO.
Os sistemas operacionais geralmente se diferenciam bastante na rea do
shell, com um interpretador de comandos amigvel ao usurio tornando o
sistema mais agradvel a alguns e menos a outros. Estas diferenas se acen-
tuaram com as interfaces grcas.
O interpretador de comandos (shell) pode ser utilizado na seguinte forma:
Um sistema computacional
formado por nveis, onde a
camada de nvel mais baixo
o hardware. Acima desta
camada encontramos o sistema
operacional que oferece suporte
para as aplicaes. O modelo
de mquina virtual, ou virtual
machine (VM), cria um nvel
intermedirio entre o hardware
e o sistema operacional,
denominado gerncia de
mquinas virtuais. Este nvel
cria diversas mquinas virtuais
independentes, onde cada uma
oferece uma cpia virtual do
hardware, incluindo os modos de
acesso, interrupes, dispositivos
de E/S, etc.
Sistemas Operacionais e-Tec Brasil 66
a) O mouse movido para posicionar o ponteiro sobre imagens na tela, ou
cones, que representam programas, arquivos ou funes;
b) Dependendo da localizao do ponteiro do mouse, clicar em um boto
do mouse pode chamar um programa, selecionar um arquivo ou diret-
rio ou abrir um menu que contm comandos;
c) O clicar do mouse a chamada a algum programa, arquivo ou pasta e
ir utilizar o interpretador da linha de comando (shell). O clique do mou-
se j , portanto, um comando que dever ser interpretado pelo shell.
As instrues de comando lidam com a criao e gerncia de processos,
tratamento de E/S, gerncia de armazenamento secundrio, gerncia de
memria principal, acesso ao sistema de arquivo e proteo, e redes; enm,
tudo o que a pessoa do usurio precisa para operar seus programas e aten-
der suas necessidades.
Resumo
Nesta aula aprendemos sobre funcionamento da comunicao entre os progra-
mas de usurios e o ncleo do sistema, pelas chamadas de sistema. Tambm
vimos a forma como o hardware participa da proteo dos diversos tipos de
processos e, consequentemente, dos diversos tipos de instrues que iro exe-
cutar na CPU. Por m, analisamos algumas formas de se projetar o kernel de um
sistema operacional e suas implicaes no desempenho nal do sistema.
Atividades de aprendizagem
1. O que so instrues privilegiadas e no-privilegiadas? Qual a relao
dessas instrues com os modos de acesso?
2. Como o kernel pode ser protegido pelo mecanismo de modos de acesso?
3. O que um system call e qual a sua importncia para a segurana do sistema?
4. Como as system calls so utilizadas por um programa?
5. Compare as arquiteturas monolticas e de camadas. Quais as vantagens
e desvantagens de cada arquitetura?
6. Pesquise comandos disponveis em linguagens de controle de sistemas
operacionais.
7. Pesquise software disponveis para utilizao de mquinas virtuais e quais
as suas principais caractersticas.
e-Tec Brasil Aula 5 Arquitetura do Sistema Operacional 67
e-Tec Brasil
Aula 6 Introduo gerncia de
processos, memria e arquivos
Objetivos
Conhecer as funes de gerncia principais de um sistema operacional.
Analisar as funes do elemento processo dentro de um sistema
operacional.
Vericar a administrao da utilizao de recursos pelo sistema
operacional.
6.1. Gerncia de processos
Um programa no faz nada a no ser que suas instrues sejam executadas
por uma CPU. Um processo pode ser considerado um programa em execu-
o, mas sua denio ser ampliada medida que explorarmos melhor o
conceito. Um programa de usurio executado em tempo compartilhado
um processo. Um processador de texto executado por um usurio individual
em um PC um processo. Uma tarefa de sistema, como enviar sada para
uma impressora, tambm um processo.
Consideraremos que um processo um job ou um programa de tempo com-
partilhado. Um processo precisa de determinados recursos tempo de CPU,
memria, arquivos e dispositivos de E/S (entrada e sada) para realizar sua
tarefa. Estes recursos so dados ao processo quando ele criado ou aloca-
dos a ele durante sua execuo. Alm dos vrios recursos fsicos e lgicos
que um processo obtm quando criado, vrios dados de inicializao po-
dem ser fornecidos.
Um processo um programa em execuo. Um programa por si s no
um processo; um programa uma entidade passiva, como o contedo de
um arquivo armazenado em disco, enquanto um processo uma entidade
ativa, com um contador do programa especicando a prxima instruo a
ser executada.
A execuo de um processo deve ser sequencial. A CPU executa uma instru-
e-Tec Brasil Aula 6 Introduo gerncia de processos, memria e arquivos 69
o do processo aps a outra at o processo terminar. Alm disso, a qual-
quer momento, no mximo uma instruo executada em nome do pro-
cesso. Assim, embora dois processos possam ser associados com o mesmo
programa, eles so considerados duas sequncias de execuo separadas.
comum ter um programa que utilize muitos processos para sua execuo.
Um processo a unidade de trabalho em um sistema. Em um sistema te-
remos uma coleo de processos que so desde processos do prprio siste-
ma operacional (aqueles que executam cdigos do SO) at os processos de
usurio (aqueles que executam cdigo do usurio). Todos esses processos
podem executar concorrentemente, multiplexando a CPU entre eles.
O sistema operacional responsvel pelas seguintes atividades em relao
gerncia de processos:
a) Criar e excluir processos de usurio e de sistema;
b) Suspender e retomar processos;
c) Fornecer mecanismos para a sincronizao de processos;
d) Fornecer mecanismos para a comunicao de processos;
e) Fornecer mecanismos para o tratamento de deadlocks.
6.2. Gerncia de memria principal
A gerncia do espao da memria principal uma das preocupaes im-
portantes dos sistemas de computao modernos. A memria principal
um repositrio de dados rapidamente acessveis compartilhados pela CPU e
dispositivos de E/S (entrada e sada).
O processador central l as instrues da memria principal durante o ciclo
de busca de instrues e l e grava dados da memria principal durante o ci-
clo de busca de dados. As operaes de E/S (entrada e sada) implementadas
via DMA tambm fazem a leitura e escrita de dados na memria principal.
A memria principal geralmente o nico dispositivo de armazenamento
que a CPU pode enderear e acessar diretamente. Para que a CPU processe
dados do disco, esses dados devem primeiro ser transferidos para a mem-
ria principal por chamadas de E/S geradas pela CPU. Do mesmo modo, as
instrues dos programas devem estar na memria principal para que a CPU
as execute.
Multiplexando
Multiplexao a diviso de
algum servio oferecido entre
vrios processos. Voc ver este
conceito usado tambm para um
canal de comunicao.
Deadlocks
Deadlock caracteriza uma
situao em que ocorre um
impasse, onde dois ou mais
processos cam impedidos de
continuar suas execues, ou
seja, cam bloqueados. Um
processo aguarda a liberao
de um recurso que est sendo
utilizado por um outro processo
que, por sua vez, aguarda a
liberao de outro recurso
alocado ou dependente do
primeiro processo.
DMA
Direct Memory Access (Acesso
Direto Memria) uma forma
de controle de entradas e sadas
sem a utilizao constante do
microprocessador, como se
houvesse uma comunicao
direta entre o dispositivo DMA
de E/S e a memria. Isto ocorre,
por exemplo, com a placa de
vdeo e o HD.
Sistemas Operacionais e-Tec Brasil 70
Para melhorar a utilizao da CPU e a velocidade da resposta do computador
aos seus usurios, preciso manter vrios programas na memria principal.
Existem muitos esquemas diferentes de gerncia de memria. A seleo de
um esquema de gerncia de memria para um sistema especco depende
de muitos fatores, especialmente do projeto de hardware do sistema.
O sistema operacional responsvel pelas seguintes atividades em relao
gerncia de memria:
a) Manter registro das partes da memria que esto sendo usadas no mo-
mento e por qual processo;
b) Decidir quais processos devero ser carregados na memria quando hou-
ver espao disponvel;
c) Alocar e desalocar espao na memria, conforme necessrio.
Os sistemas operacionais de tempo compartilhado ou de tempo real so
ainda mais complexos porque os usurios podem ir se conectando e solici-
tando a execuo de programas at um momento em que pode no haver
mais memria real disponvel. possvel ainda manter um tempo de resposta
razovel utilizando um recurso chamado memria virtual. Quando no h
mais memria fsica disponvel, algum processo ocioso naquele momento
passado rapidamente para um disco que agora ir servir como extenso da
memria principal. Quando chegar a vez de este processo ser atendido, um
outro (ou mais de um) processo ocioso descarregado no disco, cedendo
lugar para este voltar para a memria principal. Esta movimentao de ida
e volta da memria para o disco chamada de paginao ou swap e est
ilustrado na Figura 6.1.
e-Tec Brasil Aula 6 Introduo gerncia de processos, memria e arquivos 71
1_Swap out
2_Swap in
Armazenamento
Auxiliar
Memria
Prpria
Processo
P1
Sistema
Operacional
Espao do
Usurio
Processo
P2
Figura 6.1: Troca de dois processos usando um disco como armazenamento auxiliar
(secundrio )
Fonte: Adaptado de Silberschatz, Galvin e Gagne, 2000
Esse recurso bastante interessante e aumenta a capacidade de atendimen-
to aos usurios, pois o tempo de acesso a disco tambm muito menor do
que o tempo de resposta dos usurios. Alm desta utilidade, este conceito
de memria virtual facilita tambm a vida dos programadores que, basica-
mente, passam a no se preocupar com a quantidade de memria fsica
disponvel; isso passa a ser mais um problema do SO.
6.3. Gerncia de arquivos
A gerncia de arquivos um dos componentes mais visveis de um sistema
operacional. Os computadores podem armazenar informaes em vrios ti-
pos diferentes de meios fsicos: ta magntica, disco magntico e etc. Cada
um desses meios possui suas prprias caractersticas e organizao fsica.
Cada meio controlado por um dispositivo, como uma unidade de disco,
que tambm tm suas caractersticas exclusivas. Essas propriedades incluem:
velocidade de acesso, capacidade, taxa de transferncia de dados e mtodo
de acesso (sequencial ou aleatrio).
O sistema operacional mapeia os arquivos nos meios fsicos e acessa esses
Sistemas Operacionais e-Tec Brasil 72
arquivos atravs dos dispositivos de armazenamento.
O conceito de arquivo bastante geral. Um arquivo uma coleo de in-
formaes relacionadas denidas por seu criador. Geralmente os arquivos
representam dados nos mais diversos formatos e, s vezes, programas (fonte
e objeto). Os arquivos de dados podem ser numricos ou alfanumricos,
representando dados escritos ou guras, msicas e animaes. Alm disso,
podem ter forma livre (por exemplo, arquivos de texto) ou podem ter uma
formatao rgida (por exemplo, campos xos como em planilhas ou bancos
de dados). Um arquivo consiste em uma sequncia de bits, bytes, linhas ou
registros cujos signicados so denidos por seus criadores. Uma considera-
o importante no projeto de um sistema de arquivos, e de todo o sistema
operacional, se o sistema dever reconhecer e oferecer suporte a todos
os tipos de arquivos. Quando um sistema operacional reconhece o tipo de
arquivo, ele poder operar com o arquivo de forma razovel. Uma tcnica
comum para implementar os tipos de arquivo incluir o tipo como parte
do nome do arquivo. O nome dividido em duas partes um nome e uma
extenso, geralmente separada por um caractere de ponto. Veja no Quadro
6.1, os tipos de arquivos mais comuns. Dessa forma, o usurio e o sistema
operacional podem saber imediatamente a partir do nome qual o tipo de
arquivo em questo.
Quadro 6.1: Tipos de arquivos comuns
Tipo de Arquivo Extenso Comum Funo
Executvel exe, com, bin, ou nada Programa de linguagem de mquina pronto para executar
Objeto obj, o Linguagem de mquina, compilado, sem linkedio
Cdigo-fonte c, cc, pas, java, asm, a Cdigo fonte em vrias linguagens
Batch bat, sh Comandos para o interpretador de comandos
Texto txt, doc Dados textuais, documentos
Processador de textos wpd, tex, doc, etc Vrios formatos de processador de textos
Biblioteca lib, a, dll Bibliotecas de rotinas para programadores
Impresso ou visualizao ps, dvi, gif
Arquivos ASCII ou binrio em um formato para impres-
so ou visualizao
Arquivo compactado arc, zip, tar
Arquivos correlatos agrupados em um arquivo nico,
s vezes compactado, para ns de arquivamento ou
armazenamento
Fonte: Adaptado de Silberschatz, Galvin e Gagne, 2000
O sistema operacional se encarrega de gerenciar as mdias de armazenamen-
to em massa de arquivos, como discos, e os dispositivos que os controlam.
e-Tec Brasil Aula 6 Introduo gerncia de processos, memria e arquivos 73
Os arquivos so normalmente organizados em diretrios para facilitar seu
uso. E quando vrios usurios tm acesso aos arquivos, pode ser desejvel
controlar quem poder acessar os arquivos e de que forma poder faz-lo.
O sistema operacional responsvel pelas seguintes atividades em relao
gerncia de arquivos:
a) Criar e excluir arquivos;
b) Criar e excluir diretrios;
c) Fornecer suporte para manipular arquivos e diretrios;
d) Mapear arquivos no armazenamento secundrio;
e) Prover ferramentas de backup.
A maioria dos sistemas de computao usa discos (HD) como o principal
meio de armazenamento para programas e dados. A maioria dos progra-
mas incluindo compiladores, montadores, rotinas de classicao, editores
e formatadores, so armazenados em um disco at serem carregados na
memria e utilizam o disco como origem e destino de seu processamento.
6.4. Gerncia de dispositivos
O sistema operacional deve tornar as operaes de entrada e sada (E/S) o
mais simples possvel para o usurio e suas aplicaes. Denominamos de
rotinas de entrada e sada ao conjunto de rotinas que o sistema operacional
possui para possibilitar a comunicao de qualquer dispositivo que possa ser
conectado ao computador. Essas rotinas fazem parte de um subsistema de
E/S que permitem ao usurio realizar as operaes de E/S sem se preocupar
com detalhes, informaes a respeito do dispositivo que est acessando.
Em gerncia do sistema de E/S (entrada e sada) cabe ao sistema operacional
ocultar dos usurios (programas e pessoas) as peculiaridades dos diferentes
dispositivos de hardware. A gerncia de dispositivos de entrada/sada uma
das principais e mais complexas funes de um sistema operacional. Sua im-
plementao estruturada por meio de camadas, em um modelo semelhante
ao apresentado para o sistema operacional como um todo. As camadas de
mais baixo nvel escondem caractersticas dos dispositivos das camadas supe-
riores, oferecendo uma interface simples e convel para suas aplicaes.
Sistemas Operacionais e-Tec Brasil 74
As operaes de E/S devem ser realizadas atravs de chamadas ao sistema
(system calls) que por sua vez chamam as rotinas de E/S do ncleo do sistema
operacional. Desse modo, possvel que manipulemos arquivos em dispositi-
vos de E/S, sem ter que alterar o cdigo para cada dispositivo. Por exemplo:
leitura de um arquivo armazenado em pen drive; no precisamos alterar o
cdigo do dispositivo a cada leitura ou a cada tipo de pen drive ou a cada
mquina que acessamos.
As camadas so divididas em dois grupos, conforme Figura 6.2. O primeiro
visualiza os diversos tipos de dispositivos do sistema de um modo nico (a),
ou seja, essas camadas trabalham de forma independente da congurao
do dispositivo. Oferecem servios de gerenciamento controlado pelo sistema
operacional, enquanto o segundo especco para cada dispositivo, necessi-
tando a instalao e congurao do hardware, identicando e controlando
cada dispositivo (b). Observem que grande parte das camadas trabalham de
forma independente do dispositivo fsico instalado.
Processo
Operaes de E/S
Subsistema de E/S
Sistemas de
Arquivos
Device Drivers
Controladores
Dispositivos de E/S
{
{
{
{
Dependente
do dispositivos
(b)
Independente
do dispositivos
(a)
H
A
R
D
W
A
R
E
S
O
F
T
W
A
R
E
M
o
d
o

K
e
r
n
e
l
M
o
d
o

U
s
u

r
i
o
Figura 6.2: Gerncia de dispositivos
Fonte: Adaptado de Machado, 2000
e-Tec Brasil Aula 6 Introduo gerncia de processos, memria e arquivos 75

Potrebbero piacerti anche