Você está na página 1de 178

Mrcio Rodrigo Elias Carvalho

Fundamentos em
Sistemas Operacionais

Jouberto Ucha de Mendona


Reitor
Amlia Maria Cerqueira Ucha
Vice-Reitora
Jouberto Ucha de Mendona Junior
Pr-Reitoria Administrativa - PROAD
Ihanmarck Damasceno dos Santos
Pr-Reitoria Acadmica - PROAC
Domingos Svio Alcntara Machado
Pr-Reitoria Adjunta de Graduao - PAGR
Temisson Jos dos Santos
Pr-Reitoria Adjunta de Ps-Graduao
e Pesquisa - PAPGP
Gilton Kennedy Sousa Fraga
Pr-Reitoria Adjunta de Assuntos
Comunitrios e Extenso - PAACE
Jane Luci Ornelas Freire
Gerente do Ncleo de Educao a Distncia - Nead
Andrea Karla Ferreira Nunes
Coordenadora Pedaggica de Projetos - Nead
Lucas Cerqueira do Vale
Coordenador de Tecnologias Educacionais - Nead
Equipe de Elaborao e
Produo de Contedos Miditicos:
Alexandre Meneses Chagas - Supervisor
Ancjo Santana Resende - Corretor
Andira Maltas dos Santos Diagramadora
Claudivan da Silva Santana - Diagramador
Edilberto Marcelino da Gama Neto Diagramador
Edivan Santos Guimares - Diagramador
Fbio de Rezende Cardoso - Webdesigner
Geov da Silva Borges Junior - Ilustrador
Mrcia Maria da Silva Santos - Corretora
Marina Santana Menezes - Webdesigner
Matheus Oliveira dos Santos - Ilustrador
Monique Lara Farias Alves - Webdesigner
Pedro Antonio Dantas P. Nou - Webdesigner
Rebecca Wanderley N. Agra Silva - Designer
Rodrigo Otvio Sales Pereira Guedes - Webdesigner
Rodrigo Sangiovanni Lima - Assessor
Walmir Oliveira Santos Jnior - Ilustrador

C331f
Redao:
Ncleo de Educao a Distncia - Nead
Av. Murilo Dantas, 300 - Farolndi
Prdio da Reitoria - Sala 40
CEP: 49.032-490 - Aracaju / SE
Tel.: (79) 3218-2186
E-mail: infonead@unit.br
Site: www.ead.unit.br
Impresso:
Grfica Gutemberg
Telefone: (79) 3218-2154
E-mail: grafica@unit.br
Site: www.unit.br

Carvalho, Mrcio Rodrigo Elias.


Fundamentos em sistemas operacionais. / Mrcio Rodrigo Elias Carvalho.
Aracaju : UNIT, 2010.
176 p.: il. : 22 cm.
Inclui bibliografia.
1. Sistemas operacionais. 2. Informtica.
I. Universidade Tiradentes Educao a
Distncia II. Titulo.

CDU : 004.451
Banco de Imagens:
Shutterstock

Copyright Sociedade de Educao Tiradentes

Apresentao
Prezado(a) estudante,
A modernidade anda cada vez mais atrelada ao
tempo, e a educao no pode ficar para trs. Prova
disso so as nossas disciplinas on-line, que possibilitam a voc estudar com o maior conforto e comodidade possvel, sem perder a qualidade do contedo.
Por meio do nosso programa de disciplinas
on-line voc pode ter acesso ao conhecimento de
forma rpida, prtica e eficiente, como deve ser a sua
forma de comunicao e interao com o mundo na
modernidade. Fruns on-line, chats, podcasts, livespace,
vdeos, MSN, tudo vlido para o seu aprendizado.
Mesmo com tantas opes, a Universidade Tiradentes
optou por criar a coleo de livros Srie Bibliogrfica Unit
como mais uma opo de acesso ao conhecimento. Escrita
por nossos professores, a obra contm todo o contedo
da disciplina que voc est cursando na modalidade EAD
e representa, sobretudo, a nossa preocupao em garantir
o seu acesso ao conhecimento, onde quer que voc esteja.

Desejo a voc bom aprendizado e muito sucesso!

Professor Jouberto Ucha de Mendona


Reitor da Universidade Tiradentes

Sumrio
Parte 1: Princpios e Estruturas de Sistemas
Operacionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Tema 1: Introduo aos Sistemas Operacionais. . . . . . . . . . . . . . . . . 13
1.1 Histria dos Sistemas Operacionais . . . . . . . . . . . . . . . . . . 14
1.2 Tipos de Sistemas Operacionais . . . . . . . . . . . . . . . . . . . . 23
1.3 Funes dos Sistemas Operacionais . . . . . . . . . . . . . . . . . .31
1.4 Estruturas do Sistema Operacional . . . . . . . . . . . . . . . . . . 39
Resumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Tema 2: Gerenciamento de Processos. . . . . . . . . . . . . . . . . . . . . . . . . 51
2.1 Conceitos Fundamentais de Processos . . . . . . . . . . . . . . . 52
2.2 Tipos de Processos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61
2.3 Comunicao entre Processos . . . . . . . . . . . . . . . . . . . . . . 69
2.4 Escalonamento de Processos. . . . . . . . . . . . . . . . . . . . . . . 79
Resumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

Parte 2: Funcionamento de Sistemas Operacionais . . . 87


Tema 3: Funes essenciais de um Sistema Operacional . . . . . . . . .89
3.1 Gerncia de Mltiplos Processadores . . . . . . . . . . . . . . . . .91
3.2 Gerncia de Memria . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
3.3 Memria Virtual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .110
3.4 Gerncia de Dispositivos de Entrada e Sada . . . . . . . . . 120
Resumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .129
Tema 4: Segurana de Sistemas Operacionais. . . . . . . . . . . . . . . . . 131
4.1 Sistemas de Arquivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .132
4.2 Princpios de Segurana de Sistemas Operacionais . . . 144
4.3 Cases Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
4.4 Cases Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
Resumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .172

Referncias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173

Concepo da Disciplina
Ementa
Introduo aos Sistemas Operacionais: Histria
dos Sistemas Operacionais, Tipos de Sistemas Operacionais, Funes de Sistemas Operacionais, Estruturas
de Sistemas Operacionais. Gerenciamento de Processos: Conceitos Fundamentais de Processos, Tipos de
Processos, Comunicao entre Processos, Escalonamento de Processos. Funes Essenciais de um Sistema Operacional: Gerncia de Mltiplos Processadores,
Gerncia de Memria, Memria Virtual, Gerncia de
Dispositivos de Entrada e Sada. Segurana de Sistemas
Operacionais: Sistemas de Arquivo, Princpios de
Segurana de Sistemas Operacionais, Cases Windows,
Cases Linux.

Objetivos
Geral
Levar ao aluno os conceitos bsicos sobre os
sistemas operacionais de forma a compreender o funcionamento lgico de um computador.
Especficos

Compreender a importncia das tcnicas de


sistemas operacionais nos computadores;

Proporcionar aos alunos conhecimentos


sobre a arquitetura funcional dos sistemas
operacionais e suas relaes com o processamento de dados;

Fornecer aos alunos as principais informaes para a identificao, entendimento e


aplicao de sistemas de operacionais no
processo operacional dos computadores e
suas estruturas;

Proporcionar entendimento das aplicabilidades operacionais dos principais sistemas


operacionais existentes.

Orientao para Estudo


A disciplina prope orient-lo em seus procedimentos de estudo e na produo de trabalhos cientficos, possibilitando que voc desenvolva em seus trabalhos pesquisas, o rigor metodolgico e o esprito crtico
necessrios ao estudo.
Tendo em vista que a experincia de estudar a
distncia algo novo, importante que voc observe
algumas orientaes:
Cuide do seu tempo de estudo! Defina um
horrio regular para acessar todo o contedo
da sua disciplina disponvel neste material
impresso e no Ambiente Virtual de Aprendizagem (AVA). Organize-se de tal forma para
que voc possa dedicar tempo suficiente
para leitura e reflexo;
Esforce-se para alcanar os objetivos propostos na disciplina;

Utilize-se dos recursos tcnicos e humanos


que esto ao seu dispor para buscar esclarecimentos e para aprofundar as suas
reflexes. Estamos nos referindo ao contato
permanente com o professor e com os colegas a partir dos fruns, chats e encontros
presenciais, alm dos recursos disponveis
no Ambiente Virtual de Aprendizagem AVA.

Para que sua trajetria no curso ocorra de forma


tranquila, voc deve realizar as atividades propostas
e estar sempre em contato com o professor, alm de
acessar o AVA.
Para se estudar num curso a distncia deve-se
ter a clareza de que a rea da Educao a Distncia
pauta-se na autonomia, responsabilidade, cooperao
e colaborao por parte dos envolvidos, o que requer
uma nova postura do aluno e uma nova forma de concepo de educao.
Por isso, voc contar com o apoio das equipes
pedaggica e tcnica envolvidas na operacionalizao
do curso, alm dos recursos tecnolgicos que
contribuiro na mediao entre voc e o professor.

PRINCPIOS E ESTRUTURAS
DE SISTEMAS OPERACIONAIS
Parte 1

Introduo aos Sistemas


Operacionais

No texto a seguir, veremos os conceitos bsicos e os principais


fundamentos de sistemas operacionais. Juntos conheceremos sua
evoluo atravs da histria, seus tipos e funes primordiais interagindo
o usurio com o hardware do sistema.
Voc ser capaz, ao final deste tema, de perceber a complexidade
envolvida na comunicao dos sistemas operacionais com os dispositivos
fsicos do computador a fim de criar um ambiente mais amigvel para
o usurio.

14

Fundamentos em Sistemas Operacionais

1.1 Histria dos Sistemas Operacionais


Um sistema operacional pode ser visto como
um conjunto de instrues executadas pelo processador que gera determinado resultado. Analisando
desta forma, sugiro levantar a seguinte questo:
Podemos considerar o sistema operacional um programa da mesma forma que um aplicativo de usurio?
Para responder com segurana esta questo
preciso saber mais sobre as funes de um sistema operacional e para isso nada melhor do que
analisarmos a evoluo do desenvolvimento dos
computadores, j que os sistemas operacionais
esto historicamente ligados a ela. Vejamos ento
um pequeno resumo dos principais fatos histricos.
Desde 1642, quando Blaise Pascal (1623-1662),
matemtico ingls, inventou uma mquina de
somar, diversos matemticos se esforaram em
criar mquinas para calcular operaes aritmticas.
At que em 1833, Charles Babbage (1791-1871)
projetou uma mquina capaz de realizar qualquer
tipo de operao chamada Mquina Analtica.

Figura 01 Parte de um desenho da mquina analtica de Babbage


Fonte: GUIMARES, Angelo M.; CASTILHO, Newton A. Introduo
cincia da computao. 2. ed. Rio de Janeiro: LTC, 1985, cap. 1, p. 12.

Tema 1

| Introduo aos sistemas operacionais

Apesar da impossibilidade de sua construo,


devido aos limites tecnolgicos da poca, seus conceitos de uma unidade central de processamento,
de dispositivos de entrada e sada, memria e,
claro, o fato de ser programvel, torna o seu invento o que mais se aproxima de um computador atual.
Outro personagem da histria que vale a
pena ser citado George Boole (1815-1864), tambm matemtico ingls, criador da lgica booleana
em 1854, base da computao digital utilizada at
hoje e que permitiu o desenvolvimento de componentes como rels e vlvulas, implementados nos
primeiros computadores em 1940.
Nos anos de 1900 apontamos outro marco
importante no desenvolvimento dos computadores.
No final da dcada de 30, Alan Turing (1912-1954),
um matemtico ingls, publicou em um trabalho
cientfico uma mquina imaginria, projetada para
executar uma operao matemtica especfica. Em
outras palavras, a mquina seria capaz de realizar uma srie de etapas fixas, prescritas, que, por
exemplo, resultariam na multiplicao de dois nmeros. E imaginou um conjunto dessas mquinas,
cujo funcionamento interno pudesse ser alterado,
realizando todas as funes matemticas concebveis. Chamou-a de Mquina Universal de Turing.
Alguns anos depois, durante a Segunda
Guerra, o tambm matemtico ingls Max Newman
(1897-1984), baseou-se em grande parte no conceito de Alan Turing para uma mquina universal,
projetando uma mquina capaz de se adaptar a
diferentes problemas.
Como voc conceituaria hoje um computador programvel? Se o que pensou foi
uma mquina capaz de se adaptar a diferentes problemas, est correto.

15

16

Fundamentos em Sistemas Operacionais

Em 1943, atravs do projeto de Newman, foi


construdo pelo engenheiro ingls, Tommy Flowers
(1905-1998), o Colossus, considerado o precursor
do moderno computador digital.
Dois anos depois, em 1945, J. Eckert (1919-1995)
e J. W. Mauchly (1907-1980), da Universidade da
Pensilvnia, completaram o ENIAC (Electronic
Numerical, Integrator And Calculator) que consistia
em 18.000 vlvulas eletrnicas capazes de realizar
cinco mil clculos por segundo.
O professor John Von Neumann (1903-1957),
que trabalhou como consultor na construo do
ENIAC, desenvolveu a ideia de uma mquina de
propsito geral na qual tanto as instrues
quanto os dados compartilhassem uma mesma
memria. Este conceito, hoje conhecido como Arquitetura Von Neumann, a base da arquitetura da
computao atual.
Voc consegue perceber que com a
Arquitetura de von Neumann foi possvel
colocar as ideias de Babbage e Turing em
um mesmo sistema computacional?

1 Reveja o contedo da disciplina


Introduo Computao e relembre
com mais detalhes
seus conhecimentos
em relao ao
desenvolvimento
dos computadores
at a importncia
da inveno do
transistor.

Diversos computadores foram construdos


com o conceito da Arquitetura de von Neumann
(tambm chamado de programa armazenado).
Vale a pena citar o EDSAC (Electronic Delay Storage Automatic Calculator), construdo em Cambridge,
Inglaterra, em 1949, por ter sido o primeiro computador a implementar esse conceito, e o EDVAC
(Electronic Discrete Variable Automatic Computer)
construdo na mesma poca, na Pensilvnia, EUA1.
Sugiro aqui uma pausa para levantar a
seguinte questo: E os sistemas operacionais?
Onde entram nesta histria?

Tema 1

| Introduo aos sistemas operacionais

At a dcada de 50, os computadores ainda


no possuam interface com o usurio como teclados e monitores e o conceito de sistema operacional
surgiria somente nesta dcada.
At ento, os programas eram perfurados em cartes
que eram carregados em uma leitora para serem gravados em uma fita de entrada. Essa fita era, ento,
lida pelo computador que rodava um programa por
vez, gravando o resultado de seu processamento em
uma fita de sada lida pelo computador que rodava
um programa por vez, gravando o resultado de seu
processamento em uma fita de sada. Quando todos
os programas terminavam sua execuo, a fita de sada era lida e impressa. Esse processamento, em que
vrios programas eram submetidos ao computador,
era conhecido como processamento batch.

Figura 02 Exemplo de carto perfurado


Fonte: GUIMARES, Angelo M.; CASTILHO, Newton A. Introduo
cincia da computao. 2. ed. Rio de Janeiro: LTC, 1985, cap. 5, p. 117.

O primeiro sistema operacional foi desenvolvido em 1953, pelo grupo de usurios de um


computador IBM (IBM 701) para tentar automatizar
as tarefas manuais de insero de cartes para a
leitura. Pela simplicidade deste sistema, ficou conhecido como monitor.

17

18

Fundamentos em Sistemas Operacionais

Com o desenvolvimento dos circuitos integrados na dcada de 60, houve um grande aumento
do poder de processamento e, com isso, inmeras inovaes na rea de sistemas operacionais
surgiram, com a implementao de tcnicas presentes at hoje, sendo a multiprogramao a mais
importante de todas. Isto porque, sem o conceito
de multiprogramao, toda vez que um programa
realizava uma operao de acesso a dispositivos de
entrada e sada, o processador tinha de aguardar
o trmino deste processo. Contudo, com a multiprogramao, programas poderiam compartilhar a
memria e aguardar os dispositivos de entrada e
sada enquanto o processador se ocupava de outro
programa.
Em 1962 o MIT (Massachusett Institute
Technology) desenvolveu um dos primeiros sistemas operacionais de tempo compartilhado, o CTSS
(Compatible Time Sharing System) que suportava
no mximo 32 usurios.
Em 1964 a IBM lana o System /360, que revolucionou a indstria de informtica por diversos
motivos: foi a primeira linha de computadores a
utilizar circuitos integrados em pequena escala e
introduziu o conceito de mquinas de diferentes
portes com a mesma arquitetura onde era possvel
que programas escritos em uma mquina pudessem
ser executados em outra.
Em 1965, a General Electric, a Bell Labs e
o MIT estavam desenvolvendo um projeto de um
sistema operacional portvel, que poderia ser utilizado em plataformas de hardware diferentes. O
MULTICS (Multiplexed Information and Computing
Service) implementava memria virtual, multiprogramao e deveria suportar mltiplos processadores
e usurios.

Tema 1

| Introduo aos sistemas operacionais

J em 1969, Ken Thompson comeou a escrever


uma verso simplificada monousuria do MULTICS
(ele fez parte do projeto de sua criao) para um
minicomputador na Bell Labs. Seu trabalho mais
tarde deu origem ao sistema operacional UNIX, que
devido ao fato de seu cdigo fonte estar amplamente disponvel, vrias organizaes criaram suas
prprias verses, que no eram compatveis entre
si, o que levou ao desenvolvimento de um padro
para o UNIX chamado POSIX.
Na dcada de 70, com o advento da integrao
em larga escala (LSI Large Scale Integration e
VLSI Very Large Scale Integration), fez com que
a miniaturizao e o barateamento dos computadores se tornassem possveis. Nesta mesma dcada,
mais precisamente em 1974, a Intel produz o microprocessador Intel 8080 utilizado no primeiro microcomputador, o Altair.
Em 1976, Steve Wozniak e Steve Jobs fabricam o Apple II com microprocessador de 8 bits e
no mesmo ano so fundadas a Microsoft e a Apple.
Em 1981 a IBM lana sua filosofia de computador pessoal lanando o PC-XT (Personal Computer Extended Technology) que vinha com um
processador Intel 8088 de 16 bits e com o sistema
operacional baseado em linha de comando, o MS-DOS
(Microsoft Disk System Operation).
Esse sistema operacional iria evoluir juntamente com os micros que ficaram conhecidos
como 286, 386, 486 e a linha Pentium recebendo
um shell que rodava por cima do MS-DOS que
ficou conhecido como Windows, at que em 1995
foi lanada uma verso que no dependia mais do
MS-DOS por trs para rodar, ele foi chamado de
Windows 95.

19

20

Fundamentos em Sistemas Operacionais

Lembra-se por que no era possvel rodar


o Windows 95 em um 286? Quem possuiu
um 286 na poca e tentou instalar o Windows 95 obviamente no teve sucesso, j
que o Windows 95 era um sistema operacional de 32 bits, enquanto um processador 286 trabalhava a 16 bits.
Em meio a esses acontecimentos, em 1982,
foi fundada a SUN Microsystems, que lanou as primeiras estaes RISC com o sistema operacional SunOS e logo depois o Sun Solaris. Surgiram,
assim, os sistemas operacionais para redes e
sistemas distribudos.
Na dcada de 90 houve a consolidao dos
sistemas operacionais baseados em interfaces
grficas. Alm disso, a utilizao de conceitos e
implementaes, que eram usados em computadores de grande porte, passaram a ser utilizados
em sistemas para desktop, como no Windows NT e
Unix (IBM-AIX, HP-UX e Sun Solaris).
Ainda nos anos 90, mais precisamente em
1991, o estudante finlands Linus Torvalds inicia
o desenvolvimento do sistema operacional Linux,
que foi construdo a partir da colaborao de
diversos programadores que auxiliaram no desenvolvimento do seu ncleo.
J na dcada de 2000 temos os processadores de 64 bits, que necessitam de um sistema
operacional que trabalhe a 64 bits. Alm disso,
vemos a Microsoft unificando recursos de servidores
e desktops em suas novas verses de sistemas
operacionais e a popularizao das distribuies
Linux como uma alternativa real para os usurios
desktops.

Tema 1

| Introduo aos sistemas operacionais

Atualmente possvel rodar o Linux diretamente do CD ou mesmo de um pen


drive sem instal-lo na mquina! Experimente.
Com a popularizao da internet o conceito de sistemas distribudos ser bastante explorado nos sistemas operacionais. Com a reduo do
custo da tecnologia, dos custos de comunicao e
aumento na taxa de transmisso temos sistemas
operacionais hoje em telefones celulares, palmtops
e diversos dispositivos mveis.
Neste sentido, os sistemas operacionais evoluram com o objetivo de facilitar o trabalho de codificao, execuo e manuteno dos programas,
j que esses programas deixaram de ter relao direta com o hardware dos computadores eliminando
a necessidade dos programadores desenvolverem
suas prprias rotinas de leitura/gravao especfica
para cada dispositivo.

INDICAO DE LEITURA COMPLEMENTAR


Para saber mais sobre Histria dos Sistemas Operacionais, leia o item 1.4 (p. 6-14) do livro de:
MACHADO, Francis B.; MAIA, Luiz Paulo. Arquitetura de
sistemas operacionais. 4. ed. Rio de Janeiro: LTC, 2007.
No primeiro captulo de um dos livros referncia
no assunto de sistemas operacionais, Francis Machado e Luiz Maia resumem a histria da evoluo
dos computadores em paralelo com a evoluo dos
sistemas operacionais analisando suas inovaes a
cada dcada do sculo passado.

21

22

Fundamentos em Sistemas Operacionais

Para saber mais sobre Histria dos Sistemas Operacionais, leia o item 1.2 (p. 19-25) do livro de:
TANENBAUM, Andrew S.; WOODHULL, Albert S.
Sistemas operacionais: projeto e implementao.
2. ed. Porto Alegre: Bookman, 2000.
Livro referncia no estudo de sistemas operacionais
distribui em seu primeiro captulo a evoluo dos
sistemas operacionais dentro do contexto das
geraes de computadores ao longo do sculo
passado.

PARA REFLETIR
Se equipamentos como celulares, palmtops,
handhelds j vm com um sistema operacional
embutido, por que o microcomputador no possui
este mesmo princpio? Pense a respeito.

Tema 1

| Introduo aos sistemas operacionais

23

1.2 Tipos de Sistemas Operacionais


Como foi visto no tpico anterior, a evoluo
do sistema operacional est associada diretamente
arquitetura dos computadores sobre o qual esto
implementados e das aplicaes por ele suportadas.
Isso fez com que muita coisa mudasse num esforo
para o aperfeioamento de interaes e processamentos. Podemos a partir da classific-los em
diferentes tipos:

Figura 03 Tipos de sistemas operacionais

SISTEMAS MONOPROGRAMVEIS
Tambm conhecidos como Sistemas Monotarefa, caracterizam-se por permitir que todos os
recursos do sistema fiquem exclusivamente dedicados a uma nica tarefa. S um programa pode rodar por vez, qualquer outra aplicao dever aguardar seu trmino para que possa iniciar. Com isso,
haver uma subutilizao dos recursos de hardware
(memria, processador e perifricos).

Figura 04 Sistemas Monoprogramveis


Fonte: MACHADO, Francis B.; MAIA, Luiz
Paulo. Arquitetura de sistemas operacionais. 4. ed. Rio de Janeiro: LTC, 2007,
cap. 1, p. 16.

24

Fundamentos em Sistemas Operacionais

O sistema operacional MS-DOS um bom


exemplo deste tipo de sistema. Foi criado com
o princpio de que uma pessoa estaria usando o
computador e um nico usurio estaria executando
uma tarefa de cada vez. O MS-DOS foi desenvolvido para ser usado em um ambiente monousurio e
de monoprocessamento.
Uma vantagem nesse tipo de sistema sua
implementao, j que no existe a preocupao
de criar solues para o compartilhamento dos recursos de hardware entre os programas.
Quantas desvantagens voc capaz de enumerar para um sistema monoprogramvel?
SISTEMAS MULTIPROGRAMVEIS
Tambm conhecidos como Sistemas Multitarefas sua principal caracterstica o compartilhamento dos recursos de hardware entre usurios e
aplicaes. Neste modelo, o sistema operacional se
preocupa em gerenciar o acesso concorrente aos
seus recursos de hardware, como memria, processador e perifricos de forma ordenada e protegida
entre os diversos programas.

Figura 05 Sistemas Multiprogramveis


Fonte: MACHADO, Francis B.; MAIA, Luiz Paulo.
Arquitetura de sistemas operacionais. 4. ed. Rio
de Janeiro: LTC, 2007, cap. 1, p. 17.

Tema 1

| Introduo aos sistemas operacionais

Este tipo de sistema pode ser classificado


de acordo com o nmero de usurios que o utilizam. Podemos ter ento um Sistema Multitarefa
Monousurio, quando existe somente um usurio
interagindo com o sistema. Um exemplo disso era
o Windows 98, em que para trocar de usurio era
necessrio fazer o log off do usurio atual para
acessar um novo usurio.
O outro tipo de sistemas multiprogramveis
o Sistema Multitarefa Multiusurio, em que diversos
usurios podem se conectar ao sistema simultaneamente. o que acontece hoje com os usurios
desktops do sistema Windows XP (ou posterior) ou
as distribuies Linux, em que possvel ter vrios
usurios logados no sistema simultaneamente.
Os Sistemas Multiprogramveis podem ainda
ser classificados pela forma na qual suas aplicaes
so gerenciadas:
Sistemas Batch
Tinha como uma de suas caractersticas no
necessitar da interao do usurio com a aplicao,
suas entradas e sadas de dados eram implementadas
normalmente por arquivos em disco.
Como visto no tpico anterior, na dcada de
60, os programas em um sistema Batch (conhecidos
como job - algo parecido com os arquivos de lote
do DOS), eram colocados em execuo a partir de
cartes perfurados e armazenados em disco ou fita,
onde aguardavam para serem processados.
A implementao do sistema Batch fazia com
que ao invs de os programas serem submetidos
pelo operador, um a um, um conjunto de programas
era submetido de uma s vez, permitindo um
melhor aproveitamento do processador.

25

26

Fundamentos em Sistemas Operacionais

Sistemas de Tempo Compartilhado (time Sharing)


Sua caracterstica permitir que diversos programas sejam executados a partir da diviso do
tempo do processador em pequenos intervalos,
chamados de fatia de tempo (time-slice). O sistema
cria um ambiente de trabalho prprio para cada
usurio, dando a impresso de que todos os recursos esto disponveis somente para ele.
Caso o tempo atribudo a determinado programa no seja suficiente para sua concluso, ele
interrompido e colocado em espera aguardando
por uma nova fatia de tempo.
Ao contrrio dos Sistemas Batch, os Sistemas
de Tempo Compartilhado geralmente permitem a
interao do usurio com o sistema atravs de terminais, por exemplo, para interromper a execuo
de um programa. Por isso, os sistemas de Tempo
Compartilhado ficaram tambm conhecidos como
sistemas on-line.
Sistemas de Tempo Real
A principal diferena entre Sistemas de Tempo Compartilhado e Sistemas de Tempo Real que
neste ltimo um programa utiliza o processador o
tempo que for necessrio, ou at que aparea outro
mais prioritrio, no existindo a ideia de time-slice.
Um fator questionvel nesse tipo de gerenciamento que a importncia ou prioridade de
execuo de um programa definida pela prpria
aplicao e no pelo sistema operacional.
SISTEMAS COM MLTIPLOS PROCESSADORES
A principal caracterstica deste sistema possuir duas ou mais CPUs (ou UCP, Unidade Central de
Processamento, em portugus) trabalhando em conjunto na execuo de vrios programas ao mesmo

Tema 1

| Introduo aos sistemas operacionais

tempo, ou em um nico programa subdividido em


partes para serem executadas simultaneamente por
mais de um processador.
Os mesmos princpios bsicos e benefcios
aplicados multiprogramao podem ser atribudos
a sistemas com mltiplos processadores, alm de
vantagens especficas como: disponibilidade,
escalabilidade e balanceamento de carga.
A vantagem da disponibilidade est associada capacidade de manter o sistema em operao
mesmo em caso de falhas. Imagine um computador
com dois processadores em que um deles apresenta uma falha e suas atividades so automaticamente transferidas ao outro processador de forma
transparente para os usurios e os programas. Em
situaes como essa o que ir ocorrer, porm, a
diminuio da capacidade de processamento.
J a caracterstica da escalabilidade a
capacidade de ampliar o poder computacional do
sistema apenas adicionando novos processadores.
No seria timo se ao perceber uma diminuio na
performance de processamento ao utilizar um novo
programa bastasse adicionar mais um processador
ao invs de trocar todo o micro?
O que chamamos de Balanceamento de carga
a capacidade de distribuir o processamento entre
os diversos processadores a partir da carga de
trabalho de cada um.
O grau de compartilhamento entre a memria e os dispositivos de entrada/sada com os processadores criam caractersticas distintas na forma
como eles se comunicam entre si que podem ser
classificadas como:
Sistemas Fortemente Acoplados (tightly coupled)
Neste tipo de sistema, vrios processadores
compartilham uma mesma memria fsica (memria compartilhada) e o gerenciamento dos dispositivos de entrada e sada feito por um nico
sistema operacional. tambm conhecido como
Multiprocessadores.

27

28

Fundamentos em Sistemas Operacionais

Figura 06 Sistemas fortemente acoplados


Fonte: MACHADO, Francis B.; MAIA, Luiz Paulo. Arquitetura de sistemas
operacionais. 4. ed. Rio de Janeiro: LTC, 2007, cap. 1, p. 21.

Este sistema pode ser dividido em SMP - Multiprocessadores Simtricos (Symmetric Multiprocessors) onde o tempo de acesso memria principal
pelos processadores uniforme e NUMA - Acesso
Memria No-Uniforme (Non-Uniform Memmory
Access) onde o tempo de acesso memria pelos
processadores varia de acordo com sua localizao
fsica, j que existem diversos conjuntos reunindo
processadores e memrias conectados atravs de
interconexes.
Sistemas Fracamente Acoplados (loosely coupled)
Possui dois ou mais sistemas computacionais
conectados por meio de linhas de comunicao,
cada uma possuindo seu prprio sistema operacional e gerenciando seus prprios recursos (UCPs,
dispositivos de entrada/sada e memria). Tambm
conhecido como Multicomputadores.
Se antes as aplicaes eram centralizadas
em sistemas de grandes portes com um ou mais
processadores, onde terminais eram conectados
atravs de comunicao serial (ou telefnica) para
interagir neste sistema, hoje, devido evoluo da

Tema 1

| Introduo aos sistemas operacionais

telecomunicao, das tecnologias de redes e dos


computadores pessoais, temos o modelo de rede
de computadores. Neste modelo, sistemas operacionais de rede permitem que sistemas independentes (host) compartilhem recursos e informaes, tratando-os como um conjunto nico, como
se fosse um sistema fortemente acoplado.
A partir da integrao dos hosts que compem
uma rede, os sistemas fracamente acoplados podem
ser divididos em sistemas distribudos e sistemas
operacionais de rede. A principal caracterstica que os
difere a capacidade do sistema em criar uma imagem nica dos servios disponibilizados pela rede.
Nos sistemas distribudos, possvel um processo ser dividido em partes e cada uma dessas
partes serem executadas por um host diferente da
rede. Isso no perceptvel para o usurio e para a
aplicao que tem a impresso de existir um nico
sistema centralizado.

Figura 07 Sistemas fracamente acoplados


Fonte: MACHADO, Francis B.; MAIA, Luiz Paulo. Arquitetura de sistemas
operacionais. 4. ed. Rio de Janeiro: LTC, 2007, cap. 1. p. 21.

Um bom exemplo disso foi o filme Titanic que


utilizou dezenas de mquinas para renderizar os efeitos
criados para o filme em um sistema distribudo que
conhecido como cluster.

29

30

Fundamentos em Sistemas Operacionais

Nos sistemas operacionais de rede, um host


compartilha seus recursos com os demais hosts da
rede. Um bom exemplo disso uma rede local em
que diversos microcomputadores utilizam a mesma
impressora para impresso de arquivos.
No difcil concluir que em sistemas fortemente acoplados a taxa de transferncia entre
a memria e os processadores envolvidos no processo muito maior, j que existe apenas uma memria principal sendo compartilhada por todos os
processadores, enquanto nos sistemas fracamente
acoplados esta taxa de transferncia est limitada
velocidade da linha de comunicao entre os hosts.

INDICAO DE LEITURA COMPLEMENTAR


Para saber mais sobre Tipos de Sistemas Operacionais,
leia o item 1.5 (p. 15-22) do livro de:
MACHADO, Francis B.; MAIA, Luiz Paulo. Arquitetura de
sistemas operacionais. 4. ed. Rio de Janeiro: LTC, 2007.
Francis Machado e Luiz Maia expem em seu livro
de forma clara e dividido em tpicos os tipos de sistemas operacionais ressaltando suas caractersticas
e aplicaes no ambiente computacional.
Para saber mais sobre Tipos de Sistemas Operacionais,
leia o item 1.2 (p. 19-25) do livro de:
TANENBAUM, Andrew S.; WOODHULL, Albert S.
Sistemas operacionais: projeto e implementao.
2. ed. Porto Alegre: Bookman, 2000.

Tema 1

| Introduo aos sistemas operacionais

Livro referncia no estudo de sistemas operacionais


distribui em seu primeiro captulo os tipos de sistemas
operacionais dentro do contexto das geraes de
computadores ao longo do sculo passado.

PARA REFLETIR
Diante do que foi visto, existe um tipo de sistema
operacional que melhor atenderia a todo tipo de
aplicao? Reflita sobre isso.

1.3 Funes dos Sistemas Operacionais


Nem todo dispositivo microprocessado possui um sistema operacional. O microprocessador
que controla o microondas na sua cozinha, por
exemplo, no precisa de um sistema operacional. Ele
possui um conjunto de tarefas prdefinidas e uma
expectativa de entrada de comandos muito restrita e
simples (um teclado numrico e alguns botes com
funes prdefinidos). Alm disso, sua configurao
de hardware a ser controlada nunca ser alterada,
pois sua funo ser sempre a mesma.
Para o computador, porm, indispensvel
a existncia de um sistema operacional que possua a habilidade de servir a uma diversidade de
propsitos, interagir com o usurio das mais diversas formas e lidar com os mais diversos tipos
de hardware.

31

32

Fundamentos em Sistemas Operacionais

Pensando no trabalho de um usurio, independente das atividades e programas utilizados ao


manipular o computador, percebemos que ele est
sempre percorrendo o mesmo ciclo de trabalho,
que pode ser visto da seguinte maneira:

Figura 08 Ciclo de trabalho do usurio

Os diferentes programas existentes permitem


que o usurio pea coisas diferentes e tenha, consequentemente, resultados diferentes. o que d
ao computador a caracterstica de ser programvel.
Voc pode program-lo para realizar determinada
atividade e gerar um resultado especfico.
Agora vamos questionar o seguinte: quando
o usurio pede ao micro para executar um programa,
quem verifica a existncia desse programa? Quem
acessa o disco para copi-lo para a memria? Quem
avisa ao processador que ele pode ser executado?
E se o processador j estiver rodando um programa?
E se a memria estiver cheia?
Essas so apenas algumas questes envolvendo o gerenciamento do sistema operacional
com alguns dispositivos de hardware. Algo que um
programa de usurio no faria.
Outra abordagem para a compreenso do
sistema operacional o ponto de vista do usurio,
em que o sistema operacional pode ser visto como
uma interface entre o usurio e a mquina, isolandoo de toda a complexidade do hardware, gradualmente, atravs de camadas de software por sobre

Tema 1

| Introduo aos sistemas operacionais

o hardware bsico do micro, para gerenciar todas


as partes do sistema, oferecendo uma interface
amigvel para este usurio (Mquina Estendida ou
Mquina Virtual), mais fcil de entender e programar.

Figura 09 Computador sob a tica do usurio

Podemos ento arriscar um primeiro conceito


destacando o sistema operacional, das categorias
existentes de softwares e suas funcionalidades,
como o programa de sistema mais fundamental
atuando como um intermedirio entre o usurio e
o hardware controlando-o e gerenciando processos,
arquivos, recursos e usurios.
Uma viso ampla da funcionalidade de um
sistema operacional apresenta-o como um gerente.
Ele o responsvel pelo gerenciamento de recursos,
gerenciamento de dados, gerenciamento de tarefas
e o gerenciamento do usurio.
Gerenciamento de Recursos
A funo de gerenciamento de recursos de
um sistema operacional envolve a alocao de
dispositivos computacionais como: tempo de uso
do processador, memria principal, memria virtual e dispositivos de entrada/sada.
Pensando no sistema operacional como um
gerenciador de recursos, estamos levando em
considerao todas as partes de um sistema complexo, no qual recursos de hardware (dispositivos

33

34

Fundamentos em Sistemas Operacionais

de entrada/sada - disco, impressora, vdeo, etc.)


podem ser utilizados por diversos processos que
competem pela utilizao dos mesmos.
Na gerncia do processador, o sistema operacional responsvel por aloc-lo entre os diferentes
programas usando um algoritmo de agendamento
especfico. O tipo de agendamento totalmente
dependente do sistema operacional, de acordo
com o objetivo desejado.
Ao gerenciar a memria, o sistema operacional responsvel por alocar o espao de memria
para cada aplicao e para cada usurio. Se no
houver espao fsico suficiente na memria, o sistema operacional pode criar em uma rea do disco um espao conhecido como memria virtual. A
memria virtual permite que voc rode aplicativos
utilizando mais memrias do que a disponvel no
sistema.
A gerncia dos dispositivos de entrada e sada
envolve o controle de acesso a esses dispositivos
pelos programas atravs de seus drivers de controle.
Gerenciamento de Dados
A funo de gerenciamento de dados de um
sistema operacional implica no controle da entrada
e sada de dados, sua alocao, armazenamento e
recuperao, lendo e escrevendo esses dados em
um sistema de arquivo especfico com permisses
bem definidas de autorizao e acesso.
Gerenciamento de Tarefas
A funo de gerenciamento de tarefas de um
sistema operacional preparar, agenda, controlar e
monitorar a execuo de tarefas para garantir seu processamento da maneira mais eficiente. Essas tarefas

Tema 1

| Introduo aos sistemas operacionais

correspondem a um ou mais programas relacionados e seus dados.


SERVIOS DE SISTEMAS OPERACIONAIS
Um sistema operacional fornece certos servios
aos programas e aos usurios desses programas,
e apesar de alguns servios especficos poderem
diferir de um sistema operacional para outro, podemos identificar os mais comuns:
Um sistema operacional deve ser capaz de
carregar um programa na memria, execut-lo e encerrar sua execuo, seja de forma normal ou por
indicao de erro;
Um programa em execuo pode precisar da
utilizao de dispositivos de entradas e sadas, tarefa que no pode ser controlada diretamente pelo
usurio. O sistema operacional deve ento fornecer
os meios para realizar o controle de todas as
operaes de entrada e sada;
Existem situaes em que um processo pode
precisar trocar informaes com outro processo.
Nessas situaes, a comunicao entre processos
executados em diferentes sistemas de computao,
ligados por uma rede, pode ser feita atravs de pacote de informaes movido entre processos pelo
sistema operacional;
Erros podem ocorrer no processador e na memria, nos dispositivos de entrada e sada e no programa de usurio. Para cada tipo de erro, o sistema
operacional deve tomar uma deciso adequada para
garantir uma computao consistente e correta.
CHAMADAS DE SISTEMA
A interface entre o sistema operacional e
seus programas aplicativos pode ser definida pelo
conjunto das chamadas de sistema (system calls)
que o sistema operacional proporciona.

35

36

Fundamentos em Sistemas Operacionais

Quando uma chamada de sistema feita, o


usurio solicita ao sistema operacional que realize
uma operao em seu nome.
Chamada de sistema para o gerenciamento de
processos
Do ponto de vista do sistema operacional, um
processo constitui-se de certo tipo de atividade. Ele
possui um programa, uma entrada, uma sada e um
estado. Durante o tempo de vida de um processo,
ele pode passar basicamente pelos estados: rodando (running), estado em que o processo est usando o processador neste instante; bloqueado (wait),
significa que o processo est impedido de rodar at
que ocorra um evento externo ao processo e; pronto (ready), em que o processo est em condies
de rodar, mas bloqueado temporariamente para dar
vez a outro processo.

Figura 10 Estados de um processo

A criao e a finalizao de um processo


geralmente ocorrem com uma chamada de sistema.
Chamadas de sistema para Sinalizao
Em determinados casos pode ser necessrio
interromper a execuo de um processo, seja por
instrues ilegais ou por motivos planejados. Por
exemplo, imagine que voc pea para o sistema

Tema 1

| Introduo aos sistemas operacionais

fazer uma verificao completa em busca de erros


no disco e decide interromp-la durante sua execuo.
preciso haver alguma forma de interromper o
programa e eliminar o processo sem prejuzos ao
sistema. o que faz a chamada de sistema para a
sinalizao.
O sistema de sinalizao tambm utilizado
para o controle de limite de tempo de execuo,
alm do tratamento de falhas. Imagine um processo que dependa de uma sinalizao para dar prosseguimento sua tarefa. Um bom exemplo seria
voc pedir para listar o contedo de um diretrio
e pressionar a tecla pause para interromper a rolagem de tela. Neste caso, a chamada de sistema a
ser aplicada seria o pause que permitiria interromper
o processo at que uma sinalizao indicasse sua
continuidade.
Chamadas de sistema para o gerenciamento de
Arquivos
Muitas chamadas de sistema esto associadas com o sistema de arquivos e seus mtodos
de acesso. Uma solicitao para a criao de um
arquivo utiliza uma chamada de sistema, para ler
um arquivo, outra chamada, e assim por diante.
Normalmente as chamadas de sistema para o gerenciamento de arquivos so: criar (create), abrir
(open), gravar (write).
Chamadas de sistema para o gerenciamento de
diretrios e sistemas de arquivo
Essas chamadas de sistema atuam com diretrios ou com o sistema de arquivo, ao invs de se relacionarem com um arquivo especfico. As chamadas de
sistema envolvidas nesse tipo de gerenciamento so

37

38

Fundamentos em Sistemas Operacionais

a criao (mkdir) e excluso (rmdir) de diretrios e


a montagem (mount) e a desmontagem (umount)
de um dispositivo para o acesso aos seus arquivos
e diretrios.
Chamadas de sistema para o gerenciamento de
tempo
As chamadas de sistema para o gerenciamento
de tempo dizem respeito ao relgio e so responsveis por retornar a hora do sistema, permitir que
o relgio seja configurado, retornar as informaes
de tempo de utilizao do processador, entre outros.

INDICAO DE LEITURA COMPLEMENTAR


Para saber mais sobre Funes dos sistemas Operacionais leia o Captulo 3 (p. 33-40) do livro de:
SILBERSCHATZ, Abraham; GAGNE, Greg; GALVIN, Peter.
Sistemas operacionais com java - conceitos e aplicaes.Traduo da 6. ed. Rio de Janeiro: Campus,
2005.
Na introduo de seu livro, Silberschatz, Gagne e
Galvin apresentam resumidamente, mas de forma
bastante clara, o conceito de sistemas operacionais
e suas principais funes
Para saber mais sobre Funes dos sistemas
Operacionais leia o item 1.3 (p. 25-39) do livro de:
TANENBAUM, Andrew S.; WOODHULL, Albert S.
Sistemas operacionais: projeto e implementao.
2. ed. Porto Alegre: Bookman, 2000.

Tema 1

| Introduo aos sistemas operacionais

Tanenbaum e Woodhull no s apresentam o


assunto das chamadas de sistemas mais comuns
do sistema operacional como analisam algumas
linhas de cdigo de sua execuo.

PARA REFLETIR
Aps ler sobre as funes de um sistema operacional,
podemos pensar por que algumas tarefas so
realizadas por ele e no diretamente pelo hardware
ou pelo usurio. Reflita sobre isso.

1.4 Estruturas do Sistema Operacional


O sistema operacional composto por um
conjunto de rotinas conhecido como ncleo do sistema (kernel). Alm disso, a maioria dos sistemas
operacionais possui ferramentas de apoio ao usurio que so utilitrios e linguagem de comandos,
mas que no fazem parte do ncleo do sistema.
Linguagem de comando
Das formas existentes de o usurio se comunicar com o kernel do sistema operacional, a mais
amigvel atravs dos utilitrios e linguagem de
comandos supracitados. Normalmente cada sistema operacional possui seus utilitrios especficos e
comandos com estrutura e sintaxe prprias.

39

40

Fundamentos em Sistemas Operacionais

Figura 11 Exemplos de comandos do Linux

Como podemos observar na figura acima,


atravs da linguagem de comando o usurio pode
executar diversas tarefas especficas do sistema
como criar diretrios, ler ou excluir arquivos. Assim,
o usurio possui uma forma direta de dilogo com
o sistema operacional.
Depois de digitado pelo usurio, cada comando interpretado pelo interpretador de comandos (shell), que verifica a sintaxe, executa chamadas s rotinas do sistema e apresenta o resultado.
Normalmente, o interpretador de comando no faz
parte do kernel, o que possibilita a existncia de
diferentes linguagens de comando para o mesmo
sistema. No Linux, por exemplo, existem diversos
interpretadores, o Bash, SH, CSH e outros.
Em muitos sistemas operacionais, as linguagens de comando se tornaram mais amigveis em
sua interao com o usurio, adotando interfaces
grficas com a utilizao de cones e janelas, a
exemplo do Mac OS e MS Windows. Em muitos
casos, essa interface grfica somente mais um
nvel de abstrao entre o usurio e os servios do
sistema operacional.

Tema 1

| Introduo aos sistemas operacionais

Figura 12 Interface do usurio com o sistema operacional


Fonte: MACHADO, Francis B.; MAIA, Luiz Paulo. Arquitetura de sistemas
operacionais. 4. ed. Rio de Janeiro: LTC, 2007, cap. 4, p. 56.

Estruturas do Ncleo
O projeto de um sistema operacional muito
complexo e precisa atender a diversos requisitos,
alm de depender da estrutura do hardware a ser
utilizado e do tipo de sistema que se pretende criar.
Quando os primeiros sistemas operacionais
foram criados, seus cdigos possuam aproximadamente um milho de linhas de cdigo (IBM
OS/360) e foi escrito completamente em assembly.
Com a evoluo dos sistemas, houve o aumento
do nmero de linhas de cdigos para algo perto
de 20 milhes (MULTICS). Com o tempo, tcnicas
de programao modular e linguagens de alto nvel
foram incorporadas ao projeto.

41

42

Fundamentos em Sistemas Operacionais

Atualmente, tem-se sistemas operacionais


com mais de 100 milhes de instrues (MS-Windows Vista), sendo que grande parte escrita em
C/C++, o que acarreta uma perda de desempenho.
Por isso, as partes mais crticas do sistema continuam sendo desenvolvidas em assembly (como o
algoritmo de escalonamento do processador e o
tratamento de interrupes, por exemplo), j que
uma linguagem de mais baixo nvel, portanto mais
prxima do hardware.
importante ressaltar aqui que as linguagens
de alto nvel permitem que o sistema operacional
seja facilmente alterado para outra arquitetura de
hardware, alm de facilitar o desenvolvimento e a
manuteno do sistema.
A estrutura do ncleo pode variar conforme a
concepo do projeto. As quatro principais estruturas dos sistemas operacionais so:

Sistemas Monolticos;

Sistemas em Camadas;

VM - Mquina Virtual (Virtual Machine);

Sistemas Cliente-Servidor MicroKernel.

Vejamos alguns detalhes de cada uma delas


Sistemas Monolticos
Sua arquitetura como um grande e nico
programa executvel formado por mdulos (que
contm todos os procedimentos) compilados individualmente e agrupados em um nico objeto.
Quem j utilizou o MS-DOS (sistema operacional da Microsoft, antecessor do Windows) conheceu
um sistema operacional de ncleo monoltico.

Tema 1

| Introduo aos sistemas operacionais

Veja na figura abaixo um exemplo de estrutura


de ncleo monoltico:

Figura 13 - Modelo de estruturao de sistema monoltico


Fonte: O autor, baseado na ilustrao do livro: TANENBAUM, Andrew S.;
WOODHULL, Albert S. Sistemas operacionais: projeto e implementao.
2. ed. Porto Alegre: Bookman, 2000, cap. 1, p. 41.

Apesar de o sistema operacional neste modelo


ser escrito com uma coleo de procedimentos, na
qual cada um pode chamar qualquer um dos outros
sempre que precisar, o que sugere uma ausncia
de organizao, possvel obter um mnimo de
estrutura.
Nesta organizao do ncleo, um programa
principal chama o procedimento de servio e este
procedimento de servio (ou um conjunto deles)
executa cada uma das chamadas do sistema.
Ressaltamos que um conjunto de procedimentos
utilitrios auxilia na execuo dos procedimentos
de servios.
Sistemas em Camadas
Com o aumento da complexidade e consequentemente do tamanho do cdigo dos sistemas
operacionais, a organizao dos projetos passou a
ser estruturada e modular. Neste tipo de arquitetura,
o sistema dividido em nveis sobrepostos, em que
cada camada oferece um conjunto de instrues a
serem utilizadas pela camada superior a ela.

43

44

Fundamentos em Sistemas Operacionais

O fato de seu ncleo ser construdo em uma


hierarquia de nveis torna seu kernel mais independente em relao aos outros mdulos, pois se uma
aplicao travar, no ir afetar seu ncleo.
A maioria das verses do Unix e do MS-Windows
est baseada no modelo de duas camadas, onde
existem os modos de acesso usurio (sem privilgio)
e kernel (privilgio de ncleo do sistema).

Figura 14 - Modelo de estruturao em camadas


Fonte: O autor, baseado na ilustrao do livro: MACHADO, Francis B.;
MAIA, Luiz Paulo. Arquitetura de sistemas operacionais. 4. ed. Rio de
Janeiro: LTC, 2007, cap. 1, p. 59.

Um fato curioso, apesar de o computador


THE (do holands - Technische Hogeschool Eindhoven) ter sido o primeiro sistema a utilizar esta
abordagem, podemos consider-lo um sistema monoltico disfarado, pois todas as partes precisavam
estar ligadas entre si gerando um nico programa
objeto.
Posteriormente, o MULTICS (visto no contedo 1.1) foi desenvolvido com uma srie de anis
concntricos, com os internos sendo mais privile-

Tema 1

| Introduo aos sistemas operacionais

giados que os externos.


VM - Mquina Virtual (Virtual Machine)
Este modelo cria um nvel intermedirio entre
o hardware e o sistema operacional, criando cpias
virtuais do hardware (mquinas virtuais). Como
cada mquina virtual independente da outra,
possvel coexistir sistemas operacionais diferentes
no mesmo computador.
Esta estrutura oferece uma grande segurana
entre cada mquina virtual j que existe um isolamento total entre elas. Uma desvantagem a grande complexidade do gerenciamento dos recursos
da mquina entre as VMs.

Figura 15 - Mquina virtual


Fonte: O autor, baseado na ilustrao do livro: MACHADO, Francis B.;
MAIA, Luiz Paulo. Arquitetura de sistemas operacionais. 4. ed. Rio de
Janeiro: LTC, 2007, cap1, p. 60.

Essa ideia de uma mquina virtual foi muito utilizada em um contexto um pouco diferente. Para
que fosse possvel rodar programas no antigo MS-DOS
em processadores Pentium, a Intel disponibilizou um modo virtual 8086 em seu processador,
incluindo um endereamento de 16 bits com um
limite de 1Mb.

45

46

Fundamentos em Sistemas Operacionais

Sistemas Cliente-Servidor MicroKernel


Uma tendncia nos sistemas operacionais
modernos mover o cdigo para camadas mais
altas e remover tanto quanto possvel do sistema
operacional deixando um mnimo de kernel. Neste
modelo, para requisitar um servio, um processo
de usurio (chamado de processo cliente) envia a
requisio para um processo servidor que ento faz
o trabalho e remete de volta a resposta. Tudo que o
kernel faz gerenciar a comunicao entre clientes
e servidores.
um tipo de sistema em que as funes do
sistema operacional ficam isoladas atravs de diversos processos servidores pequenos, possuindo
uma grande adaptabilidade para uso em sistemas
distribudos.

Figura 16 - O modelo cliente-servidor


Fonte: O autor, baseado na ilustrao do livro: TANENBAUM, Andrew S.; WOODHULL, Albert S.
Sistemas operacionais: projeto e implementao. 2, ed. Porto Alegre: Bookman, 2000, cap. 1, p. 44.

Este modelo permite que os servidores no


tenham acesso direto a alguns componentes do
sistema, pois trabalham em modo usurio, apenas
o ncleo do sistema, responsvel pela conversa entre clientes e servidores, executa no modo kernel.
Isso aumenta a disponibilidade do sistema,
j que se o servidor parar, o sistema no ficar
inteiramente comprometido.
Uma outra caracterstica do modelo clienteservidor que os servidores se comunicam atravs

Tema 1

| Introduo aos sistemas operacionais

da troca de mensagens, logo, no faz diferena se


os clientes e servidores so executados em um sistema com um nico processador ou com mltiplos
processadores.
A implementao do modelo cliente-servidor
em sistemas distribudos permite que ao ser solicitado um servio, a resposta seja processada remotamente. Isso permite acrescentar novos servidores
medida que o nmero de clientes aumenta
(escalabilidade).

INDICAO DE LEITURA COMPLEMENTAR


Para saber mais sobre Estruturas de sistemas
operacionais leia o Captulo 4 (p. 50-62) do livro de:
MACHADO, Francis B.; MAIA, Luiz Paulo. Arquitetura de
sistemas operacionais. 4. ed. Rio de Janeiro: LTC, 2007.
A apresentao em tpicos da arquitetura dos sistemas operacionais torna sua abordagem clara e ilustrativa, com destaques relevantes das caractersticas
de vantagens e desvantagens de cada modelo.
Para saber mais sobre Estruturas de sistemas
operacionais leia o item 1.5 (p. 39-43) do livro de:
TANENBAUM, Andrew S.; WOODHULL, Albert S.
Sistemas operacionais: projeto e implementao.
2. ed. Porto Alegre: Bookman, 2000.
A anlise dos computadores que utilizavam cada
uma das arquiteturas dos sistemas operacionais
apresentados, com seus detalhes de capacidade

47

48

Fundamentos em Sistemas Operacionais

e componentes de hardware, nos d uma ideia


da evoluo dos diferentes desenvolvimentos de
projetos de sistemas operacionais.

PARA REFLETIR
Uma vez visto as principais estruturas do ncleo de
um sistema operacional, voc conseguiria indicar
um deles como sendo o mais eficaz para os micros de hoje? Discuta com seus colegas e procure
justificar sua escolha. Alm disso, publique suas
concluses no AVA.

RESUMO
No contedo 1.1 vimos juntos a evoluo dos sistemas operacionais por meio de um pequeno resumo dos principais fatos histricos que marcaram o desenvolvimento dos computadores.
Na sequncia, no contedo 1.2, conhecemos as
classificaes dos tipos de sistemas operacionais,
suas principais caractersticas e aplicaes.
Seguindo com nossos estudos, no contedo 1.3,
aprendemos sobre os diferentes objetos gerenciados pelo sistema operacional e as principais
chamadas de sistema responsveis pela interface
entre o usurio e o sistema operacional, o que

Tema 1

| Introduo aos sistemas operacionais

contribuir para uma melhor compreenso do


prximo tema que tratar sobre os processos
Por fim, no contedo 1.4 vimos as suas principais
estruturas de composio do ncleo, as vantagens
e desvantagens de cada uma dessas estruturas.

49

Gerenciamento de Processos

Neste texto trabalharemos sobre uma das funes mais essenciais


do sistema operacional que o gerenciamento dos processos, j que
tudo mais gira em torno de seu conceito.
Ao final deste tema voc ser capaz de compreender melhor
como os processos conversam entre si, seus tipos, estados e os
critrios existentes para seu escalonamento.

52

Fundamentos em Sistemas Operacionais

2.1 Conceitos Fundamentais de Processos


Antes de entrarmos a fundo no assunto de
processos, importante distinguirmos bem dois
conceitos fceis de confundir: o de programa e o
de processo. Voc saberia diferenci-los?
Conforme visto no tema passado, no item
chamada de sistema para o gerenciamento de
processo, o processo constitui-se de certo tipo de
atividade, e possui uma entrada, uma sada e um
estado, enquanto um programa um conjunto de
cdigos com uma finalidade especfica.
No errado entendermos um processo como
um programa em execuo, mas seu significado vai
alm disso. Podemos ter diversos programas
concorrendo na utilizao do processador onde
seus processos so alternados de acordo com o
controle do sistema operacional.
Assim, podemos dizer tambm que um
processo uma espcie de ambiente onde um
programa executado. Um programa sempre est
associado a um processo.
Vamos deixar de lado todos os nomes tcnicos usados e fazer uma analogia para esclarecer
melhor os conceitos e funes de cada um.
Imagine um maestro diante de sua partitura para
reger uma orquestra de 30 msicos. Para quem no
tem intimidade com uma partitura, basta saber que
uma partitura possui todas as instrues necessrias (nome da nota, valor, durao, interpretao,
pausas, etc.) para que o msico a execute em seu
instrumento.
Na analogia acima, o maestro o processador
(CPU), a partitura o programa (um algoritmo escrito
em uma linguagem conveniente), os msicos da
orquestra so os dados de entrada. O processo
a atividade do maestro de ler a partitura e reger os
msicos que iro tocar a msica.

Tema 2

| Gerenciamento de processos

Iluso de paralelismo
Desnecessrio dizer que qualquer computador
desktop hoje consegue fazer vrias coisas ao mesmo
tempo. Enquanto executa um programa de usurio,
pode tambm estar enviando um texto para a
impressora, uma msica para a sada de udio e
lendo um arquivo em disco. Bem, na verdade, no
correto dizer ao mesmo tempo. Voc concorda
com isso?
Em um instante de tempo qualquer um processador executa somente um programa. No intervalo de 1 segundo, o processador pode ter executado diversos programas, dando a iluso de
paralelismo. Essa rpida alternncia chamada de
multiprogramao, como foi visto no tema anterior.
O paralelismo verdadeiro ocorre quando temos um sistema com multiprocessadores (com dois
ou mais processadores compartilhando a mesma
memria fsica).
Extrapolando nossa analogia anterior, como
se tivssemos um maestro para reger duas orquestras
cada uma tocando uma msica distinta. Ou rege
uma por vez, ou precisaramos de mais de um
maestro para que ambas fossem regidas simultaneamente.
Processos e os tipos de sistemas operacionais
No item passado conhecemos os tipos de
sistemas operacionais existentes, e em todos eles
a gerncia de processos uma das principais
funes do sistema operacional, possibilitando
aos programas alocar recursos, compartilhar dados
sincronizar suas execues e trocar informaes.
Nos sistemas multiprogramveis, os processos
concorrem entre si compartilhando o processador,
memria e dispositivos de entrada/sada

53

54

Fundamentos em Sistemas Operacionais

Nos sistemas com mltiplos processadores


existe no s a concorrncia de processos pelo uso
do processador, como a possibilidade de execuo
simultnea de processos nos diferentes processadores.
J em um sistema multiusurio, cada usurio tem um programa associado a seu processo e
possui a impresso de possuir todos os recursos
do computador exclusivos para seu uso, o que
no acontece, j que todos os recursos esto sendo
compartilhados.
Estrutura de um processo
Um processo formado por trs partes,
conhecidas como contexto de hardware, contexto
de software e espao de endereamento (MACHADO;
MAIA, 2007). Estas partes juntas contm todas as
informaes necessrias execuo de um programa.

Figura 17 - Estrutura do Processo


Fonte - MACHADO, Francis B.; MAIA, Luiz Paulo. Arquitetura de sistemas
operacionais. 4. ed. Rio de Janeiro: LTC, 2007, cap. 5, p. 67.

Tema 2

| Gerenciamento de processos

O contexto de hardware armazena o contedo


dos registradores que fundamental para sua implementao nos sistemas multiprogramveis, onde
os processos se alternam na utilizao da CPU.
Quando o processo est em execuo, seu
contexto de hardware est armazenado nos registradores do processador e no momento em que
deixa de utilizar a CPU, o sistema operacional salva
as informaes no contexto do hardware do processo.
O contexto de software possui a maior parte
das suas informaes localizadas em um arquivo
do sistema operacional conhecido como arquivo de
usurios. Ali esto especificados os limites dos
recursos que cada processo pode alocar. Muitas
dessas caractersticas so geradas dinamicamente
ao longo da execuo do processo.
Alm disso, cada processo possui seu
prprio espao de endereamento, uma rea da
memria onde instrues e dados do programa so
armazenados para execuo.
Implementao de um processo
A implementao de um processo feita pelo
sistema operacional atravs de uma estrutura de
dados chamada bloco de controle do processo (Process Control Block PCB) e a partir desta estrutura,
o sistema operacional mantm todas as informaes
necessrias sobre o processo.

55

56

Fundamentos em Sistemas Operacionais

Figura 18 - Bloco de Controle do Processo


Fonte - MACHADO, Francis B.; MAIA, Luiz Paulo. Arquitetura de sistemas
operacionais. 4. ed. Rio de Janeiro: LTC, 2007, cap.5, p. 71.

Alm disso, o sistema operacional mantm


uma tabela chamada tabela de processos, com uma
entrada por processo. Nessa tabela de processos,
o sistema operacional mantm ponteiros para cada
bloco de controle de processos no contexto total
do sistema ou por usurios.

Figura 19 - Tabela de Processos


Fonte - DEITEL, Paul; DEITEL, Harvey; CHOFFNES David. Sistemas operacionais. 3. ed. Prentice
Hall Brasil, 2005, cap. 2, p. 57.

Tema 2

| Gerenciamento de processos

57

Todas as informaes do processo devem ser


salvas quando o processo alterna do estado rodando
para o estado pronto, para que ele possa ser reiniciado mais tarde do ponto onde parou (veja sobre
estados de um processo no tpico abaixo).
Toda a gerncia dos processos realizada
atravs de chamadas de sistema que realizam
operaes como criao, visualizao, eliminao,
dentre outras.
Estados de um processo
Como mencionado no tema anterior, um processo pode ter at trs estados, gerando quatro
tipos de transies na mudana de um estado
para outro. No estado rodando (running), o processo est efetivamente utilizando o processador
e pode ser colocado nos estados bloqueado (wait)
ou pronto (ready).

Figura 20 - Estados de um processo


Fonte - TANENBAUM, Andrew S.; WOODHULL, Albert S. Sistemas operacionais: projeto e implementao. 2. ed. Porto Alegre: Bookman, 2000,
cap.2, p. 58.

Sua transio para bloqueado2 pode ocorrer


quando um processo logicamente no pode continuar, normalmente porque est aguardando uma
entrada que no est disponvel ainda.

2 Alguns preferem
chamar de estado
de espera.

58

Fundamentos em Sistemas Operacionais

Sua transio para pronto ocorre quando o


sistema operacional decide dedicar a utilizao da
CPU a outro processo temporariamente, colocando
o atual processo em estado de espera.
A transio do estado pronto para rodando
ocorre quando todos os outros processos do estado
pronto tiveram sua justa parte de utilizao da CPU
e hora do primeiro deles utilizar a CPU para
executar novamente.
Finalmente a transio do estado bloqueado
para o estado pronto acontece quando a entrada
que o processo estava aguardando passou a estar
disponvel. O processo passa ento do estado bloqueado para o estado pronto aguardando a CPU
estar disponvel.
Vale destacar aqui que em algumas bibliografias, a exemplo de Silberschatz, Gagne e Galvin, (p.
64, 2005), consideram a criao e o encerramento
de um processo pelo sistema operacional como estados de um processo. O que acha?
Criao e encerramento de processos
No gerenciamento de processos, o sistema
operacional responsvel pela criao e excluso
de processos de usurio e de sistema, o escalonamento de processos e o fornecimento de mecanismos para a sincronizao, comunicao e tratamento de deadlocks para processos.
O Deadlock uma situao em que dois ou
mais processos ficam bloqueados, pois um processo est aguardando a liberao de um recurso por
outro processo que tambm aguarda a liberao de
um recurso alocado pelo primeiro processo.
A criao de um processo ocorre quando o
sistema operacional adiciona um novo bloco de
controle de processo sua estrutura e aloca um
espao de endereamento na memria para uso.

Tema 2

| Gerenciamento de processos

Quando um processo encerrado, a tabela


de processos retira o processo de sua tabela e
disponibiliza todos os seus recursos. Um processo
pode ser encerrado por razes como a eliminao
por outro processo, forado por ausncia de
recursos disponveis ou pelo trmino normal de
sua execuo.
A Hierarquia de Processos
Na maioria dos sistemas operacionais preciso
que exista alguma forma de criar e destruir processos conforme necessrio durante a operao.
J utilizou o atalho CTRL+ALT+DEL para fechar um
programa?
Normalmente quando um processo criado,
a chamada de sistema que o criou, gera uma cpia
do processo que fez a chamada. O processo-filho
resultante tambm pode chamar a mesma chamada
de sistema, sendo possvel assim obter uma inteira
rvore de processos.

Figura 21 - Estrutura de processos e subprocessos


Fonte - MACHADO, Francis B.; MAIA, Luiz Paulo. Arquitetura de sistemas
operacionais. 4. ed. Rio de Janeiro: LTC, 2007, cap.5, p. 80.

59

60

Fundamentos em Sistemas Operacionais

Qualquer que seja a natureza exata da


chamada de sistema, um processo precisa dispor
de uma maneira de criar outros processos. Cada
processo tem um pai e pode ter zero, um, dois
ou mais filhos.

INDICAO DE LEITURA COMPLEMENTAR


Para saber mais sobre Conceitos Fundamentais de
Processos, leia o Captulo 5 (p. 65-83) do livro de:
MACHADO, Francis B.; MAIA, Luiz Paulo. Arquitetura
de sistemas operacionais. 4. ed. Rio de Janeiro:
LTC, 2007.
Com um texto bem completo sobre a criao,
estrutura, tipos e estados de processos, os autores
Francis e Luiz Paulo conseguem criar um excelente
conceito de processo antes de tratar de seu gerenciamento pelo sistema operacional.
Para saber mais sobre Conceitos Fundamentais de
Processos, leia o Captulo 4 (p. 62-65) do livro de:
DEITEL, Paul; DEITEL, Harvey; CHOFFNES, David.
Sistemas operacionais. 3. ed. So Paulo: Prentice
Hall Brasil, 2005.
Em seu livro sobre sistemas operacionais, os consagrados autores Paul e Harvey apresentam uma
excelente explicao sobre o conceito, estrutura e
estados de processos.

Tema 2

| Gerenciamento de processos

PARA REFLETIR
Se dois processos podem necessitar utilizar ao
mesmo tempo um dispositivo de entrada e sada,
acredita que possvel uma soluo definitiva para
evitar que um processo impea que o outro conclua
sua execuo? Pense a respeito.

2.2 Tipos de Processos


Um processo pode ser classificado de duas
formas, de acordo com a utilizao do processador e dispositivos de entrada/sada. Assim, um processo pode ser conhecido como CPU-bound (ligado
CPU) quando passa grande parte do tempo
utilizando o processador (running), ou no estado
pronto (ready). um tipo de processo que utiliza
poucas operaes de leitura e gravao. Um bom
exemplo em aplicaes que realizam muitos clculos.
Ou um processo pode ainda ser definido como
I/O-bound (ligado dispositivos de entrada/sada)
quando passa grande parte do tempo no estado
bloqueado (wait), pois efetua um grande nmero
de operaes de entrada/sada. Bons exemplos so
aplicativos comerciais e que possuem interatividade com o usurio.
Alm disso, importante sabermos que um
processo pode possuir ao menos dois canais de comunicao pelos quais so realizadas as entradas e
sadas de dados. Desta forma um processo foreground quando permite a comunicao direta do
processo com o usurio durante seu processamento. O
processamento interativo, por exemplo, tem como
base processos foreground.

61

62

Fundamentos em Sistemas Operacionais

Por outro lado, um processo background


aquele onde no existe a comunicao com o usurio durante seu processamento. O processamento
tipo batch (vimos seu conceito no tema anterior)
realizado atravs de processos background. Lembra-se
do arquivo Autoexec.bat em seu micro?
Threads
Tudo o que foi apresentado no item anterior
sobre processos considerava um programa realizando um fluxo nico de execuo, com uma nica
linha de controle com um nico contador de programa em cada processo.
Contudo, muitos sistemas operacionais oferecem suporte a mltiplas linhas de controle dentro
de um processo. Essas linhas de controle so chamadas de threads.
O princpio de um ambiente multithread
onde um nico processo pode suportar mltiplos
threads, cada um associado a um pedao do cdigo da aplicao. Isso permite economizar recursos
do sistema e reduzir o tempo gasto na eliminao e
troca de contexto de processos nas aplicaes concorrentes, assim, no necessrio haver diversos
processos para a implementao da concorrncia.

Figura 22 - (a) Trs processos, cada um com um thread.


(b) Um processo com 3 threads.
Fonte - TANENBAUM, Andrew S.; WOODHULL, Albert S. Sistemas operacionais: projeto e implementao. 2. ed. Porto Alegre: Bookman, 2000, cap. 2, p. 52.

Tema 2

| Gerenciamento de processos

Um exemplo para entender a vantagem dos


mltiplos threads est nos browsers (navegadores
web). Ao acessar uma pgina web que contm
vrias imagens, o navegador deveria configurar
uma conexo separada com o endereo da pgina e requisitar cada imagem. Muito tempo seria
desperdiado estabelecendo e liberando todas essas conexes. Por existirem mltiplos threads no
browser, muitas imagens podem ser solicitadas ao
mesmo tempo, tornando o desempenho bem mais
eficiente (TANEMBAUN; WOODHULL, 2000).
importante sabermos ainda que Threads
compartilham a CPU da mesma maneira que um
processo, se um thread est aguardando um recurso,
outro thread pode ser executado.
Cada thread possui seu prprio contexto
de hardware, mas compartilha o mesmo espao
de endereamento e contexto de software com os
demais threads do processo. O compartilhamento
do mesmo espao de endereamento permite que
a comunicao entre eles dentro de um mesmo
processo acontea de forma rpida e simples.

Figura 23 - Processo Multithread


Fonte - MACHADO, Francis B.; MAIA, Luiz Paulo. Arquitetura de sistemas
operacionais. 4. ed. Rio de Janeiro: LTC, 2007, cap. 5, p. 81.

63

64

Fundamentos em Sistemas Operacionais

Um thread tambm pode ser visto como uma


sub-rotina de uma aplicao que pode ser executada paralelamente ao programa chamador. Assim,
um ambiente multithread possibilita a execuo
concorrente de sub-rotinas dentro de um mesmo
processo.
Implementao de Threads
A implementao dos threads acontece internamente atravs de uma estrutura de dados chamada de bloco de controle do thread (Thread Control Block TCB). Nesta estrutura est o contexto
de hardware e algumas informaes relacionadas
ao thread como: estado de execuo, prioridade, e
outros. No confunda PCB com TCB!
Em um ambiente de um thread (monothread),
o processo ao mesmo tempo a unidade de alocao de recursos e a unidade de escalonamento
(veremos sobre escalonamento no item 2.4)
Em um ambiente multithreads, a unidade de
alocao de recursos o processo, onde o espao
de endereamento compartilhado por todos os
threads do processo. Por outro lado, existe uma
unidade de escalonamento independente para
cada thread. Assim, o sistema no seleciona um
processo para execuo e sim um de seus threads.
Podemos concluir que a grande diferena entre
as aplicaes monothread e multithreads est no
uso do espao de endereamento, onde esta ltima compartilha o espao dentro de um mesmo
processo.
Esta caracterstica das aplicaes multithreads
permite que a troca de dados entre threads de
um mesmo processo seja mais simples e rpida se
compararmos com uma aplicao monothread.

Tema 2

| Gerenciamento de processos

Alguns benefcios dos threads


Em alguns programas, a utilizao de threads
pode melhorar o desempenho da aplicao apenas
executando tarefas em background enquanto as
operaes de entrada/sada esto sendo processadas. Aplicativos como editores de texto, planilha e
imagens so bastante beneficiados quando desenvolvidos com base em threads.
E no s as aplicaes podem se beneficiar
dos mltiplos threads, o ncleo do sistema operacional pode tambm ser implementado com este
conceito de forma benfica, como na arquitetura
microkernel (visto no tema passado, item 1.4).
Nos ambientes cliente-servidor threads so
fundamentais para a solicitao de servios remotos. Em um ambiente multithread, um thread pode
solicitar um servio remoto, enquanto o programa
pode realizar outras atividades. Mltiplos threads
permitem que diversos pedidos sejam atendidos
simultaneamente.
Alm disso, as aplicaes concorrentes utilizando o conceito multithread possuem melhores
desempenhos do que aplicaes concorrentes implementadas com mltiplos processos, pois as tarefas de criao, troca de contexto e eliminao de
threads geram menor overhead (ficar suspenso).
Quando temos threads em um mesmo processo, alm de possuir uma comunicao mais rpida e eficiente, eles podem compartilhar facilmente outros recursos, como temporizadores, sinais,
atributos de segurana, etc.
Processos Cooperativos
Os processos concorrentes em execuo no
sistema operacional podem ser processos independentes ou cooperativos. Se um processo no pu-

65

66

Fundamentos em Sistemas Operacionais

der afetar ou ser afetado por outros processos


executados no sistema, dizemos que um processo
independente. Qualquer processo que no compartilhe dados com outro processo independente.
J um processo cooperativo se puder ser
afetado ou afetar outro processo em execuo no
sistema. Qualquer processo que compartilhe dados
com outros processos um processo cooperativo.
Como fator que favorece um ambiente que
permita a cooperao entre processos podemos
citar o compartilhamento de informaes, onde vrios usurios podem estar interessados na mesma
informao.
A velocidade de processamento tambm um
fator para um ambiente de cooperao entre os processos, j que para que uma tarefa seja executada
de forma mais eficiente, necessrio quebr-la em
sub-tarefas, cada uma sendo executada em paralelo
s demais.
Outro fator que favorece um ambiente que permita a cooperao entre processos construir um sistema de forma modular, dividindo suas funes em
processos ou threads separados (modularidade).
A convenincia para se implementar processos
cooperativos tambm um fator que favorece um
ambiente de cooperao entre processos, pois mesmo um usurio nico de um sistema pode executar
muitas tarefas em determinado momento, como
editar um texto, imprimir e compilar em paralelo.
Para fixar, enumere os fatores que favorecem a
cooperao entre processos.
Formas de Criao de Processos
Vimos anteriormente que a criao de um processo responsabilidade do sistema operacional, veremos agora trs principais formas de sua criao.

Tema 2

| Gerenciamento de processos

Login Interativo - Por intermdio de um


terminal, um usurio fornece ao sistema
seu nome de identificao e uma senha,
que so autenticados pelo sistema operacional e criado um processo foreground
onde possvel ao usurio interagir com
o sistema atravs de uma linguagem de
comando.

Linguagem de Comandos - A partir de


seu prprio processo, um usurio pode
criar novos processos atravs de comandos da linguagem de comandos. O
processo criado pode ser background
ou foreground, dependendo do comando
de criao utilizado.

Rotina do Sistema Operacional Qualquer programa executvel com o uso de


rotinas do sistema operacional pode criar
um processo. A rotina de criao de processos depende do sistema operacional
e possui diversos parmetros (nome do
processo, prioridade, estado, etc.). Sua
criao permite a execuo de outros
aplicativos concorrentes ao programa
chamador.

Sinais
A utilizao de sinais fundamental para o
gerenciamento de processos, j que uma maneira
de notificar processos de eventos gerados pelo
sistema operacional ou por outros processos, alm
de possibilitar a sincronizao e comunicao entre
processos.

67

68

Fundamentos em Sistemas Operacionais

Um timo exemplo da utilizao de sinais


quando o usurio pressiona simultaneamente as
teclas CTRL+C para interromper a execuo de um
programa. No momento em que as teclas so pressionadas, o sistema operacional sinaliza ao processo a ocorrncia do evento e uma rotina prpria de
tratamento executada.
Quer ver isso funcionando? V at o
prompt de comando e execute o comando dir c:\windows /p para listar arquivos
e pastas que esto na pasta windows no
disco c. Para interromper a execuo basta
pressionar CTRL+C.

INDICAO DE LEITURA COMPLEMENTAR


Para saber mais sobre Tipos de Processos, leia o
Item 5.6 (p. 76-94) do livro de:
MACHADO, Francis B.; MAIA, Luiz Paulo. Arquitetura de
sistemas operacionais. 4. ed. Rio de Janeiro: LTC, 2007.
Atravs de ilustraes que auxiliam na compreenso dos tipos de processos, os autores Francis e
Luiz Paulo apresentam o assunto de forma clara e
com exemplos de situaes vividas por usurios.
Para saber mais sobre Tipos de Processos, leia o
item 2.1.3 (p. 51-53) do livro de:
TANENBAUM, Andrew S.; WOODHULL, Albert S.
Sistemas operacionais: projeto e implementao.
2. ed. Porto Alegre: Bookman, 2000.

Tema 2

| Gerenciamento de processos

O livro apresenta o conceito das threads utilizando o minix como um exemplo prtico analisando
suas chamadas de sistema e comandos utilizados.

PARA REFLETIR
Aps o estudo deste contedo voc capaz de
conceituar precisamente processo e thread? Reflita
sobre a importncia de um ambiente com mltiplos
threads.

2.3 Comunicao entre Processos


Com o surgimento dos sistemas multiprogramveis, aplicaes foram estruturadas de modo que
partes diferentes do cdigo do programa pudessem
ser executados concorrentemente. Este tipo de aplicao tem como base a execuo cooperativa de
mltiplos threads ou processos.
Aplicaes Concorrentes
Essas aplicaes em que partes diferentes de
seu cdigo so executadas concorrentemente so
chamadas de aplicaes concorrentes e em muitos
casos necessrio que processos se comuniquem
preferivelmente de uma maneira bem estruturada
que no utilize interrupes.

69

70

Fundamentos em Sistemas Operacionais

Podemos destacar trs questes a respeito da


comunicao entre os processos. A primeira a maneira como um processo pode passar informaes
para outro.
A segunda questo certificar que dois ou
mais processos no interfiram entre si quando esto
em atividades crticas.
A terceira questo lida com o sequenciamento
lgico dos processos quando se encontram em regies crticas, exemplo, se o processo A produz dados
e o processo B os imprime, B tem de esperar at
que A tenha produzido algum dado antes de iniciar a
impresso (TANEMBAUN; WOODHULL, 2000). Reflita
a respeito disso e exponha no AVA outras questes a
respeito da comunicao entre os processos.

Figura 24 - Dois processos querem acessar a memria compartilhada


ao mesmo tempo.
Fonte - TANENBAUM, Andrew S.; WOODHULL, Albert S. Sistemas operacionais: projeto e implementao. 2. ed. Porto Alegre: Bookman, 2000, p. 54.

Tema 2

| Gerenciamento de processos

Condio de corrida
Quando um ou mais processos esto lendo
ou gravando dados compartilhados e o resultado
final depende de quem executa exatamente quando
temos uma situao chamada condio de corrida
(race conditions).
A parte do programa cujo processamento
pode levar a uma condio de corrida conhecida como regio crtica. Podemos ento dizer que
quando dois ou mais processos rodarem sua regio
crtica ao mesmo tempo temos uma condio de
corrida.
Excluso Mtua
Para evitar uma condio de corrida necessrio uma maneira de garantir que enquanto um
processo esteja utilizando um arquivo ou varivel
compartilhado, os outros processos esto impedidos de fazerem a mesma coisa. A isso d-se o
nome de excluso mtua.
Uma soluo para evitar uma condio de
corrida deve garantir quatro condies: nenhum
dos processos pode estar simultaneamente dentro
de suas regies crticas; nenhum processo fora de
sua regio crtica pode bloquear outro processo;
nenhum processo deve esperar eternamente para
entrar em sua regio crtica e nenhuma suposio
pode ser feita sobre as velocidades ou nmero de
CPUs. Grave essas quatro condies.
Desativando as interrupes
Uma soluo de hardware simples para o problema da excluso mtua permitir ao processo
desabilitar todas as interrupes antes de entrar
em sua regio crtica e as reabilitar aps deixar a
regio crtica.

71

72

Fundamentos em Sistemas Operacionais

Como a CPU alterna de processos atravs de


interrupes de relgio (ou outras interrupes),
com essas interrupes desativadas a CPU no alternar de um processo para o outro, logo, ele poder
manipular a memria compartilhada sem a possibilidade de outro processo intervir.
Apesar da garantia contra a condio de corrida os inconvenientes desta soluo so grandes.
Primeiro compromete seriamente a multiprogramao, j que a concorrncia entre processos tem como
base o uso de interrupes.
Outro problema grave dar ao aplicativo do
usurio o poder de desativar as interrupes. Suponha que um deles faa isso e no as ative mais.
E em um sistema de multiprocessamento?
Pense o que ocorreria em um sistema com
mais de uma CPU. Duas observaes poderiam ser feitas. Poderiam existir dois processos rodando cada um em um processador distinto, jamais ocorrendo assim a
excluso mtua. E um grande cuidado deveria ser tomado ao inibir as interrupes,
pois poderia desativar as interrupes de
um processador que no estaria envolvido
com o processamento de processos com
potencial para excluso mtua.
Variveis de Travamento
Uma soluo de software seria a utilizao de
uma varivel nica compartilhada, definida inicialmente como 0. Se um processo for entrar em sua
regio crtica, ele verifica se a varivel possui o valor
0. Caso positivo, ele a define como 1 e entra em sua
regio crtica. Se a varivel j estiver em 1, o processo deve aguardar at ele se tornar 0. Esta varivel
conhecida como varivel de bloqueio ou travamento.

Tema 2

| Gerenciamento de processos

73

Para compreender o inconveniente desta


soluo basta rever o exemplo dado sobre o spooler de impresso. Consegue explicar qual seria
o problema? Bom, se o processo A no produzir
antes os dados necessrios, o processo B no
ter o que imprimir.
Alternncia Estrita
Basicamente faz um teste contnuo de uma
varivel de turno at que um determinado valor a
permita entrar em sua regio crtica. Imagine uma
varivel inicialmente definida como 0. Um processo A3 l esta varivel, verifica que seu valor 0 e
entra na sua regio crtica. O processo B4 tambm
verifica que ele 0 e entra em uma estrutura de
lao testando a varivel continuamente at que
ela se torne 1.
Quando o processo A sai de sua regio crtica, ele define a varivel como 1, permitindo assim
que o processo B entre em sua regio crtica.
Testar uma varivel continuamente at que
determinado valor aparea conhecido como espera ativa. Normalmente uma soluo evitada por
desperdiar tempo da CPU.
Agora imagine que o processo B termine rapidamente seu trabalho na regio crtica e ento ambos os processo esto em suas regies no-crticas
com a varivel definida em 0. Agora o processo A
roda toda sua estrutura de lao rapidamente voltando para sua regio no-crtica com a varivel
configurada para 1. Nesse instante, o processo B
termina sua tarefa na sua regio no-crtica e volta
ao topo de sua estrutura de lao, mas no tem
permisso para entrar em sua regio crtica, porque

3 Para o processo
A, quando a varivel
0 ele entra em
sua regio crtica e
ao sair, configura a
varivel para 1.
4 Para o processo
B, quando a varivel
1 ele entra em
sua regio crtica e
ao sair, configura a
varivel para 0.

74

Fundamentos em Sistemas Operacionais

a varivel est definida como 1. E ambos os processos esto em suas regies no-crticas.
Na prtica, esta soluo de alternncia no
uma boa sugesto quando um dos processos
muito mais rpido que o outro. Voc saberia dizer
qual das quatro condies para evitar uma condio
de corrida esta situao viola? Coloque sua resposta
no AVA e discuta sobre ela com outros alunos.
Soluo de Peterson
Esta soluo combina a ideia de varivel de
travamento com varivel de turno. Consiste em
dois algoritmos distintos para permitir o processo
entrar em sua regio crtica e informar que deixou
sua regio crtica.
Antes de entrar em sua regio crtica, cada
processo chama uma funo com seu prprio nmero de processo, 0 ou 1, como parmetro. Essa
chamada causar espera se for necessrio, at que
seja seguro entrar. Aps o trmino das atividades
em sua regio crtica, o processo chama uma nova
funo para indicar que finalizou e permitir que outro processo entre.
Agora suponha que os dois processos chamem a primeira funo quase simultaneamente,
ambos armazenaro seu nmero de processo na
varivel turno. Qualquer que seja, o armazenamento feito por ltimo o que conta, o primeiro ser
perdido. Isso pode fazer com que um processo entre em uma estrutura de lao e no entre em sua
regio crtica.
Instruo TSL

Tema 2

| Gerenciamento de processos

75

Muitos computadores possuem uma instruo


chamada Test and Set Lock (TSL testa e configura
o bloqueio) que permite ler uma varivel, armazenar seu contedo em outra rea e atribuir um novo
valor mesma varivel.
Sua grande caracterstica ser executada
sem interrupo, ou seja, suas operaes de leitura
e escrita so garantidas como sendo indivisveis.
Assim, garantido que dois processos no estejam
em sua regio crtica ao mesmo tempo.
Sleep e Wakeup
As solues TSL e de Peterson possuem a
mesma caracterstica de utilizar a espera ativa, que
alm de desperdiar tempo da CPU, pode ter efeitos
inesperados.
Na soluo Sleep (dormir) e Wakeup (acordar),
Sleep uma chamada de sistema que causa o
bloqueio do processo que fez a chamada, ele
suspenso at que outro processo o acorde. A chamada
Wakeup tem um nico parmetro, o processo a ser
acordado. Como alternativa s solues TSL e de
Peterson, Sleep e Wakeup no geram a espera ativa
e tm um nico parmetro, um endereo de memria
usado para coincidir os Sleeps com os Wakeups5.
Semforos
O semforo uma varivel inteira, no negativa, que usa duas operaes: Down e Up. Podem
ser classificados como binrios, os quais s podem
assumir os valores 0 e 1, e contadores, que pode
ser igual a 0 ou qualquer nmero positivo.
A operao Down verifica se o valor do semforo maior que 0. Se verdadeiro, ento seu

5 Veja na p. 57 do
livro: TANENBAUM,
Andrew S.;
WOODHULL, Albert
S. Sistemas operacionais: projeto e
implementao. 2.
ed. Porto Alegre:
Bookman, 2000.
O Problema dos
Produtores e
Consumidores.

76

Fundamentos em Sistemas Operacionais

valor decrementado e o processo continua sua


execuo, seno, o processo que executou a operao
Down posto para dormir.
Essa soluo utiliza uma relao atmica
(uma vez iniciada uma operao de semforo, nenhum outro processo pode acess-lo at que tenha
finalizado). Isso essencial para evitar a condio de corrida. Quando usa um caixa automtico
de banco, um processo atmico? Uma operao
bancria precisa ser realizada como um processo
atmico, J pensou ao sacar dinheiro em um caixa
automtico o valor ser debitado em sua conta, mas
o processo ser interrompido antes de lhe entregar
o dinheiro?
A operao Up incrementa o valor do semforo e acorda um eventual processo que esteja dormindo naquele semforo. Tambm uma
operao6 atmica.
6 Veja na p. 59 do
livro: TANENBAUM,
Andrew S.;
WOODHULL, Albert
S. Sistemas operacionais: projeto e
implementao. 2.
ed. Porto Alegre:
Bookman, 2000.
Como resolver
o Problema dos
Produtores e Consumidores utilizando
semforos.

Monitores
O monitor um mecanismo estruturado (ao
contrrio dos semforos que so considerados no
estruturados) formado por procedimentos e variveis encapsulados dentro de um mdulo. Sua caracterstica mais importante o fato de somente
um processo poder executar um dos procedimentos
do monitor em um determinado instante.
Quando algum processo faz uma chamada
a um desses procedimentos, o monitor verifica se
j existe outro processo executando algum procedimento do monitor, caso exista, o processo fica
aguardando a sua vez em uma fila de entrada.
Figura 25- Estrutura do Monitor

Tema 2

| Gerenciamento de processos

77

Fonte - MACHADO, Francis B.; MAIA, Luiz Paulo. Arquitetura de sistemas operacionais. 4. ed. Rio
de Janeiro: LTC, 2007, cap.7, p. 120.

Troca de Mensagens
um mecanismo de sincronizao e comunicao entre processos. Para que ele ocorra, deve
existir um canal de comunicao entre os processos, podendo ser um link de uma rede de computadores ou um buffer.
O sistema operacional possui um sistema de
mensagem que suporta esse mecanismo sem que
exista a necessidade do uso de variveis compartilhadas.
uma maneira de solucionar um dos problemas com monitores e semforos em sistemas com
mltiplas CPUs distribudas, cada uma com sua
prpria memria privada, conectadas por uma rede
local, j que os monitores e semforos foram projetados para resolver o problema de excluso mtua7
em CPUs que tm acesso a uma memria comum.

7 Veja na p. 64 do
livro: TANENBAUM,
Andrew S.;
WOODHULL,
Albert S. Sistemas
operacionais: projeto
e implementao.
2. ed. Porto Alegre:
Bookman, 2000;
problemas clssicos
de comunicao
entre processos.

78

Fundamentos em Sistemas Operacionais

INDICAO DE LEITURA COMPLEMENTAR


Para saber mais sobre Comunicao entre Processos
leia o Captulo 7 (p. 95-62) do livro de:
MACHADO, Francis B.; MAIA, Luiz Paulo. Arquitetura de
sistemas operacionais. 4. ed. Rio de Janeiro: LTC, 2007.
As comunicaes entre os processos e sua sincronizao so apresentadas em forma de diagrama,
estrutura dos cdigos da soluo e com dados histricos de seus criadores.
Para saber mais sobre Comunicao entre Processos
leia o item 2.2 (p. 53-68) do livro de:
TANENBAUM, Andrew S.; WOODHULL, Albert S.
Sistemas operacionais: projeto e implementao.
2. ed. Porto Alegre: Bookman, 2000.
A anlise das solues criadas para as comunicaes entre processos so apresentadas com o estudo dos cdigos de cada soluo e da apresentao das vantagens e desvantagens comparando-as
umas com as outras.

PARA REFLETIR
Reflita sobre a deciso dos programadores e projetistas em definir solues de concorrncia entre processo por meio de hardware, software ou solues
hbridas.

Tema 2

| Gerenciamento de processos

2.4 Escalonamento de Processos


Como vimos no item anterior, os mltiplos
processos podem permanecer na memria principal
compartilhando o uso da CPU. Neste compartilhamento, critrios devem ser estabelecidos para
determinar qual processo ser escolhido para
utilizar o processador.
Esses critrios compem a poltica de escalonamento (ou agendamento) que a base da gerncia do processador em um sistema operacional.
A rotina que toma essa deciso chamada de escalonador (ou agendador) e o algoritmo utilizado
conhecido como algoritmo de escalonamento (ou
agendamento).
Dentre os principais critrios a serem levados
em considerao em uma poltica de escalonamento
podemos citar:
O tempo de uso da CPU que determina a
eficincia do agendador em manter a CPU ocupada
100% do tempo;
A imparcialidade que dar a cada processo
um tempo justo de utilizao da CPU;
O tempo de resposta que deve ser minimizado ao mximo para a interatividade com usurios;
O tempo que um processo leva desde sua
criao at o seu trmino Turnaround;
O nmero de processos executados em um
determinado intervalo de tempo Throughput.
O tempo de espera em que um processo permanece na fila de pronto (estado ready) durante seu
processamento, aguardando para ser executado.
Acredita ser possvel atender a todos os
critrios ao mesmo tempo? Pense a respeito e coloque sua opinio no AVA para
discusso.

79

80

Fundamentos em Sistemas Operacionais

Escalonamento Preemptivo e No-Preemptivo

O escalonamento preemptivo tem como


principal caracterstica a suspenso temporria pelo sistema operacional de processos que so logicamente executveis,
ou seja, a mudana de seu estado de rodando (running) para o estado de pronto
(ready).

O escalonamento no-preemptivo quando um processo est em execuo e nenhum evento externo pode ocasionar a
perda de uso do processador. Ele s sai
do estado rodando (running) caso termine
seu processo ou execute uma instruo do
prprio cdigo para o estado de bloqueio
(wait).
O que mais eficiente? Que um processo
possa ser suspenso em um instante qualquer para que outro possa ser executado, ou permitir que um processo execute
o quanto quiser at terminar sua tarefa?
Pense a respeito.

Algoritmos de Escalonamento
FIFO - First-In-First-Out
No escalonamento FIFO (primeiro a entrar primeiro a sair), o processo que chegar primeiro ao
estado de pronto (ready) escalonado para a execuo. Quando o processo em execuo vai para o
estado bloqueado (wait), o primeiro processo da
fila o prximo a ser escalonado.

Tema 2

| Gerenciamento de processos

81

Figura 26 - Escalonamento FIFO


Fonte - MACHADO, Francis B.; MAIA, Luiz Paulo. Arquitetura de sistemas operacionais. 4. ed. Rio
de Janeiro: LTC, 2007, p. 138.

Quando os processos saem do estado de


bloqueado (wait), todos entram no final da fila de
pronto (ready). O escalonamento FIFO do tipo nopreemptivo e inicialmente implementado em sistemas monoprogramveis com processamento batch.
Round Robin (Circular)
Atribui intervalos de tempos iguais a cada
processo (quantum). O processo que acabou de
sair da CPU vai para o final da fila. Um problema
fcil de identificar um tempo de resposta ruim se
o quantum for grande demais e um desperdcio de
CPU se for muito pequeno.

Figura 27 - (a)Lista de processos executveis (b) Lista de processos executveis depois que B
utiliza todo seu quantum
Fonte - TANENBAUM, Andrew S.; WOODHULL, Albert S. Sistemas operacionais: projeto e implementao. 2. ed. Porto Alegre: Bookman, 2000, p. 70.

82

Fundamentos em Sistemas Operacionais

Escalonamento por Prioridade


Neste modelo de escalonamento, cada processo associado a uma determinada prioridade
dentre os processos que esto no estado de pronto.
Aquele com maior prioridade ser escalonado.
Uma forma de evitar o monoplio de um processo de alta prioridade decrementar sua prioridade a cada interrupo de relgio, de forma que
fique mais baixa do que o processo de maior prioridade da fila.
Escalonamento Circular com Prioridades
Implementa o conceito de fatia de tempo
(time-slice - visto no item 1.2) e de prioridade de
execuo associada a cada processo. A principal
vantagem desse escalonamento permitir o melhor
balanceamento do uso da CPU, com a possibilidade
de diferenciar o grau de importncia dos processos.
Neste tipo de escalonamento, um processo
permanece no estado de execuo at que termine
seu processamento, passe para o estado de bloqueio (wait) voluntariamente, ou sofra uma preempo por tempo ou prioridade.
Mltiplas Filas
Neste modelo de escalonamento existem
diversas filas de processos no estado de pronto
(ready), cada uma com uma prioridade especfica
(e no o processo).
Os processos so associados s filas em funo de suas caractersticas, como tipo de processamento, importncia para a aplicao, etc. A principal vantagem de mltiplas filas a convivncia de
mecanismos de escalonamentos diferentes em um
mesmo sistema operacional.

Tema 2

| Gerenciamento de processos

Escalonamento por Mltiplas Filas com Realimentao


A diferena para o escalonamento por mltiplas filas que os processos podem trocar de fila
durante seu processamento. A grande vantagem
permitir ao sistema operacional identificar dinamicamente o comportamento de cada processo, direcionando-o para a fila adequada ao longo de seu
processamento.
Escalonamento SJF Shortest-Job-First
No escalonamento shortest-job-first (menor
job primeiro) o processo no estado de pronto (ready) que precisar do menor tempo de processador
para terminar seu processamento selecionado.
um modelo usado estritamente para sistemas batch.

Figura 28 - Escalonamento SJF


Fonte - MACHADO, Francis B.; MAIA, Luiz Paulo. Arquitetura de sistemas
operacionais. 4. ed. Rio de Janeiro: LTC, 2007, p. 140.

Enquanto o job no termina, o processador


no liberado.

83

84

Fundamentos em Sistemas Operacionais

Escalonamento Garantido
Neste modelo de escalonamento a responsabilidade da interrupo do processo em execuo
no do sistema operacional. Ele consiste em uma
cooperao entre processos para a liberao de
uso do processador.
Cada usurio (n) ter aproximadamente 1/n
de tempo de uso do processador, ou seja, calculado o tempo que o usurio realmente deve merecer, dividindo o tempo decorrido de sua atividade
pelo nmero de usurios (n).
Escalonamento por Sorteio
A ideia bsica dar bilhetes de loteria de
processos aos vrios recursos do sistema, como
tempo de CPU (TANEMBAUN; WOODHULL, 2000).
Quando um escalonamento tiver de ser feito, um
bilhete de loteria escolhido randomicamente e o
processo que possuir esse bilhete recebe o recurso.
Na verdade, um sorteio um tanto quanto
tendencioso, j que processos mais importantes
podem receber bilhetes extras e processos cooperativos podem trocar de bilhetes.
Escalonamento de Tempo Real
No escalonamento de tempo real garantida
a execuo de processos dentro de rgidos limites
de tempo, sem o risco de comprometer a aplicao.
Neste modelo, levada em considerao a importncia relativa de cada tarefa na aplicao.
No escalonamento para sistemas de tempo
real a prioridade deve ser esttica e no deve haver
o conceito de fatia de tempo (time-slice). Um bom
exemplo de programas de tempo real o controle
de trfego areo.

Tema 2

| Gerenciamento de processos

Escalonamento de Dois Nveis


Em todos os algoritmos de escalonamento
analisados, usamos a premissa de que todos os
processos executveis estavam na memria principal. Se a memria principal no for suficiente,
alguns processos tero de permanecer em disco
(todo o processo ou parte dele).
Como o tempo de troca para carregamento e
execuo de um processo do disco muito maior
que um processo j carregado na memria principal,
utiliza-se um escalonador de dois nveis, onde um
agendador de nvel mais alto chamado para
remover os processos que estiverem por tempo
suficiente na memria e carregar processos que
estiverem muito tempo no disco.

INDICAO DE LEITURA COMPLEMENTAR


Para saber mais sobre Escalonamento de Processos
leia o Captulo 8 (p. 135-152) do livro de:
MACHADO, Francis B.; MAIA, Luiz Paulo. Arquitetura de
sistemas operacionais. 4. ed. Rio de Janeiro: LTC, 2007.
Em seu livro, Francis e Luiz Paulo ilustram os algoritmos de escalonamento exemplificando as estruturas computacionais onde so encontrados.
Para saber mais sobre Escalonamento de Processos
leia o item 2.4 (p. 69-75) do livro de:
TANENBAUM, Andrew S.; WOODHULL, Albert S.
Sistemas operacionais: projeto e implementao.
2. ed. Porto Alegre: Bookman, 2000.

85

86

Fundamentos em Sistemas Operacionais

As analogias feitas por Tanembaun e Woodhull em


seu livro tratando do assunto de agendamento de
processo tornam sua compreenso mais fcil e os
exemplos em cdigos mais claros.

PARA REFLETIR
Com base no que aprendeu sobre os tipos de sistemas operacionais e o escalonamento de processos,
reflita sobre o melhor algoritmo para cada tipo de
sistema operacional.

RESUMO
No contedo 2.1 vimos juntos a diferena sutil entre processo e programa, os estado de um processo
e a importncia que o gerenciamento de processo
tem dentro do contexto de sistemas operacionais.
Na sequncia, foram apresentados os Tipos de processos, suas caractersticas e vantagens e desvantagens em suas implementaes.
Caminhando pelo contedo 2.3, conhecemos as diferentes solues para permitir o compartilhamento
de recursos entre processos, seus cuidados e vantagens quando aplicados em diferentes estruturas
computacionais.
Por fim, no 2.4, apresentamos os diferentes algoritmos de escalonamento para a utilizao do processador e suas caractersticas em ambientes operacionais diversos. A compreenso desses conceitos
de fundamental importncia para iniciarmos o
estudo dos demais gerenciamentos que iremos ver
no prximo tema.

FUNCIONAMENTO DE SISTEMAS
OPERACIONAIS
Parte 2

Funes essenciais de um
Sistema Operacional

Neste texto trabalharemos juntos sobre as principais gerncias


do sistema operacional alm do processador, j que a execuo do
processo somente uma parte do funcionamento do sistema
Ao final deste tema voc ser capaz de compreender melhor
como os processos so armazenados na memria, como utilizam o
disco nessa tarefa e como o sistema lida com os dispositivos de
entrada e sada, alm do gerenciamento de mltiplos processadores.

90

Fundamentos em Sistemas Operacionais

3.1 Gerncia de Mltiplos Processadores


Como visto no item 1.2, os sistemas com mltiplos processadores so arquiteturas que possuem
uma ou mais CPUs interligadas e que trabalham em
conjunto na execuo de tarefas independentes ou
no processamento de uma mesma tarefa.
Com os sistemas de mltiplos processadores
passa a ser possvel o conceito de paralelismo, no
qual se pode executar mais de um programa ao
mesmo tempo.
Basicamente a idealizao deste sistema se
deve, em grande parte, ao alto custo de desenvolvimento de processadores mais velozes. Outra
justificativa so aplicaes que requerem um alto
poder computacional e com mltiplos processadores possvel reduzir bastante o tempo de processamento dessas aplicaes.
As empresas reconheceram nesse tipo de
sistema uma maneira de aumentar a confiabilidade, a disponibilidade e a escalabilidade, alm da
possibilidade do balanceamento de carga e suas
aplicaes.
Hoje at mesmo nos computadores pessoais
temos a vantagem do multiprocessamento devido
reduo de custo dessas arquiteturas e evoluo
dos sistemas operacionais, que passaram a oferecer suporte a mltiplos processadores.
Com certeza voc j ouviu falar dos processadores dual core. Um processador de dois ncleos
permite o paralelismo? Pense sobre isso e divulgue
suas concluses no AVA para discusso.
Vantagens dos Sistemas de Mltiplos Processadores
No item 1.2 de nosso estudo, vimos alguns
conceitos que definem as vantagens de um sistema
de mltiplos processadores, veremos agora esses
conceitos com mais detalhes.

Tema 3

| Funes essenciais de um sistema operacional

91

Desempenho
Apesar de no existir uma relao linear, se
novos processadores forem adicionados arquitetura do computador, melhor ser seu desempenho,
pois reduzir o tempo de resposta e o tempo gasto
no processamento dos programas, e aumentar o
throughput8 do sistema (nmero de processos executados em um determinado intervalo de tempo).
A melhora do desempenho com mltiplos
processadores pode acontecer em dois nveis. Primeiro porque permitir a execuo simultnea de
processos independentes (throughput). Segundo,
porque mltiplos processadores permitem o processamento paralelo (execuo de uma mesma tarefa por vrios processadores simultaneamente).
importante ressaltar que apenas as aplicaes concorrentes oferecem ganhos reais com o aumento do
nmero de processadores.
Custo X Desempenho
Por mais poderosos que sejam, sistemas com
um nico processador apresentam limitaes de
desempenho inerentes sua construo (problemas de superaquecimento) e arquitetura, devido as
limitaes de comunicao nos barramentos que
ligam a CPU memria principal (e outros recursos
do computador).
Ser que partiu da a ideia de se construir um
processador com mais de um ncleo?
Alm disso, o custo de desenvolvimento de
uma CPU de alto desempenho muito elevado,
o que faz com que sistemas com mltiplos processadores que utilizam CPUs convencionais e de
baixo custo ofeream alto desempenho a custos
aceitveis.

8 Vimos sobre este


assunto no item 2.4
e m escalonamento
de processos.

92

Fundamentos em Sistemas Operacionais

Escalabilidade
A capacidade de adicionar novas CPUs ao
hardware do sistema chamada de escalabilidade.
Essa caracterstica inerente aos sistemas de mltiplos processadores.
Balanceamento de Carga
O conceito de balanceamento de carga segundo Machado e Maia (2007, p. 245), a distribuio
do processamento entre os diversos componentes
da configurao, a partir da carga de cada processador que consequentemente gera uma melhoria
no desempenho do sistema como um todo.
Disponibilidade e Tolerncia a Falhas

9 Disponibilidade
o nmero de
minutos por ano
que o sistema
permanece em
funcionamento de
forma ininterrupta.

Em um sistema com multiprocessadores, se


uma das CPUs falhar, as demais podem assumir
suas funes, embora com menor capacidade computacional, dando a ele uma maior tolerncia a falhas e uma maior disponibilidade9.
Desvantagens
Obviamente um sistema com mltiplos
processadores tambm possui algumas desvantagens como problemas de comunicao e sincronizao que devem ser resolvidos, j que vrios
processadores podem acessar as mesmas posies
de memria ao mesmo tempo.
Uma das desvantagens a complexidade de
organizar os recursos (processadores, memrias e
perifricos) de uma forma eficiente, que permita
uma aceitvel relao custo/benefcio.

Tema 3

| Funes essenciais de um sistema operacional

93

Outra desvantagem que de acordo com o


tipo de sistema, a tolerncia contra as falhas mencionadas anteriormente depende do sistema operacional e no somente do hardware, o que difcil
de ser implementado para garantir essa tolerncia.
Sistemas com Multiprocessadores Simtricos
Os sistemas com multiprocessadores simtricos
uma evoluo da organizao assimtrica, em que
somente um processador (mestre) pode executar os
servios do sistema operacional. Sempre que outro
processador (escravo) precisar realizar um servio
do sistema operacional, deve requisitar ao processador
mestre.
Acha possvel o paralelismo em um sistema com
multiprocessadores assimtricos? Pense sobre isso e
divulgue suas concluses no AVA para discusso.

Figura 29 - Um modelo de multiprocessador mestre-escravo.


Fonte - TANENBAUM, Andrew S. Sistemas operacionais modernos. 2. ed. Rio deJaneiro: Prentice
Hall Brasil, 2007, p. 387.

Nos sistemas com multiprocessadores simtricos (SMP Symmetric Multiprocessors) existem


dois ou mais processadores compartilhando um
nico espao de endereamento e gerenciados por
apenas um sistema operacional.

94

Fundamentos em Sistemas Operacionais

Figura 30 - Modelo de multiprocessador SMP


Fonte - TANENBAUM, Andrew S. Sistemas operacionais modernos. 2. ed. Rio deJaneiro: Prentice
Hall Brasil, 2007, p. 388.

Essa arquitetura, tambm conhecida como


UMA (Uniform Memory Access Acesso Memria
Uniforme) tem como caracterstica o tempo de
acesso memria ser uniforme, independente da
localizao fsica do processador.
Sistemas NUMA Non-Uniform Memmory Access
Na arquitetura NUMA existem vrios conjuntos,
reunindo processadores e memria, compartilhando
um mesmo sistema operacional e fazendo referncia
ao mesmo espao de endereamento, sendo cada
conjunto conectado entre si atravs de uma rede
de interconexo.
Em um sistema NUMA o tempo de acesso memria RAM depende da localizao fsica do processador. Sua diferena bsica com o sistema SMP est
no desempenho das operaes de acesso memria.
No sistema NUMA, a memria principal fisicamente distribuda entre os vrios processadores,
no entanto, existe apenas um nico espao de
endereamento sendo compartilhado. Este modelo
de memria conhecido como memria compartilhada distribuda (DSM Distributed Shared Memory).

Tema 3

| Funes essenciais de um sistema operacional

Por oferecer um menor custo e maior


desempenho (alm de uma maior escalabilidade
de processadores), os sistemas NUMA so uma
alternativa ao modelo SMP. Seu ponto negativo
a dificuldade em manter um nvel de desempenho
satisfatrio, devido existncia de tempos de acessos
bastante diferentes da memria RAM.
Clusters
Clusters so os ns conectados por uma rede
de interconexo dedicada e de alto desempenho.
Cada n da rede possui seus prprios recursos (processadores, memria, dispositivos de entrada/sada
e sistema operacional) e chamado de membro do
cluster.

Figura 31 - Exemplo de cluster


Fonte - MACHADO, Francis B.; MAIA, Luiz Paulo. Arquitetura de sistemas
operacionais. 4. ed. Rio de Janeiro: LTC, 2007, p. 259.

95

96

Fundamentos em Sistemas Operacionais

10 Tratamos de
sistemas fracamente
e fortemente acoplados no item 1.2
de nosso estudo.

So sistemas fracamente10 acoplados onde a


rede de interconexo restrita aos membros do cluster e cada um possui seu prprio espao de endereamento. Contudo, para um usurio de um cluster
como se estivesse usando um sistema fortemente
acoplado, ele no tem conhecimento do nmero de
membros que compem o cluster. Essa caracterstica
conhecida como imagem nica do sistema.
possvel um cluster ser composto por computadores com sistemas operacionais diferentes?
Pense sobre isso e divulgue suas concluses no
AVA para discusso.
Sistemas Operacionais de Rede
Em um ambiente operacional de rede, cada
sistema (host) possui seus prprios recursos de hardware, sendo totalmente independente dos demais,
interconectados por uma rede de comunicao de
dados criando uma rede de computadores.
Os sistemas operacionais de rede so usados
tanto em redes locais (LAN Local Area Network),
quanto em redes distribudas (WAN Wide Area
Network). A princpio no existe um limite mximo
para o nmero de hosts que podem fazer parte de
uma rede de computadores.

Tema 3

| Funes essenciais de um sistema operacional

Figura 32 - Rede de computadores


Fonte - Fonte: MACHADO, Francis B.; MAIA, Luiz Paulo. Arquitetura de
sistemas operacionais. 4. ed. Rio de Janeiro: LTC, 2007, p. 261.

A maioria dos sistemas operacionais de rede


implementam o modelo cliente/servidor, no qual
existe um ou mais servidores que oferecem servios aos demais clientes da rede.
O melhor exemplo disso a internet, em que
o browser de um usurio funciona como um cliente
que solicita informaes e um servidor web atende
a essas solicitaes.
Sistemas Distribudos
Os sistemas distribudos so sistemas fortemente acoplados e sua diferena com os demais sistemas fracamente acoplados a existncia
de um relacionamento mais forte entre seus componentes.

97

98

Fundamentos em Sistemas Operacionais

Ele pode ser conceituado como um sistema


fracamente acoplado na viso do hardware (pois
seus componentes podem estar conectados em uma
rede local ou atravs de uma rede distribuda), mas
fortemente acoplado na viso do software, j que
apresenta ao usurio uma imagem nica do sistema.
Do ponto de vista do usurio, tambm possui
a caracterstica de imagem nica do sistema.

Figura 33 - Sistema distribudo


Fonte - MACHADO, Francis B.; MAIA, Luiz Paulo. Arquitetura de sistemas operacionais. 4. ed. Rio
de Janeiro: LTC, 2007, p. 264.

INDICAO DE LEITURA COMPLEMENTAR


Para saber mais sobre Gerncia de Mltiplos Processadores leia o Captulo 13 (p. 243-264) do livro de:
MACHADO, Francis B.; MAIA, Luiz Paulo. Arquitetura de
sistemas operacionais. 4. ed. Rio de Janeiro: LTC, 2007.
Em seu livro, Francis e Luiz Paulo dedicam um captulo inteiro analise das caractersticas e comportamento dos sistemas com mltiplos processadores, o que facilita o estudo das comparaes entre
seus diferentes tipos.

Tema 3

| Funes essenciais de um sistema operacional

Para saber mais sobre Gerncia de Mltiplos Processadores leia o Captulo 8 (p. 378-434) do livro de:
TANENBAUM, Andrew S. Sistemas operacionais modernos. 2. ed. Rio de Janeiro: Prentice Hall Brasil, 2007.
Tanenbaum trata a fundo as particularidades de
um sistema com multiprocessadores e apresenta
as situaes encontradas em sistemas distribudos,
como a internet, e analisa suas atuais solues.

PARA REFLETIR
Se olhar para a evoluo dos processadores para
uso pessoal, sua velocidade de processamento foi
crescendo at chegarmos a um limite prximo a 4
Ghz. Reflita o porqu disso e sobre a soluo dada
pelos fabricantes. Pense sobre isso e divulgue suas
concluses no AVA para discusso.

99

100

Fundamentos em Sistemas Operacionais

3.2 Gerncia de Memria


Normalmente um computador possui uma
pequena quantidade de memria cache voltil e
muito rpida, centenas (ou poucos milhares) de
megabytes de memria principal voltil e de velocidade mdia (RAM Random Access Memory) e
centenas de gigabytes de armazenamento em disco, no voltil e de lento acesso.
Uma das tarefas do sistema operacional gerenciar como essa hierarquia de memria usada
controlando as partes livres e em uso, alocando e
liberando espao para processos e gerenciando a
troca entre a memria principal e o disco quando
necessrio.
Em geral, os programas so armazenados no
disco (memria secundria) por ser um meio no
voltil e de grande capacidade de armazenamento.
Como o processador s executa instrues localizadas na memria principal, o sistema operacional
deve transferir programas do disco para a memria
RAM antes de serem executados.
A gerncia de memria deve procurar manter
o maior nmero de processos na memria principal, para maximizar o compartilhamento do processador e demais recursos computacionais, j que
o tempo de acesso memria secundria muito
maior que o tempo de acesso memria RAM.
Na ausncia de espao livre na memria principal, o sistema operacional realiza uma transferncia temporria de processos residentes na memria
RAM para o disco, liberando espaos para novos
processos. Este processo conhecido como Swap
e trataremos sobre ele com mais detalhes mais
adiante.

Tema 3

| Funes essenciais de um sistema operacional

Monoprogramao sem Troca ou Paginao


Neste modelo de organizao, a memria principal subdividida em duas reas, uma para o sistema operacional e outra para o programa do usurio.

Figura 34 - Alocao contgua simples


Fonte - MACHADO, Francis B.; MAIA, Luiz Paulo. Arquitetura de sistemas
operacionais. 4. ed. Rio de Janeiro: LTC, 2007, p. 156.

Quando o sistema est organizado dessa maneira, somente um processo pode estar rodando
por vez. Quando o processo termina, o sistema
operacional exibe um aviso de comando e espera
um novo comando.
Tcnica de Overlay
Uma soluo encontrada para o limite do tamanho da rea da memria principal dividir o
programa em mdulos, de forma que seja possvel
a execuo independente de cada mdulo, utilizando uma mesma rea de memria. Esta tcnica
conhecida como overlay.

101

102

Fundamentos em Sistemas Operacionais

A definio das reas de overlay funo do


programador e exige muito cuidado, devido possibilidade de transferncia excessiva dos mdulos
entre a memria principal e o disco.

Figura 35 - Tcnica de Overlay


Fonte - MACHADO, Francis B.; MAIA, Luiz Paulo. Arquitetura de sistemas
operacionais. 4. ed. Rio de Janeiro: LTC, 2007, p. 158.

Multiprogramao com Parties Fixas


Nos primeiros sistemas multiprogramveis, a
memria era dividida em n parties, cujo tamanho
era estabelecido na fase de inicializao do sistema
em funo do tamanho dos programas que seriam
executados.
Inicialmente os aplicativos s podiam ser
carregados em uma partio especfica, mesmo se
outras estivessem disponveis. Os cdigos desses
aplicativos eram conhecidos como cdigo absoluto.
Com o tempo, o cdigo gerado deixou de ser
absoluto e os programas puderam ser executados
a partir de qualquer partio passando a ser conhecido como cdigo relocvel.

Tema 3

| Funes essenciais de um sistema operacional

Para controlar sobre quais parties esto


alocadas, o sistema operacional mantem uma
tabela com o endereo inicial de cada partio, seu
tamanho e se est em uso.

Figura 36 - Alocao particionada esttica


Fonte - MACHADO, Francis B.; MAIA, Luiz Paulo. Arquitetura de sistemas
operacionais. 4. ed. Rio de Janeiro: LTC, 2007, p. 159.

Multiprogramao com Parties Dinmicas


A alocao particionada dinmica eliminou o
conceito de parties de tamanho fixo. Nesse modelo, cada programa utiliza o espao necessrio
usando essa rea como sua partio, no ocorrendo assim o problema da fragmentao interna.
Mas neste caso um tipo de fragmentao diferente comear a ocorrer. No momento em que
os programas forem se encerrando, surgiro espaos cada vez menores na memria, no permitindo
o ingresso de novos programas. Esse problema
chamado de fragmentao externa.
Estratgias de Alocao de Parties
Basicamente trs estratgias so utilizadas pelos
sistemas operacionais para evitar ou diminuir o problema da fragmentao externa, determinando em qual
rea livre um programa ser carregado para execuo.

103

104

Fundamentos em Sistemas Operacionais

Best-fit - nessa soluo, a partio em que o


programa deixa o menor espao sem utilizao a
escolhida. Uma desvantagem nesse caso o aumento da fragmentao da memria, pois cada vez mais
surgiro pequenas reas no adjacentes na memria.

Figura 37 - Alocao particionada esttica


Fonte - MACHADO, Francis B.; MAIA, Luiz Paulo. Arquitetura de sistemas operacionais. 4. ed. Rio
de Janeiro: LTC, 2007, p. 166.

First-fit Nesse modelo alocado o primeiro


bloco de memria, grande o suficiente para receber
o programa. Das trs estratgias, esta a mais rpida, consumindo menos recursos do sistema.

Figura 38 - Alocao particionada esttica


Fonte - MACHADO, Francis B.; MAIA, Luiz Paulo. Arquitetura de sistemas operacionais. 4. ed. Rio
de Janeiro: LTC, 2007, p. 166.

Tema 3

| Funes essenciais de um sistema operacional

105

Worst-fit Nessa estratgia, a partio


escolhida aquela que deixa o maior espao
sem utilizao. Essa tcnica deixa espaos livres
maiores, o que permite um maior nmero de programas utilizar a memria e diminui o problema
da fragmentao.

Figura 39 - Estratgias para a escolha da partio


Fonte - MACHADO, Francis B.; MAIA, Luiz Paulo. Arquitetura de sistemas operacionais. 4. ed. Rio
de Janeiro: LTC, 2007, p. 166.

Apesar da tcnica First-fit ser a mais


rpida, voc acredita que a mais eficiente? Pense sobre isso e divulgue
suas concluses no AVA para discusso.
Realocao e Proteo
A multiprogramao cria dois problemas essenciais que a realocao e proteo. Quando
um programa vinculado a um endereo o linkeditor11 deve saber em que endereo o programa
deve comear na memria.
Mas e se o endereo do programa apontar
para um endereo que o sistema operacional
estiver usando?

11 Gera a partir
de um ou mais
mdulos-objeto um
programa executvel
pelo sistema operacional.

106

Fundamentos em Sistemas Operacionais

12 O PC-XT da IBM
(com o processador
8088) empregava
uma verso
mais fraca desse
esquema.

A realocao de memria acontece na hora


em que o programa carregado, mas ela j prevista no cdigo binrio do programa.
Uma soluo seria modificar as instrues
enquanto o programa carregado na memria, e
para isso, o link-editor deveria incluir no programa binrio uma lista (ou mapa de bits) informando
quais palavras do programa so endereos a serem
realocados e quais no o so.
Mas essa realocao no resolve o problema
da proteo. No possvel que um programa leia
ou escreva em qualquer lugar da memria.
Como os programas nesse tipo de sistema
utilizam endereos absolutos de memria, no h
como impedir que um programa crie uma instruo
que l ou grave qualquer palavra na memria.
Nos sistemas multiusurios no permitido
que processos leiam e escrevam em parties de
memrias alocados em outro processo.
Uma soluo alternativa para ambos os
problemas disponibilizar dois registradores
especiais de hardware, conhecidos como registrador
de base e registrador de limite.
Quando um processo agendado, o registrador de base carregado com o endereo do incio
de sua partio e o registrador de limite com seu
comprimento. Todo o endereo de memria gerado
tem o registrador de base automaticamente adicionado a ele prprio antes de ser enviado para a
memria.
Os endereos no registrador de limite tambm so verificados para ter certeza de que eles
no tentaro enderear memria fora da partio
atual. O hardware protege os registradores de
base12 e limite para que programas de usurios no
o modifiquem.

Tema 3

| Funes essenciais de um sistema operacional

Swapping (Troca)
Eventualmente no existe memria principal
disponvel para armazenar todos os processos atualmente ativos. Os processos que excedem a capacidade de memria RAM so ento mantidos no disco
e trazidos de l para a execuo dinamicamente.
O swapping uma tcnica utilizada para programas que aguardam por memria principal livre
para serem executados. O sistema escolhe um processo residente e o transfere da memria principal
para a memria secundria (swap out), normalmente o disco. Depois o processo levado de volta
para a memria principal (swap in) e pode retomar
sua execuo.

Figura 40 - Troca de dois processos usando um disco como armazenamento auxiliar


Fonte - SILBERSCHATZ, Abraham; GAGNE, Greg; GALVIN, Peter. Sistemas
Operacionais com Java - conceitos e aplicaes. Traduo da 6. ed. Rio
de Janeiro: Campus, 2005, p.185.

O conceito de swapping permite um maior


compartilhamento da memria principal. O grande
inconveniente tempo gasto nas operaes de

107

108

Fundamentos em Sistemas Operacionais

entrada/sada. Em situaes em que existe pouca


memria principal disponvel, o sistema fica praticamente dedicado s operaes de swapping.
Com a tcnica de swap, voc acredita que
se pode dizer que o limite de memria virtual a
capacidade livre do disco? Pense sobre isso e divulgue suas concluses no AVA para discusso.
Gerenciamento de Memria com Mapas de Bits
A memria atribuda dinamicamente deve ser
gerenciada pelo sistema operacional e em geral
existem duas maneiras de monitorar o uso da memria: mapas de bits e listas livres.
No modelo de mapas de bits a memria
dividida em unidades de alocao onde cada uma
representada por 1 bit no mapa de bits, que 0 se
a unidade est livre e 1 se estiver ocupada.
No mapa de bits o monitoramento das palavras de memria em uma quantidade fixa de memria bem simples, pois o tamanho do mapa
depende somente do tamanho da memria e da
unidade de alocao.
O inconveniente quando se decide carregar
na memria um processo com tamanho na ordem
de k unidades, o gerenciador de memria precisa
encontrar espao disponvel na memria procurando
no mapa de bits uma sequncia de k bits consecutivos
de zeros, o que uma operao bastante lenta.
Gerenciamento de Memria com Listas Encadeadas
Outra maneira de monitorar a memria
manter uma lista encadeada dos segmentos de memria alocados e livres, onde um segmento um
processo ou uma lacuna entre dois processos (TANEMBAUN; WOODHULL, 2000).

Tema 3

| Funes essenciais de um sistema operacional

A classificao nesse modelo vantajosa, pois


quando um processo termina, ou est sendo enviado para o disco, atualizar a lista simples e direto.
Quando um processo encerra sua execuo,
normalmente possui dois vizinhos, que podem ser
tanto processos como lacunas. Essa estrutura torna
mais fcil localizar a entrada anterior e ver se uma
fuso de lacunas possvel.

INDICAO DE LEITURA COMPLEMENTAR


Para saber mais sobre Gerenciamento de Memria
leia o Captulo 9 (p. 155-169) do livro de:
MACHADO, Francis B.; MAIA, Luiz Paulo. Arquitetura de
sistemas operacionais. 4. ed. Rio de Janeiro: LTC, 2007.
Nesse captulo especfico do livro de Francis e Luiz
Paulo, a gerncia de memria abordado de uma
maneira bastante didtica com ilustraes, comparaes e exemplos de estruturas computacionais
que a utilizam.
Para saber mais sobre Gerenciamento de Memria
leia o Captulo 4. (p. 210-217) do livro de:
TANENBAUM, Andrew S.; WOODHULL, Albert S. Sistemas operacionais: projeto e implementao. 2.
ed. Porto Alegre: Bookman, 2000.
Os modelos de gerenciamento de memria so
apresentados baseados nos exemplos clssicos de
implementao em computadores que participaram
da evoluo histrica da informtica.

109

110

Fundamentos em Sistemas Operacionais

PARA REFLETIR
Muitas das implementaes apresentadas aconteceram devido ao fato de o custo de espao em memria principal ser muito alto. Hoje temos micros
desktops com capacidade de 4Gb de memria RAM.
Acredita que deva existir uma preocupao atual
com tipos de gerenciamento de memria como o
swapping, por exemplo? Reflita sobre isso.

3.3 Memria Virtual


Um grande problema no gerenciamento de
memria que o programa e suas estruturas de
dados estavam limitados ao tamanho da memria
disponvel. A soluo era dividir o programa em pedaos chamados overlays, visto no item anterior.
Os overlays eram mantidos em disco e eram
levados para dentro e fora da memria pelo sistema
operacional, dinamicamente, conforme necessrio.
Uma das vantagens da memria virtual possibilitar a utilizao de um nmero maior de processos compartilhando a memria principal, j que
apenas pequenas partes de cada processo estaro
residentes. O que acarreta tambm uma utilizao
mais eficiente do processador
Atualmente, a maioria dos sistemas implementam a memria virtual.
Espao de Endereamento Virtual
O conceito de memria virtual muito prximo
do conceito de um vetor encontrado nas linguagens

Tema 3

| Funes essenciais de um sistema operacional

111

de programao de alto nvel. Quando um aplicativo


faz referncia a um elemento do vetor, no importa
a posio de memria deste elemento. O compilador
ser responsvel por gerar as instrues que implementaro esse mecanismo de vetores.

Figura 41 - Espao de endereamentos virtual e real


Fonte - MACHADO, Francis B.; MAIA, Luiz Paulo. Arquitetura de sistemas
operacionais. 4. ed. Rio de Janeiro: LTC, 2007, p.173

Um aplicativo no ambiente de memria virtual


no faz referncia a endereos fsicos de memria,
somente a endereos virtuais que no momento da
execuo de uma instruo convertido para um
endereo fsico.
O espao de endereamento virtual31 representa
o conjunto de endereos virtuais que o processo
pode enderear, enquanto o conjunto de endereos
reais que um processador pode referenciar se chama espao de endereamento real.

13 Conforme
visto no item 2.1 um
processo formado
pelo contexto de
hardware, contexto
de software e pelo
espao de endereamento. Nos ambientes de memria
virtual, o espao
de endereamento
de um processo
conhecido como
espao de endereamento virtual.

112

Fundamentos em Sistemas Operacionais

Como no existe uma relao direta entre os


endereos do espao fsico da memria principal
com o endereamento virtual, um aplicativo pode
referenciar endereos virtuais que excedam os limites da memria principal, com isso, os programas e
suas estruturas de dados no esto mais limitados
ao tamanho da memria fsica.
Isso possvel porque quando um programa
executado, somente uma parte de seu cdigo fica
residente na memria RAM, e o restante no disco
at o momento de ser referenciado.
Mapeamento
O mecanismo utilizado para a traduo do
endereo virtual para o endereo fsico chamado
de mapeamento e com ele um programa no precisa
estar necessariamente em endereos contguos na
memria principal para ser processado.

Figura 42 - Mapeamento
Fonte - MACHADO, Francis B.; MAIA, Luiz Paulo. Arquitetura de sistemas
operacionais. 4. ed. Rio de Janeiro: LTC, 2007, p. 174.

Tema 3

| Funes essenciais de um sistema operacional

Cada processo possui seu espao de endereamento virtual como se possusse sua prpria
memria. O mecanismo de traduo se encarrega
de manter tabelas de mapeamento exclusivas para
cada processo, que relaciona seus endereos virtuais s suas posies fsicas na memria.
Atualmente, a tarefa de traduo dos endereos virtuais feita por hardware junto com
o sistema operacional. O dispositivo de hardware
encarregado por esta traduo a Unidade de Gerenciamento de Memria (MMU Memory Management Unit). Uma vez traduzido poder ser utilizado
pelo processador para o acesso memria principal.
Paginao
Nessa tcnica de gerncia de memria virtual,
o espao de endereo virtual dividido em unidades
chamadas pginas e as unidades correspondentes
na memria fsica so chamadas de molduras de
pginas. Ambas devem possuir sempre o mesmo
tamanho.
O mapeamento de endereo virtual em endereo fsico feito atravs de tabelas de pginas.
Cada processo possui sua prpria tabela de pginas e cada pgina virtual do processo possui uma
entrada na tabela.
Quando um aplicativo executado, as pginas virtuais so transferidas do disco para a memria RAM e colocada nas molduras de pgina. Quando um programa se referir a um endereo virtual,
o mecanismo de mapeamento localizar na entrada
de tabela de pginas da tabela de processo (visto
no item 2.1 Implementao de um Processo) o
endereo virtual da moldura de pgina no qual se
encontra o endereo fsico correspondente.

113

114

Fundamentos em Sistemas Operacionais

Poltica de Busca de pginas


O momento em que uma pgina deve ser carregada para a memria determinado pela poltica
de busca de pginas. Basicamente as estratgias
para isso so: paginao por demanda e paginao
antecipada.
Quando as pginas dos processos so transferidas do disco para a memria RAM apenas quando so referenciadas, chamamos de paginao por
demanda.
Quando o sistema transfere para a memria
principal, alm da pgina referenciada, outras pginas que podem ou no ser necessrias ao longo
do processamento, chamamos de paginao antecipada.
Consegue ver as implicaes que podem surgir
na paginao antecipada? Pense sobre isso e divulgue
suas concluses no AVA para discusso.
Polticas de Alocao de Pginas
Essa poltica determina quantas molduras de
pginas cada processo pode manter na memria
principal. Existem duas alternativas para isso:
alocao varivel e alocao fixa.
Na alocao fixa, cada processo tem um nmero mximo de molduras de pgina que pode ser
utilizado durante a execuo do aplicativo.
Na poltica de alocao varivel, o nmero
mximo de pginas alocadas ao processo pode variar durante sua execuo em funo de sua taxa de
paginao e da ocupao da memria RAM.
E o que acontece se um programa precisar
usar uma pgina que no est na memria e no
h espao para traz-la da memria secundria?

Tema 3

| Funes essenciais de um sistema operacional

Polticas de Substituio de Pginas


Pode acontecer de um processo atingir o
seu limite de alocao de molduras de pgina e
precisar transferir novas pginas para a memria
principal, nesse caso, o sistema operacional deve
selecionar qual das pginas alocadas dever ser
liberada. A este mecanismo chamamos de poltica
de substituio de pginas.
Qualquer estratgia de substituio de pginas
deve levar em considerao se a pgina foi ou no
modificada antes de descart-la, pois os dados armazenados na pgina podem ser perdidos. Neste caso, o
sistema dever grav-la no disco antes de descart-la,
preservando seu contedo para uso futuro.
Este procedimento conhecido como page
out. Para tanto, o sistema mantm um arquivo de
paginao para armazenar todas as pginas modificadas e descartadas. Quando uma pgina for
modificada novamente, ocorrer um page in, sendo transferida para a memria principal a partir do
arquivo de paginao.

Figura 43 - Substituio de pginas


Fonte - MACHADO, Francis B.; MAIA, Luiz Paulo. Arquitetura de sistemas
operacionais. 4. ed. Rio de Janeiro: LTC, 2007, p. 181.

115

116

Fundamentos em Sistemas Operacionais

14 Page fault
quando a pgina
que contm o
endereo referenciado no est na
memria principal.

A poltica de substituio pode ser definida


como local ou global.
A poltica de substituio local ocorre quando
as pginas candidatas a realocao so as mesmas
pginas do processo que gerou o page fault14.
Quando todas as pginas alocadas na memria RAM podem ser substitudas, chamamos de
poltica de substituio global, e no depende do
processo que gerou o page fault. Destacamos que
pginas como as do ncleo do sistema so definidas como bloqueadas e no podem ser realocadas.
Algoritmo de Substituio de Pginas
A deciso de quais pginas sero liberadas
da memria RAM consiste no maior problema do
gerenciamento de memria virtual por paginao.
O objetivo dos algoritmos de substituio de
pginas selecionar as molduras de pgina que tenham as menores chances de serem referenciadas
em um momento prximo.
Algoritmo timo
Este algoritmo seleciona uma pgina para
substituio que levar o maior intervalo de tempo
para ser novamente utilizada ou que no ser mais
referenciada no futuro.
Algoritmo Aleatrio
A possibilidade de as pginas alocadas na
memria principal serem liberadas a mesma
para todas, no havendo nenhum critrio em sua
seleo.

Tema 3

| Funes essenciais de um sistema operacional

First-In-First-Out (FIFO)
Este algoritmo seleciona a pgina que est
h mais tempo na memria principal (a primeira
pgina que foi utilizada ser a primeira a ser escolhida).
Least-Frequently-Used (LFU)
Seleciona a moldura menos utilizada, ou seja,
a pgina menos referenciada.
Least-Recently-Used (LRU)
selecionada a pgina na memria RAM que
est h mais tempo sem ser referenciada.
Not-Recently-Used (NRU)
Inicialmente seleciona as pginas que no
foram utilizadas recentemente e no foram modificadas, isso evita um page out. A seguir, substitui
as pginas que no tenham sido referenciadas, porm modificadas. Utiliza um bit adicional conhecido
como bit de referncia.
FIFO com Buffer de Pginas
uma combinao de uma lista de pginas
alocadas com uma lista de pginas livres. A lista
de pginas alocadas organiza as pginas alocadas
h mais tempo na memria RAM no incio da lista.
A lista de pginas livres organiza as molduras de
pginas livres da memria RAM, sendo que as pginas livres h mais tempo esto no incio da lista.

117

118

Fundamentos em Sistemas Operacionais

Sempre que um processo precisar alocar uma


nova pgina, o sistema utiliza a primeira pgina da
lista de pginas livres, colocando-a no final da lista
de pginas alocadas.
FIFO Circular
Este algoritmo utiliza o FIFO como base, mas
as pginas situadas na memria esto em uma
estrutura circular. o algoritmo implementado na
maioria dos sistemas Unix.
Memria Virtual por Segmentao
Nesta tcnica o espao de endereamento
virtual dividido em blocos de tamanhos diferentes chamados segmentos. Um programa ento
dividido logicamente em sub-rotinas e estruturas
de dados que so alocados em segmentos na memria principal.
Swapping em Memria Virtual

15 Essa tcnica foi


vista no item 3.2
em gerncia de
memria.

Nesta tcnica de gerenciamento15, uma vez escolhidos os processos, o sistema os retira da memria principal para o disco (swap out) onde so
gravados em um arquivo de swap. Uma vez no disco
as molduras ou segmentos alocados so liberados.
Posteriormente, os processos que foram retirados da memria devem retornar para a memria principal (swap in) para serem novamente executados.

Tema 3

| Funes essenciais de um sistema operacional

INDICAO DE LEITURA COMPLEMENTAR


Para saber mais sobre Memria Virtual leia o
Captulo 10 (p. 171-205) do livro de:
MACHADO, Francis B.; MAIA, Luiz Paulo. Arquitetura de
sistemas operacionais. 4. ed. Rio de Janeiro: LTC, 2007.
Em seu livro, Francis e Luiz Paulo do uma grande
nfase tcnica de paginao expondo todas as
suas caractersticas, vantagens e desvantagens
Para saber mais sobre Memria Virtual leia o Captulo
4 (p. 139-196) do livro de:
TANENBAUM, Andrew S. Sistemas operacionais modernos. 2. ed. Rio de Janeiro: Prentice Hall Brasil,
2007.
Tanenbaum descreve com propriedade as tcnicas
de gerenciamento de memria virtual, analisa suas
implementaes e seus impactos nos sistemas.

PARA REFLETIR
Em sistemas como o Linux o usurio pode definir
o tamanho da partio no disco que ser utilizada
para swapping no momento da instalao. Reflita
sobre qual seria a relao entre o tamanho da partio swap no disco e o tamanho da memria RAM
do sistema.

119

120

Fundamentos em Sistemas Operacionais

3.4 Gerncia de Dispositivos de Entrada e Sada


O gerenciamento dos dispositivos de entrada/sada
uma das funes mais complexas de um sistema
operacional e sua implementao estruturada em
camadas.
Essas camadas so divididas em dois grupos,
em que o primeiro trata os vrios tipos de dispositivos do sistema de um mesmo modo, enquanto o
segundo especfico para cada dispositivo.
Os dispositivos de entrada/sada so utilizados para a comunicao entre o sistema e o mundo
externo. So classificados como dispositivos de entrada e/ou sada de dados. De um modo genrico,
os dispositivos de entrada/sada podem ser divididos nas seguintes categorias:
Consegue distinguir quais so os dispositivos
de entrada e sada?
Dispositivo de Blocos - armazena informaes
em bloco de tamanho fixo, cada um com seu
prprio endereo. Sua propriedade fundamental
poder ler ou escrever cada bloco independente
dos outros blocos. Os discos so os dispositivos
de blocos mais comuns.
Dispositivo de Caractere - libera ou aceita
um conjunto de caracteres sem respeitar qualquer estrutura de blocos. No enderevel e
no possui nenhuma operao de posicionamento.
Quase todos os demais dispositivos diferentes dos
discos podem ser considerados dispositivos de
caractere (mouse, teclado, impressora, etc.).
Dispositivo Sequencial ou Aleatrio - transfere dados em uma ordem fixa que definida pelo
dispositivo sequencial, enquanto o usurio de um
dispositivo aleatrio pode instruir o dispositivo a
buscar qualquer uma das posies disponveis de
armazenamento de dados.

Tema 3

| Funes essenciais de um sistema operacional

121

Dispositivo Compartilhvel ou Dedicado - Um


dispositivo compartilhado pode ser usado ao mesmo tempo por vrios processos ou threads, um dispositivo dedicado no.
Dispositivo Sncrono ou Assncrono - Um dispositivo sncrono executa as transferncias de dados
em tempos de resposta previsveis. Um dispositivo
assncrono apresenta tempos de resposta irregulares.
Controladores de dispositivos
Os dispositivos de entrada/sada normalmente
so compostos de um componente mecnico e um
componente eletrnico. O componente eletrnico
a placa controladora responsvel por manipular
diretamente os dispositivos de entrada/sada. O
componente mecnico o dispositivo em si.
Sabia que as controladoras podem ser placas
de expanso ou estarem presentes diretamente na
placa me? Conhece o conceito on-board?

Figura 44 - Controladoras
Fonte - MACHADO, Francis B.; MAIA, Luiz Paulo. Arquitetura de sistemas operacionais. 4. ed. Rio
de Janeiro: LTC, 2007, p. 235.

122

Fundamentos em Sistemas Operacionais

Os controladores possuem registradores prprios. Por meio da escrita nesses registradores, o


sistema operacional pode, por exemplo, comandar o
dispositivo para entregar ou aceitar dados, ou executar alguma outra tarefa. A partir da leitura desses
registradores, o sistema operacional pode descobrir
o estado do dispositivo, se est preparado para
aceitar um novo comando e assim por diante.
Alm dos registradores de controle, muitos
dispositivos tm um buffer de dados prprios que
o sistema operacional pode ler ou escrever. uma
memria prpria do controlador.
Os dados chegam em bloco de bytes e normalmente montado, bit a bit, e armazenado no buffer do controlador. O trabalho de um controlador
de disco, por exemplo, converter o fluxo serial de
bits em um bloco de bytes e executar toda correo
de erro necessria.
O controlador de um monitor de vdeo, tambm funciona como um dispositivo serial bit a bit.
Ele l bytes da memria que contm os caracteres
para serem mostrados no vdeo e gera os sinais usados para modular o feixe do tubo CRT do monitor.
Driver
Cada dispositivo de entrada/sada ligado ao
computador precisa de um cdigo especfico do
dispositivo para control-lo. Esse cdigo chamado de driver e normalmente escrito pelo fabricante
do dispositivo e fornecido junto com ele.
Experimente desabilitar o driver de um dispositivo em seu micro. O dispositivo parou de funcionar?
A funo do driver receber da camada de
subsistema de entrada/sada comandos gerais
sobre os acessos aos dispositivos e traduzi-los para
comandos especficos que podero ser executados
pelos controladores.

Tema 3

| Funes essenciais de um sistema operacional

Figura 45 - Device Drivers


Fonte - MACHADO, Francis B.; MAIA, Luiz Paulo. Arquitetura de sistemas
operacionais. 4. ed. Rio de Janeiro: LTC, 2007, p. 233.

Os drivers fazem parte do ncleo do sistema


operacional e em geral no so aptos a fazer chamadas ao sistema, mas muitas vezes podem interagir com o resto do ncleo.
Acesso Direto Memria (DMA)
A CPU precisa enderear os controladores dos
dispositivos para poder trocar dados com eles. Ela
pode requisitar dados de um controlador de entrada/sada um byte de cada vez, mas desperdiar com isso muito tempo de processamento, da
a utilizao de uma estratgia de acesso direto
memria (DMA - Direct Memory Access).
O controlador DMA um dispositivo de hardware que pode fazer parte do controlador ou ser
um dispositivo independente, e o seu uso impede
que a CPU fique ocupada com a transferncia do
bloco para a memria.

123

124

Fundamentos em Sistemas Operacionais

A compreenso de seu funcionamento muito simples. A CPU, atravs do driver do dispositivo,


inicializa os registradores do controlador de DMA e
fica livre para realizar outras tarefas. O controlador de
DMA solicita ao controlador de disco a transferncia
do bloco do disco para seu buffer interno.
Terminada a transferncia, o controlador de
DMA transfere o bloco para o buffer de entrada/
sada na memria principal e gera uma interrupo
avisando CPU que o dado j se encontra disponvel
na memria RAM.

Figura 46 - Operao de uma transferncia com DMA


Fonte - TANENBAUM, Andrew S. Sistemas operacionais modernos. 2. ed. Rio de Janeiro: Prentice
Hall Brasil, 2007, p.207.

Interrupes
O hardware da CPU possui uma linha de solicitao de interrupo, que a CPU verifica aps
executar cada instruo. A CPU, quando detecta
que uma controladora emitiu uma solicitao de
interrupo, salva as informaes de estado do
processo atual e passa para a rotina de tratamento
de interrupo.
Aps determinada a causa da interrupo, a
CPU realiza o processamento necessrio solicitado
pelo dispositivo e retorna ao estado de execuo
antes da interrupo.

Tema 3

| Funes essenciais de um sistema operacional

Em um sistema operacional moderno, so


necessrios recursos mais sofisticados de tratamento de interrupes. Primeiro preciso que exista a
capacidade de adiar o tratamento de interrupes
durante um processamento crtico. Segundo, necessrio que exista uma forma eficiente de transferir o
controle para a rotina de interrupo adequada a determinado dispositivo sem ter de consultar todos eles
para verificar qual dispositivo gerou a interrupo.
E, por fim, desejvel a existncia de interrupes com mltiplos nveis, para que o sistema
operacional possa distinguir entre interrupes de
alta e baixa prioridade, e possa responder com o
grau apropriado de urgncia.
Nos hardwares de computadores modernos,
essas situaes so tratadas pela CPU e pelo hardware da controladora de interrupes.
Discos Magnticos
De todos os dispositivos de entrada/sada, os
discos magnticos merecem uma ateno especial
por ser o principal dispositivo de armazenamento
de dados utilizado pela maioria dos programas e
pelo prprio sistema operacional.
O tempo utilizado para a leitura e gravao
de um bloco de dados em um disco funo de 3
fatores: tempos de seek, tempo de latncia rotacional e tempo de transferncia.
O tempo gasto no posicionamento do mecanismo de leitura e gravao at o cilindro onde o
bloco se encontra chamado de tempo de seek.
Normalmente o fator de maior impacto de tempo
no acesso a dados.
O tempo de latncia rotacional o tempo de
espera at que o setor desejado esteja posicionado
sob o mecanismo de leitura/gravao.

125

126

Fundamentos em Sistemas Operacionais

Figura 47 - Tempo de acesso


Fonte - MACHADO, Francis B.; MAIA, Luiz Paulo. Arquitetura de sistemas
operacionais. 4. ed. Rio de Janeiro: LTC, 2007, p.238.

O tempo necessrio para a transferncia do


bloco entre a memria principal e o setor do disco
chamado de tempo de transferncia.
Se comparado ao nmero de instrues que
o processador pode executar em um mesmo intervalo de tempo, o tempo total das operaes de
entrada/sada extremamente longo, pois todos
esses fatores envolvem aspectos mecnicos.
Voc conhece os HDs Ssd Flash? Eles teriam
as mesmas caractersticas de seek e
latncia? Reflita sobre isso e divulgue
suas concluses no AVA para discusso.
Alguns sistemas gerenciadores de banco de
dados (SGBD) implementam a tcnica de copiar parte dos dados do disco para a memria principal, utilizando uma rea conhecida como disco RAM, com o
objetivo de diminuir os tempos de seek e latncia.

Tema 3

| Funes essenciais de um sistema operacional

Alocao e Liberao de Dispositivos Dedicados


Determinados dispositivos, como um gravador
de CD-ROM, por exemplo, podem ser usados por
apenas um processo por vez. O sistema operacional
deve ser capaz de avaliar as requisies de utilizao
do dispositivo, podendo aceit-las ou rejeit-las
Uma maneira simples de tratar essas requisies fazer com que os processos executem
chamadas ao sistema para a abertura de arquivos
especiais, os quais so associados diretamente aos
dispositivos.
Se o dispositivo no estiver disponvel, a
chamada falha. Com isso, o fechamento desse dispositivo dedicado implica na liberao do mesmo.
Relatrio de Erros
As falhas so muito mais comuns durante
uma entrada/sada do que em qualquer outra situao. Quando acontece um erro, o sistema operacional deve ser capaz de lidar com ele da maneira
mais eficiente possvel.
Apesar de muitos erros serem especficos de
dispositivos e serem tratados por drivers apropriados, o modelo do tratamento de erro no depende
do dispositivo.
Um tipo de erro de entrada/sada envolve erros de programao, como um processador tentar
escrever em um dispositivo de entrada, ou ler a
partir de um dispositivo de sada.
Outros tipos de erros so o fornecimento de
um endereo invlido de buffer, ou a especificao
de um dispositivo invlido, por exemplo, o acesso
ao disco 2 quando o sistema s possui 1 disco.
O comportamento diante desses erros simples, enviar de volta ao processo chamador um
cdigo de erro.

127

128

Fundamentos em Sistemas Operacionais

Outra classe de erros so aquelas que envolvem falhas reais de entrada/sada, como por
exemplo, tentar escrever em um bloco de disco danificado ou ler a partir de uma webcam desligada.
Nesses casos, responsabilidade do driver determinar o que fazer.
E se ele tambm no souber o que fazer?
Se o driver no souber como proceder, ele
poder repassar o problema de volta ao software
do dispositivo e o que ele far ir depender do
ambiente e da natureza do erro.

INDICAO DE LEITURA COMPLEMENTAR


Para saber mais sobre Gerncia de Dispositivos de Entrada e Sada leia o Captulo 5 (p. 201-279) do livro de:
TANENBAUM, Andrew S. Sistemas operacionais modernos. 2. ed. Rio de Janeiro: Prentice Hall Brasil, 2007.
Tanenbaum detalha o funcionamento de cada um dos
principais dispositivos de entrada/sada analisando a
fundo seus algoritmos de manipulao de dados,
tratamento de erros, impactos no sistema, etc.
Para saber mais sobre Gerncia de Dispositivos de
Entrada e Sada leia o Captulo 12 (p. 284-305) do
livro de:
DEITEL, Paul; DEITEL, Harvey; CHOFFNES, David. Sistemas Operacionais. 3. ed. Prentice Hall Brasil, 2005.

Tema 3

| Funes essenciais de um sistema operacional

Em seu livro, Paul e Harvey apresentam uma viso


mais genrica do sistema no trato com os dispositivos de entrada/sada mostrando as caractersticas,
problemas e solues envolvidas nessa relao.

PARA REFLETIR
Como se sabe os dispositivos de entrada/sada corresponde a um grande gargalo no desempenho do
processamento principalmente devido ao fato de
seus componentes mecnicos. Mas o que dizer sobre dispositivos como Flash-memory (pen drive)?
Reflita sobre isso.

RESUMO
No contedo 3.1 vimos juntos as particularidades
no gerenciamento de mltiplos processadores,
suas vantagens, desvantagens, caractersticas e
aplicaes.
J no 3.2, aprendemos sobre a importncia do gerenciamento da memria, j que o local onde os
dados aguardam para serem processados pela CPU.
Seguindo com nossos estudos, vimos no contedo
2.3 a soluo para o espao insuficiente na memria
principal, apresentado atravs do gerenciamento da
memria virtual.

129

130

Fundamentos em Sistemas Operacionais

Por fim, no 2.4, percebemos o impacto de desempenho que os dispositivos de entrada/sada causam no sistema e as solues existentes em seu
gerenciamento para diminuir esse impacto. O conjunto do conhecimento dos gerenciamentos visto
neste tema ser de crucial importncia no assunto
de segurana que ser tratado no tema a seguir.

Segurana de
Operacionais

Sistemas

Neste texto trabalharemos juntos sobre os princpios existentes


de armazenamento e organizao dos arquivos, j que a partir da
podemos compreender as diversas regras de segurana existentes em
um sistema operacional.
Ao final deste tema voc ser capaz de compreender diversas
diretrizes de segurana utilizadas nos sistemas operacionais e conhecer
situaes particulares de dois grandes sistemas operacionais: Linux
e Windows.

132

Fundamentos em Sistemas Operacionais

4.1 Sistemas de Arquivo


A parte do sistema operacional responsvel
por gerenciar os arquivos conhecida como sistemas de arquivos e este gerenciamento deve ser
feito de maneira a facilitar o acesso dos usurios
a seu contedo, sendo feito de forma uniforme
independente dos diferentes dispositivos de armazenamento.
O sistema de arquivos consiste em duas partes
distintas: um conjunto de arquivos, cada qual
armazenando dados correlatos e uma estrutura de
diretrio, que organiza e fornece informaes sobre
todos os arquivos do sistema.
Em um ambiente onde mltiplos usurios podem
ter acesso aos arquivos imprescindvel que o
sistema de arquivos implemente mecanismos que
proporcionem a proteo de arquivos para controlar
quem ir acess-los e de que forma.
Como voc protegeria seus arquivos contra o acesso de estranhos? Pense sobre
isso e divulgue suas concluses no AVA
para discusso.
Arquivo
Um processo precisa ler e gravar grande volume de dados em dispositivos de armazenamento,
como um disco, por exemplo, alm de poder compartilh-los com outros processos. A forma pela qual
o sistema operacional estrutura estas informaes
atravs da implementao de arquivos.
Quando um processo cria um arquivo, ele d
um nome a esse arquivo. Quando o processo termina, o arquivo continua disponvel e outros processos
podem acess-lo simplesmente buscando seu nome.

Tema 4

| Segurana de sistemas operacionais

133

Nomes de Arquivo
As regras para se nomear um arquivo variam
entre sistemas operacionais. O MS-DOS, por exemplo, permitia cadeias de caracteres de 1 at 8 caracteres alfa-numricos como nomes vlidos de arquivos.
Caracteres especiais como # $ % & @ ! no eram
permitidos.
Hoje a maioria dos sistemas operacionais
aceita nomes com at 255 caracteres e alguns caracteres especiais. importante perceber que alguns sistemas operacionais distinguem letras
maisculas de letras minsculas (case sensistive).
No Linux, por exemplo, Teste, teste e TESTE,
poderiam ser trs nomes de arquivos diferentes. J
no Windows corresponderiam ao mesmo arquivo.
Experimente ver qual o maior nome
consegue dar a um arquivo.
Alguns sistemas operacionais suportam
nomes de arquivos divididos em duas partes
separadas por um ponto. Os caracteres aps o
ponto correspondem extenso do arquivo, e
normalmente um indicador de algo sobre o
arquivo. Por exemplo, no nome de arquivo teste.
txt, a extenso .txt nos diz que corresponde a um
arquivo de texto.
No MS-DOS, a extenso de arquivos era
limitada a 3 caracteres. Nos sistemas operacionais
baseados no UNIX16, o tamanho da extenso de
arquivos, se houver, fica a critrio do usurio.
Por outro lado, sistemas operacionais como o
Windows conhece as extenses a atribui significado
a elas. Quando um usurio clica duas vezes em
um nome de arquivo, o programa atribudo sua
extenso executado tendo o arquivo como um
parmetro.

16 No Unix as
extenses de
arquivos so apenas
convenes, j que
no so impostas
pelo sistema
operacional.

134

Fundamentos em Sistemas Operacionais

Atributos de Arquivos
As informaes de controle que cada arquivo
possui so chamadas de atributos, que variam entre
os sistemas operacionais, mas h alguns que esto
presentes em quase todos os sistemas, como tamanho
do arquivo, data de criao e outros.
V at seu gerenciador de arquivos e pea para
visualizar todos os detalhes do arquivo. Voc, ento,
ver seus atributos.
Existem atributos que no podem ser modificados, como sua organizao e a data/hora do momento de sua criao, e atributos que so alterados pelo
prprio sistema operacional, como data/hora da ltima
alterao, ou pelo usurio, como senhas de acesso.

Figura 48 - Atributos de Arquivos


Fonte - MACHADO, Francis B.; MAIA, Luiz Paulo. Arquitetura de sistemas operacionais. 4. ed.
Rio de Janeiro: LTC, 2007, cap. 11, p. 216.

Estrutura de Arquivos
Existem diversas maneiras dos arquivos
serem estruturados, uma delas atravs de uma
sequncia desestruturada de bytes, em que o sistema
operacional no sabe o que o arquivo contm. Tudo
o que ele v so bytes. Sistemas como o Windows
e Unix utilizam essa estratgia.

Tema 4

| Segurana de sistemas operacionais

Figura 49 - Sequncia de Bytes


Fonte - TANENBAUM, Andrew S. Sistemas operacionais modernos. 2.
ed. Rio deJaneiro: Prentice Hall Brasil, 2007, p.288.

Outro modelo de estrutura de arquivos


uma sequncia de registros de tamanho fixo, cada
um com alguma estrutura interna. Neste modelo, a
operao de leitura retorna um registro e a operao
de escrita sobrepe ou anexa um registro.

Figura 50 - Sequncia de registros


Fonte - TANENBAUM, Andrew S. Sistemas operacionais modernos. 2.
ed. Rio deJaneiro: Prentice Hall Brasil, 2007, p.288.

135

136

Fundamentos em Sistemas Operacionais

O terceiro modelo mais comum de estrutura


de arquivo constitudo de uma rvore de registros, cada um contendo um campo-chave em uma
posio fixa no registro. Essa rvore ordenada
pelo campo-chave para que se busque mais rapidamente por uma chave especfica.

Figura 51 - rvore de registros


Fonte - TANENBAUM, Andrew S. Sistemas operacionais modernos. 2. ed. Rio deJaneiro: Prentice
Hall Brasil, 2007, p.288.

Tipos de Arquivos
Normalmente muitos sistemas operacionais
suportam vrios tipos de arquivos. Os arquivos regulares, em geral, so arquivos ASCII ou arquivos
binrios. Arquivos ASCII so constitudos de linhas
de texto e arquivos binrios tm, em geral, alguma
estrutura conhecida pelos programas que o utilizam.
J os arquivos especiais de caracteres esto
relacionados entrada/sada e so usados para
modelar os dispositivos de entrada/sada (terminais,
impressoras e redes).
Os arquivos especiais de bloco, por sua vez,
so usados para modelar discos, enquanto que os
diretrios so arquivos do sistema que mantm a
estrutura do sistema de arquivos.

Tema 4

| Segurana de sistemas operacionais

Operaes com arquivos


A funo dos arquivos armazenar informaes
e permitir que elas sejam recuperadas depois. O
sistema operacional fornece chamadas ao sistema
para criar, ler, escrever, excluir, reposicionar e truncar
arquivos.
Criar um arquivo acontece em duas etapas.
Primeiro, deve haver espao no sistema de arquivos para que o arquivo seja criado. Segundo, uma
entrada do arquivo deve ser feita no diretrio.
Escrever em um arquivo feita uma chamada ao sistema onde especificado o nome do
arquivo e as informaes a serem escritas nele.
Ler um arquivo feita uma chamada ao
sistema que especifique o nome do arquivo e a posio na memria onde o prximo bloco do arquivo
dever ser colocado.
Reposicionar dentro do arquivo O diretrio
pesquisado buscando a entrada apropriada e a
posio do arquivo atual ajustada para um determinado valor.
Excluir um arquivo feita uma chamada de sistema para remover o arquivo e liberar o espao que ele
ocupa. apagada tambm sua entrada no diretrio.
Truncar o arquivo permite que todos os
atributos permaneam inalterados (exceto pelo tamanho do arquivo).
Diretrios
A forma de o sistema operacional organizar
logicamente os arquivos armazenados em disco
atravs de uma estrutura de diretrios. Ela possui
entradas associadas aos arquivos onde cada uma
delas armazena informaes como localizao fsica,
nome e demais atributos.

137

138

Fundamentos em Sistemas Operacionais

No momento em que um arquivo aberto, o


sistema operacional procura sua entrada de diretrios, armazenando as informaes sobre atributos
e localizao do arquivo em uma tabela mantida na
memria principal.
Em sua maioria, os diretrios so organizados
em uma estrutura de rvore em que cada usurio
pode criar diversos nveis de diretrios chamado
subdiretrios. Cada diretrio pode conter arquivos
ou outros diretrios.

Figura 52 - Estrutura de diretrios em rvore


Fonte - MACHADO, Francis B.; MAIA, Luiz Paulo. Arquitetura de sistemas operacionais. 4. ed. Rio
de Janeiro: LTC, 2007, p. 219.

Tema 4

| Segurana de sistemas operacionais

Este modelo de mltiplos nveis permite que os


arquivos sejam logicamente melhor organizados. O nmero de nveis de uma estrutura em rvore depende
do sistema de arquivos de cada sistema operacional.
Faa um teste para saber qual o limite de
subdiretrios em seu sistema.
Implementao de Arquivos
Uma das questes mais importantes ao implementar o armazenamento de arquivos monitorar
quais blocos de disco acompanham quais arquivos.
Vejamos algumas tcnicas de alocao de arquivos:
Alocao Contgua
O modelo de alocao contgua consiste em
armazenar um arquivo em blocos sequencialmente
dispostos no disco. simples de implementar, pois
monitorar a localizao dos blocos reduz-se a guardar seu endereo. Alm disso, possui um excelente
desempenho, pois o arquivo inteiro pode ser lido
do disco em uma nica operao.

Figura 53 - Alocao contgua do espao em disco para 7 arquivos


Fonte - TANENBAUM, Andrew S. Sistemas operacionais modernos. 2.
ed. Rio deJaneiro: Prentice Hall Brasil, 2007, p. 301.

Contudo, algumas desvantagens podem ser percebidas neste modelo. Primeiro no pode ser aplicvel
a no ser que o tamanho mximo do arquivo seja
conhecido no momento em que o arquivo criado.

139

140

Fundamentos em Sistemas Operacionais

Segundo porque este modelo gera uma grande fragmentao dos arquivos, resultante dessa
poltica de alocao.
Alocao com Lista Encadeada
Na tcnica da alocao com lista encadeada,
um arquivo pode ser organizado como um conjunto
de blocos ligados logicamente no disco, independente de sua localizao fsica. Cada bloco deve
possuir um ponteiro para o bloco seguinte do
arquivo e assim por diante.

Figura 54 - Alocao encadeada.


Fonte - MACHADO, Francis B.; MAIA, Luiz Paulo. Arquitetura de sistemas
operacionais. 4. ed. Rio de Janeiro: LTC, 2007, p. 224.

Apesar de no apresentar as desvantagens


da alocao contgua, a fragmentao resultante
deste modelo ocasiona um aumento no tempo de
acesso aos arquivos (excessivo tempo de seek).
Se nunca fez uma desfragmentao de disco,
agora sabe sua importncia! Reflita sobre isso e
divulgue suas concluses no AVA para discusso.

Tema 4

| Segurana de sistemas operacionais

Alocao com Lista Encadeada Usando ndice


O princpio do modelo da alocao com lista
encadeada usando ndice manter os ponteiros de
todos os blocos do arquivo em uma nica estrutura
chamada bloco de ndice.

Figura 55 - Alocao Indexada


Fonte - MACHADO, Francis B.; MAIA, Luiz Paulo. Arquitetura de sistemas
operacionais. 4. ed. Rio de Janeiro: LTC, 2007, p. 225.

Com esta organizao, o bloco inteiro est


disponvel para dados e o acesso aleatrio muito
mais fcil. E alm de permitir o acesso direto aos
blocos do arquivo, no utiliza informaes de
controle nos blocos de dados, como na alocao
encadeada.
I-Node (index-node)
Este modelo consiste em associar a cada arquivo uma estrutura de dados chamada i-node, que
relaciona os atributos e os endereos em disco dos
blocos de arquivo.

141

142

Fundamentos em Sistemas Operacionais

Uma grande vantagem deste modelo em


relao ao anterior que o i-node s precisa
estar na memria quando o arquivo correspondente
estiver aberto, enquanto no modelo anterior, toda
a tabela de ndice deve estar na memria todo o
tempo.

Figura 56 - Exemplo de i-node


Fonte - TANENBAUM, Andrew S. Sistemas operacionais modernos. 2.
ed. Rio deJaneiro: Prentice Hall Brasil, 2007, p. 304.

Tema 4

| Segurana de sistemas operacionais

INDICAO DE LEITURA COMPLEMENTAR


Para saber mais sobre Sistemas de Arquivo, leia o
Captulo 6 (p. 284-336) do livro de:
TANENBAUM, Andrew S. Sistemas operacionais modernos. 2. ed. Rio deJaneiro: Prentice Hall Brasil, 2007.
Tanembaun apresenta em seu livro detalhes de implementao e gerenciamento de sistemas de arquivo em diversos sistemas operacionais.
Para saber mais sobre Sistemas de Arquivo, leia o
Captulo 11 (p. 212-228) do livro de:
MACHADO, Francis B.; MAIA, Luiz Paulo. Arquitetura de
sistemas operacionais. 4. ed. Rio de Janeiro: LTC, 2007.
Atravs de ilustraes que auxiliam na compreenso dos tipos de processos, os autores Francis e
Luiz Paulo apresentam o assunto de forma clara e
com exemplos de situaes vividas por usurios.

PARA REFLETIR
Ao instalar um sistema operacional como o Linux
ou Windows pode-se escolher qual sistema de
arquivo deseja utilizar. Pense a respeito de como
escolher o sistema de arquivo ideal para seu sistema.

143

144

Fundamentos em Sistemas Operacionais

4.2 Princpios de Segurana de Sistemas


Operacionais

17 Em 1985 foi
publicado um documento formalmente
conhecido como o
padro DoD 5200.28
do Departamento de
Defesa dos Estados
Unidos, mais popularmente conhecido
como Livro Laranja
(Orange Book), por
causa da cor de sua
capa.

Um fator de imensa importncia que deve ser


levado em considerao nos projetos de sistemas
operacionais a questo da segurana17 que est
ligada diretamente ao gerenciamento dos sistemas
de arquivos, pois ali que esto as informaes
valiosas de seus usurios.
Muitas questes devem ser levadas em considerao na segurana de um sistema como:
A confidencialidade dos dados, que significa
manter em sigilo dados secretos, e a entra tambm
a privacidade do usurio contra o mau uso da informao sobre eles;
A integridade dos dados, em que usurios
no autorizados no devem ser capazes de modificar
qualquer dado sem a permisso do proprietrio;
A disponibilidade do sistema, em que
ningum pode interferir no sistema para deix-lo
inoperante.
Invasores
Na categoria de invasores de sistemas computacionais, temos aqueles que simplesmente desejam ler os arquivos no autorizados e outros que
querem alterar os dados alheios.
Um vrus basicamente um pequeno programa que se replica com a finalidade de causar algum
dano, pode ser considerado um invasor, ou uma
ferramenta de quem o escreveu.
Quantos tipos de vrus voc conhece?
Um worm (verme) um processo que usa
o mecanismo de propagao para acabar com o

Tema 4

| Segurana de sistemas operacionais

desempenho do sistema. Ele distribui cpias de si


mesmo esgotando os recursos do sistema, bloqueando at seu uso pelos demais processos.
Enquanto os vermes so estruturados como
programas completos e independentes, um vrus
um fragmento de cdigo embutido em um programa
legtimo.
Quantas formas de propagao voc conhece?
J ouviu falar do cavalo de troia? Ele um
vrus ou um verme? Reflita sobre isso e divulgue
suas concluses no AVA para discusso.
A Segurana Java
Quando pensamos em invaso de computadores, imediatamente imaginamos a internet como
seu principal meio. Assim, fcil entender por que
a segurana um recurso importante da linguagem
Java, j que os programas podem operar em um
ambiente distribudo (como a internet).
O melhor exemplo desses programas o uso
de applets, que consiste em um programa Java que
descarregado de um servidor Web e que executa
uma pgina web.
Se o JVM (Java Virtual Machine Mquina virtual do Java) no navegador no fornecer recursos de
segurana suficientes, um applet poderia executar
aplicativos maliciosos no computador.
Vale a pena desativar o recurso Java de seu
navegador para garantir sua segurana? Pense a
respeito e divulgue suas concluses no AVA para
discusso.

145

146

Fundamentos em Sistemas Operacionais

Perda de Dados
Alm de todos os problemas de ameaas
causados por invasores, dados podem ser perdidos por diversos fatores como: perda acidental
(incndios, enchentes, quedas e outros), problemas de hardware ou software (defeitos na placa
me, CPU, erros de programas e outros) e erros
humanos (entrada incorreta de dados, execuo
errada do programa e outros).
A melhor soluo para evitar dores de cabea quando o assunto perda de dados manter sempre uma cpia de segurana (backup) atualizada, de preferncia fisicamente distante dos
dados originais.
Criptografia
O objetivo da criptografia esconder o significado de uma informao (um processo conhecido
como encriptao). Atravs dele as informaes so
codificadas para preservar seu contedo original, e
somente quem possuir a chave dessa codificao
poder conhecer seu significado.
A criptografia pode ser dividida em dois
ramos conhecidos como transposio e substituio.
Na transposio, as letras da mensagem so
simplesmente rearranjadas, gerando um anagrama.

Figura 57 - Exemplo de Transposio


Fonte - SINGH, Simon. O livro dos cdigos a cincia do sigilo do antigo Egito criptografia
quntica. 7. ed. Rio de Janeiro: Record, 2008, p. 24.

Tema 4

| Segurana de sistemas operacionais

147

Na substituio cada caractere de uma


mensagem substitudo por outro caractere. Uma
das tcnicas muito utilizada era o emparelhamento
ao acaso das letras do alfabeto, substituindo cada
letra na mensagem original por seu par.

Figura 58 - Cifra de Deslocamento de Csar

Fonte - SINGH, Simon. O livro dos cdigos a cincia do sigilo do antigo Egito criptografia
quntica. 7. ed. Rio de Janeiro: Record, 2008, p. 27.

Criptografia com Chave Simtrica


O ciframento de uma mensagem baseia-se
em dois componentes: um algoritmo e uma chave.
Um algoritmo uma transformao matemtica, ele
converte uma mensagem clara em uma mensagem
cifrada e vice-versa.

Figura 59 - Criptografia Simtrica


Fonte-http://penseresponda.files.wordpress.com/2009/04/imagem11.
jpg?w=450&h=161. Acesso em: 17 de dez. de 2010.

148

Fundamentos em Sistemas Operacionais

Quando temos a mesma chave para o ciframento e o deciframento, o processo da criptografia


conhecido como Simtrica.
Criptografia com Chave Assimtrica
Tambm conhecida como criptografia de chave
pblica, uma estratgia de criptografia que
combina um par de chaves, uma chave privada e
uma chave pblica.
A chave pblica pode ser distribuda livremente
para qualquer correspondente at mesmo por e-mail
ou outras formas, j a chave privada deve ser conhecida
apenas pelo seu dono.
Em um algoritmo de criptografia assimtrica,
um cdigo cifrado com a chave pblica pode somente
ser decifrado pela sua correspondente chave privada.

Figura 60 - Criptografia Assimtrica


Fonte - http://penseresponda.files.wordpress.com/2009/04/imagem2.jpg?w=450&h=153. Acesso
em: 17 de dez. de 2010

A grande vantagem deste sistema permitir que


qualquer um possa enviar uma mensagem secreta,
apenas utilizando a chave pblica de quem ir
receb-la. Como a chave pblica est amplamente
disponvel, no h necessidade do envio de chaves
como feito no modelo simtrico.
Uma chave de dois dgitos permite 100 combinaes. Uma chave com seis dgitos, 1 milho de
combinaes. Imagine uma chave de 256 bits.

Tema 4

| Segurana de sistemas operacionais

Assinatura Digital
Uma assinatura digital torna possvel assinar
mensagens eletrnicas e qualquer outro documento digital de modo a garantir sua autenticidade e
evitar seu repdio por quem a enviou.
Como foi visto, uma chave pblica usada
para cifrar uma mensagem que s pode ser decifrada por uma nica chave privada. Mas o processo
pode ser invertido, de modo que a chave privada
seja usada para cifrar e a chave pblica para decifrar.
Sendo feito desta forma, no garantiria nenhuma segurana mensagem, j que qualquer
chave pblica poderia decifrar a mensagem cifrada
pela chave privada, mas garantiria sua autenticidade, pois se puder decifrar a mensagem usando uma
chave pblica, ela s poderia ter sido cifrada com a
chave privada correspondente.
O valor resultante, chamado de bloco de assinatura, anexado ao documento e enviado ao
receptor. Para usar esse esquema, o receptor deve
conhecer a chave pblica do emissor.
Autenticao de Usurio
Normalmente para se ter acesso ao sistema
operacional o usurio deve passar por um processo de autenticao, cuja maneira mais amplamente
utilizada atualmente pedir que o usurio digite
um nome e uma senha.
A implementao mais simples de um sistema de autenticao de usurio manter uma lista
central de pares (nome de entrada, senha). O nome
de entrada digitado localizado na lista e a senha
digitada comparada. Se coincidirem, o acesso ser
permitido, do contrrio ser rejeitado.

149

150

Fundamentos em Sistemas Operacionais

Ataques Genricos de Segurana


A partir do conhecimento do funcionamento,
rotinas e estruturas do sistema operacional possvel identificar algumas vulnerabilidades do sistema.
Veja algumas estratgias utilizadas em ataque de
sistemas:

Requisitar pginas de memria e espao


em disco para leitura. Muitos sistemas
no apagam nada antes de alocar esses
espaos novamente e eles podem conter
informaes importantes escritas pelos
antigos proprietrios e essas informaes
permanecem l at seu espao ocupado
ser utilizado novamente.

Tentar chamadas ao sistema invlidas ou


chamadas ao sistema vlidas com parmetros invlidos, ou at mesmo chamadas ao sistema vlidas com parmetros
vlidos, mas fora dos limites, como nomes de arquivos com milhares de caracteres. Muitos sistemas podem ser confundidos com facilidade.

Iniciar o acesso ao sistema e, ento, no


meio desse processo, pressionar Delete
ou Break. Em alguns sistemas possvel
interromper o processo de verificao de
senha e o acesso concedido.

Tentar modificar estruturas do sistema


operacional que ficam no espao do usurio
(se houver). Em alguns sistemas, para
abrir um arquivo o programa constri
uma grande estrutura de dados contendo

Tema 4

| Segurana de sistemas operacionais

151

o nome do arquivo e muitos outros parmetros e passa para o sistema. Alterar


esses campos pode arruinar a segurana.
Mecanismos de Proteo
Em alguns sistemas, a proteo implementada por um programa chamado monitor de referncia. Cada vez que se tenta um acesso a um recurso
potencialmente protegido, o sistema pede primeiro
ao monitor de referncia para verificar sua validade.
Domnios de Proteo
Uma forma de entender melhor como feita
uma proteo de domnio analisarmos como os
sistemas operacionais baseados no UNIX (como o
Linux) tratam os privilgios de seus processos.
No UNIX, um processo definido pelo seu
UID (Id do usurio) e GID (Id do grupo). Dada qualquer combinao entre eles possvel criar uma
lista completa de todos os objetos representados
pelos arquivos especiais que podem ser acessados
e seus privilgios18 (leitura, escrita ou execuo).

18 O UNIX utiliza
3 bits para definir
os argumentos
de permisso de
arquivo rwx. r=read
(leitura), w=write
(escrita) e x=execute
(execuo).

Figura 61 - Exemplo de Listagem de diretrio no Unix


Fonte - SILBERSCHATZ, Abraham; GAGNE, Greg; GALVIN, Peter. Sistemas operacionais com java
- conceitos e aplicaes.Traduo da 6. ed. Rio de Janeiro: Campus, 2005, p. 264.

152

Fundamentos em Sistemas Operacionais

Lista de Controle de Acesso (ACL)

19 Conforme visto
acima.

A lista de controle de acesso (ACL Access


Control List) consiste em uma lista associada a
cada arquivo, onde so definidos quais os usurios
e os tipos de acesso permitidos. Assim, quando
um usurio tenta acessar um arquivo, o sistema
operacional verifica se a lista de controle autoriza
a sua operao.
A maioria dos sistemas operacionais suporta
o conceito de grupo, onde cada processo tem um
identificador do usurio (UID) e um identificador de
grupo (GID19). Assim, as entradas da ACL podem
receber as duas identificaes, ficando mais fcil
agrupar permisses a um grupo de usurios especficos.

INDICAO DE LEITURA COMPLEMENTAR


Para saber mais sobre Princpios de Segurana de
Sistemas Operacionais leia o Captulo 9 (p. 439-499)
do livro de:
TANENBAUM, Andrew S. Sistemas operacionais modernos. 2. ed. Rio deJaneiro: Prentice Hall Brasil, 2007.
Tanenbaum apresenta os principais tipos de quebra
de segurana existentes, dando exemplos em sistemas operacionais especficos e mostrando algumas
solues para evit-las.
Para saber mais sobre Princpios de Segurana de
Sistemas Operacionais leia o Captulo 19 (p. 418-434)
do livro de:

Tema 4

| Segurana de sistemas operacionais

SILBERSCHATZ, Abraham; GAGNE, Greg; GALVIN, Peter.


Sistemas operacionais com java - conceitos e aplicaes.Traduo da 6. ed. Rio de Janeiro: Campus, 2005.
Em Sistemas Operacionais com Java, a segurana
apresentada com suas possibilidades aplicveis
apresentando exemplos em sistema operacional
especfico (Windows) e na linguagem Java.

PARA REFLETIR
Mesmo com as mais sofisticadas implementaes
de segurana adotadas, de nada adiantaria se o
usurio deixasse sua senha escrita sobre a mesa;
se a sala do servidor for de fcil acesso a qualquer
um. Acredita, ento, que possvel um responsvel
pela segurana de um sistema desconsiderar o
elemento humano? Pense a respeito.

153

154

Fundamentos em Sistemas Operacionais

4.3 Cases Windows


Resumo Histrico
Em 1981 a Microsoft lanou o MS-DOS (Microsoft Disk Operating System) como seu primeiro
sistema operacional para a linha de computadores pessoais IBM-PC. Era um sistema operacional
de 16 bits, monoprogramvel, monousurio e sem
interface grfica (sua interface com o usurio era
atravs de linha de comando).
Em 1985, a Microsoft lanou a primeira verso do MS-Windows, com uma interface grfica
para o usurio, mas mantendo o MS-DOS como
sistema operacional. As verses posteriores do MSWindows, como o Windows 3.1/3.11, 95/98 e Me,
apesar de diversas inovaes e melhorias, sempre
estiveram associadas ao velho MS-DOS.
Sabia que at a verso Windows Me, mesmo
que surgisse uma janela para a autenticao do
usurio, bastava pressionar o boto cancelar para
usar o sistema?
Na dcada de 90, mais precisamente em
1993, a Microsoft lanou o Windows NT, um sistema
operacional completamente reescrito sem qualquer
relao com a arquitetura do MS-DOS, mas oferecendo compatibilidade parcial com as aplicaes
herdadas. Tratava-se de um sistema operacional de
32 bits, com multitarefa preemptiva, multithread,
memria virtual e suporte a mltiplos processadores simtricos.
O Windows NT acompanhou a evoluo da
famlia MS-DOS Windows e com isso passaram
a existir duas linhas de sistemas operacionais da
Microsoft com arquiteturas completamente distintas, normalmente uma para uso corporativo e outra
para usurios domsticos.

Tema 4

| Segurana de sistemas operacionais

Nesse contexto destacamos o Windows 2000,


uma evoluo da verso 4 do Windows NT que trouxe como maior novidade a substituio do conceito
de domnio, existente no NT, pelo Active Directory,
que funciona como um servio de diretrios.
Em 2001, a Microsoft integrou as duas linhas
de sistemas operacionais lanando o Windows XP,
introduzindo uma nova interface grfica, mas com
a mesma arquitetura do Windows 2000.

Figura 62 - Evoluo do Windows (at o XP)


Fonte - MACHADO, Francis B.; MAIA, Luiz Paulo. Arquitetura de sistemas
operacionais. 4. ed. Rio de Janeiro: LTC, 2007, p. 268.

Dois anos depois, em 2003, foi lanado o


Windows Server 2003, como um sucessor do Windows 2000, tendo o mesmo ncleo do Windows XP,
mas com algumas funes desabilitadas, o que permitia um funcionamento mais estvel do sistema.

155

156

Fundamentos em Sistemas Operacionais

Essa verso do Windows possui ferramentas


de administrao funcionais como o Gerenciador de
Recursos do Servidor de Arquivos, que um conjunto de ferramentas que permite aos administradores entender, controlar e gerenciar a quantidade
e os tipos de dados armazenados nos servidores;
alm do DFS (Sistemas de Arquivos Distribudos)
que contm as novas tecnologias modernas de replicao, gerenciamento e compactao para assegurar o uso eficiente da largura de banda.
O Windows 2003 possui 4 verses: Web Edition, Standard Edition, Enterprise Edition e Datacenter Edition, cada uma com a finalidade de atender uma demanda especfica do mercado.
Em 2006, foi lanado o Windows Vista com
centenas de novas funes e uma nova interface
grfica, mas sendo um sistema operacional pesado,
composto de mais de 100 milhes de linhas de cdigo e que exige bastante do hardware da mquina.
O Vista trouxe modificaes significativas
na parte grfica. Com a ferramenta Aero, deixa o
desktop mais agradvel aos olhos com as janelas
transparentes que trazem uma movimentao mais
suave; e com o Flip 3D, possvel apresentar todas
as janelas abertas com um efeito cascata 3D. Alm
disso, traz o WDDM (Windows Display Drivers Model) um modelo de driver bsico para suportar as
mudanas na interface do Windows Vista. Baseia-se
em processamento paralelo na GPU (Graphics Processing Unit Unidade de Processamento Grfico).
Destacamos tambm que com o User Mode
Driver (Modo de driver de usurio) as instalaes e
utilizaes de drivers so feitas em modo usurio,
especialmente dedicado a perifricos e memria USB.
Em 2008 a Microsoft lanou, em substituio
ao Windows Server 2003, o Windows Server 2008,
projetado para fornecer recursos para outros sistemas

Tema 4

| Segurana de sistemas operacionais

em uma rede. A verso Standard Edition suporta


2-way e 4-way SMP (multiprocessamento simtrico)
e at 4 Gb de memria RAM em sistemas de 32
bits e 32 Gb em sistemas de 64 bits. Suas verses
disponveis so: Web Edition, Datacenter Edition,
Enterprise Edition e o Windows Server 2008 R2.
O Windows Server 2008 R2 foi construdo
com base no Windows Server 2008 e trata-se de
uma nova verso do sistema operacional diferentemente do Windows Server 2003 R2 que foi uma
atualizao. O R2 o primeiro a ser lanado apenas
na verso de 64 bits.
Um dos recursos interessantes nesta verso
o server-core, uma opo de instalao do sistema operacional que possui algo em torno de apenas
10% do seu cdigo em GUI (Graphic User Interface
Interface Grfica do Usurio), o restante fica todo
operativo em linha de comando. Com o server core
instalado com os binrios bsicos necessrios para
o funcionamento de um servidor corporativo, menos
portas virtuais so abertas tornando o software mais
seguro, compacto e com maior throughput.
O R2 traz ainda a nova tecnologia Hyper V
que ir competir com a VMware na virtualizao de
mquinas.
Finalmente, em 2009, a Microsoft lanou o
Windows 7, a verso mais recente de seu sistema
operacional. Apesar das grandes semelhanas na
interface com o Windows Vista, muitas mudanas
no cdigo ocorreram que alteraram imensamente a
forma como o programa se comporta, melhorando
o desempenho geral da mquina.
O Windows 7 atende necessidade cada vez
maior de solues de controle de aplicativos com a
introduo do AppLocker, um mecanismo simples e
flexvel que permite aos administradores especificar
exatamente o que pode ser executado em seu
ambiente de trabalho.

157

158

Fundamentos em Sistemas Operacionais

O Windows 7 vem nas verses Starter, Home


Basic, Home Premium, Professional e Ultimate.
No Windows 7 destacamos ainda a Criptografia de Unidade de Disco BitLocker que ajuda a
evitar que um intruso possa inicializar um outro
sistema operacional ou utilizar uma ferramenta de
acesso ilegal para romper as protees de sistemas
e arquivos do Windows 7; e o DirectAcces, com o
qual a produtividade dos usurios remotos incrementada, permitindo que eles acessem, de forma
contnua e segura, a rede corporativa sempre que
tiverem uma conexo com a internet, sem necessitar de uma conexo VPN (Virtual Private Network
rede virtual privada).
Apesar de o Windows 7 ser uma verso posterior ao Windows Vista, ele se comporta com um
desempenho superior em um mesmo hardware.
Pense sobre isso e divulgue suas concluses no
AVA para discusso.
O Windows 2000
Vamos utilizar a verso 2000 do Windows
para analisarmos seus modelos, componentes e
estrutura interna por ter sido ainda uma verso voltada
para o mundo corporativo, mas que foi utilizada
para compor a verso XP.
O Windows 2000 um sistema operacional
multiprogramvel de 32 bits, que suporta escalonamento preemptivo, multithread, multiusrio, multiprocessamento simtrico (SMP) e memria virtual.
O sistema estruturado combinando o modelo de
camadas e cliente-servidor.

Tema 4

| Segurana de sistemas operacionais

159

Figura 63 - Verses do Windows 2000


Fonte - MACHADO, Francis B.; MAIA, Luiz Paulo. Arquitetura de sistemas
operacionais. 4. ed. Rio de Janeiro: LTC, 2007, p. 269.

Estrutura do sistema operacional


O Windows 2000 composto de duas partes, o
prprio sistema operacional (que executa no modo
kernel) e os subsistemas do ambiente (que executa
no modo usurio). O kernel um ncleo tradicional
e os subsistemas no so usuais, pois so processos
isolados que ajudam os programas do usurio a
realizar certas funes do sistema.

Figura 64 - A estrutura do Windows 2000 (bastante simplificada). A rea sombreada o executivo.


As caixas indicadas por D so os drivers de dispositivos.
Fonte - TANENBAUM, Andrew S. Sistemas operacionais modernos. 2. ed. Rio deJaneiro: Prentice
Hall Brasil, 2007, p. 582.

160

Fundamentos em Sistemas Operacionais

A Camada de Abstrao de Hardware


Um dos objetivos do Windows 2000 (e do
Windows NT) era tornar o sistema operacional porttil em vrias plataformas, assim a Microsoft se
empenhou em ocultar grande parte das dependncias de mquina em uma fina camada chamada HAL
(hardware abstraction layer - camada de abstrao
de hardware).
Conhece o filme 2001 uma Odisseia no Espao?
Voc lembra o nome do computador no filme?
A funo da HAL apresentar a uma parte
do sistema operacional dispositivos abstratos de
hardware desprovidos de especificidades e idiossincrasias das quais o hardware real est repleto.
A Camada do Ncleo
Acima da camada de abstrao de hardware encontram-se uma camada que contm o que a
Microsoft chama de ncleo e tambm os drivers de
dispositivos.
O propsito do ncleo tornar o sistema
operacional completamente independente do hardware e, como consequncia, altamente porttil.
O Executivo
Acima do ncleo e dos drivers de dispositivo
est a parte superior do sistema operacional, chamada executivo. O executivo escrito em C, independente da arquitetura e pode ser transportado para novas mquinas com relativamente pouco
esforo. Nele esto todos os conjuntos de gerenciadores do sistema (Gerenciadores de objeto, de
entrada/sada, de processos, de memria, de segurana e de cache).

Tema 4

| Segurana de sistemas operacionais

Subsistemas do Ambiente
O Windows 2000 suporta trs diferentes APIs:
win32, POSIX e OS/2. Cada uma dessas interfaces tem
uma lista pblica de chamadas de biblioteca que programadores podem usar.
O trabalho das DLL (Dynamic Link Libraries
bibliotecas de ligaes dinmicas) e dos subsistemas
do ambiente implementar a funcionalidade da interface pblica, ocultando dos programas de aplicao,
a verdadeira interface da chamada ao sistema.
Gerncia do Processador
O Windows 2000 suporta dois tipos de poltica de escalonamento: circular (Round Robin) com
prioridades e escalonamento por prioridades.
O cdigo de escalonamento implementado
no kernel do sistema. No existe uma rotina nica
para o escalonador, pois seu cdigo est espalhado
pelo kernel. Essas rotinas so chamadas de kernel
dispatcher.
Processos e threads
No Windows 2000 um processo criado
quando um outro processo faz a chamada CreateProcess da win32. Essa chamada solicita um procedimento, no modo usurio, no ncleo32.dll, que
cria um processo em vrias etapas realizando mltiplas chamadas ao sistema e outras tarefas.
Sistema de Arquivos
O Windows 2000 suporta trs tipos de sistemas de arquivos: FAT, FAT32 e NTFS. Este ltimo
foi projetado especialmente para o Windows NT e
posteriormente atualizado para o Windows 2000
oferecendo alto grau de segurana e desempenho.

161

162

Fundamentos em Sistemas Operacionais

Cada sistema determina como os arquivos e


diretrios so organizados, o formato dos nomes
dos arquivos, desempenho e segurana de acesso
aos dados.
Voc pode converter o sistema de arquivos
de um disco de FAT32 para NTFS mesmo depois do
Windows instalado. Mas no pode fazer o inverso.
Verifique qual o seu sistema de arquivo.
O Registro
O Windows precisa controlar uma grande
quantidade de informao sobre o software, o hardware e os usurios. Desde o Windows 95, quase
toda informao necessria para iniciar, configurar
o sistema e adapt-lo ao usurio foi reunida em um
banco de dados central chamado registro.
Ele parecido com um pequeno sistema de
arquivos, com uma coleo de diretrios, cada um
contendo subdiretrios ou entradas.
Voc pode acessar o seu registro executando
o comando regedit. Mas, cuidado, qualquer alterao inadvertida poder interromper o funcionamento
normal de seu sistema.

INDICAO DE LEITURA COMPLEMENTAR


Para saber mais sobre Cases Windows, leia o Captulo
11 (p. 571-637) do livro de:
TANENBAUM, Andrew S. Sistemas operacionais
modernos. 2. ed. Rio de Janeiro: Prentice Hall
Brasil, 2007.

Tema 4

| Segurana de sistemas operacionais

Tanembaun apresenta em seu livro caractersticas


particulares com cdigos e implementaes no ambiente do sistema operacional Windows.
Para saber mais sobre Cases Windows, leia a Parte 4,
Captulo 14 (p. 267-285) do livro de:
MACHADO, Francis B.; MAIA, Luiz Paulo. Arquitetura de
sistemas operacionais. 4. ed. Rio de Janeiro: LTC, 2007.
Neste livro pode ser encontrada a explicao detalhada de cada etapa da gerncia feita na camada
do executivo.

PARA REFLETIR
Com tantas verses j lanadas do Windows, acredita que valha a pena utilizar sempre a verso mais
recente do sistema operacional? Reflita sobre isso.

163

164

Fundamentos em Sistemas Operacionais

4.4 Cases Linux


Resumo Histrico

20 Projeto
criado em 1984 por
Richard Stallman
e organizado pela
Free Software Foundation, corporao
que busca promover
softwares livres e a
licena GPL (General
Public License).

O Linux um sistema operacional que teve seu


desenvolvimento iniciado por um estudante finlands
chamado Linus Torvalds, que realizou um processo
pessoal de aprimoramento do Kernel do Minix, um
sistema operacional do tipo Unix escrito por Andrew
Tannenbaum, chamando esta vertente de Linux como
abreviao de Linuss Minix.
Linus possua um PC 386 e o MS-DOS no satisfazia suas pretenses como usurio. Essa foi sua
motivao.
O desenvolvimento do Kernel Linux contou com
a colaborao de diversos programadores que auxiliaram no desenvolvimento do seu ncleo. Sua primeira
verso oficial foi lanada em outubro de 1991 e no
incio de 1992 se integrou ao projeto GNU20 com o objetivo de produzir um sistema operacional completo.

Figura 65 - Evoluo do UNIX


Fonte - MACHADO, Francis B.; MAIA, Luiz Paulo. Arquitetura de sistemas operacionais. 4. ed. Rio
de Janeiro: LTC, 2007, p. 288.

Tema 4

| Segurana de sistemas operacionais

S o kernel Linux no era suficiente para se


ter um sistema funcional, portanto, empresas, organizaes e grupos de pessoas decidiram distribuir o
Linux juntamente com outros programas essenciais
(editores de texto, planilhas, banco de dados,
ambiente de programao e outros).
Uma distribuio, portanto, um sistema
operacional com o kernel Linux e outros softwares
de aplicao, formando um conjunto mantido por
organizaes comerciais, como a Red Hat, Ubuntu,
SUSE e Mandriva, bem como por projetos comunitrios como Debian e Gentoo, que montam e testam seus conjuntos de software antes de disponibiliz-los ao pblico.
J usou alguma distribuio Linux? Procure uma
distribuio Live CD e faa um teste em seu micro.
Como o Linux e normalmente a maior parte
dos softwares embutidos em distribuies so livres, qualquer pessoa ou organizao pode criar e
disponibilizar, comercialmente ou no, a sua prpria distribuio.
UNIX Linux
Como j foi visto, o Linux um sistema operacional tipo UNIX que durante seu processo de desenvolvimento diversos programas e funcionalidade do sistema UNIX foram implementados no Linux.
O sistema segue o padro POSIX que o
mesmo usado por sistemas UNIX, assim, chamadas
ao sistema, programas, bibliotecas, algoritmos e
estruturas internas de dados so muitos similares
s do UNIX.
O Linux um sistema multiprogramvel, multiusurio, que suporta mltipos processadores e
implementa memria virtual.

165

166

Fundamentos em Sistemas Operacionais

Interpretador de Comandos
O Linux pode utilizar diversas interfaces grficas, as mais conhecidas so o KDE (K Desktop Environment) e o GNOME (GNU Network Object Model
Environment). No entanto, os programadores e usurios mais experientes ainda preferem uma interface em linha de comando chamada de interpretador
de comando ou shell. Este possui uma performance
muito mais rpida, mais poderosa e facilmente extensvel. Existem diversos shells para Linux, os mais
conhecidos so o sh, bash, ksh, entre outros.
Estrutura do Sistema Operacional
A maior parte do ncleo do Linux escrita
em Linguagem C e o restante em assembly, o que
confere ao sistema uma grande portabilidade para
diferentes plataformas de hardware.

Figura 66 - Componentes do sistema Linux


Fonte - SILBERSCHATZ, Abraham; GAGNE, Greg; GALVIN, Peter. Sistemas operacionais com java
- conceitos e aplicaes.Traduo da 6. ed. Rio de Janeiro: Campus, 2005, p. 478.

O sistema Linux composto por trs blocos


de cdigo principais, alinhados com as implementaes mais tradicionais do UNIX.
O kernel responsvel pela manuteno de
todas as abstraes importantes do sistema operacional, incluindo elementos como a memria virtual
e os processos.

Tema 4

| Segurana de sistemas operacionais

As bibliotecas do sistema definem um conjunto padro de funes por meio das quais as
aplicaes podem interagir com o kernel, e que
implementam grande parte da funcionalidade do
sistema que no necessita dos privilgios totais do
cdigo do kernel.
Os utilitrios do sistema so aplicativos que
executam tarefas de gerncia parte e especializadas. Alguns so executados uma nica vez, outros
(os daemons) podem manter-se em execuo permanente em tarefas como: responder a conexes
de rede, aceitar pedidos de login ou atualizar arquivos de log.
Mdulos do Kernel
O kernel Linux capaz de carregar e descarregar sees arbitrrias de cdigo de kernel sob
demanda. Esses mdulos so executados em modo
kernel privilegiado, assim, tm acesso total a todos
os recursos da mquina.
Teoricamente, no existem restries ao que
um mdulo kernel pode fazer. Normalmente, um mdulo pode implementar um driver de dispositivo, um
sistema de arquivos ou um protocolo de rede.
O fato de o cdigo fonte do Linux ser livre,
faz com que seja bastante conveniente ter mdulos
de kernel. Reflita sobre isso e divulgue suas concluses no AVA para discusso.
Sistemas de Arquivos
O Linux manteve o modelo de sistemas de
arquivo do UNIX, onde um arquivo no necessariamente tem de ser um objeto armazenado em disco
ou buscado em um servidor remoto. Ele pode ser
qualquer entidade capaz de tratar a entrada ou sada de um fluxo de dados.

167

168

Fundamentos em Sistemas Operacionais

O kernel Linux lida com todos esses diversos


tipos de arquivos atravs de uma camada de software, o sistema de arquivos virtual (VFS Virtual
File System), que oculta os detalhes da implementao de qualquer tipo de arquivo.
Ao contrrio do Windows, o Linux suporta
uma grande diversidade de sistemas de arquivo,
atualmente o mais utilizado o ext4 (sucessor do
ext3 o mais utilizado at ento).
Uma curiosidade, o sistema ext4 suporta
volumes de at 1exabyte21! Consegue
imaginar?
Processos e Threads
21 Para quem no
consegue imaginar:
1024 mega = 1 giga.
1024 giga = 1 tera.
1024 tera = 1 peta.
1024 peta = 1 exa.
22 Conforme j
visto no item 2.2

Processos no Linux/Unix so chamados de


daemons e so responsveis por tarefas administrativas no sistema. So criados automaticamente
durante a inicializao do sistema.
possvel criar processos foreground e background. No primeiro caso existe uma comunicao
direta do usurio com o processo durante sua execuo. J um processo background22 no pode ter
interao com o usurio.
O kernel Linux lida de modo simples com a diferena entre processos e threads: utiliza exatamente
a mesma representao interna para ambos. Um thread apenas um processo que, por acaso, compartilha
o mesmo espao de endereamento de seu pai.
Comunicao entre Processos
O mecanismo padro do Linux para informar
um processo sobre a ocorrncia de um evento
um sinal. Ele pode ser enviado a partir de qualquer processo para qualquer outro (com algumas
restries).

Tema 4

| Segurana de sistemas operacionais

Existe apenas um nmero limitado de sinais


disponveis e eles no podem carregar informaes:
s o fato de que ocorreu um sinal disponibilizado
para um processo. Os sinais no precisam ser gerados necessariamente por outro processo, o kernel
tambm gera sinais intermitentes.
Troca de Dados entre Processos
O Linux oferece uma srie de mecanismos
para trocar dados entre processos. O mecanismo
de pipe padro do UNIX possibilita que um processo filho herde um canal de comunicao de seu
pai. Dados escritos em uma extremidade do pipe
podem ser lidos na outra.
Outro mtodo de compartilhar dados entre
processos a memria compartilhada que oferece
um modo extremamente rpido de comunicar grandes ou pequenos volumes de dados quando utilizada em conjunto com qualquer outro mecanismo
que sincronize sua comunicao.
Reveja os mecanismos no item 2.3
Comunicao entre Processos
Gerncia de Mdulos
Para carregar um mdulo, no basta apenas
carregar seu contedo binrio para a memria do
kernel. O sistema deve certificar-se de que todas as
referncias feitas pelo mdulo a smbolos do kernel
ou pontos de entrada sejam atualizadas.
O Linux lida com essa atualizao de referncias dividindo a tarefa de carga do mdulo em duas
sees separadas: a gerncia de sees de cdigo
do mdulo na memria do kernel e o tratamento
dos smbolos aos quais os mdulos tm permisso
para fazer referncia.

169

170

Fundamentos em Sistemas Operacionais

Gerncia do Processador
A gerncia do processador no Linux utiliza
dois tipos de poltica de escalonamento: circular
(Round Robin) com prioridades e escalonamento
por prioridades.
A poltica de escalonamento tem a finalidade
de permitir o compartilhamento da CPU por vrios
processos interativos e batch, alm de oferecer baixos
tempos de respostas para os usurios interativos.
Gerncia de Memria
H dois componentes na gerncia de memria
no Linux. O primeiro lida com a alocao e liberao
de memria fsica: pginas, grupos de pginas e
pequenos blocos de memria. O segundo trata a
memria virtual, que a memria mapeada no espao de endereamento dos processos em execuo.
O alocador de pginas no Linux responsvel pela alocao e liberao de todas as pginas
fsicas e capaz de alocar intervalos de pginas
fisicamente contguas sob demanda.
O sistema de memria virtual do Linux
responsvel pela manuteno do espao de endereamento visvel para cada processo. As pginas
virtuais so criadas sob demanda e o sistema de
memria virtual gerencia a carga dessas pginas do
disco ou seu retorno de volta para o disco conforme
necessrio.
Uma importante tarefa do sistema de memria
virtual relocar as pginas da memria fsica para
o disco quando existe a necessidade de memria
(swap). O Linux no implementa o swapping de
processo integral, ele utiliza exclusivamente o
mecanismo mais recente de paginao.

Tema 4

| Segurana de sistemas operacionais

Registro de Driver
Uma vez carregado, um mdulo no constituir mais que uma regio isolada da memria, a
menos que ele faa conhecer ao resto do kernel
qual nova funcionalidade ele proporcionar.
O kernel mantm tabelas dinmicas de todos
os drivers conhecidos e oferece um conjunto de
rotinas de modo a permitir drivers serem acrescentados ou removidos a qualquer momento.

INDICAO DE LEITURA COMPLEMENTAR


Para saber mais sobre Cases Linux leia o Captulo
21 (p. 474-507) do livro de:
SILBERSCHATZ, Abraham; GAGNE, Greg; GALVIN, Peter.
Sistemas operacionais com java - conceitos e aplicaes.Traduo da 6. ed. Rio de Janeiro: Campus, 2005.
Neste livro existe um captulo dedicado especificamente ao Linux, ao contrrio de muitos que tratam
do Unix em geral. Possui uma abordagem prtica
com exemplos que facilitam a compreenso.
Para saber mais sobre Cases Linux, leia o Captulo
15 (p. 286-304) do livro de:
MACHADO, Francis B.; MAIA, Luiz Paulo. Arquitetura de
sistemas operacionais. 4. ed. Rio de Janeiro: LTC, 2007.
Atravs de ilustraes que auxiliam na compreenso
dos tipos de processos, os autores Francis e Luiz
Paulo apresentam o assunto de forma clara e com
exemplos de situaes vividas por usurios.

171

172

Fundamentos em Sistemas Operacionais

PARA REFLETIR
Com tantas distribuies Linux disponveis pense a
respeito de quais deveriam ser os critrios de um
usurio para decidir qual distribuio utilizar.

RESUMO
No contedo 4.1 vimos sobre a gerncia do sistema de arquivo do sistema operacional no que
diz respeito s implementaes e organizaes de
arquivos e diretrios que influi diretamente na segurana dos dados de um sistema computacional.
Na sequncia, no 4.2, conhecemos juntos sobre os
princpios de segurana de sistemas operacionais.
Estudamos itens que devem ser levados em considerao a respeito de segurana em um projeto
sobre sistemas operacionais e solues existentes
para garanti-la.
J no contedo 4.3 foram apresentados particularidades do Windows, em que, alm de um pequeno
resumo histrico, analisamos implementaes da
estrutura do sistema windows e pudemos ver os
detalhes de cada componente de suas camadas.
Por fim, no 4.4 estudamos sobre cases Linux, vimos
como se deu o incio de seu desenvolvimento e
sua relao com o UNIX, alm de suas gerncias e
particularidades.

Fundamentos em Sistemas Operacionais

Referncias
CAMPOS, Augusto. O que uma distribuio linux.
BR-Linux. Florianpolis, maro de 2006. Disponvel
em <http://br-linux.org/faq-distribuicao>. Acesso em
16 de novembro de 2010.
DEITEL, Paul; DEITEL, Harvey; CHOFFNES, David. Sistemas operacionais. 3. ed. Prentice Hall Brasil, 2005.
FELITTI, Guilherme. Windows Vista versus XP: quais
as principais diferenas. IDG NOW! So Paulo, janeiro
de 2007, atualizada em setembro de 2008. Disponvel em <http://idgnow.uol.com.br/computacao_pessoal/2007/01/22/idgnoticia.2007-01-22.9923517569/>.
Acesso em 19 de nov. de 2010.
GUIMARES, ngelo de Moura; LAGES, Newton A.
de Castilho. Introduo cincia da computao. 8.
ed. Rio de Janeiro: LTC, 1990.
JONES, M. Tim. Anatomia do sistema de arquivos linux.
IBM. Longmont, Colorado, Outubro de 2007. Disponvel em <http://www.ibm.com/developerworks/br/
library/l-linux-filesystem/>. Acesso em 18 de novembro
de 2010.
MACHADO, Francis B.; MAIA, Luiz Paulo. Arquitetura de
sistemas operacionais. 4. ed. Rio de Janeiro: LTC, 2007.
MICROSOFT, Como comparar. 2010. <http://www.microsoft.com/brasil/servidores/windowsserver2003/
compare.mspx> (19.11.2010).
OFICINA DA NET. Anderson Villela. O que Windows
Vista. <http://www.oficinadanet.com.br/artigo/259/o_
que_e_windows_vista>. Acesso em 19 de nov.
de 2010.

173

174

Fundamentos em Sistemas Operacionais

SILBERSCHATZ, Abraham; GAGNE, Greg; GALVIN, Peter.


Sistemas operacionais com java - conceitos e aplicaes. Traduo da 6. ed. Rio de Janeiro: Campus,
2005.
SILVA, Roberto Rodrigues. Linux - sistema de arquivos. Viva o Linux. Maring, Novembro de 2006.
Disponvel em <http://www.vivaolinux.com.br/artigo/
Linux-Sistema-de-arquivos>. Acesso em 17 de
novembro de 2010.
SINGH, Simon. O livro dos cdigos a cincia do
sigilo do antigo Egito criptografia quntica. 7
ed. Rio de Janeiro: Record, 2008.
TANENBAUM, Andrew S.; WOODHULL, Albert S.
Sistemas operacionais: projeto e implementao. 2.
ed. Porto Alegre: Bookman, 2000.
TANENBAUM, Andrew S. Sistemas operacionais
modernos. 2. ed. Rio de Janeiro: Prentice Hall Brasil,
2007.
VILLELA, Anderson. O que Windows Vista. Oficina da Net. So Paulo, abril de 2007. Disponvel
em <http://www.oficinadanet.com.br/artigo/259/o_
que_e_windows_vista>. Acesso em 19 de nov. de
2010.
Windows Server 2008 R2 - Aprenda na prtica. Brasil, 2010. Microsoft |Technet. Disponvel em: <http://
technet.microsoft.com/pt-br/ee388302.aspx>. Acesso
em 19 de Nov. de 2010.

Fundamentos em Sistemas Operacionais

Anotaes

175

176

Fundamentos em Sistemas Operacionais

Anotaes