Professional Documents
Culture Documents
Fundamentos em
Sistemas Operacionais
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
CDU : 004.451
Banco de Imagens:
Shutterstock
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.
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
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
PRINCPIOS E ESTRUTURAS
DE SISTEMAS OPERACIONAIS
Parte 1
14
Tema 1
15
16
Tema 1
17
18
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
19
20
Tema 1
21
22
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
23
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).
24
Tema 1
25
26
Tema 1
27
28
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
29
30
Tema 1
PARA REFLETIR
Diante do que foi visto, existe um tipo de sistema
operacional que melhor atenderia a todo tipo de
aplicao? Reflita sobre isso.
31
32
Tema 1
33
34
Tema 1
35
36
Tema 1
37
38
Tema 1
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.
39
40
Tema 1
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
Sistemas Monolticos;
Sistemas em Camadas;
Tema 1
43
44
Tema 1
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
Tema 1
47
48
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
49
Gerenciamento de Processos
52
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
Tema 2
| Gerenciamento de processos
55
56
Tema 2
| Gerenciamento de processos
57
2 Alguns preferem
chamar de estado
de espera.
58
Tema 2
| Gerenciamento de processos
59
60
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.
61
62
Tema 2
| Gerenciamento de processos
63
64
Tema 2
| Gerenciamento de processos
65
66
Tema 2
| Gerenciamento de processos
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
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.
69
70
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
Tema 2
| Gerenciamento de processos
73
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
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
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
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
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
79
80
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 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
Tema 2
| Gerenciamento de processos
83
84
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
85
86
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
90
Tema 3
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.
92
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.
Tema 3
93
94
Tema 3
95
96
10 Tratamos de
sistemas fracamente
e fortemente acoplados no item 1.2
de nosso estudo.
Tema 3
97
98
Tema 3
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
Tema 3
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
Tema 3
103
104
Tema 3
105
11 Gera a partir
de um ou mais
mdulos-objeto um
programa executvel
pelo sistema operacional.
106
12 O PC-XT da IBM
(com o processador
8088) empregava
uma verso
mais fraca desse
esquema.
Tema 3
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.
107
108
Tema 3
109
110
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.
Tema 3
111
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
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
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
Tema 3
115
116
14 Page fault
quando a pgina
que contm o
endereo referenciado no est na
memria principal.
Tema 3
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
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
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
Tema 3
121
Figura 44 - Controladoras
Fonte - MACHADO, Francis B.; MAIA, Luiz Paulo. Arquitetura de sistemas operacionais. 4. ed. Rio
de Janeiro: LTC, 2007, p. 235.
122
Tema 3
123
124
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
125
126
Tema 3
127
128
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.
Tema 3
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
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
132
Tema 4
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
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.
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
135
136
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
137
138
Tema 4
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
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.
Tema 4
141
142
Tema 4
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
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.
Tema 4
145
146
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.
Tema 4
147
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.
148
Tema 4
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
Tema 4
151
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).
152
19 Conforme visto
acima.
Tema 4
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
Tema 4
155
156
Tema 4
157
158
Tema 4
159
160
Tema 4
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
Tema 4
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
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).
Tema 4
165
166
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.
Tema 4
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
Tema 4
169
170
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
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.
171
172
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.
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
Anotaes
175
176
Anotaes