You are on page 1of 74

EVERSON SCHERRER BORGES

Licenciatura em Informtica
Sistemas Operacionais

Cachoeiro de Itapemirim
IFES/CEAD
2011

Instituto Federal do Esprito Santo


Governo Federal
Ministro de Educao
Fernando Haddad
Instituto Federal do Esprito Santo (Ifes)
Reitor
Dnio Rebello Arantes
Pr-Reitora de Ensino
Cristiane Tenan Schlittler dos Santos
Diretora do CEAD Centro de Educao a Distncia
Yvina Pavan Baldo
Coordenadores da UAB Universidade Aberta do Brasil
Yvina Pavan Baldo
Maria das Graas Zamborlini
Curso de Tecnologia em Anlise e Desenvolvimento de Sistemas
Coordenao de Curso
Jonathan Toczek Souza
Designer Instrucional
Edmundo Rodrigues Junior
Professor Especialista/Autor
Everson Scherrer Borges

Catalogao da fonte: Rogria Gomes Belchior - CRB 12/417


S593 Borges, Everson Scherrer
Sistemas operacionais / Everson Scherrer Borges. 2011. Cachoeiro de
Itapemirim: Ifes, 2009.

100p. : il

ISBN

1. Informtica - Sistemas operacionais. 2. Sistemas operacionais - Processos. I.


Ttulo.

II. Ttulo

DIREITOS RESERVADOS
Instituto Federal do Esprito Santo (Ifes)
Avenida Rio Branco, n 50 Santa Lcia - CEP. 29056-255 Vitria ES - Telefone: 3227-5564
Crditos de autoria da editorao
Capa: Juliana Cristina da Silva
Projeto grfico: Juliana Cristina e Nelson Torres
Iconografia: Nelson Torres
Editorao eletrnica: CEAD
Reviso de texto:
Esther Ortlibe Faria de Almeida
COPYRIGHT proibida a reproduo, mesmo que parcial, por qualquer meio, sem autorizao escrita dos
autores e do detentor dos direitos autorais.

Ol, Aluno(a)!
um prazer t-lo(a) conosco.
O Ifes oferece a voc, em parceria com as Prefeituras e com o Governo
Federal, o Curso de Licenciatura em Informtica, na modalidade a
distncia. Apesar de este curso ser ofertado a distncia, esperamos que
haja proximidade entre ns, pois, hoje, graas aos recursos da tecnologia
da informao (e-mails, chat, videoconfernca, etc.), podemos manter
uma comunicao efetiva.
importante que voc conhea toda a equipe envolvida neste curso:
coordenadores, professores especialistas, tutores a distncia e tutores
presenciais. Assim, quando precisar de algum tipo de ajuda, saber a
quem recorrer.
Na EaD - Educao a Distncia - voc o grande responsvel pelo sucesso
da aprendizagem. Por isso necessrio que se organize para os estudos
e para a realizao de todas as atividades, nos prazos estabelecidos,
conforme orientao dos Professores Especialistas e Tutores.
Fique atento s orientaes de estudo que se encontram no Manual do
Aluno!
A EaD, pela sua caracterstica de amplitude e pelo uso de tecnologias
modernas, representa uma nova forma de aprender, respeitando, sempre,
o seu tempo.
Desejamos a voc sucesso e dedicao!

ICONOGRAFIA
Veja, abaixo, alguns smbolos utilizados neste material para gui-lo em seus estudos

Fala do Professor

Conceitos importantes. Fique atento!

Atividades que devem ser elaboradas por voc,


aps a leitura dos textos.

Indicao de leituras complemtares, referentes


ao contedo estudado.

Destaque de algo importante, referente ao


contedo apresentado. Ateno!

Reflexo/questionamento
sobre
algo
importante referente ao contedo apresentado.

Espao reservado para as anotaes que voc


julgar necessrias.

Introduo Sistemas Operacionais9


1.1 Introduo 9
1.1.1 Facilidade de acesso aos recursos do sistema10
1.1.2 Compartilhamento de recursos de forma organizada e
protegida10
1.2 Mquinas de Nveis12
1.3 Ativao e Desativao do Sistema13

Tipos de Sistemas Operacionais17


2.1 Introduo17
2.2 Sistemas Monoprogramveis / Monotarefa18
2.3 Sistemas Multiprogramveis / Multitarefa19
2.3.1 Sistemas Batch21
2.3.2 Sistemas de Tempo Compartilhado21
2.3.3 Sistemas de Tempo Real21
2.4 Sistemas Com Multiprocessadores22
2.4.1 Sistemas Fortemente Acoplados23

2.4.1.1 Sistemas Assimtricos24

2.4.1.2 Sistemas Simtricos25
2.4.2 Sistemas Fracamente Acoplados26

2.4.2.1 Sistemas Operacionais de Rede27

2.4.2.2 Sistemas Operacionais Distribudos28

Processos31
3.1 Introduo31
3.2 Gerenciamento de Programas33
3.3 Estados do Processo35
3.3.1 Estados de um processo Ativo35

3.3.1.1 Executando (running)35

3.3.1.2 Apto ou Pronto (ready)35

3.3.1.3 Bloqueado ou Espera (wait)36
3.4 Estados de Criao e Destruio de um
Processo36
3.5 Transies de Estado do Processo37
3.5.1 Apto J^ Executando38
^
3.5.2 Execuo J Apto38

^
3.5.3 Execuo J Bloqueado38
^
3.5.4 Bloqueado J Apto39
3.6 Transies de Estado com Swapping39
3.7 Processos Independentes, Subprocessos e
Threads40
3.7.1 Processos Foreground e Background e Pipes42

3.7.1.1 Processo Foreground42

3.7.1.2 Processo Background42

3.7.1.3 Pipe entre Processos43
3.8 Processos do Sistema Operacional43
3.8.1 Processos CPU-bound e I/O-bound44
3.9 Sinais45

Sistemas de Arquivos49
4.1 Introduo49
4.2 Organizao de um Sistema de Arquivos50
4.3 Propriedades dos Arquivos51
4.4 Organizao dos Arquivos53
4.5 Nomeao dos Arquivos e Diretrios55
4.6 Metadados dos Arquivos55
4.7 Classificao dos Sistemas de Arquivos56

Gerncia de Memria59
5.1 Introduo59
5.2 Proteo da Memria60
5.3 Organizao da Memria61
5.4 Limpeza da Memria62
5.5 Compartilhamento da Memria62
5.6 Memria Virtual63
5.7 Memria Paginada64
5.8 Memria Segmentada65

Gerncia de Dispositivos67
6.1 Introduo67
6.2 Driver de dispositivo67
6.3 Dispositivos plug and play71
6.4 Drives no Windows e Linux71

APRESENTAO

Caro Aluno,
meu nome EVERSON SCHERRER BORGES, responsvel pela disciplina
Sistemas Operacionais.
Atuo como professor do IFES h trs anos. Sou graduado em Sistemas de
Informao (2004) pelo Centro Universitrio So Camilo - Esprito Santo.
Atualmente, sou responsvel pelas disciplinas de Introduo a Redes, Implementao de Redes, Projetos de Redes e Sistemas Operacionais. Minhas
reas de interesse so Redes de Computadores e Sistemas Operacionais.
Nesta disciplina, voc conhecer o que um sistema operacional e suas
funcionalidades, identificar os diferentes tipos de sistemas operacionais,
compreender como ocorre a concorrncia em sistemas operacionais, entender a estrutura e organizao da estrutura do sistema operacional e
conhecer os sistemas de arquivos.
A disciplina de Introduo Informtica auxiliar no entendimento de alguns conceitos que sero abordados nesta disciplina, apesar de no serem
necessrios conhecimentos prvios acerca dos assuntos aqui abordados.
O objetivo deste material auxili-lo no estudo da disciplina Sistemas
Operacionais, por meio de dicas e sugestes que destacam os pontos mais
importantes a serem estudados.
Aqui, voc encontrar conceitos com os quais trabalharemos ao longo de
todo o curso, o que no dispensa a utilizao dos outros livros que fazem
parte da bibliografia sugerida.
Em geral, para ser bem sucedido neste curso, importante que faa os
exerccios e estude regularmente, evitando-se, dessa forma, o acmulo de
contedo.
Estudar s bom quando se estuda o que gosta. Portanto, passe a gostar
de Sistemas Operacionais.
Sbio aquele que conhece os limites da prpria ignorncia. (Scrates)
Assim, espero que alcance o sucesso!
Prof. Everson Scherrer Borges

Introduo Sistemas
Operacionais

Caro aluno,
iniciaremos nossa primeira aula com a introduo aos sistemas
operacionais (SO). Este primeiro captulo contm os conceitos
bsicos para o entendimento de Sistemas Operacionais.
Em geral, essa disciplina acumulativa, ou seja, a compreenso dos
conceitos estudados em um captulo a base para o entendimento
dos captulos posteriores.
Um gnio uma pessoa de talento que faz toda a lio de
casa.(Thomas A. Edison)
Bom estudo!

1.1 Introduo
Os sistemas operacionais possuem duas funes bsicas que
se apresentam de extrema importncia para o entendimento
do sistema operacional; sendo assim, antes de estudarmos os
conceitos bsicos, veremos suas funes.

Por mais complexo que possa parecer, um sistema operacional


um grupo integrado de programas que permitem a comunicao
entre o computador e o usurio. Sua principal funo controlar o
funcionamento do computador, como um gerente dos diversos recursos
disponveis no sistema.
O sistema operacional o primeiro programa que o computador executa
no momento em que ligado e, a partir de ento, s para de funcionar
quando o computador desligado. O sistema operacional reveza sua
execuo com a de outros programas, que trabalham em conjunto, como
se estivesse organizando e orquestrando todo o processo computacional.

10
Everson Scherrer Borges
O nome sistema operacional no nico para designar esse conjunto
de programas. Nomes como monitor, executivo, supervisor ou
controlador possuem, normalmente, o mesmo significado. [1]

Um sistema operacional, porm, possui inmeras funes e resumimos


essas funes, basicamente, em duas, que so descritas a seguir.
1.1.1 Facilidade de acesso aos recursos do sistema
Um sistema de computao possui, normalmente, diversos componentes,
como terminais, impressoras, discos e fitas. Quando utilizamos esses
dispositivos, no nos preocupamos com a maneira como realizada a
comunicao entre eles e o processador, nem nos preocupamos com os
inmeros detalhes envolvidos.
Para a maioria de ns, uma operao habitual, como a leitura de
um arquivo em disquete, por exemplo, pode parecer simples. Na
realidade, existe um conjunto de rotinas especiais, controladas
pelo sistema operacional, responsvel por acionar a cabea de
leitura e gravao da unidade de disco, posicionar essa cabea na
trilha e no setor onde esto os dados, transferir os dados do disco
para a memria e, finalmente, informar ao programa a chegada
dos dados. [3]

O sistema operacional serve de interface (intermedirio) entre os


usurios e os recursos disponveis no sistema, tornando esta comunicao
transparente e permitindo ao usurio um trabalho mais eficiente e com
menores chances de erros (Figura 1).
O conceito de ambiente simulado, criado pelo sistema operacional,
denominado mquina virtual (virtual machine) e est presente, de
alguma forma, na maioria dos sistemas atuais.
1.1.2 Compartilhamento de recursos de forma organizada
e protegida
Quando pensamos em sistema multiusurio, onde vrios usurios
podem estar compartilhando os mesmos recursos, como memria e
discos, por exemplo, necessrio que todos tenham oportunidade de
ter acesso a esses recursos de forma que um usurio no interfira no
trabalho do outro.[1]

11
Sistemas Operacionais

Se imaginarmos que uma impressora possa ser utilizada por vrios


usurios do sistema, 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
concorrente a cada recurso, de forma organizada e protegida,
dando ao usurio a impresso de ser o nico a utilizar tal recurso.

O compartilhamento de recursos permite, tambm, a diminuio de


custos, na medida em que mais de um usurio possa utilizar as mesmas
facilidades concorrentemente, como discos, impressoras, linhas de
comunicao, etc.
No apenas em sistemas multiusurios que o sistema operacional
importante. Se pensarmos que um computador pessoal nos permite
executar vrias tarefas, como imprimir um documento, copiar um
arquivo pela internet ou processar uma planilha, o sistema operacional
deve ser capaz de controlar a execuo concorrente de todas essas tarefas.
A Figura 1 mostra uma viso do sistema operacional como interface
entre os usurios e os recursos do sistema.
Programadores
e Analistas

usurios

Aplicativos

Usurios

Sistema Operacional

Hardware
Figura 1: Viso do sistema operacional como interface entre os usurios e os
recursos do sistema.
Fonte: Machado e Maia, 2004. Adaptao.

12
Everson Scherrer Borges

1.2 Mquinas de Nveis


Um computador visto somente como um gabinete composto de
circuitos eletrnicos, cabos e fontes de alimentao (hardware), no
tem nenhuma utilidade. atravs de programas (software) que o
computador consegue armazenar dados em discos, imprimir relatrios,
gerar grficos, realizar clculos, entre outras funes. O hardware
o responsvel pela execuo das instrues de um programa, com a
finalidade de realizar alguma tarefa.
Uma operao efetuada pelo software pode ser implementada em
hardware, enquanto uma instruo executada pelo hardware pode
ser simulada via software. Esta deciso fica a cargo do projetista
do computador em funo de aspectos como custo, confiabilidade
e desempenho. Tanto o hardware como o software so logicamente
equivalentes, interagindo de uma forma nica para benefcio do
usurio.[3]

Nos primeiros computadores, a programao era realizada em painis,


atravs de fios, exigindo um grande conhecimento do hardware e de sua
linguagem de mquina. Mas isso era uma grande dificuldade para os
programadores da poca.
Ento, a soluo para esse problema foi o surgimento do sistema
operacional, que tornou a interao entre usurio e computador
mais simples, confivel e eficiente. A partir desse acontecimento,
no existiu mais a necessidade de o programador se envolver com a
complexidade do hardware para poder trabalhar. Ou seja, a parte
fsica do computador tornou-se transparente para o usurio, conforme
podemos observar na Figura 2. [1]

usurio

Sistema Operacional

Hardware

Figura 2 - Viso do computador pelo usurio


Fonte: Machado e Maia, 2004. Adaptao.

13
Sistemas Operacionais

Partindo do princpio acima mencionado, podemos considerar


o computador como uma mquina de nveis ou camadas, onde
inicialmente existem dois nveis: o nvel 0 (hardware) e o nvel
1 (sistema operacional). Dessa forma, o usurio pode enxergar
a mquina como sendo apenas o sistema operacional, ou seja,
como se o hardware no existisse. Essa viso modular e abstrata
chamada mquina virtual.[1]
Na realidade, um computador no possui apenas dois nveis, e sim
tantos nveis quantos forem necessrios para adequar ao usurio suas
diversas aplicaes. Quando o usurio est trabalhando em um desses
nveis, no necessita da existncia das outras camadas acima ou abaixo
de sua mquina virtual.
Ultimamente, a maior parte dos computadores possui uma estrutura
como a mostrada na Figura 3, 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).

Aplicativos
Utilitrios
Sistema Operacional

Microprogramao

Hardware

Sistema Operacional

Dispositivos Fsicos

Figura 3 - Mquina de nveis.


Fonte: Machado e Maia, 2004. Adaptao.

1.3 Ativao e Desativao do Sistema


O sistema operacional essencial para o funcionamento de um
computador. Sem ele, grande parte dos recursos do sistema
computacional no estaria disponvel, ou se apresentaria de uma forma
complexa para utilizao pelos usurios.

14
Everson Scherrer Borges

Toda vez que um computador ligado, necessrio que o sistema


operacional seja carregado da memria secundria para a memria
principal. Esse processo, denominado ativao do sistema (boot),
realizado por um programa localizado em uma posio especfica do
disco (disco block), geralmente o primeiro bloco. O procedimento
de ativao varia em funo do equipamento, podendo ser realizado
atravs do teclado, de um terminal ou por manipulao de chaves de um
painel (Figura 4).

Sistema Operacional

BOOT

Hard Disk

Memria
Principal

Figura 4 - Ativao do sistema


Fonte: Machado e Maia, 2004. Adaptao.

A inicializao do sistema operacional ocorre com a carga inicial do


sistema do disco para a RAM. Uma pequena rotina armazenada em ROM,
chamada de CARREGADOR de BOOTSTRAP ou IPL (Carregador de
Programa Inicial), l uma rotina especial de carga no disquete, cd-rom,
hard disk, pendrive, etc. Essa rotina normalmente reside na trilha 00,
setor 00 (ou 01), (em sistemas baseados em disquete) e chamado de
setor de booting. O cdigo contido no setor transferido para a RAM,
e ento executada. Esse CARREGADOR tem a responsabilidade
exclusiva de carregar o resto do sistema operacional na memria.

Em computao, boot o termo em ingls para o processo de


iniciao do computador, que carrega o sistema operacional
quando a mquina ligada. Muitos computadores podem
executar apenas cdigos existentes na memria de trabalho (ROM
ou RAM). Os sistemas operacionais modernos so normalmente
armazenados em disco rgido, CD-ROM ou outros dispositivos de
armazenamento.
Logo que o computador ligado, ele no tem um sistema
operacional na memria. Portanto, ele ficaria apenas energizado,
j que o hardware do computador no pode fazer nenhuma
operao por si mesmo. Ento, preciso que o sistema operacional

15
Sistemas Operacionais

seja carregado na memria principal assim que ligarmos o


computador. Feito isso, podemos realizar qualquer ao via
hardware, como carregar na memria um programa que est no
disco, por exemplo.
Na maioria dos sistemas, tambm existe o processo de desativao
(Desligar). Este procedimento permite que as aplicaes e componentes
do sistema operacional sejam desativados de forma ordenada,
garantindo sua integridade.[1]

1. Durante os estudos sobre a introduo dos sistemas operacionais,


verificamos sua importncia para a utilizao do computador.
Assim, defina: quais as principais razes para se estudar Sistemas
Operacionais?
2. O que um sistema operacional faz?
3. Quais so as principais funes do Sistema Operacional?
Explique-as.
4. Defina o conceito de uma mquina de nveis ou camadas.
5. Descreva o processo de ativao do sistema operacional.
6. Qual a importncia dos aplicativos para o sistema operacional?
7. A partir de quais dispositivos possvel realizar a carga do
sistema operacional?
8. Descreva o processo de boot.
9. O que o bootstrap?

[1] MACHADO, F.B. e MAIA, L.P. Arquitetura de Sistemas


Operacionais. 4.ed. local? LTC, 2007.
[2] SILBERSCHATZ, A., GALVIN, P.B., GAGNE, G. Fundamentos
de Sistemas Operacionais. 6.ed. local? LTC, 2004.
[3] TANENBAUM, A.S. Sistemas Operacionais Modernos. 2.ed.
local? Pearson Brasil, 2007.

16
Everson Scherrer Borges

___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
____________________________________________________

Tipos de Sistemas
Operacionais

Caro aluno,
esta a segunda aula. Nela, veremos os tipos de Sistemas
Operacionais, e isso importante para entendermos as diferentes
aplicaes, conceitos e funcionalidades que envolvem os Sistemas
Operacionais.
As pessoas que vencem neste mundo so as que procuram as
circunstncias de que precisam e, quando no as encontram, as
criam. (Bernard Shaw)
Bom estudo!

2.1 Introduo
A evoluo dos hardwares relaciona-se diretamente com a evoluo dos
sistemas operacionais, que popularizou diversos conceitos e tcnicas,
antes s conhecida em ambientes de grande porte.
Os sistemas operacionais podem ser classificados segundo diversos
parmetros e perspectivas, como tamanho, velocidade, suporte a
recursos especficos, suporte a usurios, acesso rede, etc.
Esses sistemas so divididos em grupos, conforme a Figura 5, e esto
relacionados com o tipo de computador que controlam e o tipo de
aplicativos que suportam.
Tipos de Sistemas
Operacionais

Sistemas
Monoprogramveis/
Monotarefa

Sistemas
Monoprogramveis/
Multitarefa

Figura 5: Tipos de Sistemas Operacionais


Fonte: Machado e Maia, 2004. Adaptao.

Sistemas
com Mltiplos
Processadores

18
Everson Scherrer Borges

2.2 Sistemas Monoprogramveis /


Monotarefa
Os primeiros sistemas operacionais eram tipicamente voltados
para a execuo de um nico programa. Qualquer outra aplicao,
para ser executada, deveria aguardar o trmino do programa
corrente. [1]

Aqueles tipos de sistema, tambm conhecidos como sistemas


monotarefa, caracterizavam-se por permitir que todos os recursos do
sistema computacional (o processador, a memria e os perifricos)
permanecessem exclusivamente dedicados execuo de um nico
programa ou a uma nica tarefa.
Neles, enquanto um programa aguardava por um evento, como a
digitao de um dado, o processador permanecia ocioso, sem realizar
qualquer tipo de processamento.
A memria ficava subutilizada caso o programa no a preenchesse
totalmente, e os perifricos, como discos e impressoras, dedicados a um
nico usurio, nem sempre eram utilizados de forma integral.
Nos sistemas monotarefa, no existia muita preocupao com problemas
decorrentes do compartilhamento de recursos como memria,
processador e dispositivos de E/S. A Figura 6 mostra a organizao de
um sistema Monoprogramvel ou Monotarefa.

Dispositivos de E/S

UCP
Programa / Tarefa

Figura 6: Sistemas Monoprogramveis / Monotarefa


Fonte: Machado e Maia, 2004. Adaptao

Memria

19
Sistemas Operacionais

O sistema operacional monotarefa foi criado para que um nico usurio


pudesse fazer uma coisa por vez. Nos dias atuais, ainda podemos encontrar
esses tipos de sistemas operacionais e, embora paream um tipo de
sistema antigo, ainda existem sistemas operacionais monoprogramveis
ou monotarefa. Um bom exemplo o sistema operacional Nokia OS
S40, que trabalha nos celulares mais simples da Nokia, como no modelo
6212 (Figura 7); outro exemplo o O Palm OS, dos computadores Palm,
um moderno sistema operacional monousurio e monotarefa.

Figura 7: Sistemas Monoprogramveis / Monotarefa


Fonte: http://www.gdhpress.com.br/blog/celulares-nokia/

2.3 Sistemas Multiprogramveis /


Multitarefa
Este o tipo de sistema operacional mais utilizado em computadores de
mesa e notebooks. As plataformas Microsoft Windows e Apple MacOS
so exemplos de sistemas operacionais que permitem que um nico
usurio utilize diversos programas ao mesmo tempo. Por exemplo,
possvel para um usurio de Windows escrever uma nota em um
software editor de texto ao mesmo tempo em que faz download de um
arquivo da internet e impresso de um e-mail.
Verificamos que nesse tipo de sistema, os recursos computacionais so
compartilhados entre diversos usurios e aplicativos. Neles, enquanto
um programa espera uma operao de leitura ou gravao em disco,
outros programas podem estar sendo processados simultaneamente, ou
seja, no mesmo intervalo de tempo.

20
Everson Scherrer Borges

Podemos observar, nesse caso, o compartilhamento da memria e


do processador. O sistema operacional se preocupa em gerenciar o
acesso concorrente aos seus recursos, como memria, processador
e perifricos, de forma ordenada e protegida, entre os diversos
programas.[1]

O uso de sistemas multiprogramveis proporciona a reduo de tempo


de resposta das aplicaes processadas no sistema e a reduo de custo.
Sistemas multiprogramveis, embora sejam mais eficientes que os
monoprogramveis, so de implementao muito mais difcil.
De acordo do nmero de usurios que esto interagindo com o sistema,
podemos classificar os sistemas multiprogramveis como monousurio
e multiusurio.
Sistemas multiprogramveis monousurio so encontrados em
computadores pessoais ou em estaes de trabalho, onde h apenas
um nico usurio interagindo com o sistema. Neste caso, existe a
possibilidade da execuo de diversas tarefas ao mesmo tempo, como
a edio de texto, uma impresso e o acesso Internet. [1]

Sistemas operacionais multiprogramveis multiusurio (Figura 8), so


ambientes que possibilitam que diversos usurios possam conectar-se
ao sistema de forma simultnea

Programa / Tarefa

Dispositivos de E/S

UCP

Programa / Tarefa

Programa / Tarefa

Memria

Programa / Tarefa

Figura 8: Sistemas Multiprogramveis / Multitarefa


Fonte: Machado e Maia, 2004. Adaptao

Sistemas operacionais multiprogramveis so os mais


utilizados em computadores de mesa e notebooks. Um sistema
operacional multitarefa permite que diversos programas
utilizem simultaneamente os recursos do computador. O sistema
operacional deve se certificar de que as solicitaes de vrios
programas estejam balanceadas.

21
Sistemas Operacionais

Os ambientes multiprogramveis ou multitarefa classificam-se pela


forma com que suas aplicaes so gerenciadas ou interadas com
os usurios, podendo ser divididos em sistemas batch, de tempo
compartilhado ou de tempo real.
2.3.1 Sistemas Batch
Foram os primeiros sistemas operacionais multiprogramveis a serem
implementados na dcada de 1960. Os programas, que tambm eram
chamados de jobs, eram submetidos para execuo atravs de cartes
perfurados, e eram armazenados em disco ou fita, onde aguardavam
para serem processados. Posteriormente, em funo da disponibilidade
de espao na memria principal, os jobs eram executados produzindo
uma sada em disco ou fita. [1]

Este tipo de processamento tem a caracterstica de no interagir com o


usurio e a aplicao. Todas as entradas e sadas de dados da aplicao
so implementadas por algum tipo de memria secundria.
Atualmente, os sistemas operacionais implementam e simulam
o processamento batch, no existindo sistemas exclusivamente
dedicados a este tipo de processamento. [1]

2.3.2 Sistemas de Tempo Compartilhado


Sistemas de tempo compartilhado ou time-sharing possibilitam a
execuo de diversos programas a partir da diviso do tempo de
processamento em intervalos, chamados fatia de tempo (time-slice).
Caso a fatia de tempo no seja satisfatria para a concluso da execuo
do programa, este tempo interrompido pelo sistema operacional e
substitudo por um outro, enquanto fica aguardando por uma nova fatia
de tempo. Com isso, o sistema cria um ambiente de trabalho prprio,
dando a impresso de que todo o sistema est dedicado, exclusivamente,
para cada usurio.
Grande parte dos aplicativos comerciais ultimamente so processados
em sistemas de tempo compartilhado, que permitem tempos curtos
de respostas a seus usurios, e menores custos em funo da utilizao
compartilhada dos diversos recursos do sistema.
2.3.3 Sistemas de Tempo Real
Nos sistemas de tempo real ou real-time, os tempos de resposta devem
estar dentro de limites rgidos, que devem ser satisfeitos. Caso contrrio,
podero ocorrer problemas irreparveis. Neste tipo de sistema, no existe

22
Everson Scherrer Borges

a idia de pedao/fatia de tempo. Um programa utiliza o processador


durante o tempo que for necessrio ou at que aparea outro cujo uso
seja prioritrio. A autoridade ou prioridade de execuo definida pelo
prprio programa/ aplicativo e no pelo sistema operacional, como nos
sistemas de tempo compartilhado.
Esses sistemas, normalmente, esto presentes em aplicaes de controle
de processos, como no monitoramento de refinarias de petrleo,
controle de trfego areo, de usinas termoeltricas e nucleares, ou em
qualquer aplicao onde o tempo de respostas fator fundamental. [1]

(RTOS - Real-time operating system). o Sistema Operacional


de Tempo Real, utilizado para controlar mquinas, instrumentos
cientficos e sistemas industriais. Geralmente, um RTOS no tem
uma interface muito simples para o usurio e no destinado para
o usurio final, pois esse tipo de sistema entregue como uma
caixa selada.

A funo do RTOS gerenciar os recursos do computador para que


uma operao especfica seja sempre executada durante um mesmo
perodo de tempo. Numa mquina complexa, se uma parte se move
mais rapidamente s porque existem recursos de sistema disponveis,
isto pode ser to catastrfico quanto se uma parte no conseguisse se
mover porque o sistema est ocupado.

2.4 Sistemas Com Multiprocessadores


Sistema monoprocessado - Caracteriza-se por possuir um nico
processador, sendo este controlado pelo sistema operacional instalado.
Ex.: Microcomputador PC com Windows 98.
Sistema multiprocessado - Caracteriza-se por possuir mais de um
processador, sendo que estes podem compartilhar o mesmo sistema
operacional, ou cada um pode possuir o seu prprio sistema.
A principal vantagem desse tipo de sistema permitir que vrios
processos possam ser executados simultaneamente, sem a necessidade
de compartilhamento do tempo do processador, ou ento que um
determinado processo possa ser dividido entre as unidades de
processamento para agilizar a sua concluso.

23
Sistemas Operacionais

Como o sistema operacional responsvel por gerenciar a execuo das


tarefas, deve estar devidamente adaptado para operar em sistemas com
mais de uma unidade de processamento, para poder distribuir a execuo
dos programas e maximizar a utilizao dos recursos disponveis.
A construo de Sistemas com suporte a Mltiplos processadores
foi feita pensando-se em aplicaes voltadas para o processamento
cientfico, explorao de minerais e petrleo, simulaes e
computao grfica. Grande parte dos supercomputadores
instalados ao redor do mundo est em uso em Laboratrios de
Pesquisa dos EUA, Europa e Japo, e em grandes empresas como
Dupont, Petrobrs, entre outras.

Os Sistemas com mltiplos processadores so divididos, conforme


Figura 9.

Tipos de Sistemas
Operacionais

Sistemas
com Mltiplos
Processadores

Sistemas
Monoprogramveis/
Monotarefa

Sistemas
Assimtricos

Sistemas
Simtricos

Sistemas
Operacionais de
Redes

Sistemas
Operacionais de
Distribudos

Figura 9: Sistemas com Mltiplos Processadores


Fonte: Machado e Maia, 2004. Adaptao.

2.4.1 Sistemas Fortemente Acoplados


Nos sistemas fortemente acoplados (Figura 10), existem vrios
processadores compartilhando uma nica memria e gerenciados por
apenas um sistema operacional. Mltiplos processadores permitem
que vrios programas sejam executados ao mesmo tempo, ou que um
programa seja dividido em subprogramas, para execuo simultnea
em mais de um processador. Dessa forma, possvel ampliar a
capacidade de computao de um sistema, adicionando-se apenas
novos processadores, com um custo muito inferior aquisio de
outros computadores.[1]

24
Everson Scherrer Borges

Com a introduo do multiprocessamento, novos problemas surgiram,


pois vrios processadores podem acessar as mesmas reas de memria,
e a isso chamamos de concorrncia. Alm disso, existe o problema
de organizar, de forma eficiente, os processadores, a memria e os
perifricos.
Em decorrncia do multiprocessamento, houve o aparecimento dos
computadores voltados, principalmente, para processamento cientfico,
aplicado, por exemplo, ao desenvolvimento aeroespacial, prospeco
de petrleo, s simulaes, ao processamento de imagens e a CAD
(desenhos tcnicos).
A princpio, qualquer programa que faa uso intensivo do processador
ser beneficiado pela adio de processadores ao sistema computacional.

UCP

Memria

Dispositivos de E/S

UCP

Dispositivos de E/S

Figura 10: Sistemas Fortemente Acoplados


Fonte: Machado e Maia, 2004. Adaptao.

2.4.1.1 Sistemas Assimtricos


No sistema assimtrico ou mestre/escravo (Figura 11), somente um
processador (mestre) pode executar servios do sistema operacional,
como, por exemplo, realizar operaes de entrada/sada, gerenciar
processos, inicializar o sistema. Sempre que um processador do tipo
escravo precisar realizar uma operao de entrada/sada ou escalonar
um processo ter que solicitar o servio ao processador mestre.
Dependendo da quantidade de operaes de entrada/sada destinadas
aos processadores escravos, o sistema pode se tornar ineficiente, devido
ao elevado nmero de interrupes que devero ser tratadas pelo mestre.

25
Sistemas Operacionais

UCP Slave

UCP Master

Dispositivos
de E/S

S.O

Usurios

Usurios

Figura 11: Sistemas Assimtricos


Fonte: Machado e Maia, 2004. Adaptao.

Se o processador mestre falhar, todo o sistema ficar incapaz


de continuar o processamento. Nesse caso, o sistema deve ser
reconfigurado, fazendo um dos processadores escravos assumirem
o papel do mestre.
Mesmo sendo uma organizao simples de implementar e quase
uma extenso dos sistemas multiprogramveis, esse tipo de
sistema no utiliza eficientemente o hardware, devido assimetria
dos processadores, que no realizam as mesmas funes.

2.4.1.2 Sistemas Simtricos


No multiprocessamento simtrico (Figura 12), tambm conhecido
como SMP (Symmetric Multi-Procesors), ao contrrio da
organizao mestre/escravo (master/slave), implementa a simetria
dos processadores, ou seja, todos os processadores desempenham
as mesmas funes. Apenas algumas poucas funes ficam a cargo
de um nico processador, como, por exemplo, a inicializao
(boot) do sistema.
UCP

UCP

Dispositivos
de E/S

S.O

Figura 12: Sistemas Simtricos


Fonte: Machado e Maia, 2004. Adaptao.

Usurios

26
Everson Scherrer Borges

Como vrios processadores esto utilizando, independentemente,


a mesma memria e o mesmo sistema operacional, natural a
ocorrncia de acessos simultneos s mesmas reas de memria.
A soluo desses conflitos fica a cargo do hardware e do sistema
operacional.

No processamento simtrico, um programa pode ser executado por


qualquer processador, inclusive por vrios processadores ao mesmo
tempo (paralelismo). Alm disso, quando um processador falha, o
sistema continua em funcionamento sem nenhuma interferncia
manual, porm com menor capacidade de computao, pois o sistema
agora esta com um processador a menos.
Os sistemas simtricos so mais poderosos que os assimtricos, pois
possibilitam uma melhor diviso do processamento e das operaes de
entrada/sada, apesar de sua implementao ser muito mais difcil.

Para exemplificar a diferena entre sistemas Assimtricos e


Simtricos, vamos fazer a seguinte analogia: imagine dois
funcionrios que sabem realizar as mesmas tarefas e trabalham em
dias alternados; porm, mesmo trabalhando em dias alternados, o
trabalho tem sua devida continuidade, funcionando em simetria.
assim que ocorre nos Sistemas Simtricos.
J nos sistemas assimtricos isso no acontece, pois cada
funcionrio realiza tarefas distintas, de forma assimtrica.

2.4.2 Sistemas Fracamente Acoplados


Os sistemas fracamente acoplados caracterizam-se por possuirem
dois ou mais sistemas de computao interligados, sendo que cada
sistema possui o seu prprio sistema operacional, gerenciando
os seus recursos, como processador, memria e dispositivos de
entrada/sada.[1]

Durante a dcada de 80, os sistemas operacionais e os aplicativos


suportados por eles eram tipicamente concentrados em sistemas de
grande porte (centralizados), com um ou mais processadores.

27
Sistemas Operacionais

Nos sistemas centralizados, os usurios utilizam terminais no


inteligentes conectados a linhas seriais dedicadas ou linhas telefnicas
pblicas para a comunicao interativa com esses sistemas. Nesse
modelo de sistema, os terminais no tm capacidade de processamento,
ou seja, sempre que um usurio deseja alguma tarefa, o pedido
encaminhado ao sistema, que realiza o processamento e retorna uma
resposta, utilizando as linhas de comunicao.
Com a evoluo dos computadores pessoais e das estaes de trabalho,
juntamente com o avano das telecomunicaes e da tecnologia de
redes, surgiu um novo modelo de computao, chamado de modelo de
rede de computadores (Figura 13). [1]

Rede
N

Figura 13: Sistemas Fracamente Acoplados


Fonte: Machado e Maia, 2004. Adaptao.

2.4.2.1 Sistemas Operacionais de Rede


Basicamente, um sistema operacional de rede um conjunto de
mdulos que ampliam as tarefas dos sistemas operacionais locais,
complementando-os com um conjunto de funes bsicas, e de uso
geral, que tornam transparente o uso de recursos compartilhados da
rede. Portanto, um computador de rede tem o sistema operacional
local interagindo com sistema operacional de rede, para que possam
ser utilizados os recursos de rede to facilmente quanto os recursos na
mquina local. Com efeito, o sistema operacional de rede coloca um
redirecionador entre o aplicativo do cliente e o sistema operacional local
para redirecionar as solicitaes de recursos da rede para o programa de
comunicao que vai buscar os recursos na prpria rede.

28
Everson Scherrer Borges

Aplicao do Usurio

O funcionamento de um
computador em rede, depende
da instalao de recursos de
hardware e software, que
complementam os dispositivos
existentes e o sistema operacional local.

Redirecionador

Sistema Operacional
Local

BIOS do Computados

Software de
Comunicao

Hardware de
Rede

Hardware do
Computador

Figura 14: Sistemas Operacionais de Redes

O sistema operacional de rede (Figura 14), portanto, controla os


sistemas e dispositivos dos computadores em uma rede, permitindo
que se comuniquem uns com os outros. Normalmente, o modelo de
operao desse sistema o modelo Cliente/ Servidor, ou seja, o ambiente
onde o processamento da aplicao partilhado entre um outro cliente
(solicita servio e um ou mais servidores prestam servios). Os tipos de
arquiteturas para sistemas operacionais de rede podem ser:
Peer-to-Peer (ou ponto a ponto): - Nessas redes, todos poderiam ser
(ou no) servidores, mas certamente todos so clientes.
Cliente/Servidor - Nessas redes, podem existir dois tipos: o Servidor
Dedicado e o Servidor no Dedicado.
No caso dos sistemas Cliente/Servidor, o sistema cliente possui
caractersticas mais simples, voltadas para a utilizao de servios,
enquanto que o sistema do servidor possui maior quantidade de recursos,
com o nico propsito de serem disponibilizados aos clientes da rede.
Os sistemas baseados em Unix (sistema operacional cuja plataforma
serviu de base para o atual Linux) so potencialmente clientes e
servidores, sendo feita a escolha durante a instalao dos pacotes de
aplicativos, enquanto que nos sistemas Windows existem verses
clientes (Windows 2000 Professional, Windows XP) e verses servidores
(Windows 2000 Server, Windows 2003 Server e Windows 2008 Server).

29
Sistemas Operacionais

Um bom exemplo da utilizao dos sistemas operacionais de


rede so as redes locais. Nesse ambiente, cada estao pode
compartilhar seus recursos com o restante da rede. Caso uma
estao sofra qualquer problema, os demais componentes da rede
podem continuar o processamento, apenas no dispondo dos
recursos oferecidos por aquela.
2.4.2.2 Sistemas Operacionais Distribudos
Assim como nos sistemas operacionais de rede, cada estao tambm
possui seu prprio sistema operacional, mas o que o caracteriza como
sendo um sistema distribudo, tambm conhecido como cluster, a
existncia de um relacionamento mais forte entre os seus componentes,
onde geralmente (mas no necessariamente) os sistemas operacionais
so os mesmos, funcionando como um nico sistema centralizado.
Um sistema distribudo formado por um conjunto de mdulos
processadores interligados por um sistema de comunicao.
Como as aplicaes so distribudas, a redundncia uma grande
vantagem, pois, quando h problema com um dos componentes, outro
assume a tarefa em questo.
Estudiosos classificam os Sistemas Distribudos em Mquinas de
Arquitetura Distribuda e Redes de Computadores.
Um sistema de cmputo com Arquitetura Distribuda pode possuir
um nmero ilimitado de mdulos autnomos para processamento,
interconectados de tal forma que, para o usurio final, o sistema todo
se apresente como uma nica mquina, no qual o controle geral
implementado atravs da cooperao de elementos descentralizados.
Uma Rede de Computadores tambm pode (em teoria) estar formada
por um nmero ilimitado de estaes, mas a independncia dos
vrios mdulos de processamento preservada em razo da tarefa de
compartilhamento de recursos e troca de informaes.
Um exemplo prtico (e muito interessante) de um sistema distribudo
o projeto SETI (Search for Extra Terrestrial Intelligence). O projeto
SETI, desenvolvido pela Universidade de Berkeley, na Califrnia, um
experimento cientfico que utiliza o tempo ocioso dos computadores
conectados Internet para seu objetivo principal de procura por vida
inteligente extraterrestre. Qualquer pessoa conectada Internet pode
participar, basta rodar o programa gratuito disponvel no site BOINC
(http://boinc.berkeley.edu). Basicamente, este programa permite que
sua mquina disponibilize o tempo ocioso dela para fazer parte de

30
Everson Scherrer Borges

projetos cientficos. Esse projeto constitudo de diferentes screen savers


(protetores de tela) e est disponvel para Windows, MacOS, e Linux.
Toda vez que sua mquina est ociosa sem que esteja desligada, ativadoa
uma proteo de tela (screen saver). Cada um dos screen savers permite
que a sua mquina faa parte de algum dos seguintes projetos: SETI@
home, Climateprediction.net, Rosetta@home, World Community
Grid, entre outros. Quando um desses screen savers inicializado, a sua
mquina passa automaticamente a fazer parte do sistema distribudo
do projeto SETI. Assim que o screen saver desativado, a sua mquina
deixa o sistema de computao distribuda desse projeto.
Rede

Usurio

Figura 15: Sistemas Operacionais Distribudos


Fonte: Machado e Maia, 2004. Adaptao.

A grande vantagem dos Sistemas Operacionais Distribudos


(Figura 15), a possibilidade do balanceamento de carga, ou
seja, quando um programa admitido para execuo, a carga de
processamento de cada sistema avaliada e o processador menos
ocupado escolhido. Depois de aceito para processamento, o
programa executado no mesmo processador at o seu trmino.
Tambm possvel o compartilhamento de impressoras, discos
e fitas, independentemente do sistema em que a aplicao esteja
sendo processada.

1. Por que dizemos que existe uma subutilizao de recursos em


sistemas monoprogramveis?
2. Qual a grande diferena entre sistemas monoprogramveis e
sistemas multiprogramveis?
3. Um sistema monousurio pode ser um sistema multiprogramvel?
D exemplo.

31
Sistemas Operacionais

4. Quais so os tipos de sistemas multiprogramveis?


5. Como funcionam os sistemas de tempo compartilhado? Quais
as vantagens em utiliz-los?
6. O que so sistemas com mltiplos processadores e quais as
vantagens em utiliz-los?
7. Qual a grande diferena entre sistemas fortemente acoplados e
fracamente acoplados?
8. O que um sistema fracamente acoplado? Qual a diferena
entre sistemas operacionais de rede e sistemas operacionais
distribudos?
9. Pesquise em livro ou internet sobre os sistemas operacionais da
famlia Windows e faa um histrico da sua evoluo.
10. Pesquise em livros ou internet sobre os sistemas operacionais
da famlia Linux e faa um histrico da sua evoluo.

[1] MACHADO, F.B. e MAIA, L.P. Arquitetura de Sistemas


Operacionais. 4.ed. local? LTC, 2007.
[2] SILBERSCHATZ, A., GALVIN, P.B., GAGNE, G. Fundamentos
de Sistemas Operacionais. 6.ed. local? LTC, 2004.
[3] TANENBAUM, A.S. Sistemas Operacionais Modernos. 2.ed.
Pearson Brasil, 2007.
[4] SOARES, RICARDO DE MAGALHES.
Operacionais. 1 ed. local? Esab, 2008.

Sistemas

32
Everson Scherrer Borges

___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
____________________________________________________

Processos

Caro aluno,
nesta terceira aula, vamos entender um pouco como o Sistema
Operacional Gerencia os programas em execuo, ou, mais
precisamente, os Processos em Sistemas Operacionais.
Voc entender como acontece a execuo de um programa ou
processo no sistema operacional e tambm como acontece o
gerenciamento e controle das prioridades da execuo nos ambientes
multiprogramveis.
Alm disso, importante que voc termine este captulo
compreendendo a importncia do compartilhamento de recursos
em um Sistema Operacional, as trocas de contexto, o escalonamento
e os vrios estados de transio dos processos.
Imaginao mais importante que inteligncia. (Albert Einstein)
Bom estudo!

3.1 Introduo
Tradicionalmente, um processo definido como sendo um programa
em execuo. Porm, devido s caractersticas dos ambientes
multiprogramveis, nos quais diversos usurios ou programas devem
ser executados ao mesmo tempo, pode-se definir processo como sendo
a estrutura responsvel pela manuteno de todas as informaes
necessrias execuo de um programa, como contedo de
registradores e espao de memria.
Programa um conjunto de instrues organizadas e escritas em
uma linguagem de programao. Um programa est em execuo
quando o processador est executando suas instrues em um
instante do tempo.

34
Everson Scherrer Borges

O gerenciamento de processos um dos conceitos fundamentais dos


sistemas operacionais modernos. Nesse gerenciamento, so definidas as
propriedades dos processos em execuo e a maneira como cada um
receber o tempo de execuo no processador.
Voc j deve ter visto um show de malabarismo com pratos que
giram em cima de bastes, no ? Como cada prato precisa por
um momento do malabarista para dar novo impulso no basto e
continuar girando, o malabarista procura distribuir o seu tempo
entre os pratos para que todos continuem girando durante toda
a apresentao. Ento, consideremos os pratos como se fossem
processos e o malabarista como o processador.

A principal funo do gerenciador de processos exatamente a execuo


do processo no processador de maneira adequada (considerando a
prioridade do processo e a quantidade de processos gerenciados).
Nos sistemas multiprogramveis, os processos so executados
concorrentemente, compartilhando, dentre outros recursos, o uso
do processador, da memria principal e dos dispositivos de E/S. Nos
sistemas com mltiplos processadores, temos a execuo simultnea
de processos nos diferentes processadores.[1]

Dependendo de como o programa foi desenvolvido, mais de


um processo pode estar pertinente a ele durante sua execuo,
sendo que cada processo representa um determinado conjunto de
instrues do programa original.
No Internet Explorer, por exemplo, enquanto uma pgina est
carregando, o usurio j est visualizando outra pgina; neste caso,
existe um programa em execuo e pelo menos dois processos
associados tambm em execuo.
Podemos at pensar em um processo como um aplicativo, mas isso d
uma ideia incompleta de como os processos se relacionam com o sistema
operacional e com o hardware. O aplicativo que voc v (processador de
texto, planilha eletrnica ou jogo) , de fato, um processo. Porm, os
aplicativos podem ativar outros processos para se comunicarem com
outros dispositivos ou computadores. Tambm existe uma srie de
processos que so executados sem que voc perceba. O Windows e o
UNIX podem executar, em background, dezenas de processos para lidar
com a rede, gerenciar a memria e o disco rgido, verificar vrus, etc.

35
Sistemas Operacionais

O Windows e UNI, so dois Sistemas Operacionais bastante


conhecidos e utilizados no mercado atual. Estes, entre outros
Sistemas Operacionais modernos, so capazes de fazer vrias
coisas ao mesmo tempo, baseado na ideia de paralelismo ou
multitarefa, realizada atravs do compartilhamento do tempo do
processador

3.2 Gerenciamento de Programas


O sistema operacional, sendo multitarefa, realiza o compartilhamento
do processador entre os processos por meio da ativao, momentnea,
do processo que ser executado no processador. Como apenas um
processo pode estar ativo no processador, os outros devero esperar
alguns instantes, at que o processo em execuo tenha sido executado
pelo tempo que o sistema operacional designou a ele.
Quando o tempo do processo atual terminar, o sistema operacional
realizar uma operao chamada Troca de Contexto, em que o
processo atual ser substitudo por outro processo que estava esperando
a liberao do processador.
Conforme destacado na seo anterior, a definio de um processo
um pouco mais abrangente do que um programa em execuo,
envolvendo outras estruturas necessrias ao seu funcionamento,
as quais so chamadas de CONTEXTO de processo.
A Troca de Contexto a etapa em que o sistema operacional armazenar
todas as informaes relativas execuo do processo atual para permitir
que o mesmo possa continuar a execuo em outro momento, e, ento,
incluir um outro processo para ser executado. Veja a Figura 16.

36

Executando

Executando

Sistema Operacional

Processo A

Executando

Everson Scherrer Borges

Processo B

1 - Salva registradores de Processo A


2 - Carrega registradores do Processo A
3 - Salva registradores do Processo B
4 - Carrega registradores do Processo A
Figura 16: Troca de Contexto
Fonte: [1] Machado e Maia, 2004. Adaptao.

Esta etapa deve ser executada de maneira quase instantnea, pois


o processador deve ser utilizado principalmente para executar os
programas. Existem trs eventos que podem iniciar a Troca de Contexto:
Escalonamento de Processo, Ocorrncia de Interrupo e Ocorrncia
de exceo, conforme explicado a seguir:
Escalonamento de Processo: nesta etapa, cada processo em
execuo ir utilizar um ncleo do processador por uma fatia de
tempo; quando este tempo se esgotar, o processo atual dever ser
substitudo por outro processo;
Ocorrncia de Interrupo ou exceo: quando h a ocorrncia de
uma interrupo/exceo, o sistema operacional deve entrar em
operao para tratar da interrupo/exceo, e, para isso, o prprio
sistema operacional iniciar um (ou mais) processo (s) prprio(s).

Quando o processador possuir mais de um ncleo de


processamento, mais de um processo poder estar em execuo
no processador!

37
Sistemas Operacionais

3.3

Estados do Processo

Durante o funcionamento do computador, os vrios processos


executados passaro por diferentes estados: em espera, em execuo,
bloqueado. Esses estados definem a maneira como sero tratados
pelo sistema operacional. O funcionamento especfico de cada estado
depende do sistema operacional utilizado.
3.3.1 Estados de um processo Ativo
Um processo ativo pode se encontrar em trs diferentes estados:
execuo (running), pronto (ready) e espera (wait). Veja Figura 17.

Apto

Executando

Bloqueado
Figura 17: Estados de um processo ativo
Fonte: Oliveira, Carissimi e Toscani, 2004. Adaptao

3.3.1.1 Executando (running)


Considera-se que um processo est no estado de execuo quando ele
est sendo processado pela UCP. Em sistemas com um nico processador,
somente um processo pode ser executado em um dado momento. O
sistema operacional alterna (escalona) a utilizao do processador entre
os processos, segundo alguma poltica estabelecida por ele.
Em sistemas com mltiplos processadores, existe a possibilidade de
mais de um processo estar sendo executado ao mesmo tempo. Nesse
tipo de sistema, tambm possvel um mesmo processo ser executado
simultaneamente em mais de uma UCP (processamento paralelo).
3.3.1.2 Apto ou Pronto (ready)
Um processo est no estado de apto ou pronto quando aguarda sua
vez de ser executado. Em geral, existem vrios processos no sistema
em estado de pronto, organizados em uma fila. Por meio dessa fila,
chamada de fila de aptos ou fila de prontos, o sistema operacional

38
Everson Scherrer Borges

determina a ordem e os critrios pelos quais os processos em estado


de pronto devem utilizar o processador. Esse mecanismo conhecido
como escalonamento.
Existem vrios critrios de escalonamento de processos, tais como: fila
simples (FIFO), sigla em ingls para First In First Out ou Primeiro a
Entrar Primeiro a Sair, circular, fila com prioridades, etc. Tais critrios
sero vistos posteriormente. Neste material, os termos fila de prontos e
fila de aptos sero utilizados como sinnimos.
3.3.1.3 Bloqueado ou Espera (wait)
Um processo no estado bloqueado ou espera aguarda por algum evento
externo ou por algum recurso para prosseguir seu processamento.
Como exemplo, podemos citar um processo que aguarda o trmino de
uma operao de entrada/sada ou a espera de uma determinada data e/
ou hora para continuar sua execuo.
O sistema operacional organiza os vrios processos no estado de espera
em listas. Quando ocorre um evento, o sistema operacional verifica qual
processo estava aguardando aquele evento, e o processo transferido
para o estado de pronto. Em outras palavras, o processo volta fila de
aptos e est pronto para prosseguir sua execuo.

3.4 Estados de Criao e Destruio de


um Processo
Para um processo entrar na fila de aptos e aguardar sua vez de executar,
necessrio que seja criado pelo sistema operacional (loader ou
carregador).
Primeiro, o sistema operacional deve alocar na memria principal
as reas de cdigo, dados e pilha. Em seguida, o programa deve ser
transferido da memria secundria para a memria principal nas reas
alocadas. Por ltimo, o PCB criado e inicializado apropriadamente,
com as informaes do processo. A partir desse momento, o sistema
operacional j reconhece a existncia do processo.
Aps criar o processo, o sistema operacional normalmente o coloca na
fila de aptos para que ele concorra utilizao do processador, conforme
pode-se observar na Figura 18, que mostra os estados do processo. No
entanto, algumas vezes podem faltar recursos (por exemplo: nmero
mximo de processos ativos alcanado); nesse caso, o sistema operacional
manter o processo no estado de criao, at que haja recursos para ele
se tornar ativo.

39
Sistemas Operacionais

Criao

Apto

Destruio

Executando

Bloqueado

Figura 18: Estados do processo


Fonte: Oliveira, Carissimi e Toscani, 2004. Adaptao

Quando um processo finalizado, todos os recursos do processo devem


ser desalocados e o PCB deve ser eliminado pelo sistema operacional. O
trmino de um processo pode ocorrer pelas seguintes razes:



trmino normal de execuo;


eliminao forada por erros de proteo;
eliminao por outro processo;
eliminao forada por ausncia de recursos disponveis no sistema.

Algumas vezes, o sistema operacional pode manter em memria


as informaes de um processo finalizado. Nesse caso, o processo
no considerado mais ativo, mas, como o PCB ainda existe, o
sistema operacional pode obter informaes sobre o processo, como
contabilizao e uso de recursos. Aps as informaes serem extradas,
geralmente o processo deixa de existir.

3.5 Transies de Estado do Processo


Um processo muda de estado, durante seu processamento, em funo
de eventos originados por ele prprio (eventos voluntrios) ou pelo
sistema operacional (eventos involuntrios). Basicamente, existem
quatro mudanas de estado que podem ocorrer a um processo. Veja a
Figura 19.
Seleo

Criao

Apto

Ocorrncia
de evento
(interrupo)

Trmino

Executando
Tempo/
voluntrio
Chamada
de sistema

Bloqueado

Figura 19: Transio de Estados do processo


Fonte: Oliveira, Carissimi e Toscani, 2004. Adaptao

Destruio

40
Everson Scherrer Borges

^ Executando
3.5.1 Apto J
Aps a criao de um processo, o sistema o coloca em uma fila de
processos no estado de apto, onde aguarda por uma oportunidade para
ser executado. Cada sistema operacional tem seus prprios critrios
e algoritmos para a escolha da ordem em que os processos sero
executados (poltica de escalonamento). Esses critrios e seus algoritmos
sero analisados em detalhes nos captulos seguintes.
A transferncia de um processo do estado apto para o estado de
execuo indica que outro processo saiu do estado de execuo (perdeu
o processador). Um processo perde o processador quando sua fatia de
tempo (time slice) termina, quando faz uma chamada de sistema ou
quando chega ao fim de sua execuo (normal ou forada). Isso faz com
que o sistema operacional selecione um processo no estado apto para
ser executado.

^ Apto
3.5.2 Execuo J
Um processo em execuo passa para o estado de apto por eventos
gerados pelo sistema, como o trmino da sua fatia de tempo (time
slice) ou para ceder a vez a um processo de maior prioridade. Nesse
caso, o processo volta para a fila de aptos, onde aguarda por uma nova
oportunidade para continuar seu processamento.

^ Bloqueado
3.5.3 Execuo J
Um processo em execuo pode passar para o estado de bloqueado,
por eventos gerados pelo prprio processo. Por exemplo, quando um
processo em execuo necessita realizar uma operao de E/S, realiza
a solicitao por meio de uma chamada de sistema. Ao fazer isso, o
sistema operacional chamado, retira o processo da execuo e o coloca
no estado bloqueado. Em seguida, instrui o controlador de dispositivos
de E/S, para que a operao seja realizada, e seleciona um processo da
fila de aptos para executar. O processo que foi bloqueado aguardar
nesse estado at que sua operao de E/S seja concluda.
Alm disso, um processo em execuo tambm pode passar para o
estado de bloqueado em funo de eventos externos. Um evento externo
gerado, por exemplo, quando o sistema operacional suspende, por um
perodo de tempo, a execuo de um processo.

41
Sistemas Operacionais

^ Apto
3.5.4 Bloqueado J
Um processo no estado bloqueado passa para o estado de apto quando
a operao solicitada atendida ou o recurso esperado concedido.
Por exemplo, um processo que solicitou uma operao de E/S ficar no
estado bloqueado at que o controlador de dispositivos informe que a
operao foi concluda. O controlador sinaliza a concluso da operao
de E/S atravs de uma interrupo de hardware que, imediatamente,
chama o sistema operacional para transferir o respectivo processo do
estado bloqueado para apto.
Em geral, um processo no estado bloqueado sempre ter de passar pelo
estado de apto antes de poder ser novamente selecionado para execuo.
Normalmente, no existe a mudana do estado bloqueado para o estado
de execuo diretamente. Em casos raros, um processo poder fazer
isso caso a chamada de sistema seja extremamente rpida, como, por
exemplo, a leitura da hora do sistema.

3.6 Transies de Estado com Swapping


Um processo no estado apto ou bloqueado pode no se encontrar
residente na memria principal. Essa condio ocorre quando no
existe espao suficiente para todos os processos na memria principal
e parte do contexto do processo levada para a memria secundria.
Uma tcnica conhecida como swapping retira o processo da memria
principal e o traz de volta, seguindo os critrios de cada sistema
operacional.
Nesse caso, os processos em estado bloqueado e apto podem estar
residentes ou no-residentes na memria principal.
Na Figura 20, voc pode observar o esquema de funcionamento das
transies de estado com swapping.
Criao

Admisso

Admisso

Ativo

Apto
Suspenso
Evento
(ocorr)

Executando
Tempo/
voluntrio

Evento
(ocorr)
Ativo

Bloqueado

Seleo

Apto
Suspenso

Suspenso

Evento
(espera)

Bloqueado,
suspenso

Figura 20: Transies de estado com Swapping


Fonte: Oliveira, Carissimi e Toscani, 2004. Adaptao

Destruio

42
Everson Scherrer Borges

3.7 Processos Independentes,


Subprocessos e Threads
Processos independentes, subprocessos e threads so maneiras
diferentes de implementar a concorrncia dentro de uma aplicao.
Nesse caso, busca-se subdividir o cdigo em partes para trabalharem
de forma cooperativa. Em aplicaes acessadas simultaneamente por
vrios usurios, a concorrncia pode proporcionar um tempo de espera
menor, melhorando o desempenho da aplicao e beneficiando os
usurios.
O uso de processos independentes a maneira mais simples de
implementar a concorrncia em sistemas multiprogramveis. Nesse
caso, no existe vnculo entre o processo criado e seu criador. A
criao de um processo independente exige a alocao de um PCB,
possuindo contextos de hardware, contexto de software e espao de
endereamento prprios. [1].

Subprocessos so processos criados dentro de uma estrutura hierrquica.


Nesse modo, o processo criador denominado processo pai e o novo
processo chamado de processo filho ou subprocesso. O subprocesso
pode criar outras estruturas de subprocessos. Uma caracterstica dessa
implementao a dependncia existente entre o processo criador
e o subprocesso. Caso um processo pai deixe de existir, o sistema
operacional pode ser configurado para eliminar automaticamente os
processos filhos.
Alm da dependncia hierrquica entre processos e subprocessos, uma
outra caracterstica nesse tipo de implementao que subprocessos
podem compartilhar quotas com o processo pai. Nesse caso, quando
um subprocesso criado, o processo pai cede parte de suas quotas ao
processo filho.
Pode-se observar, na Figura 21, a relao entre processos e subprocessos.

Processo A

Processo B

Processo D

Processo C

Processo E

Figura 21: Processos dependentes


Fonte: Machado e Maia, 2004. Adaptao.

43
Sistemas Operacionais

O uso de processos independentes e subprocessos no desenvolvimento


de aplicaes concorrentes demanda consumo de diversos recursos do
sistema. Ou seja, sempre que um novo processo criado, o sistema deve
alocar recursos (contexto de hardware, contexto de software e espao
de endereamento), consumindo tempo de UCP nesse trabalho. No
momento do trmino dos processos, o sistema operacional tambm
dispensa tempo para desalocar recursos previamente alocados. Outro
problema existente a comunicao e a sincronizao entre processos,
considerada pouco eficiente visto que cada processo possui seu prprio
espao de endereamento.
O thread representa uma tentativa de reduzir o tempo gasto na criao,
eliminao e chaveamento de contexto de processos nas aplicaes
concorrentes, bem como de economizar recursos do sistema.
Em um ambiente multithread, um nico processo pode suportar
mltiplos threads, cada qual associado a uma parte do cdigo da
aplicao. Nesse caso, no necessrio haver diversos processos para a
implementao da concorrncia. Threads compartilham o processador
da mesma maneira que um processo, ou seja, enquanto um thread
espera por uma operao de E/S, outro thread pode ser executado.

Contexto de
software

Veja, na Figura 22, um esquema de funcionamento de processos


multithread.

Contexto de
Hardware

Contexto de
Hardware

Contexto de
Hardware

Tabela 1

Tabela 2

Tabela 3

Espao de endereamento
Figura 22: Processo multithread
Fonte: Machado e Maia, 2004. Adaptao.

Cada thread possui seu prprio contexto de hardware, porm,


compartilha o mesmo contexto de software e espao de endereamento
como os demais threads do processo. Por compartilharem o espao de
endereamento, a comunicao entre os threads de um mesmo processo
pode ser feita de forma simples e rpida. E o compartilhamento do

44
Everson Scherrer Borges

contexto de software torna mais rpido a criao, a eliminao e o


chaveamento de contexto dos threads.
3.7.1 Processos Foreground e Background e Pipes
Um processo possui, sempre associado sua estrutura, pelo menos
dois canais de comunicao por onde so realizadas todas as entradas
e sadas de dados ao longo do seu processamento. Os canais de entrada
(input) e sada (output) de dados podem estar associados a terminais,
arquivos, impressoras e at mesmo a outros processos.
3.7.1.1 Processo Foreground
Um processo foreground aquele que permite a comunicao direta do
usurio com o processo durante o seu processamento.
Nesse caso, tanto o canal de entrada quanto o de sada esto associados
a um terminal com teclado, mouse e monitor, permitindo, assim, a
interao com o usurio. O processamento interativo tem como base
processos foreground.
Observe, na Figura 23, o funcionamento de um processo foreground.
Entrada

Terminal

Sada

Terminal

Figura 23: Processo foreground


Fonte: Machado e Maia, 2004. Adaptao.

3.7.1.2 Processo Background


Um processo background aquele em que no existe a comunicao
com o usurio durante o seu processamento. Nesse caso, os canais de
E/S no esto associados a nenhum dispositivo de E/S interativo, mas,
em geral, a arquivos de E/S. Em outras palavras, no h interao com
o usurio, pois tanto a entrada quanto a sada so realizadas por meio
de arquivos. O processamento do tipo batch (lote) realizado atravs de
processos background.
Observe, na Figura 24, o funcionamento de um processo background.

45
Sistemas Operacionais

Entrada

Sada

Arquivo de entrada

Arquivo de sada

Figura 24: Processo background


Fonte: Machado e Maia, 2004. Adaptao.

3.7.1.3 Pipe entre Processos


possvel associar o canal de sada de um processo ao canal de entrada
de outro processo. Nesse caso, dizemos que existe um pipe ligando os
dois processos. Por exemplo, se um processo A gera uma listagem e um
processo B tem como funo orden-la, basta associar o canal de sada
do processo A ao canal de entrada do processo B.
Verifique, na Figura 25, o funcionamento de um processo foreground.

Sada do
Processo A

Entrada do
Processo A
Processo A

Sada do
Processo B

Entrada do
Processo B
Processo B

Figura 25: Pipe entre processos


Fonte: Machado e Maia, 2004. Adaptao.

3.8 Processos do Sistema Operacional


O sistema operacional fornece um ambiente para a execuo de
programas atravs de servios para os programas e para os usurios
desses programas. Alguns servios no tm como preocupao apenas
tornar a mquina mais confortvel para o usurio, mas, tambm, para
que o prprio sistema seja mais eficiente e seguro. Apesar da forma
como esses servios so oferecidos variar de sistema para sistema,
existem algumas classes de servios que so comuns a todos os sistemas
operacionais.

46
Everson Scherrer Borges

Por vezes, possumos uma viso comum do sistema operacional,


considerando-o como um software que como uma extenso da
mquina. Fornecendo mais servios para os aplicativos e outros
programas bsicos. No entanto, o sistema operacional pode
ser considerado tambm um administrador e fornecedor de
recursos (incluindo servios), pois ele cuida de todos os recursos
que esto disponveis no computador, permitindo ao usurio
utilizar a mquina (hardware + S.O) de maneira amigvel. Isso
fundamental em qualquer mquina, tornando-se mais crtico
naquelas que permitem mais de um usurio ao mesmo tempo.

O conceito de processo, alm de estar associado a aplicaes de


usurios, tambm pode ser implementado na prpria arquitetura
do sistema operacional.

Quando processos so utilizados para a implementao de servios do


sistema, estamos retirando cdigo do seu ncleo, tornando-o menor
e mais estvel. No caso de um ou mais servios no serem desejados,
basta no ativar os processos responsveis, o que permitir liberar
memria para os processos dos usurios. [1].

A listagem a seguir apresenta alguns servios que o sistema operacional


pode implementar por meio de processos:








auditoria e segurana;
servios de rede;
contabilizao do uso de recursos;
contabilizao de erros;
gerncia de impresso;
gerncia de jobs batch;
temporizao;
comunicao de eventos;
interface de comandos (shell).

3.8.1 Processos CPU-bound e I/O-bound


Os processos podem ser classificados como CPU-bound (ligado
Unidade Central de Processamento) ou I/O-bound (ligado a E/S), de
acordo com a utilizao do processador e dos dispositivos de E/S. [5]

47
Sistemas Operacionais

Um processo definido como CPU-bound quando passa a maior parte


do tempo no estado de execuo, ou seja, utilizando o processador, o
que pode ser observado na Figura 26. Esse tipo de processo realiza
poucas operaes de leitura e gravao e encontrado em aplicaes
cientficas que efetuam muitos clculos.

E/S
UCP

Tempo

Figura 26: Processo CPU-bound


Fonte: Machado e Maia, 2004. Adaptao.

Um processo classificado como I/O-bound quando passa a maior


parte do tempo no estado bloqueado, pois realiza um elevado nmero
de operaes de E/S, o que se pode observar na Figura 27. Esse tipo
de processo encontrado em aplicaes comerciais, que se baseiam em
leitura, processamento e gravao.

E/S
UCP

Tempo

Figura 27: Processo I/O-bound


Fonte: Machado e Maia, 2004. Adaptao.
Os processos interativos tambm so bons exemplos de processos I/Obound, pela forma de comunicao entre o usurio e o sistema, que
normalmente lenta devido utilizao de terminais. [5]

3.9 Sinais
O uso de Sinais um mecanismo que permite notificar processos sobre
eventos gerados pelo sistema operacional ou por outros processos. A
utilizao de sinais fundamental para a gerncia de processos, alm de
possibilitar a comunicao e sincronizao entre processos.

48
Everson Scherrer Borges

Um exemplo de uso de sinais quando algum utiliza uma sequncia


de caracteres do teclado, como [Ctrl-C], para interromper a
execuo de um programa (sugiro mudar o exemplo, pois Ctrl-C
usado largamente como comando [Windows, Word, Excel, etc]
para copiar um objeto selecionado).
Nesse caso, o usurio gerou uma interrupo de hardware
(teclado) por meio da digitao dessa combinao de teclas e,
a partir dela, o sistema operacional gera um sinal indicando ao
processo a ocorrncia do evento. No momento em que o processo
identifica a chegada do sinal, uma rotina especfica de tratamento
executada.

Grande parte dos eventos associados a sinais gerada pelo sistema


operacional ou pelo hardware, como a ocorrncia de excees,
interrupes geradas por terminais, limites de quotas excedidos durante
a execuo dos processos e alarmes de tempo. Em outras situaes, os
eventos so gerados a partir de outros processos, com o propsito de
sincronizar suas execues.

Processo

Processo

Sinais

Sistema Operacional

Interrupes
Excees

Hardware
Figura 28: Sinais
Fonte: Machado e Maia, 2004. Adaptao.

A gerao de um sinal (Figura 28) ocorre quando o sistema operacional,


a partir da ocorrncia de eventos sncronos ou assncronos, notifica o
processo atravs de bits de sinalizao localizados no seu PCB. Um
processo no responde instantaneamente a um sinal, ou seja, os sinais
ficam pendentes at que o processo seja escalonado, quando, ento, sero
tratados. Por exemplo: quando um processo eliminado, o sistema ativa

49
Sistemas Operacionais

o bit associado a esse evento. Assim, o processo somente ser excludo


do sistema quando for selecionado para execuo, o que, nesse caso,
possvel que demore algum perodo de tempo at ser eliminado de fato.
Em algum momento, voc j fechou um programa em algum
sistema operacional da famlia Windows e precisou execut-lo
novamente, mas ele no iniciou? E voc recebeu uma exceo de que
uma instncia do processo j estava em execuo? Fique tranquilo,
este um problema muito fcil de resolver. O que aconteceu
que, por algum motivo, o processo do programa no foi finalizado
corretamente. O que voc precisa fazer acessar o Gerenciador de
Tarefas atravs do conjunto de teclas CTRL+ALT+DEL, acessar o
gerenciador de tarefas e finalizar o aplicativo em questo. Agora
que voc j est mais entendido sobre processos, explore mais o
Gerenciador de Tarefas e veja quantas execues inteis voc pode
finalizar. O computador pode ficar mais rpido se voc finalizar
algumas tarefas que no esto sendo utilizadas no momento (com
menos tarefas simultneas). Mas tenha cuidado: se voc no tem
certeza, ento deixe o processo como est.

O tratamento de um sinal muito semelhante ao mecanismo de


interrupes. Quando um sinal tratado, o contexto do processo salvo
e a execuo desviada para um cdigo de tratamento de sinal (signal
handler), geralmente no ncleo do sistema. Aps a execuo do tratador
de sinais, o programa pode voltar a ser processado do ponto onde foi
interrompido.
Em certas implementaes, o prprio processo pode tratar o sinal por
meio de rotinas de tratamento definidas no cdigo do prprio programa.
possvel tambm que um processo bloqueie temporariamente ou
ignore por completo alguns sinais. O mecanismo de sinais assemelhase ao tratamento de interrupes e excees vistos anteriormente,
porm, com propsitos diferentes. O sinal est para o processo assim
como as interrupes e excees esto para o sistema operacional. [5]

50
Everson Scherrer Borges

1. Defina o conceito de processo.


2. Por que o conceito de processo to importante no projeto de
sistemas multiprogramveis?
3. Quais partes compem um processo?
4. Defina os cinco estados possveis de um processo.
5. Diferencie processos multithreads, subprocessos e processos
independentes.
6. Explique a diferena entre processos foreground e background.
7. Cite 5 processos do sistema operacional.
8. Qual a relao entre processo e a arquitetura microkernel?
9. D exemplos de aplicaes CPU-bound e I/O-bound.
10. Como posso finalizar um processo em um sistema operacional
da famlia Windows?
11. Pesquise e descubra como finalizar um processo no sistema
operacional Linux em modo texto.
12. O sistema operacional possui diversos servios que auxiliam o
sistema operacional para seu adequado funcionamento, e dentre
esses servio est a interface de comandos (shell). Descubra sua
finalidade.
13. Justifique com um exemplo a frase O sinal est para o
processo assim como as interrupes e excees esto para o
sistema operacional.

[1] MACHADO, F.B. e MAIA, L.P. Arquitetura de Sistemas


Operacionais. 4.ed. local? LTC, 2007.
[2] SILBERSCHATZ, A., GALVIN, P.B., GAGNE, G. Fundamentos
de Sistemas Operacionais. 6.ed. local? LTC, 2004.
[3] TANENBAUM, A.S. Sistemas Operacionais Modernos. 2.ed.
local? Pearson Brasil, 2007.
[4] OLIVEIRA, R.S., CARISSIMI, A.S., TOSCANI, S.S. Sistemas
Operacionais. 3.ed. local? Sagra-Luzzato. 2004.
[5] SIMES, SERGIO NERY. Sistemas Operacionais I.1 ed. local
?IFES, 2008.
6] SOARES, RICARDO DE MAGALHES. Sistemas Operacionais.
1 ed. local? Esab, 2008.

Sistemas de Arquivos

Caro aluno,
nesta quarta aula voc entender como o funcionamento de um
sistema de arquivos, suas propriedades, organizao dos arquivos,
nomeao dos arquivos e diretrios, entre outros.
Estes conceitos so muito importantes, pois atravs deles que
podemos entender como internamente a organizao dos arquivos
diretrios e pastas.
O insucesso apenas uma oportunidade para recomear de novo
com mais inteligncia. (Henry Ford)
Bom estudo!

4.1 Introduo
Um sistema de arquivos o conjunto de normas que definem o modo
como os dados do usurio, programas, informaes de configurao,
entre outras, sero gravados e gerenciados nos dispositivos de
armazenamento acessados pelo computador. Essas informaes sero
armazenadas fisicamente nos dispositivos, e gerenciadas pelo sistema
operacional atravs de estruturas de dados, que sero a representao
lgica das informaes.
O sistema de arquivos um conjunto de estruturas lgicas e
de rotinas, que permitem ao sistema operacional organizar e
controlar o acesso ao disco rgido (HD). Diferentes sistemas
operacionais empregam diferentes sistemas de arquivos.
Conforme aumenta a capacidade dos discos e aumenta o volume
de arquivos, bem como o tamanho dos arquivos e os acessos,
esta tarefa torna-se mais e mais complicada, exigindo o uso
de sistemas de arquivos cada vez mais complexos e robustos.

52
Everson Scherrer Borges

Existem diversos sistemas de arquivos diferentes, que vo desde


sistemas simples como o FAT16, que utilizamos em cartes de
memria, FAT32, que usado em pendrives e HD externos,
at sistemas como o NTFS, EXT3 e ReiserFS, que incorporam
recursos muito mais avanados.
Um sistema operacional, em sua grande maioria, caracterizado pelo
sistema de arquivos que utiliza, mas um mesmo sistema operacional pode
utilizar mais de um sistema de arquivos para gerenciar o computador.

4.2 Organizao de um Sistema de


Arquivos
Grande parte dos sistemas de arquivos trabalha organizando os dados
em blocos de informao, sendo que o tamanho de cada bloco depender
de algumas caractersticas especficas de cada sistema de arquivos, e do
dispositivo de armazenamento utilizado.

Um exemplo de utilizao de blocos de informao pode ser o


seguinte: em um disco-rgido de 40 GB utilizam-se blocos de
informao de 4 KB de tamanho, assim o disco dividido em 10
milhes de blocos de informao.

Os blocos de informao so utilizados, pois todo o controle da


informao feito utilizando os blocos como unidade bsica de
informao. Esse conceito surgiu no incio da utilizao de computadores,
pois a limitao dos computadores impedia um controle mais apurado.

O ideal era que cada unidade de informao correspondesse a


um byte, mas, se isso fosse feito, seriam necessrios 40 bilhes
de unidades de informao separadas no disco-rgido de 40 GB
(em um computador de 32bits, o maior nmero que pode ser
interpretado pelo processador um pouco maior que quatro
bilhes).
Como os computadores trabalham com nmeros binrios, os blocos
de informao so mltiplos de dois e geralmente abrangem o seguinte
intervalo: 512 bytes, 1024 bytes, 2048 bytes, at 65536 bytes, este ltimo

53
Sistemas Operacionais

praticamente no utilizado nos sistemas operacionais atuais. No


existe atualmente nenhum sistema que utiliza um bloco de informao
inferior a 512 bytes, pois todos os discos-rgidos so divididos em blocos
fsicos (chamados clusters) de informao de 512 bytes. Os blocos de
informao podem ser entendidos como sendo formados por grupos de
blocos fsicos de dados.

No h possibilidade de gravar dados em um Hard Disk(HD) ou em


disquete sem um sistema de arquivos, que consiste em uma estrutura
que indica como os arquivos devem ser gravados e armazenados
nos discos. Atravs do sistema de arquivos, possvel determinar
o espao utilizado no disco, alm de ser o mtodo que permite
gerenciar como partes de um arquivo podem ficar espalhadas no
dispositivo de armazenamento. Outro detalhe importante que o
sistema de arquivos determina como arquivos podem ser gravados,
copiados, alterados, nomeados e at apagados, ou seja, toda e
qualquer manipulao de dados em uma mdia necessita de um
sistema de arquivos para que essas aes sejam possveis.
Os dados gravados no sistema recebem o nome de arquivo. Um arquivo
pode conter um relatrio de trabalho, um desenho, uma msica ou
um programa. Cada arquivo possui um conjunto de propriedades que
definiro a maneira como a informao dentro dele poder ser acessada.
Se no houver estrutura de armazenamento e manipulao (sistema de
arquivos), impossvel gravar dados.

4.3 Propriedades dos Arquivos


Os arquivos possuem uma srie de propriedades que so utilizadas para
definir a maneira como os dados sero lidos, atualizados, apagados,
como ser mostrado o arquivo para o usurio, a data em que o arquivo
foi criado, dentre outras. As principais propriedades de um arquivo
encontradas nos sistemas operacionais atuais so:
Modo de Acesso: esta propriedade define a maneira como o arquivo
ser acessado, podendo ser basicamente da seguinte forma: o
arquivo poder ou no ser lido, poder ou no ser escrito, e, se for
um programa, o programa poder ou no ser executado;
Modo de Exibio: aqui definido se o arquivo ser exibido ao
usurio normalmente, ou se ficar oculto, no sendo exibido;
Data de Criao: quando o arquivo criado, a data de criao
armazenada;

54
Everson Scherrer Borges

Data de Alterao: a cada instante em que o contedo do arquivo for


modificado, ficar armazenada a data da alterao. Em sistemas que
possuem apenas uma data como propriedade do arquivo, utiliza-se
geralmente a data de alterao do arquivo na propriedade Data;
Nome do Arquivo: esta propriedade identifica o arquivo, e atravs
do nome que se tem acesso ao contedo do arquivo;
Extenso do Arquivo: aqui ser definido o tipo do arquivo. Esta
propriedade geralmente faz a associao do contedo de um arquivo
com o programa utilizado, por exemplo, um arquivo relatrio de
trabalho.doc possui o nome: relatrio de trabalho e a extenso.
doc, que o associa com o programa MS-Word.
Nos sistemas operacionais mais avanados, que utilizam critrios para
diferenciar os usurios que utilizam o computador, os arquivos podem
ter algumas propriedades que iro armazenar informaes sobre o
usurio que criou o arquivo, e o modo de acesso que os outros usurios
tero ao arquivo. O conjunto completo de propriedades que um arquivo
possuir depender diretamente do sistema de arquivos utilizado pelo
sistema operacional. Veja a Figura 29.

Figura 29: Propriedades dos Arquivos

55
Sistemas Operacionais

4.4 Organizao dos Arquivos


A organizao de arquivos consiste em como os seus dados esto
internamente armazenados. A estrutura de dados pode variar
em funo do tipo de informao contida no arquivo. Arquivos
textos possuem propsitos completamente distintos de arquivos
executveis, consequentemente, estruturas diferentes podem
adequar-se melhor a um tipo do que a outro.

Os arquivos ficam armazenados no disco-rgido e, para facilitar o


gerenciamento dos arquivos, vrias tcnicas so empregadas, sendo que
as principais so: a separao dos arquivos em Diretrios e a utilizao
de uma Tabela de Arquivos.
Arquivo um conjunto de registros definidos pelo sistema de
arquivos e que podem ser armazenados em diferentes dispositivos
fsicos. constitudo de informaes logicamente relacionadas,
podendo representar programas ou dados.

Cada arquivo possui informaes de controle denominadas atributos.


Os atributos variam dependendo do sistema de arquivos, porm,
alguns, como tamanho do arquivo, proteo, identificao do criador
e data de criao esto presentes em quase todos os sistemas. [1].

Um diretrio um mecanismo de organizao dos arquivos. Os arquivos


so, sob um aspecto lgico-computacional, organizados primariamente
em diretrios. Os diretrios podem ser criados e removidos pelo usurio
e, por meio deles, o usurio consegue realizar a separao dos arquivos a
partir de critrios definidos previamente. Alguns sistemas operacionais,
durante a instalao do sistema no computador, criam alguns diretrios
iniciais, que so utilizados para organizar os arquivos do prprio
sistema operacional, e tambm para auxiliar o usurio apresentando
uma pr-organizao que poder ou no ser seguida. Os diretrios
recebem vrios nomes, entre eles: pastas e caminhos. No MS-Windows
XP, a pasta Meus Documentos na rea de trabalho, corresponde ao
diretrio: C:\Documents and Settings\<usurio>\Meus documentos.
A estrutura de diretrios como o sistema organiza logicamente os
diversos arquivos contidos em um disco. O diretrio uma estrutura de
dados que contm entradas associadas aos arquivos onde cada entrada
armazena informaes como localizao fsica, nome, organizao e
demais atributos. [1].

56
Everson Scherrer Borges

A Tabela de Arquivos outro mecanismo utilizado pelos sistemas


operacionais para organizar os arquivos (Figura 30), mas, nesse caso,
a organizao pretendida para o tratamento dos dados fisicamente
gravados no disco-rgido. Graas utilizao dessa tabela, os arquivos
podem ser encontrados e editados sem que haja necessidade de
mecanismos complexos ou demorados para se realizar esse trabalho.
Na Tabela de arquivos, ficaro armazenadas basicamente as seguintes
informaes: um identificador do arquivo (geralmente sendo o caminho
do arquivo que inclui o diretrio completo e o nome do arquivo, mais
um nmero de identificao nico para cada arquivo), e o nmero do
primeiro bloco fsico de dados no disco-rgido.
Quando um arquivo aberto, o sistema operacional procura a sua
entrada na estrutura de diretrios, armazenando as informaes
sobre atributos e localizao do arquivo em uma tabela mantida na
memria principal. Esta tabela contm todos os arquivos abertos, sendo
fundamental para aumentar o desempenho das operaes com arquivos.
E importante que, ao trmino do uso de arquivos, este seja fechado, ou
seja, que se libere o espao na tabela de arquivos abertos. [1].

Fazendo uma analogia com uma situao de nosso doa a dia,


essa organizao assemelha-se a uma biblioteca escolar. O
bibliotecrio organiza os livros conforme o seu gosto, cuja busca,
convenientemente, procura deixar mais fcil, sem ocupar muitas
prateleiras e assegurando a integridade deste. Ainda, certamente,
os livros so dispostos segundo suas caractersticas (assunto,
censura, etc.). Depois de organizados, ou durante a organizao, o
bibliotecrio cria uma lista com todos os livros da biblioteca, com
seus assuntos, localizaes e cdigos respectivos.

Figura 30: Organizao dos Arquivos


Fonte: http://pt.wikipedia.org/wiki/Sistema_de_ficheiros

57
Sistemas Operacionais

4.5 Nomeao dos Arquivos e Diretrios


Os sistemas de arquivos atualmente utilizados nos sistemas operacionais
permitem a criao de arquivos e diretrios com nomes de at 255
caracteres. Mas, no incio, esse nmero era bem inferior. Na dcada de
1980 era comum o uso do MS-DOS, e este sistema permitia a criao
de arquivos com no mximo 11 caracteres (8 caracteres no nome + 3
caracteres de extenso).
Um detalhe importante na nomeao dos arquivos e diretrios o
cuidado que se deve ter para no utilizar nenhum caractere especial,
pois alguns so utilizados para auxiliar a organizao, exibio e
administrao dos arquivos, como, por exemplo, os caracteres: /, ?,
$, etc. Estes dependem do sistema de arquivos, que depende do sistema
operacional.
Por exemplo, nos sistemas Unix, se um arquivo comea com o caractere
., indica que o arquivo ficar oculto, e se comea com ~ significa que
uma cpia de segurana.
O sistema MS-Windows 95, ao ser lanado, permitiu a utilizao de
nomes de arquivos com 255 caracteres, mas isso teve que ser feito
com uma Tabela de Arquivos especial, pois deveria ser compatvel
com o sistema MS-DOS e MS-Windows 3. Ou seja, quando o arquivo
era visualizado a partir do MS-Windows 95, o nome era exibido
corretamente; mas quando era visto no MSDOS ou MS-Windows 3, o
nome era exibido no formato 8.3 caracteres.

4.6 Metadados dos Arquivos


Os bits armazenados no HD so considerados os dados (data), as
informaes sobre os arquivos, como tamanho, criao, alterao,
setores ocupados, etc, so chamados metadados, assim podemos
concluir que as estruturas do sistema de arquivos do HD que
permitem ao sistema operacional ler e gravar dados no HD so
metadats, ou seja, so dados sobre os dados.

Existe um grupo de informaes que so armazenadas na Tabela de


Arquivos, chamada de metadados. Essas informaes podem ser, por
exemplo: o tamanho em bytes dos dados do arquivo, o formato do
contedo, a data de criao, data de modificao, nome do usurio que
criou, propriedades do modo de acesso, resumo do contedo do arquivo,
e vrias outras informaes (dependendo do sistema operacional).

58
Everson Scherrer Borges

Estas reas so particularmente sensveis a falhas de hardware ou


interrupes durante a gravao. Se a energia acabar enquanto
um determinado arquivo est sendo salvo, voc pode perder as
alteraes recentes, ou, no pior dos casos, perder todo o arquivo.
Mas, se a interrupo ocorrer durante uma atualizao da rvore
de diretrios, voc poderia perder o acesso a uma pasta inteira, ou
at mesmo a uma partio inteira do HD.
Para prevenir este tipo de desastre, todos os sistemas operacionais
modernos utilizam sistemas de arquivos que oferecem vrias
camadas de gravao contra corrupo da metadata, como
sistemas de journaling, cpias de informaes essenciais, etc.

As informaes contidas nos metadados so teis para o sistema


operacional oferecer algumas funes adicionais ao usurio, como, por
exemplo, se o usurio precisar acessar os arquivos que uma determinada
pessoa criou em uma certa data, o sistema operacional dever possuir
essas informaes para poder dar a resposta correta ao usurio.
Metadados (Dicionrio de dados), ou Metainformao, so dados
sobre outros dados.

4.7 Classificao dos Sistemas de


Arquivos
Os sistemas de arquivos podem ser classificados em dois tipos bsicos:
Sistemas de Disco: uma unidade de armazenamento no-voltil
(disco-rgido, CD-R, flashdrive) utilizada para guardar os arquivos
e seus dados. A Tabela de Arquivos geralmente fica armazenada na
prpria unidade de armazenamento onde se encontram os arquivos
referenciados por ela. Exemplos de sistemas de arquivo em disco
so: FAT32, NTFS, HFS, ext2, ext3, isso 9660, etc.
Sistemas de Arquivo em Rede: um sistema de arquivo em rede
um sistema em que o gerenciamento e armazenagem dos arquivos
de um computador feito em um outro computador conectado
rede, que permite o acesso aos dados de maneira transparente, como
se estivessem no prprio computador do usurio. O sistema mais
utilizado o NFS.

59
Sistemas Operacionais

Acesse o link a seguir e observe mais informaes sobre os


sistemas de arquivos; aproveite para testar as dicas indicas no
seu computador, mas cuidado para no danificar o sistema
operacional.
http://www.clubedohardware.com.br/artigos/
Sistema-de-arquivos/313/1

1. Defina o que um sistema de arquivos.


2. Quais as principais propriedades de um arquivo encontradas
nos sistemas operacionais atuais? Descreva cada uma delas.
3. Os metadados so estruturas de extrema importncia para o
sistema de arquivo. Quais informaes podem ser armazenadas
pelos metadados e porque elas so to teis?
4. Quais os problemas associados queda de energia para o sistema
de arquivo? Como o sistema de arquivo implementa forma de se
proteger contra estes acidentes?
5. Quais as desvantagens de um sistema de nomeao de arquivos
e diretrios com apenas 11 caracteres?
6. Crie uma analogia diferente e criativa para caracterizar um
sistema de arquivos. Veja o exemplo da analogia feita em relao
biblioteca de livros.
7. Desenvolva uma pesquisa sobre as principais diferenas
existentes entre sistema de arquivo Ext3 (Utilizado pelo sistema
operacional linux) e NTFS (Utilizado pelo sistema operacional
Windows).
8. O link do artigo destacado como material complementar faz
uma abordagem sobre o desperdcio, destacando-o como um
grave problema. Como pode ocorrer desperdcio no sistema de
arquivo?
9. Ainda no link de material complementar, na sua pgina
3, destaca-se o uso de particinamento do disco (HD). O que
particionamento?
10. Continuando neste artigo, na pgina 3, destaca-se a MBR
Master Boot Record. Qual a funo da MBR?

60
Everson Scherrer Borges

[1] MACHADO, F.B. e MAIA, L.P. Arquitetura de Sistemas


Operacionais. 4.ed. local? LTC, 2007.
[2] SILBERSCHATZ, A., GALVIN, P.B., GAGNE, G. Fundamentos
de Sistemas Operacionais. local? 6.ed. LTC, 2004.
[3] TANENBAUM, A.S. Sistemas Operacionais Modernos. 2.ed.
local? Pearson Brasil, 2007.
[4] SOARES, RICARDO DE MAGALHES.
Operacionais. 1 ed. local? Esab, 2008.

Sistemas

___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
____________________________________________________

Gerncia de Memria

Caros alunos,
nesta quinta aula desvendaremos a gerncia de memria,
entendendo como funciona a proteo da memria, a organizao,
a limpeza e o compartilhamento.
Alm disso, voc compreender os conceitos sobre memria virtual,
memria paginada e segmentada.
Como no possvel visualizar a organizao da memria, entender
seu funcionamento ser um bom exerccio de abstrao.
Maior que a tristeza de no haver vencido a vergonha de no ter
lutado! Ruy Barbosa
Bom estudo!

5.1 Introduo
Historicamente, a memria principal sempre foi vista como um recurso
escasso e caro. Por isso, uma das maiores preocupaes dos projetistas
foi desenvolver sistemas operacionais que no ocupassem muito
espao de memria e, ao mesmo tempo, otimizassem a utilizao dos
recursos computacionais. Mesmo atualmente, com a reduo de custo
e o consequente aumento da capacidade da memria principal, seu
gerenciamento um dos fatores mais importantes no projeto de sistemas
operacionais.
Fundamentalmente, o gerenciamento da memria a ferramenta
empregada para permitir aos programas em execuo no computador
aproveitarem a memria do computador para armazenar as instrues
e dados que sero manipulados. Os principais objetivos a serem
alcanados no gerenciamento da memria so:
oferecer uma rea de armazenamento para os processos serem
executados;
proteger a execuo dos processos contra eventuais falhas causadas
por erro em um determinado processo;
criar um ambiente de execuo com desempenho satisfatrio aos
usurios;

62
Everson Scherrer Borges

alm dessas caractersticas, adicionalmente deseja-se ser um bom


gerenciador:
proporcionar compartilhamento da memria entre os processos
(em sistemas avanados);
permitir aos programadores desenvolverem programas que tenham
um acesso transparente memria do computador.
Nos sistemas operacionais modernos, o gerenciamento da memria
desempenha a tarefa de alocar memria de forma eficaz, para diversos
tipos de aplicaes.

Nos sistemas monoprogramveis, a gerncia da memria no


muito complexa; nos sistemas multiprogramveis, essa gerncia
se torna crtica devido necessidade de se maximizar o nmero
de usurios e aplicaes, utilizando eficientemente o espao da
memria principal.

5.2 Proteo da Memria


Em um ambiente de multiprogramao, o sistema operacional deve
proteger as reas de memria ocupadas por cada processo, alm
da rea onde reside o prprio sistema. Caso um programa tente
realizar algum acesso indevido memria, o sistema deve impedilo de alguma forma. Apesar de a gerncia de memria garantir a
proteo de reas da memria, mecanismos de compartilhamento
devem ser oferecidos para que diferentes processos possam trocar
dados de forma protegida.

A Proteo da Memria a estratgia utilizada pelos sistemas


operacionais para controlar a memria em utilizao no computador. A
principal funo da proteo da memria a separao dos processos
e suas informaes, e impedir que um processo acesse uma rea de
memria que no foi reservada para ele. Para realizar a proteo da
memria, uma das seguintes medidas pode ser escolhida: Segmentao
da Memria ou a Paginao da Memria.
Na Paginao da Memria, a memria dividida em pginas, com
tamanho fixo. Com a utilizao de um outro mecanismo chamado
Memria Virtual, cada pgina pode ser armazenada em qualquer lugar

63
Sistemas Operacionais

da memria do computador. A Segmentao da Memria a diviso


da memria do computador em segmentos de dados. Quando um
programa vai acessar uma rea de memria, ele deve informar tambm
o nmero do segmento de memria.
A gerncia de memria deve tentar manter na memria principal
o maior nmero de processos residentes, permitindo maximizar
o compartilhamento do processador e demais recursos
computacionais.

5.3 Organizao da Memria


A memria geralmente dividida em trs partes, citadas a seguir. Veja
tambm a Figura 31, que mostra a pirmide de memrias do computador.
Memria Cache: esta memria fica dentro do processador; muito
menor que a Memria Principal, mas possui uma importncia muito
grande pois utilizada para acelerar a obteno de informaes para
o processador;
Memria Principal: tambm chamada de Memria RAM, ela
que armazena os programas e informaes que esto em uso no
computador;
Memria Secundria: nesta memria ficam os dados temporariamente
no utilizados, para liberar espao na Memria Principal, e aqui
tambm ficam armazenados os arquivos do usurio.

Registradores
da CPU

Cache
Nvel 1
rea de
Armazenamento
temporrio

Nvel 2
RAM
Memria
Fsica

Memria
Virtual

Tipos de Dispositivos de Armazenamento


ArmazenaROM
Discos
mento rede/
Disco
BIOS
Removveis
Internet
Rgido

Teclado

Mouse

Fontes de Entrada
Scanner,
Cmera,
Mdia
Microfone,
Removvel
Vdeo

Fontes
Remotas

rea de
Armazenamento
permanente

Outras
Fontes

Figura 31: Pirmide de memrias do computador


Fonte: http://static.hsw.com.br/gif/computer-memory-pyramid.gif

64
Everson Scherrer Borges

5.4 Limpeza da Memria


Uma ltima tarefa sob responsabilidade do Gerenciador de Memria
fazer a coleta de lixo. Esta tarefa consiste em coletar os dados no mais
utilizados na memria e liberar espao para outros programas poderem
ser utilizados. Os sistemas operacionais modernos, como o MacOS X
e MS-Windows XP, possuem esse mecanismo, mas verses anteriores
desses sistemas que no possuam o Coletor de Lixo no realizavam a
limpeza automtica da memria. Assim, se um programa no limpasse
a rea da memria que ele mesmo utilizou, o sistema operacional no
iria detectar que a memria poderia ser utilizada, o que acarretava na
perda de recurso durante a utilizao do computador (dependendo do
tempo de uso contnuo do computador, nitidamente percebia-se uma
queda no seu desempenho).

5.5 Compartilhamento da Memria


Uma memria chamada de memria compartilhada quando vrios
processos podem acess-la simultaneamente. Dependo do processador
utilizado no computador, vrios processos podem ser executados
ao mesmo tempo, e a comunicao entre os processos pode ser feita
utilizando-se uma rea da memria que seja acessvel a todos os
processos. A memria compartilhada pode ser criada de duas maneiras:
eletronicamente (Hardware): o compartilhamento feito em uma
grande rea de memria RAM que pode ser acessada por vrios
processadores, geralmente utilizados em supercomputadores;
logicamente (Software): aqui o compartilhamento feito utilizandose estruturas de dados especiais nos programas, para que possam
realizar a troca de informao durante a sua execuo.
A memria compartilhada uma memria que pode ser acessada,
simultaneamente, por mltiplos programas com a inteno de
prover comunicao entre eles ou para evitar cpias redundantes.
Dependendo do contexto, os programas podem ser executados em
somente um processador ou por, pelo menos, dois processadores
distintos.

65
Sistemas Operacionais

5.6 Memria Virtual


A memria virtual um recurso utilizado na computao que cria,
para os programas, um ambiente de memria contnua e, na prtica,
construdo em um ambiente de memria fragmentada, podendo at
serem utilizados dispositivos de armazenamento para o salvamento de
informaes de maneira temporria. A utilizao de memria virtual
torna o uso da memria principal mais eficiente.
O entendimento de Memria Virtual deve ir alm do conceito de
memria temporria armazenada em disco. O aumento da memria
o primeiro ganho que se tem ao utilizar-se memria virtual. O
conceito real de memria virtual : gerenciar a memria de forma
que os programas em execuo no computador tenham um ambiente
de memria unificada e contnua. Os principais sistemas operacionais
em operao atualmente fazem uso da tcnica de Memria Virtual para
obter, com isso, um aumento no desempenho do computador.
A tcnica de memria virtual foi inicialmente desenvolvida nos anos de
1959 a 1962, na Universidade Manchester, Inglaterra, para o computador
Atlas. Antes da criao da memria virtual gerenciada pelo sistema
operacional, os prprios programas eram responsveis por realizarem
o gerenciamento da informao, utilizando a memria principal e os
dispositivos de armazenamento de acordo com a necessidade inerente
ao prprio programa.
A principal motivao para a criao da memria virtual foi o pensamento
de se proporcionar aos desenvolvedores de programas um recurso mais
facilitado de utilizao da memria do computador. Na dcada de 1960,
comearam a surgir os primeiros modelos de computadores comerciais
que possuam o recurso de memria virtual disponvel, mas, como toda
tecnologia recm lanada, essa tambm passou por um processo de
popularizao difcil.
Os primeiros sistemas operacionais implementavam tcnicas
rudimentares de memria virtual, que em comparao com os sistemas
proprietrios, em que os programas gerenciavam sua prpria memria,
tinham um desempenho abaixo do desejado para justificar uma
substituio. Foi a IBM, no final da dcada de 1960, que oficializou a
adoo da memria virtual nos computadores ao lanar alguns modelos
que utilizavam esse recurso. A partir de ento, todas as empresas
passaram a implantar nos sistemas operacionais a capacidade de
gerenciamento da memria atravs da Memria Virtual.
A utilizao de memria virtual em um sistema computadorizado

66
Everson Scherrer Borges

depende principalmente da arquitetura do computador, mais


especificamente, do modo de endereamento de memria utilizado
pelo processador. A Intel, desenvolvedora dos processadores Pentium,
adotou o recurso de memria virtual em seus processadores em 1982
com o lanamento do modelo 80286. A Microsoft passou a utilizar o
recurso de memria virtual apenas em 1990, no lanamento do MSWindows 3.
Os programas utilizam a memria reservando espaos de dados
para, nesses, serem armazenados o cdigo do programa em si e os
dados que sero processados pelo programa. Este espao de dados
chamado de rea de Endereamento. Quando um programa iniciado,
o prprio sistema operacional reserva um Espao de Endereamento
para armazenar o cdigo executvel do programa, e, medida que o
programa utilizado pelo usurio, mais espaos de endereamento
podem ser solicitados para armazenar os dados que estiverem sendo
informados.
Para o sistema operacional gerenciar de forma mais eficiente a memria
do computador, os espaos de endereamento que um programa est
utilizando so agrupados em um bloco nico (a rea de Armazenamento
formada pelos Espaos de Endereamento) que manipulado e
administrado como uma nica sequncia de dados na memria.
O conceito de swapping permite maior compartilhamento da
memria principal e, consequentemente, maior utilizao dos
recursos do sistema computacional.

5.7 Memria Paginada


Memria Paginada a ttica utilizada pelo sistema operacional para
melhor gerenciar a memria do computador. Tanto a memria principal
quanto a memria secundria ser dividida em Pginas de Memria,
formando a Memria Virtual. O contedo armazenado nas pginas de
memria estar armazenado na memria principal ou na secundria,
e a alterao de uma pgina entre a memria principal e secundria
chamada de paginao.
A principal vantagem alcanada pela utilizao da Memria Paginada
a facilidade na recuperao de informaes que esto em pginas na
memria secundria. A recuperao acontecer por dois motivos: o
processador estar carregando o cdigo executvel de um programa (o
processo passou do estado de Bloqueio para o estado de Espera), ou um
programa estar acessando alguma informao na memria virtual.

67
Sistemas Operacionais

O sistema operacional, por meio do gerenciador de memria, detecta


que essa informao no est na memria principal (essa situao
chamada de Falha de Pgina, ou Page Fault, em ingls). Sempre que
acontecer uma falha de pgina, o sistema operacional dever realizar o
seguinte procedimento:
encontrar a pgina de memria na Memria Secundria;
determinar qual rea da Memria Principal ser utilizada para
receber os dados da Memria Secundria, e armazenar esses dados
na Memria principal;
passar para o programa a nova pgina de memria correspondente
informao solicitada.
O item dois pode ser expandido, caso no haja uma pgina de memria
livre na memria principal (toda a memria principal est em uso) para
armazenar os dados da memria secundria. Nesse caso, haver duas
paginaes: uma retirando uma pgina da memria principal para a
memria secundria, e outra no caminho inverso. Diz-se, ento, que
houve uma Troca de Pginas (Page Swap, em ingls).
No contexto dos sistemas operacionais, a paginao da memria
do computador um processo de virtualizao da memria, o que
consiste na subdiviso da memria fsica em pequenas parties
(frames), para permitir uma utilizao mais eficiente da mesma. A
alocao de memria requisitada por pginas, a menor unidade
deste mtodo. Cada pgina mapeada num frame de memria
atravs de um processo que se chama paginao.
Um exemplo de Sistema Operacional que usa memria paginada
o Linux. Nos Sistemas Operacionais com memria virtual
paginada, podemos ter programas em execuo cujo tamanho
maior que a memria fsica disponvel, uma vez que se permite o
mapeamento de pginas em memria secundria.

5.8 Memria Segmentada


A Segmentao da Memria consiste na diviso da memria em
segmentos de dados. Cada segmento possuir as seguintes propriedades:
a sua localizao fsica na memria, a permisso de acesso, o tamanho
e um identificador. Se um processo possuir permisso para utilizar um

68
Everson Scherrer Borges

segmento, e se o processo solicitar acesso a uma informao dentro


do segmento, poder fazer isso, caso contrrio, um aviso de erro ser
passado ao processo (e, consequentemente, ao usurio).
Alm das propriedades citadas, dependendo do sistema operacional,
o segmento pode possuir um indicador informando se sua localizao
est na memria principal ou na memria secundria. Caso esteja na
memria secundria, e seja acessado por algum processo, o sistema
operacional ir realizar o carregamento do segmento na memria
principal para poder acessar as informaes contidas nele.
Com a evoluo dos sistemas operacionais, novos esquemas de
gerncia de memria passaram a incorporar a tcnica de swapping,
como a gerncia de memria virtual. Voc pode encontrar mais
informaes sobre gerncia de memria nas bibliografias citadas.

1. Que benefcios so obtidos com o gerenciamento de memria?


2. Em que consiste a estratgia de proteo de memria?
3. Explique a ttica empregada na utilizao de memria paginada.
4. Quais os principais critrios para substituio de pginas de
memria? Por que esse recurso usado?
5. Como dividida a organizao de memria? Defina cada parte
da diviso.
6. O que memria paginada? Comente suas vantagens.
7. Em que consiste a segmentao de memria?
8. Quais so as causas que um programa que no implementa o
sistema de limpeza de memria pode causar?

[1] MACHADO, F.B. e MAIA, L.P. Arquitetura de Sistemas


Operacionais. 4.ed. LTC, 2007.
[2] SILBERSCHATZ, A., GALVIN, P.B., GAGNE, G. Fundamentos
de Sistemas Operacionais. 6.ed. LTC, 2004.
[3]TANENBAUM, A.S. Sistemas Operacionais Modernos. 2.ed.
Pearson Brasil, 2007.
[4] SOARES, RICARDO DE MAGALHES. Sistemas
Operacionais. 1 ed. Esab, 2008.

Gerncia de Dispositivos
Caro aluno,
estaremos dando incio a nossa sexta e ltima aula com o contedo,
Gerncia de Dispositivos em Sistemas Operacionais.
A gerncia de dispositivos permitir que voc compreenda, de forma
embasada, como a integrao do hardware do computador e o
sistema operacional, pois o ato simples de imprimir um arquivo
e receber da impressora um papel cheio de letras no to simples
quanto pensamos ser.
No cruze os braos diante de uma dificuldade, pois o maior
homem do mundo morreu de braos abertos. Bob Marley
Bom estudo!

6.1 Introduo
Gerenciar os dispositivos do computador parte da funo de um sistema
operacional e, no caso de sistemas operacionais de tempo real, este
pode ser todo o trabalho. Para outros sistemas operacionais, o objetivo
fornecer, de maneira simples e consistente, poder de processamento
para aplicativos e usurios. Para gerenciar dispositivos plugados ao
computador, como: monitor, mouse, teclado, impressora, e outros, o
sistema operacional necessita, em primeiro lugar, ter a capacidade de
acessar o dispositivo, enviar comandos e receber informaes do mesmo.
Para realizao desta tarefa, os sistemas operacionais recebem um
conjunto de instrues especficas para o tratamento dos dispositivos, e
esse conjunto de instrues chamado de driver de dispositivo.

6.2 Driver de dispositivo


O funcionamento dos drivers depende do tipo de dispositivo de hardware;
em sua grande maioria, os drivers so executados quando o dispositivo
acionado, e eles funcionam de maneira semelhante a qualquer outro
processo. O sistema operacional d maior prioridade aos drivers para
que os recursos dos hardwares sejam liberados e disponibilizados o mais
rpido possvel.

70
Everson Scherrer Borges

Drivers so pequenos programas que fazem a comunicao entre


o Sistema Operacional e o hardware do computador.

A razo para que os drivers sejam separados do sistema operacional


para que novas funes sejam adicionadas ao drivers sem que o
sistema operacional seja modificado, recompilado e redistribudo.
O desenvolvimento de novos drivers, geralmente realizado ou pago
pelo fabricante do dispositivo em vez do desenvolvedor do sistema
operacional melhora as capacidades de entrada/sada de todo o sistema.

A funo de um driver de dispositivo aceitar requerimentos


abstratos do software, independente de dispositivo acima dele,
e cuidar para que a solicitao seja executada, permitindo que o
software interaja com o hardware do computador.

Dessa forma, o driver de um dispositivo funcionar como um tradutor


de comandos entre o sistema operacional e o equipamento eletrnico.
O sistema operacional utilizar as rotinas existentes no driver para
poder manipular e gerenciar o dispositivo de hardware. Por exemplo,
se o equipamento for uma impressora, o sistema operacional poder
solicitar ao driver que imprima um determinado texto. O driver
passar impressora o texto a ser impresso e o comando de impresso.
Cada nova verso de uma impressora necessita de um novo driver,
mas isso no significa que cada modelo de impressora ir utilizar um
driver diferente. Uma mesma verso de impressora pode ser entregue
em modelos diferentes, por exemplo: Epson Stylus 5300, Epson Stylus
5500, Epson Stylus 5700, e Epson Stylus 5900. [4]

Os drivers so divididos em duas partes: comandos lgicos e comandos


fsicos. Os comandos lgicos so acessados pelo sistema operacional
e por qualquer programa que utilize o driver para comunicar com
o dispositivo. Os comandos lgicos sero utilizados pelo sistema
operacional para informar ao driver os comandos que devem ser
executados e para transferir dados para o dispositivo. Os comandos
fsicos so utilizados pelo prprio driver, para executar no dispositivo
os comandos lgicos solicitados.
O cdigo de alto nvel das aplicaes pode ser escrito independentemente
do dispositivo que ser utilizado. Qualquer verso de um dispositivo,
como uma impressora, requer os seus prprios comandos. Entretanto,
a maioria das aplicaes acessa os dispositivos usando comandos
genricos de alto-nvel, como println, que imprime um texto. O driver
converte esses comandos genricos e converte para um cdigo de baixo-

71
Sistemas Operacionais

nvel interpretado pelo dispositivo. Em uma melhor traduo, drive, do


verbo driver, dirige um hardware a um software, ou seja, o meio de
comunicao de um hardware. Veja a Figura 32.

Modo Kernel

Software

Modo Usurio

Processo

Operaes de E/S

Sistemas de
Arquivos

Independente
do dispositivos
(a)

Subsistemas de E/S

Device Drivers

Hardware

Dependente
do dispositivos
(b)
Controladores

Dispositivos de E/S

Figura 32: Device drivers


Fonte: Machado e Maia, 2004. Adaptao.

Para usar o driver, o mesmo deve estar instalado no sistema operacional.


No processo de instalao, o sistema operacional registrar o driver, os
dispositivos que podem ser utilizados atravs dele, a localizao das
rotinas de operao do dispositivo, entre outras informaes. Essa tarefa
de instalao, atualmente, feita de maneira simples e, em muitos casos,
no chega a ser necessria, pois alguns sistemas operacionais j so
distribudos com uma srie de drivers pr-instalados, havendo apenas
a necessidade de se instalar manualmente o driver para um dispositivo
lanado aps a aquisio do sistema operacional. As Figuras 33 e 34
mostram, no sistema operacional Windows XP Professional, onde est
o gerenciador de dispositivos. Para acess-lo, basta ir at ao painel de
controle e executar o cone chamado de sistema.

72
Everson Scherrer Borges

Figura 33: Propriedades do Sistema no Windows XP

Figura 34: Gerenciador de dispositivos do Windows XP


Para gerenciar os dispositivos, os sistemas operacionais contam com
gerenciadores especficos: Gerenciador de Impresso, Gerenciador de
Disco, Gerenciador de Modem, Gerenciador USB, Gerenciador de
Vdeo, entre outros. Cada gerenciador ser responsvel por realizar
a administrao e controle da utilizao do respectivo dispositivo.
O Gerenciador de Impresso ir controlar quais documentos sero
enviados para a impressora, quando ela estar disponvel para ser
utilizada, e vrias outras tarefas. [4]

73
Sistemas Operacionais

6.3 Dispositivos plug and play


A tecnologia Plug and Play (PnP), que significa ligar e usar, foi criada
com o objetivo de fazer com que o computador reconhea os dispositivos
instalados e os configure automaticamente, facilitando a expanso
segura dos computadores e eliminando a configurao manual.
Em 1994, vrios fabricantes de dispositivos se uniram para definir
um novo conceito na utilizao do computador, e na maneira como
seria feita a instalao dos drivers de dispositivos. At essa poca, a
instalao e utilizao de um dispositivo era muito complexa (causada
principalmente pelo MS-DOS). Para melhorar e facilitar a interao
entre os sistemas operacionais e dispositivos, foi criado o modelo Plugand-Play. Esse modelo define um conjunto de caractersticas que os
dispositivos iro possuir para facilitar a instalao dos drivers. [4]

Quando ligamos o computador, a BIOS (Basic Input/Output System Sistema Bsico de Entrada/Sada) envia sinais a todos os dispositivos.
Aqueles que enviam uma resposta so reconhecidos, como acontece
com os Plug and Play. A partir deste reconhecimento, montado e
atribudo a uma tabela de IRQ (abreviao para Interrupt Request) para
cada dispositivo reconhecido. Quando o sistema operacional entra em
operao, ele recolhe a tabela que foi gerada informando os dispositivos
reconhecidos e se adapta a ela fornecendo os softwares drivers que
permitiro aos programas utilizarem estes dispositivos.
Alunos, embora seja uma maravilha da tecnologia, existem muitos
dispositivos que no so 100% compatveis com esta tecnologia,
principalmente por existirem diferentes sistemas operacionais.
Quando isso acontece necessrio que o driver seja instalado
manualmente.
Antes dos dispositivos Plug-and-Play surgirem, o usurio deveria
configurar manualmente o dispositivo, passando ao sistema operacional
uma srie de informaes: o conector fsico na placa-me em que estava
o dispositivo, o endereo padro para acessar o dispositivo, o nmero de
identificao, o nmero do gerador de interrupes, entre outras.

6.4 Drives no Windows e Linux


O driver dependente do sistema operacional, portanto, sua utilizao
deve seguir critrios definidos pelos fabricantes dos sistemas
operacionais. Estes critrios definem como ser feita a interao entre o
sistema operacional e os comandos lgicos do driver.

74
Everson Scherrer Borges
Os drivers para MS-Windows 3 e MS-Windows 95 eram desenvolvidos
segundo um modelo definido pela Microsoft chamado VxD, a sigla
VxD representa Virtual X Driver. Nos sistemas MS-Windows 98,
MS-Windows 2000 e MS-Windows XP, o modelo utilizado chamado
de Windows Driver Model e a principal diferena em relao ao
modelo anterior refere-se a melhorias no tratamento de dispositivos
Plug-and-Play. Atualmente, no MS-Windows Vista, o modelo para
utilizao dos drivers de dispositivo chamado de Windows Driver
Foundation. [4]

No Linux, os drivers podem ser programas separados, ou fazerem parte


do prprio kernel (ncleo do Sistema operacional). Quando os drivers
fazem parte do kernel, eles so carregados na inicializao do sistema.
Os drivers que no fazem parte do kernel so chamados de Mdulos
Carregveis, e tm a vantagem de poderem ser carregados na memria
apenas no momento de utilizao do dispositivo.

1. Qual, ou quais, so as funes de um driver?


2. Em que consiste a tecnologia plug and play?
3. Os drivers so divididos em duas partes: defina quais so e
descreva cada uma.
4. Por que um driver para um determinado sistema operacional
no pode ser utilizado em outro?
5. Como funcionam os drivers no sistema operacional Linux?
6. Como funcionava a instalao de drivers antes do surgimento
da tecnologia plug and play?
7. De que forma o sistema operacional realiza a administrao e
controle da utilizao do respectivo dispositivo?

[1] MACHADO, F.B. e MAIA, L.P. Arquitetura de Sistemas


Operacionais. 4.ed. LTC, 2007.
[2] SILBERSCHATZ, A., GALVIN, P.B., GAGNE, G. Fundamentos
de Sistemas Operacionais. 6.ed. LTC, 2004.
[3] TANENBAUM, A.S. Sistemas Operacionais Modernos. 2.ed.
Pearson Brasil, 2007.
[4] SOARES, RICARDO DE
Operacionais. 1 ed. Esab, 2008.

MAGALHES.

Sistemas

You might also like