Você está na página 1de 79

Sistemas Operacionais

Bruno Cardoso Coutinho

Colatina - ES
2014
Presidncia da Repblica Federativa do Brasil

Ministrio da Educao

Secretaria de Educao a Distncia

Instituto Federal de Educao, Cincia e Tecnologia do Esprito Santo


Este Caderno foi elaborado em parceria entre o Instituto Federal de Educao,
Cincia e Tecnologia do Esprito Santo e a Universidade Federal de Santa Catarina
para o Sistema Escola Tcnica Aberta do Brasil e-Tec Brasil.
Equipe de Elaborao Design Instrucional
Instituto Federal do Esprito Santo IFES Alessandro Poleto Oliveira/IFES

Coordenao do Curso Web Master


Joao Henrique Caminhas Ferreira/IFES Rafaela Lunardi Comarella/UFSC

Professores-autores Web Design


Bruno Cardoso Coutinho/IFES CEAD/IFES

Comisso de Acompanhamento e Validao Diagramao


Universidade Federal de Santa Catarina UFSC Edison Patto/UFSC
Guilherme Ataide Costa/UFSC
Coordenao Institucional Juliana Tonietto/UFSC
Araci Hack Catapan/UFSC
Reviso
Coordenao do Projeto Luciane Ferreira Lacerda/IFES
Silvia Modesto Nassar/UFSC
Projeto Grfico
Coordenao de Design Instrucional e-Tec/MEC
Beatriz Helena Dal Molin/UNIOESTE e UFSC

Coordenao de Design Grfico


Carlos Antnio Ramirez Righi/UFSC

C871s Coutinho, Bruno Cardoso

Sistemas operacionais : Curso Tcnico em Informtica /


Bruno Cardoso Coutinho. Colatina: CEAD / Ifes, 2010.
78 p. : il.


1. Sistemas operacionais (Computadores). 2. Siste-
mas de computao. 3. Material didtico. I. Instituto Federal
NSTITUTO do Esprito Santo. II. Ttulo.
FEDERAL
IO GRANDE
DO SUL CDD: 005.43
Apresentao e-Tec Brasil

Prezado estudante,

Bem-vindo ao e-Tec Brasil!

Voc faz parte de uma rede nacional pblica de ensino, a Escola Tcnica
Aberta do Brasil, instituda pelo Decreto n 6.301, de 12 de dezembro 2007,
com o objetivo de democratizar o acesso ao ensino tcnico pblico, na mo-
dalidade a distncia. O programa resultado de uma parceria entre o Minis-
trio da Educao, por meio das Secretarias de Educao a Distancia (SEED)
e de Educao Profissional e Tecnolgica (SETEC), as universidades e escolas
tcnicas estaduais e federais.

A educao a distncia no nosso pas, de dimenses continentais e grande


diversidade regional e cultural, longe de distanciar, aproxima as pessoas ao
garantir acesso educao de qualidade, e promover o fortalecimento da
formao de jovens moradores de regies distantes, geograficamente ou
economicamente, dos grandes centros.

O e-Tec Brasil leva os cursos tcnicos a locais distantes das instituies de en-
sino e para a periferia das grandes cidades, incentivando os jovens a concluir
o ensino mdio. Os cursos so ofertados pelas instituies pblicas de ensino
e o atendimento ao estudante realizado em escolas-polo integrantes das
redes pblicas municipais e estaduais.

O Ministrio da Educao, as instituies pblicas de ensino tcnico, seus


servidores tcnicos e professores acreditam que uma educao profissional
qualificada integradora do ensino mdio e educao tcnica, capaz de
promover o cidado com capacidades para produzir, mas tambm com auto-
nomia diante das diferentes dimenses da realidade: cultural, social, familiar,
esportiva, poltica e tica.

Ns acreditamos em voc!
Desejamos sucesso na sua formao profissional!
Ministrio da Educao
Janeiro de 2010

Nosso contato
etecbrasil@mec.gov.br

3 e-Tec Brasil
Indicao de cones

Os cones so elementos grficos utilizados para ampliar as formas de


linguagem e facilitar a organizao e a leitura hipertextual.

Ateno: indica pontos de maior relevncia no texto.

Saiba mais: oferece novas informaes que enriquecem o


assunto ou curiosidades e notcias recentes relacionadas ao
tema estudado.

Glossrio: indica a definio de um termo, palavra ou expresso


utilizada no texto.

Mdias integradas: sempre que se desejar que os estudantes


desenvolvam atividades empregando diferentes mdias: vdeos,
filmes, jornais, ambiente AVEA e outras.

Atividades de aprendizagem: apresenta atividades em


diferentes nveis de aprendizagem para que o estudante possa
realiz-las e conferir o seu domnio do tema estudado.

5 e-Tec Brasil
Sumrio

Aula 1 Viso geral de Sistemas Operacionais 15


1.1 Conceitos bsicos 15
1.2 Funes principais 16
1.3 Mquina de nveis 19

Aula 2 Histrico e classificao 23


2.1 Histrico 23
2.2 Tipos de Sistemas Operacionais 27

Aula 3 Elementos de hardware e software Parte I 31


3.1 Hardware 31
3.2 Software 37

Aula 4 Elementos de hardware e software Parte II 43


4.1 Linguagem de controle 43
4.2 Programas de sistema ou utilitrios 44
4.3. Linguagem de mquina 45
4.4. Mecanismo de interrupo 45
4.5. Operaes de Entrada e Sada (E/S) 47
4.6. Sistemas em lote 51
4.7. Escalonamento de tarefas e multiprogramao 52
4.8. Servios de Sistemas Operacionais 54

Aula 5 Arquitetura do Sistema Operacional 57


5.1. Modos de acesso 57
5.2. System calls (Chamadas ao sistema) 59
5.3. Arquiteturas do ncleo (kernel) 62
5.4. Interpretador de comandos 66

Aula 6 Introduo gerncia de processos, memria e arquivos 69


6.1. Gerncia de processos 69
6.2. Gerncia de memria principal 70
6.3. Gerncia de arquivos 72
6.4. Gerncia de dispositivos 74

7 e-Tec Brasil
Referncias 77

Currculo do professor-autor 78

e-Tec Brasil 8 Sistemas Operacionais


Palavra do professor-autor

Ol,

Meu nome Bruno Cardoso Coutinho, formado em Cincia da Computa-


o com mestrado em Informtica pela UFES. Sou professor do IFES campus
Colatina desde janeiro de 2009, onde tenho ministrado disciplinas como Sis-
temas Operacionais Locais e de Rede. Ultimamente, alm das minhas ativi-
dades de professor, tenho me aventurado em pesquisas cientficas nas reas
de redes de computadores, ambientes distribudos e otimizao.

A disciplina de Sistemas Operacionais de extrema importncia para seu curso


e para sua carreira profissional, j que se trata do sistema gestor de qualquer
computador. O Sistema Operacional que organiza a execuo dos aplicati-
vos, aloca espao em memria para uma execuo mais rpida, envia e recebe
dados de dispositivos e os trata para serem utilizados pelos aplicativos dos
usurios, alm de muitas outras atividades. Em suma, o Sistema Operacional
protege a mquina do usurio e protege o usurio da mquina.

Por ser uma matria essencial para seu curso, empenhe-se nos estudos, leia
o material com calma e releia se for o caso. Tire as suas dvidas com seus
tutores e utilize os materiais indicados como apoio a seus estudos. No se
prenda apenas apostila do curso.

Sucesso na sua carreira!

Um grande abrao!
Prof. Bruno.

9 e-Tec Brasil
Apresentao da disciplina

Nesta disciplina voc ter uma viso geral dos sistemas operacionais, bem como
aprender conceitos fundamentais e como feito o gerenciamento de recursos de
hardware e software do computador.

O Sistema Operacional o grande gestor do computador, com muitas respon-


sabilidades como: alocar recursos, gerenciar usurios e processos, controlar a
execuo de programas de usurios e muito mais. Ao passar pelas aulas deste
curso voc poder perceber o quo difcil e rduo construir um sistema como
Windows ou Linux.

Voc algumas vezes deve ter passado por esta situao: estar navegando na inter-
net, conversando no MSN e editando um trabalho de escola no Word. Parece es-
tar tudo executando ao mesmo tempo correto? Mas provavelmente no. Apesar
de as mquinas mais novas conseguirem processar algumas instrues realmente
em paralelo, ainda sim, esses aplicativos disputam recursos sob a gerncia do Sis-
tema Operacional.

Nas primeiras aulas do curso, faremos uma caracterizao dos sistemas opera-
cionais levando em considerao a evoluo do hardware ao longo dos anos.
Conhecer o histrico do desenvolvimento destes sistemas tambm importante
para analisar a motivao de cada nova tecnologia e sua relao com o software
gerenciador. Depois, precisaremos rever alguns conceitos de hardware e software,
caracterizar alguns componentes bsicos e sua importncia em um sistema com-
putacional. Por fim, analisaremos as principais funes de gerncia de um sistema
computacional, abordando seus tpicos principais.

Vamos estudar, tambm, como funciona a gerncia de aplicaes, de recursos e


a estrutura interna de um sistema operacional. So muitos conceitos novos, no
deixe acumular!

11 e-Tec Brasil
Projeto instrucional

Disciplina: Sistemas Operacionais (carga horria: 60h).

Ementa: Viso geral dos Sistemas Operacionais. Conceitos e gerenciamento


de recursos de hardware e software do computador.

CARGA
OBJETIVOS DE
AULA MATERIAIS HORRIA
APRENDIZAGEM
(horas)
Compreender os conceitos bsicos de
sistemas operacionais. Caderno e Ambiente Virtual de
1. Viso geral de
Conhecer suas funes principais. Ensino-Aprendizagem.
Sistemas Opera- 10
Analisar o Sistema Operacional como www.cead.ifes.edu.br
cionais
uma mquina de nveis.

Conhecer o histrico de sistemas


operacionais.
Compreender como as inovaes de
Caderno e Ambiente Virtual de
2. Histrico e hardware colaboraram com o desenvolvi-
Ensino-Aprendizagem. 10
classificao mento dos sistemas operacionais.
www.cead.ifes.edu.br
Saber classificar os sistemas conforme
suas caractersticas principais.

Conhecer a arquitetura bsica de


computadores.
Caderno e Ambiente Virtual de
3. Elementos de Descrever os principais dispositivos de
Ensino-Aprendizagem.
hardware e entrada e sada. 10
www.cead.ifes.edu.br
software Parte I Compreender conceitos de software
utilitrio.

Conhecer conceitos mais especficos


sobre programas de sistema.
Analisar o mecanismo de interrupo na
concorrncia entre processos.
Descrever as operaes de entrada e
4. Elementos de sada. Caderno e Ambiente Virtual de
hardware e softwa- Conhecer as caractersticas dos Ensino-Aprendizagem. 10
re Parte II sistemas em lote e sistemas de tempo www.cead.ifes.edu.br
compartilhado.
Compreender a funcionalidade de alguns
servios do sistema operacional.
Analisar as caractersticas bsicas de
uma arquitetura de sistema operacional.
continua

13 e-Tec Brasil
CARGA
OBJETIVOS DE
AULA MATERIAIS HORRIA
APRENDIZAGEM
(horas)
Conhecer os modos de acesso ao
processador como forma de proteo do
sistema.
Compreender a estrutura das chamadas
Caderno e Ambiente Virtual de
5. Arquitetura do de sistema utilizadas para a comunica-
Ensino- Aprendizagem.
Sistema Opera- o com o kernel do sistema. 10
www.cead.ifes.edu.br
cional Analisar as caractersticas de uma arqui-
tetura de sistema operacional dividido
em camadas ou no.
Verificar o funcionamento e importncia
de um interpretador de comandos.
Conhecer as funes de gerncia princi-
6. Introduo pais de um sistema operacional. Caderno e Ambiente Virtual de
gerncia de Analisar as funes do elemento proces- Ensino-Aprendizagem.
10
processos, memria so dentro de um sistema operacional. www.cead.ifes.edu.br
e arquivos Verificar a administrao da utilizao de
recursos pelo sistema operacional.
concluso

e-Tec Brasil 14 Sistemas Operacionais


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 eficincia, 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 defin-lo, de forma simples, como um conjunto de rotinas executa-
das pelo processador com a principal funo de controlar o funcionamento Sistema Operacional
Sistema Operacional: segundo
do computador, gerenciando os diversos recursos disponveis no sistema. Na o Aurlio (verbete sistema),
sistema operacional um conjunto
Figura 1.1 vemos a posio que um Sistema Operacional ou simplesmente integrado de programas bsicos,
SO ocupa dentre os vrios elementos que compem um sistema de com- projetado para supervisionar e
controlar a execuo de programas
putao. Voc deve observar que a palavra Usurios est sendo usada de aplicao em um computador.
com dois sentidos diferentes: para as pessoas que utilizam o computador e
para os programas e utilitrios instalados no computador.

Aula 1 Viso geral de Sistemas Operacionais 15 e-Tec Brasil


Programadores
e Analistas Usurios Aplicativos

Usurios

Sistemas
Operacionais

Hardware

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-
Voc pode obter mais cficas, controladas pelo sistema operacional, que so responsveis por acio-
informaes sobre setor e
trilha no livro Organizao
nar a cabea de leitura e gravao da unidade de disco, posicionar na trilha
Estruturada de Computadores, e setor onde esto os dados, transferir os dados do disco para a memria e,
de Andrew S. Tanembaum, 5
Edio, Editora Prentice-Hall, finalmente, informar ao programa a chegada dos dados.
ou na prpria internet em sites
especializados como o Clube
do Hardware em http://www. O sistema operacional, ento serve de interface entre o usurio e os re-
clubedohardware.com.br
cursos de hardware, tornando esta comunicao transparente (ou imper-
ceptvel) e permitindo ao usurio um trabalho mais eficiente e com menos
possibilidades de erros.

e-Tec Brasil 16 Sistemas Operacionais


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.

Aula 1 Viso geral de Sistemas Operacionais 17 e-Tec Brasil


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
ficava 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
grficos ou enviar dados impressora. A Figura 1.3 ilustra isto.

PROGRAMAS

DOS

HARDWARE

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


fizesse um acesso indevido diretamente ao hardware do computador ou se
o programa no estivesse bem escrito, isso inevitavelmente era refletido 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.

e-Tec Brasil 18 Sistemas Operacionais


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 classificadas 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.
Existem muitas linguagens de
alto nvel utilizadas para os
Um computador, visto somente como um gabinete composto de circuitos mais diversos fins, como C,
eletrnicos, cabos e fontes de alimentao (hardware), no tem nenhuma C++ e Java. Os cdigos-fontes
escritos nessas linguagens
utilidade. por meio de programas (software) que o computador consegue precisam ser convertidos em
armazenar dados em discos, imprimir relatrios, gerar grficos, realizar cl- linguagem binria. Por exemplo,
a linguagem C utiliza uma
culos, entre outras funes. O hardware o responsvel pela execuo das forma de converso diferente da
utilizada pela linguagem Java.
instrues de um programa, com a finalidade de se realizar alguma tarefa.

Nos primeiros computadores, a programao era realizada em painis, atra-


vs de fios, exigindo um grande conhecimento do hardware e de linguagem
de mquina. Isso trazia uma grande dificuldade 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, confivel e efi-
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.

Aula 1 Viso geral de Sistemas Operacionais 19 e-Tec Brasil


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

Sistema Operacional

Linguagem
de Mquina

Microprogramao Hardware

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 sofisticada (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 definido 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-

e-Tec Brasil 20 Sistemas Operacionais


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 conflitantes 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 eficincia de todo o ambiente computacional.

Atividades de aprendizagem
1. Quais seriam as principais dificuldades 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. Defina 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.

Aula 1 Viso geral de Sistemas Operacionais 21 e-Tec Brasil


Aula 2 Histrico e classificao

Objetivos

Conhecer o histrico de Sistemas Operacionais.

Compreender como as inovaes de hardware colaboraram com o


desenvolvimento dos Sistemas Operacionais.

Classificar os sistemas conforme suas caractersticas principais.

2.1 Histrico
Vimos que o sistema operacional interage diretamente com o hardware e,
com isso, influenciado 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 eficaz.

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 significativa do hardware,
do software, da interao com o sistema ou por aspectos de conectividade.
Primeiramente, devemos ressaltar que o mapeamento das datas de evolues

Aula 2 Histrico e classificao 23 e-Tec Brasil


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 fios, 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 confiabilidade 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.

e-Tec Brasil 24 Sistemas Operacionais


Processamento
Cartes Perfurados Fita de Entrada

Processamento
Fita de Entrada Fita de Sada

Processamento
Fita de Sada Relatrios

Figura 2.1: Ciclos de processamento na segunda fase


Fonte: Adaptado de Machado, 2004

Os programas passaram a ser perfurados em cartes que, submetidos a uma


leitora, eram processados e gravados em uma fita de entrada, conforme Fi-
gura 2.1. A fita de entrada, ento, era lida pelo computador, que executava
um programa de cada vez, processando e gravando o resultado em uma fita
de sada. Ao trmino de todos os programas, as fitas 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
Multiprogramao
tcnica de compartilhamento da memria principal e processador deu-se o Multiprogramao a execuo
nome de multiprogramao. simultnea de dois ou
mais programas.

Aula 2 Histrico e classificao 25 e-Tec Brasil


Com a substituio das fitas por discos no processo de submisso dos pro-
gramas, o processamento batch tornou-se mais eficiente, pois permitia a
Duas inovaes de hardware
foram fundamentais para o alterao na ordem de execuo das tarefas, at ento somente sequencial.
surgimento da multiprogramao: A essa tcnica de submisso de programas chamou-se spooling, que, mais
os discos magnticos e as
interrupes de hardware. Os tarde, tambm viria a ser utilizada no processo de impresso.
discos magnticos compem
praticamente todas as mquinas
atuais, com vrios Gigas e at Os sistemas operacionais, mesmo com a evoluo do processamento batch e a
Terabytes de capacidade de
armazenamento. As interrupes multiprogramao, ainda estavam limitados a processamentos que no exigiam
de hardware so sinais que as comunicao com o usurio. Para permitir a interao rpida entre o usurio e o
controladoras de dispositivos
enviam CPU para avisar que as computador, foram adicionados terminais de vdeo e teclado (interao on-line).
operaes de entrada ou
sada foram finalizadas ou
tiveram algum problema. 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).
Nos sistemas time-sharing, os
usurios possuam um terminal que
podia interagir com o programa em Outro fato importante nessa fase foi o surgimento do sistema operacional UNIX.
execuo. Esses usurios tinham
a iluso de possuir a mquina
dedicada execuo de seu Ao final dessa fase, com a evoluo dos microprocessadores, surgiram os
programa. O que no era verdade!
Essa iluso vinha da diviso de primeiros microcomputadores, muito mais baratos que qualquer um dos
tempo de processamento de CPU computadores at ento comercializados.
entre os usurios

d) Quarta fase (1981-1990) - Computadores Pessoais

Os mini e superminicomputadores se firmaram no mercado e os microcom-


Existem na internet muitas
informaes sobre o sistema putadores ganharam um grande impulso. Surgem as estaes de trabalho
UNIX, sistema pai de muitos
sistemas operacionais atuais,
(workstations) que, apesar de monousurias, permitem que se executem
como o Linux, Solaris e outros. diversas tarefas concorrentemente, criando o conceito de multitarefa.
Procure o vdeo na internet
chamado de Revoluo dos
Sistemas Operacionais, do No final dos anos 80 os computadores tiveram um grande avano, decorrente
Ingls Revolution OS, que
conta um pouco dessa histria. 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.

e-Tec Brasil 26 Sistemas Operacionais


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 artificial 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 definitiva para a consolidao dos sistemas opera-


cionais baseados em interfaces grficas (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 classificados conforme Figura 2.2.

Aula 2 Histrico e classificao 27 e-Tec Brasil


Tipos de Sistemas
Operacionais

Sistemas Sistemas Sistemas


Monoprogamveis/ Monoprogamveis/ com Multiplos
Monotarefas Multitarefa Processadores

Figura 2.2: Tipos de sistemas operacionais


Fonte: Adaptado de Macha, 2004

Considerando o processamento, podemos classificar 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
Monoprogramveis
ou Monotarefa aguardar a finalizao do programa corrente. Esta era uma caracterstica dos
Sistemas monoprogramveis ou
monotarefa so aqueles em que primeiros sistemas operacionais que estavam relacionados ao surgimento
executado, por vez, um nico dos primeiros computadores na dcada de 60.
programa ou uma nica tarefa.

Caracterizavam-se por permitir que todos os recursos de hardware ficassem


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.

Memria UCP

Dispositivos de E/S
Programa/Tarefa

Figura 2.3: Sistema monoprogramvel ou monotarefa


Fonte: Adaptado de Machado, 2004

e-Tec Brasil 28 Sistemas Operacionais


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 ficam
enfileirados, 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
Sistemas com mltiplos proces-
Sistemas com mltiplos processadores: o sistema operacional distribui as sadores caracterizam-se por
possuir duas ou mais CPUs
tarefas entre dois ou mais processadores. A vantagem desse tipo de sistema interligadas e trabalhando de
permitir que mais de um programa possa ser executado simultaneamente forma conjunta na soluo
de um problema.
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 Os sistemas com mltiplos
grande poder computacional, como sistemas de previso do tempo, modela- processadores podem ser
classificados em fortemente
gens, simulaes, desenvolvimento aeroespacial, entre outros. Com mltiplos acoplados e fracamente
processadores, possvel reduzir drasticamente o tempo de processamento acoplados, em funo da
comunicao entre CPUs e o
destas aplicaes. Inicialmente, as configuraes limitavam-se a poucos pro- grau de compartilhamento da
memria. Em sistemas fortemente
cessadores, mas, atualmente existem sistemas com milhares de processadores. 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.

Aula 2 Histrico e classificao 29 e-Tec Brasil


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 classificar 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 ficou 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?

e-Tec Brasil 30 Sistemas Operacionais


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 unificar 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

Aula 3 Elementos de hardware e software Parte I 31 e-Tec Brasil


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
Atualmente os nossos por unidade de tempo, normalmente em segundos. A unidade de medida
processadores conseguem
executar bilhes de instrues MIPS (milhes de instrues por segundo).
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 define 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
classificada 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
Maior Menor custo
capacidade de e velocidade
armazenamento Memria Principal de acesso

Memria Secundria

Figura 3.1: Comparativo dos diversos tipos de memria


Fonte: Adaptado de Machado, 2004

e-Tec Brasil 32 Sistemas Operacionais


a) Registradores

So dispositivos de alta velocidade, localizados fisicamente 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 especfico (com propsitos especiais) e de uso geral.

Os registradores de uso especfico 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
Para aumentar o desempenho
referncia a um dado armazenado na memria principal, verifica antes se no funcionamento das memrias
caches feita a hierarquizao
este dado no est armazenado na memria cache. Ao encontrar o dado da cache em mltiplos nveis.
armazenado na memria cache, o processador no acessa a memria princi- O nvel da cache mais alto
chamado de L1 (Level 1),
pal, diminuindo o tempo de processamento. com baixa capacidade de
armazenamento e com altssima
velocidade de acesso. O segundo
c) Memria principal nvel, L2 (Level 2), possui maior
capacidade de armazenamento,
porm com velocidade de
a memria responsvel pelo armazenamento dos programas que esto acesso inferior a L1, e assim
sucessivamente. Quando a CPU
sendo executados pela CPU em um certo instante, bem como dos dados necessita de uma informao da
utilizados pelos programas em execuo. Para que um programa possa ser memria principal, primeiramente
verifica a cache L1, caso no ache,
executado pela CPU necessrio que ele seja previamente armazenado na segue para a cache L2, assim
memria principal. Existem ainda dois tipos de memria: ROM (read only por diante. Se no encontrar em
nenhum dos nveis, busca o dado
memory memria somente leitura) e RAM (random access memory me- na memria principal.
mria de acesso randmico).

Aula 3 Elementos de hardware e software Parte I 33 e-Tec Brasil


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 firmware. Na me-


mria ROM do micro h basicamente trs programas (firmware) 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 configurao


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 especificar qual o
endereo de memria desejado. O endereo da clula a ser acessada fica arma-
zenado em um registrador denominado registrador de endereo de memria.

e-Tec Brasil 34 Sistemas Operacionais


0 Instruo
ou Dado
1
2

Endereos

Clulas Clulas de memria


Clulas de memria so unidades
de acesso da memria principal.
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,
n
a memria poder enderear 2 clulas. Alm das memrias RAM e ROM
descritas no texto, temos ainda
a PROM (memria programvel
d) Memria secundria somente de leitura) que pode
ser gravada pelo usurio uma
nica vez, a EPROM (memria
programvel e apagvel somente
Memria secundria um termo genrico para designar diversos compo- de leitura) que pode ser gravada
nentes que permitem gravar e ler dados permanentes. O seu acesso lento, ou regravada por meio de um
equipamento que fornece as
se comparada com as memrias cache ou principal, porm relativamente voltagens adequadas em cada
apresentam custo mais baixo e capacidade de armazenamento superior. pino (para apagar os dados
deve-se utilizar raios ultravioleta
Exemplos de memria secundria so as fitas magnticas, discos rgidos no chip), e por ltimo temos a
EEPROM (memria programvel
(HDs), CDs, DVDs, etc. e apagvel eletronicamente
somente de leitura), que pode ser
gravada, apagada ou regravada
3.1.3 Dispositivos de entrada e sada utilizando um equipamento que
Permitem a comunicao entre o computador e o mundo externo. Alguns fornece as voltagens adequadas
em cada pino.
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 especfico 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

Aula 3 Elementos de hardware e software Parte I 35 e-Tec Brasil


barramento um conjunto de fios paralelos (linhas de comunicao), por
onde trafegam informaes, como dados, endereos ou sinais de controle.
Um esquema grfico de um barramento mostrado na Figura 3.3.

CPU

Memria Unidade
Unidade de
Lgica e
Controle
Aritmtica

Registradores

Dispositivo E/S

Fluxo de Dados
Fluxo de Controle
Figura 3.3: Esquema grfico dos barramentos
Fonte: Adaptado de Machado, 2004

O barramento pode ser classificado 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 especificar 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

e-Tec Brasil 36 Sistemas Operacionais


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 eficincia 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 especficas, como copiar de fita 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 identificados 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 especficas 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-

Aula 3 Elementos de hardware e software Parte I 37 e-Tec Brasil


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 codificao
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:
A denominao montador ocorre
quando gerado o mdulo
objeto (a linguagem de mquina) Programa fonte Tradutor Programa objeto
a partir de uma linguagem de
montagem (assembler). A
denominao compilador dada
ao utilitrio responsvel por
gerar, a partir de um programa Linguagem
escrito em linguagem de alto Montador Mdulo objeto
de Montagem
nvel (Cobol, C, Delphi, etc.),
um programa em linguagem de
mquina (mdulo objeto)
Linguagem
Compilador Mdulo objeto
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.

e-Tec Brasil 38 Sistemas Operacionais


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

Programa
. Linker
Executvel
.
.

Mdulo objeto

Os IDEs (Ambientes Integrados


Figura 3.5: Representao do papel do linker
de Desenvolvimento), como
Fonte: Adaptado de Machado, 2004
o Dev C++, executam essas
funes (de compilador e linker
Em ambientes multiprogramveis esse tipo de alocao fixa feita pelo linker e at a carga do executvel)
de uma vez, quando voc
invivel porque neste caso a memria compartilhada entre diversos pro- aperta o F9. Voc no percebe
gramas: pouco provvel que no momento em que o sistema carrega um quando executada cada uma
delas, embora sejam distintas.
programa, sua rea de memria que foi predeterminada esteja disponvel. A Voc s consegue ver, na pasta
onde voc est trabalhando,
soluo para isso permitir que um programa possa ser executado em qual- os programas fonte (com
quer regio disponvel da memria, durante a sua carga (cdigo relocvel). terminao .c ou .cpp) e o
executvel (terminao .exe);
Esse tipo de relocao no realizado pelo linker, e sim por outro utilitrio, o mdulo objeto intermedirio
chamado loader, responsvel por carregar os programas na memria. (criado durante a compilao)
voc no v mais.

3.2.4. Loader
O loader (carregador) o utilitrio responsvel por colocar fisicamente 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-

Aula 3 Elementos de hardware e software Parte I 39 e-Tec Brasil


rante a execuo do programa. O funcionamento do carregador depende
do cdigo gerado pelo linker e, de acordo com este, pode ser classificado
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.

Programa-fonte

Compilador
ou Montador

Programa-fonte

Outros
Mdulos Link edio
Objeto

Mdulo de Tempo
Carga de Carga

Biblioteca
Carregador
do Sistema

Biblioteca do Imagem
Sistema Carregada Binria na Tempo de
Dinamicamente Memria Execuo
Ligao
Dinmica
Figura 3.6: As vrias etapas do desenvolvimento e processamento de um programa
Fonte: Adaptado de Silberschatz, Galvin e Gagne, 2000

e-Tec Brasil 40 Sistemas Operacionais


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 fim 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; Esses recursos de depurao


de programas tambm esto
colocar pontos de parada dentro do programa, de forma que, durante a presentes em IDEs, geralmente
na opo Debug.
execuo, o programa pare nos pontos determinados;

especificar em forma de envio de mensagem, toda vez que o contedo


de uma varivel for modificado.

Resumo
Nesta aula voc pde estudar e identificar os elementos bsicos de uma ar-
quitetura clssica de computadores. Pode compreender as funes e carac-
tersticas de cada elemento de hardware. Nesta aula, fizemos 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?

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 especficos 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 especficas 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 verifica 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 grficas, 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

Aula 4 Elementos de hardware e software Parte II 43 e-Tec Brasil


uma planilha ou texto para edit-los, voc est interagindo com o shell e
utilizando recursos dessa linguagem de comando.
Embora todos ou quase todos
os SO modernos usem uma
interface grfica para interagir
com o usurio, o prompt da linha
de comandos tambm continua 4.2 Programas de sistema ou utilitrios
a existir.
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 especfico para gravar arquivos em CDs e DVDs e para assistir um filme.
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-
ficos. 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) Modificao de arquivo - vrios editores de texto podem estar dispo-


nveis para criar e modificar o contedo dos arquivos armazenados em
disco, fita 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-
medida que novos perifricos tao. Permitem aos usurios enviar mensagens s telas uns dos outros,
se popularizam e novas funes
so atribudas ao computador, navegar pelas pginas da web, efetuar logon remotamente ou transferir
essa lista de utilitrios tende arquivos de uma mquina para outra;
a crescer. Alm disto, uma
funo antes exercida por um
utilitrio pode ser incorporada e) Spooling - permitem manipular a fila de impresso de documentos em
definitivamente ao SO, como uma ou mais impressoras ligadas ao sistema.
citamos o exemplo da leitura e
gravao de CD e DVD.

e-Tec Brasil 44 Sistemas Operacionais


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 codificado
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 definido pelo fabricante. Estas instrues especificam detalhes
como registradores, modos de endereamento de memria, tipo de dados Um exemplo de tentativa de
transformar os programas
que caracterizam um processador e suas potencialidades. Por sua vez, cada independentes do SO e do
SO tem um grupo de instrues especfico, chamada API Application Pro- modelo do equipamento a
plataforma Java. Pesquise mais
gramIinterface que os compiladores usam para traduzir as instrues escri- sobre o assunto no site
tas na linguagem de alto nvel para a linguagem entendida pelo linker. Isso http://www.java.com/pt_BR

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 eficiente 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.

Aula 4 Elementos de hardware e software Parte II 45 e-Tec Brasil


Durante a execuo de um programa, alguns eventos inesperados podem
ocorrer, interrompendo o seu fluxo 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
Programa dos registradores na
pilha de controle

Identifica a
origem do evento
Interrupo
ou exceo
Obtm o endereo Rotina de
da rotina de tratamento
tratamento

Restaura o contedo
dos registradores

Figura 4.1: Mecanismo de interrupo


Fonte: Adaptado de Machado, 2004

Para cada tipo de interrupo existe uma rotina de tratamento associada,

e-Tec Brasil 46 Sistemas Operacionais


para a qual o fluxo de execuo dever ser desviado. A identificao 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 fluxo em execuo que foi interrompido

Os eventos que causam a interrupo podem ser classificados como sncro-


nos ou assncronos. Um evento classificado 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
interrupes mascarveis
de tratamento da interrupo atual terminar. Interrupes com a caracters- so aquelas com a caracterstica
tica de poder ser desabilitada so chamadas de interrupes mascarveis. de poderem ser desabilitadas.

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. Interrupes no-mas-
carveis
so aquelas com a caracterstica
de no poderem ser desabilitadas.
J um evento classificado 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 especficos 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

Aula 4 Elementos de hardware e software Parte II 47 e-Tec Brasil


comunicar diretamente com os perifricos, nem conhecer detalhes de ope-
rao especficos de cada perifrico. Com isso, foram muito simplificadas as
instrues de E/S do processador.

Memria
UCP 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, ficava consul-
tando o estado do perifrico sucessivamente, at que a operao de E/S
chegasse ao fim, 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 verificar o estado da operao de E/S.
Caso houvesse vrias operaes de E/S pendentes, o processamento seria
interrompido diversas vezes para a verificao do estado das operaes;

e-Tec Brasil 48 Sistemas Operacionais


E/S controlada por interrupo - ao invs de o sistema ficar 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 final 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 final, 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-

Aula 4 Elementos de hardware e software Parte II 49 e-Tec Brasil


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.

e-Tec Brasil 50 Sistemas Operacionais


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 final 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
fita, e os de sada eram impressoras, unidades de fita 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 fita, 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 O monitor residente foi
e executava uma tarefa de cada vez. considerado o primeiro sistema
operacional (rudimentar).
Era um programa que ficava
permanentemente em memria
Para acelerar o processamento, os operadores reuniam as tarefas em lotes e sua funo era transferir a
com necessidades semelhantes e os executavam no computador como um execuo de um job para outro.
grupo. Assim os programadores deixavam seus programas com o operador e
o operador classificava os programas em lotes com requisitos semelhantes.
medida que o computador ficava disponvel, executava outro lote ou batch.

Aula 4 Elementos de hardware e software Parte II 51 e-Tec Brasil


A sada de cada tarefa seria enviada de volta ao programador apropriado.

No muito comum vermos Neste ambiente de execuo, a CPU ficava muitas vezes ociosa porque
tarefas sendo executadas em
batch. Entretanto, existem as velocidades dos dispositivos mecnicos de E/S (leitores de carto)
alguns procedimentos que eram intrinsecamente menores do que as dos dispositivos eletrnicos
guardam bastante semelhana:
os processos de backup e (CPU). Com o tempo, claro, melhorias na tecnologia e a introduo
recuperao de bancos de de discos resultaram em dispositivos de E/S mais rpidos (Silberschatz,
dados, bem como o processo
de inicializao do Windows. Galvin e Gagne, 2000. p. 5).
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 4.7. Escalonamento de tarefas e multipro-
usurio. 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

Memria UCP

Dispositivos de E/S

Programa/Tarefa Programa/Tarefa

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-

e-Tec Brasil 52 Sistemas Operacionais


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
ficaria 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 fim, a primeira tarefa terminar a sua operao de E/S e ter a CPU de
volta. Neste esquema, a CPU nunca fica ociosa.

Todos os jobs, ou tarefas, que entram no sistema so mantidos num pool


de jobs (espcie de fila). 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 suficiente 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 Escalonamento de tarefas


consiste em selecionar uma
vrios recursos do sistema, como por exemplo a CPU, memria e dispositivos tarefa, de um conjunto de
perifricos, eram utilizados de forma eficaz, mas no permitiam a interao tarefas aptas para execuo, que
ser a prxima a ser executada
do usurio com o sistema de computao. Tempo compartilhado (time sha- pela CPU
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 ficaram 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.

Aula 4 Elementos de hardware e software Parte II 53 e-Tec Brasil


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 classificados:

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).

e-Tec Brasil 54 Sistemas Operacionais


Outras funes dos sistemas operacionais servem no somente para ajudar o
usurio, mas para garantir a operao eficiente 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
reconfigurar 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 fim 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 figura 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 afirmar que os discos magnticos foram de fundamental


importncia para o surgimento da multiprogramao nos sistemas atuais?

Aula 4 Elementos de hardware e software Parte II 55 e-Tec Brasil


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.

e-Tec Brasil 56 Sistemas Operacionais


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.

Verificar 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.

Aula 5 Arquitetura do Sistema Operacional 57 e-Tec Brasil


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 finalizado. 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 final de toda rotina de tratamen-
to, h uma instruo especfica 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
ll
Ca
m
Syste

Altera modo
do processador
para kernel

Altera modo do
processador
para usurio

Restrutura o contexto
dos registradores
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

e-Tec Brasil 58 Sistemas Operacionais


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.

Ncleo do
Sistema
System Call Operacional
Aplicao
Hardware
Biblioteca
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 A documentao dos SO
costuma disponibilizar estas
predefinidas. Vrias linguagens como C, C++ e Perl foram definidas para chamadas com uma srie
substituir a linguagem assembly na programao de sistemas. Essas lingua- de funes cujo conjunto
chamado de API Application
gens permitem que as chamadas ao sistema sejam feitas diretamente. Por Program Interface. Esta sigla API
exemplo, as chamadas ao sistema do Unix podem ser feitas diretamente a pode ser usada tambm para
designar de uma forma genrica
partir de um programa em C ou em C++. como uma grande aplicao
(como um gerenciador de
banco de dados) aceita receber
Como um exemplo da forma em que as chamadas de sistema so usadas, solicitaes de outras aplicaes.

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:

Aula 5 Arquitetura do Sistema Operacional 59 e-Tec Brasil


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 especificado;

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, fim fsico da fita, 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 finalmente ter-
minar normalmente (a chamada final 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 identificar 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 especificar 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;

e-Tec Brasil 60 Sistemas Operacionais


Manipulao de arquivos;

Manipulao de dispositivos;

Manuteno de informaes;

Comunicaes.

Aplicao

Comandos Comandos
de E/S 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 simplificar 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 especficas 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 configurao do dis-
positivo a ser utilizado. A Figura 5.3 ilustra a comunicao entre a aplicao
e os dispositivos de E/S de maneira simplificada.

Aula 5 Arquitetura do Sistema Operacional 61 e-Tec Brasil


5.3. Arquiteturas do ncleo (kernel)
O projeto de um sistema operacional bastante complexo e deve atender a
diversos requisitos, algumas vezes conflitantes, como confiabilidade, porta-
bilidade, fcil manuteno, flexibilidade 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

e-Tec Brasil 62 Sistemas Operacionais


Um sistema to grande e complexo quanto um sistema operacional moder-
no deve ser cuidadosamente construdo para que funcione bem e possa ser
facilmente modificado. 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
simplifica a depurao e verificao 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

Programa de Sistema Residente

Dispositivo
do MS-DOS

Drivers de Dispositivo BIOS em ROM

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 definio, ela s utiliza o hardware bsico (que

Aula 5 Arquitetura do Sistema Operacional 63 e-Tec Brasil


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 simplificados quando o sistema dividido
em camadas.

A principal dificuldade da abordagem em camadas est na definio 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 eficientes. 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 modificados, os dados precisam ser transferidos e assim
por diante. Cada camada acrescenta novo custo chamada ao sistema; o
resultado final uma chamada ao sistema que demora mais do que em um
sistema sem camadas.

As limitaes da eficincia 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 definio 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

e-Tec Brasil 64 Sistemas Operacionais


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 modificao do kernel. Quando o
kernel precisa ser modificado, as alteraes tendem a ser menores, porque o
microkernel um kernel menor. O microkernel tambm fornece mais segu-
rana e confiabilidade, 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.

Aplicativo Aplicativo Aplicativo


Win 32 OS/2 Posix

Servidor Servidor Servidor


Win 32 OS/2 Posix

Kernel

Figura 5.6: Estrutura do Windows NT 4.0 (ncleo e servidores de aplicaes)


Fonte: Adaptado de Machado, 2004

Aula 5 Arquitetura do Sistema Operacional 65 e-Tec Brasil


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 ficar
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.

Um sistema computacional
formado por nveis, onde a
camada de nvel mais baixo 5.4. Interpretador de comandos
o hardware. Acima desta Um dos utilitrios mais importantes para um sistema operacional o inter-
camada encontramos o sistema
operacional que oferece suporte pretador de comandos (ou shell), que a interface entre o usurio e o sis-
para as aplicaes. O modelo tema operacional. Alguns sistemas operacionais incluem o interpretador de
de mquina virtual, ou virtual
machine (VM), cria um nvel comandos no kernel (ncleo do sistema operacional). Outros podem tratar o
intermedirio entre o hardware
e o sistema operacional, interpretador de comandos como um programa especial que fica executan-
denominado gerncia de do quando um job iniciado ou quando um usurio entra no sistema (em
mquinas virtuais. Este nvel
cria diversas mquinas virtuais sistemas de tempo compartilhado).
independentes, onde cada uma
oferece uma cpia virtual do
hardware, incluindo os modos de Muitos comandos do usurio so passados ao sistema operacional por ins-
acesso, interrupes, dispositivos
de E/S, etc. 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 grficas 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 grficas.

O interpretador de comandos (shell) pode ser utilizado na seguinte forma:

e-Tec Brasil 66 Sistemas Operacionais


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; enfim,
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 fim, analisamos algumas formas de se projetar o kernel de um
sistema operacional e suas implicaes no desempenho final 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.

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.

Verificar 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 definio 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 especificando a prxima instruo a
ser executada.

A execuo de um processo deve ser sequencial. A CPU executa uma instru-

Aula 6 Introduo gerncia de processos, memria e arquivos 69 e-Tec Brasil


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-
Multiplexando
Multiplexao a diviso de ma operacional (aqueles que executam cdigos do SO) at os processos de
algum servio oferecido entre
vrios processos. Voc ver este
usurio (aqueles que executam cdigo do usurio). Todos esses processos
conceito usado tambm para um podem executar concorrentemente, multiplexando a CPU entre eles.
canal de comunicao.

O sistema operacional responsvel pelas seguintes atividades em relao


gerncia de processos:

a) Criar e excluir processos de usurio e de sistema;


Deadlocks
Deadlock caracteriza uma
situao em que ocorre um b) Suspender e retomar processos;
impasse, onde dois ou mais
processos ficam impedidos de c) Fornecer mecanismos para a sincronizao de processos;
continuar suas execues, ou
seja, ficam bloqueados. Um
processo aguarda a liberao d) Fornecer mecanismos para a comunicao de processos;
de um recurso que est sendo
utilizado por um outro processo e) Fornecer mecanismos para o tratamento de deadlocks.
que, por sua vez, aguarda a
liberao de outro recurso
alocado ou dependente do
primeiro processo.
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-
DMA clo de busca de dados. As operaes de E/S (entrada e sada) implementadas
Direct Memory Access (Acesso
Direto Memria) uma forma via DMA tambm fazem a leitura e escrita de dados na memria principal.
de controle de entradas e sadas A memria principal geralmente o nico dispositivo de armazenamento
sem a utilizao constante do
microprocessador, como se que a CPU pode enderear e acessar diretamente. Para que a CPU processe
houvesse uma comunicao
direta entre o dispositivo DMA dados do disco, esses dados devem primeiro ser transferidos para a mem-
de E/S e a memria. Isto ocorre, ria principal por chamadas de E/S geradas pela CPU. Do mesmo modo, as
por exemplo, com a placa de
vdeo e o HD. instrues dos programas devem estar na memria principal para que a CPU
as execute.

e-Tec Brasil 70 Sistemas Operacionais


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 especfico 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.

Aula 6 Introduo gerncia de processos, memria e arquivos 71 e-Tec Brasil


Sistema
Operacional

1_Swap out

Processo
P1

Espao do 2_Swap in
Usurio Processo
P2

Armazenamento
Auxiliar
Memria
Prpria
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: fita 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

e-Tec Brasil 72 Sistemas Operacionais


arquivos atravs dos dispositivos de armazenamento.

O conceito de arquivo bastante geral. Um arquivo uma coleo de in-


formaes relacionadas definidas 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 figuras, msicas e animaes. Alm disso,
podem ter forma livre (por exemplo, arquivos de texto) ou podem ter uma
formatao rgida (por exemplo, campos fixos como em planilhas ou bancos
de dados). Um arquivo consiste em uma sequncia de bits, bytes, linhas ou
registros cujos significados so definidos 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

Arquivos ASCII ou binrio em um formato para impres-


Impresso ou visualizao ps, dvi, gif
so ou visualizao

Arquivos correlatos agrupados em um arquivo nico,


Arquivo compactado arc, zip, tar s vezes compactado, para fins 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.

Aula 6 Introduo gerncia de processos, memria e arquivos 73 e-Tec Brasil


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 classificao, 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 confivel para suas aplicaes.

e-Tec Brasil 74 Sistemas Operacionais


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 configurao
do dispositivo. Oferecem servios de gerenciamento controlado pelo sistema
operacional, enquanto o segundo especfico para cada dispositivo, necessi-
tando a instalao e configurao do hardware, identificando e controlando
cada dispositivo (b). Observem que grande parte das camadas trabalham de
forma independente do dispositivo fsico instalado.

Processo

{ {
Operaes de E/S
Modo Usurio

Sistemas de Independente
Arquivos
SOFTWARE

do dispositivos
(a)

{ Subsistema de E/S
Modo Kernel

Device Drivers { Dependente


do dispositivos
(b)
Controladores
HARDWARE

Dispositivos de E/S
Figura 6.2: Gerncia de dispositivos
Fonte: Adaptado de Machado, 2000

Aula 6 Introduo gerncia de processos, memria e arquivos 75 e-Tec Brasil


Resumo
Vimos nesta aula as principais funes de gerncia do sistema operacional.
Aprendemos alguns conceitos importantes sobre processos, memria prim-
ria e secundria, e dispositivos. Analisamos o funcionamento e a estrutura
bsica dos subsistemas principais de um sistema operacional. Podemos per-
ceber o quo complexo implementar um sistema operacional enquanto
um software dividido em camadas que interagem entre si.

Atividades de aprendizagem
1. Quais recursos so necessrios para a criao de um processo?

2. Qual a diferena bsica entre um processo e um programa?

3. Por que, muitas vezes, quebrar um programa em mais de um processo


pode ser vantajoso?

4. Quais as principais atividades da gerncia de processos?

5. Pesquise sobre plataformas multicore e como elas podem colaborar com


o desempenho de um computador em termos de processamento.

6. Pesquise sobre a transferncia de dados via DMA.

7. O que vem a ser a tcnica de Swapping?

8. Qual a diferena bsica entre arquivos, diretrios e parties?

9. Associe a modularidade de um subsistema de Entrada e Sada com os


Drivers de Dispositivos.

e-Tec Brasil 76 Sistemas Operacionais


Referncias
DEITEL, H.M. Sistemas Operacionais. 3.ed. Traduo de Arlete Simille Marques. So
Paulo: Pearson Prentice Hall, 2005.

MACHADO, Francis Berenger. Arquitetura de Sistemas Operacionais. Rio de Janeiro:


Editora LTC, 2004.

SILBERSCHATZ, A. & GAGNE, G. & GALVIN, P. B. Fundamentos de Sistemas


Operacionais. Traduo de Adriana Cashin Rieche. Rio de Janeiro, 2004.

TANENBAUM, A.S. Sistemas Operacionais Modernos. 2.ed. Traduo de Ronaldo A.


L Gonalves. So Paulo, 2009.

Aula 6 Introduo gerncia de processos, memria e arquivos 77 e-Tec Brasil


Currculo do professor-autor

Mestre em Informtica e Cientista da Computao pela UFES. Professor do


Instituto Federal do Esprito Santo desde 2009, tendo ministrado disciplinas
de sistemas operacionais e redes para os cursos Tcnico em Informtica e
Tecnlogo em Redes de Computadores, presencial e distncia. Experincia
de 7 anos em docncia e 10 anos na rea de informtica em geral (progra-
mao de sistemas, coordenao de equipes e gerncia de projetos).
Sistemas Operacionais
Bruno Cardoso Coutinho

Curso Tcnico em Informtica

ISBN: