Escolar Documentos
Profissional Documentos
Cultura Documentos
Fundamentos de Sistemas
Operacionais
2010
Captulo
0
A
EVOLUO
DOS
SISTEMAS
OPERACIONAIS ...................................................................... 04
0.1
A
Primeira
Gerao
(1945-1955):
Vlvulas
e
Painis
com
Plugs ........................................................ 04
0.2
A
Segunda
Gerao
(1955
1965):
Transistores
e
Sistemas
Batch .................................................... 05
0.3
A
Terceira
Gerao
(1965
1980):
CIs
e
Multiprogramao .............................................................. 08
0.4
A
Quarta
Gerao
(1980-1990):
Computadores
Pessoais .................................................................. 11
0.5
1990/97:
a
Era
Windows ................................................................................................................ 13
Captulo
1
VISO
GERAL ........................................................................................................................ 19
1.1
Introduo .....................................................................................................................................
19
1.2
Funes
bsicas ............................................................................................................................. 19
1.3
Mquina
de
nveis .......................................................................................................................... 20
1.4
Tipos
de
Sistemas
Operacionais ....................................................................................................... 22
1.4.1
SOs
monoprogramveis/monotarefa ................................................................................ 22
1.4.2
SOs
multiprogramveis
/
multitarefa ................................................................................ 23
1.4.2.1
Sistemas
Batch ............................................................................................... 25
1.4.2.2
Sistemas
de
Tempo
compartilhado ................................................................... 25
1.4.2.3
Sistemas
de
Tempo
Real ................................................................................. 26
1.4.3
Sistemas
com
Mltiplos
Processadores
............................................................................. 26
1.4.3.1
Sistemas
fortemente
acoplados ........................................................................ 27
1.4.3.2
Sistemas
fracamente
acoplados ....................................................................... 28
Captulo 2 - CONCEITOS DE HARDWARE E
SOFTWARE ........................................................................... 31
2.1
Introduo ..................................................................................................................................... 31
2.2
Hardware ....................................................................................................................................... 31
2.2.1
Processador ................................................................................................................... 31
2.2.2
Memria ........................................................................................................................ 32
2.2.3 Memria
Cache .............................................................................................................. 32
2.2.4 Memria Principal e
Secundaria ....................................................................................... 32
2.2.5 Dispositivos e
Entrada/Sada ............................................................................................ 33
2.2.6 Barramentos ou
Bus ........................................................................................................ 33
2.2.7
Pipeline .......................................................................................................................... 35
8.1 Funes
................................................................................................................................ 102
8.2 Critrios de escalonamento
...................................................................................................... 102
8.3 Escalonamentos No-Preemptivos e Preemptivos
........................................................................ 103
Captulo 9 - Gerncia de Memria / Memria Virtual
.......................................................................... 107
9.1
Introduo
....................................................................................................................... 107
9.2
Funes
........................................................................................................................... 107
9.3
Alocao Contgua Simples
................................................................................................. 108
9.4
Segmentao de Programas
............................................................................................... 109
9.5
Alocao Particionada Esttica
............................................................................................ 110
9.6
Alocao Particionada Dinmica
........................................................................................... 111
9.7
Estratgias de Alocao de Partio
..................................................................................... 112
9.8
Swapping
......................................................................................................................... 113
9.9
Memria Virtual
................................................................................................................ 113
9.10
Algoritmos de substituio de pginas
.................................................................................. 116
Captulo 10 - Gerncia de Sistemas de Arquivos
.................................................................................. 118
10.1
Estrutura
de
..................................................................................................... 118
10.2
Sistemas
de
alocao
de
...................................................................................... 118
10.3
Gerncia
de
espao
................................................................................................... 119
10.4
Proteo
de
............................................................................................................ 120
Diretrios
arquivos
livre
acesso
Bibliografia ........................................................................................................................
..................... 121
Captulo 0
A EVOLUO DOS SISTEMAS OPERACIONAIS
Os sistemas operacionais tm sido historicamente amarrados
arquitetura dos computadores nos quais iriam rodar. Por isso, veremos como
eles evoluiram nas sucessivas geraes de computadores. Esse mapeamento
entre geraes de computadores e geraes de sistemas operacionais
admissivelmente imaturo, mas tem algum sentido.
O primeiro computador digital verdadeiro foi projetado pelo
matemtico ingls Charles Babbage (1792-1871). Embora Babbage tenha
5
.
E n tra d a
S is te m a
d a F ita
d e F ita s
S a d a
d e F ita
L e ito r a d e
Im p re sso ra
c a rt e s
1401
(a)
7094
(b)
(c)
(f)
1401
(d)
(e)
$END
Dados para o
Programa
$RUN
$LOAD
Programa Fortran
$FORTRAN
$JOB, 10, 429754, TANENBAUM
Job 3
Job 2
Parties da Memria
Job 1
Sistema
Operacional
11
13
OS/2 e, especialmente, sobre o OS/2 2.0, a primeira verso 32 bits real que
viria a aparecer, finalmente, em 1992.
Para contundir ainda mais as coisas, enquanto a IBM
posicionava o OS/2 como o futuro sistema operacional para todos os usurios,
a Microsoft posicionava o OS/2 como um topo de linha, apenas para os
aplicativos misso crtica e baseados em servidor. Em vez disto, a Microsoft
comeou a falar sobre o OS/2 3.0 (no confundir com o posterior IBM OS/2
Warp 3.0), que adicionaria segurana e suporte avanados a
multiprocessador, sendo capaz de executar aplicativos Windows e Posix
diretamente. Neste cenrio, o Windows NT era o ncleo sobre o qual se
apoiariam o DOS, o Windows, o OS/2 e o Posix.
As duas companhias finalmente separaram suas estratgias no
incio de 1991, com Jim Cannavino, da IBM, e Bill Gates, da Microsoft,
brigando como um casal durante um divrcio litigioso. O OS/2 conquistou um
forte nicho em algumas grandes aplicaes corporativas, auxiliado por sua
estabilidade e robustez, comparadas ao Windows 3.x. Mais tarde, a IBM faria
uma ltima tentativa de fazer do OS/2 o principal sistema operacional com
seu OS/2 Warp 3.0, mais orientado ao consumidor comum e lanado no final
de 1994. Ele venderia milhes de cpias mas no diminuiria a grande
inclinao da indstria pelo Windows.
A Microsoft viria a transformar seu antigo "OS/2 3.0" no Windows NT 3.
1, que foi lanado em 1993 sem o suporte grfico ao OS/2 e recebido,
inicialmente, como um sistema operacional para servidores de aplicativos,
concorrendo, principalmente, com o OS/2 da IBM.
Para a maioria dos usurios de PCs, a Microsoft ofereceu o Wlndows 3.1
avanado no final de 1991, que adicionava uma melhor integrao de
aplicativos, recursos arrastar-e-soltar e uma maior estabilidade. No incio dos
anos 90, ele se tornou o padro dominante para os aplicativos para PC e a
Microsoft ocupou o papel de lder na definio das especificaes multimdia.
A Microsoft viria a dominar muitas reas mais na computao
por esta mesma poca. Seus produtos Visual Basic e Visual C++ venceram a
grande concorrncia da Borland no domnio de linguagens de programao.
Alm disto, os aplicativos Microsoft - liderados pelo pacote Office, contendo o
Word, o Excel, o PowerPoint e, mais tarde, o Access tomaram grande parte do
mercado de programas aplicativos (o que foi auxiliado, em parte, pelos
atrasos nas verses do Lotus 1-2-3, WordPerfect e DBASE para Windows,
sendo que este ltimo foi adquirido pela Borland).
Neste perodo, o Macintosh, da Apple, continuava a crescer e
expandir-se e encontrou nichos nas artes grficas, na multimdia e na
educao. Mas, na maioria das empresas e rgos governamentais, o
principal sistema comercial era aquele que seguia os padres do PC original.
16
quela poca, o termo compatvel com IBM j tinha sado de moda, para ser
substitudo pelo Processador como a principal pea descritiva de hardware.
A era do 286 j havia terminado no final de 1988, aps a
introduo do 386SX da Intel, um Processador que possua os componentes
internos de 32 bits do 386 e um barramento de dados 16 bits como o 286, o
que o tornava barato.
Este e o 386 original rebatizado como 386DX
dominaram as vendas de computadores durante anos. Em abril de 1989, a
Intel apareceu com seus processadores 486.
Com 1,2 milhes de
transistores, o 486 era, efetivamente, uma verso mais rpida e mais
refinada do 386 somada a um co-processador matemtico que executava
todos os aplicativos escritos para o 386 sem quaisquer problemas.
Desta vez, ningum esperou pela IBM ou pela Compaq.
Dezenas de desenvolvedores se apressaram para tornar disponveis suas
mquinas 486 o mais rpido possvel aps a introduo da Intel, e estas
mquinas tinham uma velocidade de execuo 50 vezes maior que o IBM PC
original.
A Intel introduziu seu Processador Pentium de 60 MHz em
maro de 1993, mas no eram apenas os processadores que continuavam a
avanar. Os discos rgidos ficavam cada vez maiores e mais velozes. E a
tecnologia de exibio grfica progrediu das placas de vdeo de "buffer de
quadro" para as aceleradores grficas, que trabalhavam diretamente com o
Windows a fim de aumentar os tempos de resposta de tela e melhorar os
grficos em geral.
Neste perodo, as redes locais corporativas realmente comearam a
decolar. A IBM promovia, ento, o Office Vision, que deveria ser executado
em todas as plataformas SAA, inclusive sobre o OS/2. E praticamente todos
os gigantes do Desenvolvimento de sistemas tinham suas estratgias
multiplataforma para a automao de escritrios, como o All-In-One da DEC.
Quase todos fracassariam dentro de um espao de tempo relativamente
curto. Quem realmente alcanou o sucesso foram os servidores de PC, que
abrigavam seus prprios dados e podiam fazer ligaes com grandes bases
de dados corporativas. No fronte do hardware, o Compaq Systempro,
introduzido em 1989, liderava os grandes aplicativos que antes viviam em
minicomputadores e outros grandes sistemas. No lado do software, chegava
ao mercado o SQL, e companhias como a Oracle e a Sybase comeavam a ter
como alvos os desenvolvedores para PC. As ferramentas de desenvolvimento
rpido de aplicativos, ou RAD, logo facilitaram a criao de boas interfaces
com o usurio para o acesso a dados corporativos.
O correio eletrnico (email) aceito no dia-a-dia das
corporaes com produtos, como o cc:Mail, mais tarde adquirido pela Lotus, e
mais um punhado de concorrentes menores. Em dezembro de 1989, a Lotus
mudou a frmula com o Lotus Notes, o primeiro aplicativo de "groupware".
17
20
Captulo 1
VISO GERAL
1.1 Introduo:
21
22
u su rio s
p ro g ra m a d o re s
e a n a li s ta s
p ro g ra m a s,
s is te m a s e
a p l i c a ti v o s
U s u r io s
S i s te m a O p e r a c i o n a l
m e m r ia
d is c o s
H a rdw a re
fi t a s
U CP
im p r e ss o ra s
m o n i to r e s
23
u su rio s
S is te m a O p e r a c i o n a l
H a rd w a re
A p l ic a ti v o s
U ti l i t r i o s
S is te m a O p e r a c io n a l
Lin g u a g e m d e M q u in a
M ic r o p ro g r a m a o
C i r c u i to s E l e tr n i c o s
T ip o s d e
S is te m a s O p e r a c io n a i s
S is te m a s
M o n o p r o g r a m v e is /
M o n o ta r e fa
S is te m a s
M u l ti p r o g r a m v e i s /
M u l ti t a r e f a
S is te m a s
c o m M l ti p l o s
P ro ce ssa d o re s
25
U CP
M e m r ia
P r in c ip a l
p ro g ra m a /
ta r e f a
D is p o s itiv o s
de E/S
26
p ro g ra m a /
ta r e f a
p ro g ra m a /
ta r e f a
U CP
M e m r ia
P r in c ip a l
D i s p o s it iv o s
d e E/S
p ro g ra m a /
ta r e f a
p ro g ra m a /
ta r e fa
p ro g ra m a /
ta r e f a
Monousuri
o
Dois ou mais
usurios
No disponvel
27
Multiprogramao /
Multitarefa
Monousuri
o
Multiusurio
S is te m a s
M u l ti p r o g r a m v e i s /
M u l tita r e f a
S is te m a s
B a tch
S is te m a s d e
Te m p o C o m p a r tilh a d o
S is te m a s d e
Te m p o R e a l
processador em pequenos intervalos, chamados de fatia de tempo (timeslice). Caso o tempo disponibilizado no seja suficiente para a concluso do
programa, este interrompido pelo SO e substitudo por um outro, enquanto
fica aguardando por uma nova fatia de tempo. Este ambiente d a impresso
que todo o sistema esta dedicado, exclusivamente, para cada usurio.
Sistemas
Fortemente
Acoplados
Sistemas
Fracamente
Acoplados
M e m r ia
P r in c ip a l
U CP
D i s p o s itiv o s
de E/S
U CP
D is p o s itiv o s
de E/S
31
lin k d e co m u n ic a o
U CP
M e m r ia
P r in c ip a l
U CP
D is p o s itiv o s
d e E/S
M e m r ia
P r in cip a l
D i s p o s itiv o s
de E/S
33
Captulo 2
CONCEITOS DE HARDWARE E SOFTWARE
2.1 Introduo:
Neste captulo sero apresentados brevemente, conceitos bsicos de
hardware e software, para compreenso dos captulos seguintes.
2.2 Hardware:
Um sistema computacional um conjunto de circuitos eletrnicos
interligados, formado por Processador ou unidade central de processamento,
memria principal e dispositivos de entrada/sada.
P ro ce ssa d o r / U C P
U n id a d e L g ic a
e A r i tm t i c a
U n id a d e d e
C o n tr o le
M e m r ia
P r in c ip a l
R e g is tr a d o r e s
D i s p o s itiv o s
de E/S
34
2.2.2 Memria:
A memria composta por unidades de acesso chamadas clulas,
sendo cada clula composta por um determinado nmero de bits.
Atualmente, a grande maioria dos computadores utiliza o byte (8 bits) como
tamanho de clula.
Memrias volteis precisam estar sempre energizadas para manter
suas informaes, o que no acontece com as no-volteis.
0
in s tr u o o u d a d o
e n d e re o s
16
2 -1
c lu la = 8 b its
R e g i s tr a d o r e s
M e m r ia C a c h e
m a io r
ca p a cid a d e d e
a r m a z e n a m e n to
M e m r ia P r in c ip a l
m a io r c u s to e
v e lo cid a d e
d e a ce sso
M e m r ia S e c u n d r ia
36
M e m r ia
P r in c ip a l
U C P
B a r r a m e n to p r o ce s sa d o r - m e m r ia
B a r r a m e n to d e E / S
A d a p ta d o r
B a r r a m e n to d e E / S
A d a p ta d o r
M e m r ia
P r in c ip a l
U CP
B a r r a m e n to p r o c e s s a d o r - m e m r i a
B a r r a m e n to
d e b a ck p la n e
A d a p ta d o r
A d a p ta d o r
B a r r a m e n to d e E / S
B a r r a m e n to d e E / S
A d a p ta d o r
37
2.2.7 Pipeline:
uma tcnica que permite ao processador executar mltiplas
instrues paralelamente em estgios diferentes.
P1
P2
P3
P4
U n id a d e d e
b u sca d a
in s tr u o
A n a lis a d o r
da
in stru o
U n id a d e d e
b u sca d o s
dados
U n id a d e d e
e xe cu o d a
in stru o
P1
P2
P3
P4
I n s t r. 1 I n s t r. 2
I n s t r. 3
I n s t r. 4
I n s t r. 5
I n s t r. 6
I n s t r. 7
I n s t r. 1 I n s t r. 2
I n s t r. 3
I n s t r. 4
I n s t r. 5
I n s t r. 6
I n s tr. 1 I n s t r. 2
I n s t r. 3
I n s t r. 4
I n s t r. 5
I n s tr. 1 I n s t r. 2
I n s t r. 3
I n s t r. 4
te m p o
38
Captulo 3
CONCORRNCIA
3.1 Introduo:
Os sistemas operacionais podem ser vistos como um conjunto de
rotinas que executam concorrentemente de forma ordenada. A possibilidade
de o processador executar instrues em paralelo com operaes de E/S
permite que diversas tarefas sejam executadas concorrentemente.
Concorrncia o princpio bsico para projeto e implementao dos sistemas
operacionais multiprogramveis.
Os SOs monoprogramveis eram limitados por seus recursos no serem
utilizados de forma eficiente, limitando seu desempenho. Muitos recursos
(alguns de alto custo), permaneciam ociosos por longos perodos de tempo.
O disperdcio dos SOs monoprogramveis pode ser representado na
Figura 3.1a, pois enquanto uma leitura em disco realizada, o processador
permanece ocioso. O tempo de espera relativamente longo, pois as
operaes de E/S so lentas comparadas s operaes dos processadores.
E/S
U CP
E/S
U C P
liv r e
(a ) S i s te m a M o n o p r o g r a m v e l
te m p o
( b ) S i s te m a M u l ti p r o g r a m v e l
te m p o
Prog1
Alta
Prog2
Baixa
Prog3
Baixa
Poucas
5 min
Muitas
15 min
Muitas
10 min
50 Kb
No
No
No
100 Kb
No
Sim
No
80 Kb
Sim
No
Sim
Monoprogramao
17 %
30 %
Multiprogramao
33 %
67 %
40
Utilizao de disco
Utilizao de impressora
Tempo
total
processamento
Taxa de processamento
33%
33 %
30 min.
67 %
67%
15 min.
6 progr. / hora
12 progr. / hora
de
41
Via Software
do programa interrompido
Tabela 3.4 Mecanismo de interrupo
As interrupes so decorrentes de eventos assncronos (no
relacionados instruo do programa). Estes eventos podem ser
imprevisveis e podem ocorrer mltiplas vezes. Isso possibilitaria a ocorrncia
de mltiplas interrupes simultneas. Par evitar esta situao, a rotina de
tratamento inibir as demais interrupes. Assim, as interrupes posteriores
seriam ignoradas durante a execuo da rotina de tratamento, ou seja, no
receberiam tratamento. Interrupes com estas caractersticas so chamadas
de interrupes mascarveis.
Alguns processadores no permitem que interrupes sejam
desabilitadas. Neste caso, o processador precisa saber a ordem em que
ocorreram as interrupes concorrentes. Para isso, as interrupes devem
possuir prioridades, em funo de sua importncia. Normalmente, um
dispositivo denominado controlador db pedidos de interrupo, o
responsvel por avaliar as interrupes geradas e suas prioridades.
M e m r ia
P r in c ip a l
U CP
C o n tr o la d o r
D is p o s itiv o s d e E / S
44
45
.
M e m r ia
P r in c ip a l
g ra v a o
U CP
g ra v a o
C o n tr o la d o r
B u ff e r
l e i tu r a
l e itu r a
3.5 Spooling:
A tcnica de spooling (simultaneous peripheral operation on-line),
introduzida no final dos anos 50, visa aumentar o grau de concorrncia e a
eficincia dos SOs.
Semelhante tcnica de buffering, a tcnica de spooling utiliza uma
rea em disco como se fosse um grande buffer. Neste caso, os dados podem
ser lidos ou gravados em disco, enquanto programas so executados
concorrentemente.
Esta tcnica esta presente na maioria dos SOs, utilizada no
gerenciamento de impresso. No momento em que um comando de
impresso executado, as informaes a serem impressas so gravadas
46
S is te m a O p e r a c io n a l
Pro g ra m a
A r q u iv o
de Spoo l
Im p re sso ra
47
u s u r io A
u s u r io C
c d i g o r e e n tr a n te
u s u r io B
u s u r io D
r e a d e d a d o s d o u s u r io A
r e a d e d a d o s d o u su r io B
r e a d e d a d o s d o u s u r io C
r e a d e d a d o s d o u s u r io D
M e m r ia P r in ci p a l
48
Captulo 4
ESTRUTURA DO SISTEMA OPERACIONAL
4.1 Introduo:
O Sistema Operacional formado por um conjunto de rotinas que
oferecem servios aos usurios, s suas aplicaes, e ao prprio sistema. Este
conjunto de rotinas denominado ncleo do sistema ou kernel.
No confundir o ncleo do sistema com aplicaes, utilitrios ou
interpretadores de comando, que acompanham o SO. (Figura 4.1). As
aplicaes so utilizadas pelos usurios e no mostram os detalhes da
interao com o sistema. Os utilitrios, como compiladores e editores de
texto, e os interpretadores de comando, permitem aos usurios,
administradores e desenvolvedores, uma interao amigvel com o sistema.
A p l ic a ti v o s
U ti li t r io s
N c le o d o
S is te m a O p e r a c io n a l
H a rd w a re
Tratamento
de
interrupes
anteriormente, em detalhes;
excees:
explicados
50
S y s te m C a l l
A p lic a o
N c le o d o
S is te m a O p e r a c io n a l
B ib li o te c a
H a rd w a re
Funes
Gerncia
threads
System Calls
de
processos
Gerncia de memria
Gerncia
arquivos
de
sistema
Gerncia de dispositivos
54
55
a p li c a o
a p lica o
M o d o u su rio
M o do kern el
S y s te m c a ll
H a rdw a re
VM
VM
VM
Ap
Ap
Ap
SO
SO
SO
H V
H V
H V
G e r n c i a d e M q u in a s V i r tu a i s
H a rd w a re
58
A p lic a o
M q u in a V i r tu a l J a v a
S is te m a O p e r a cio n a l
H a rd w a re
M o d o u su r io
M o do kernel
M ic r o k e r n e l
H a rd w a re
62
Captulo 5
PROCESSO
5.1 Introduo:
O processo a base para implantao de um SO multiprogramvel. O
processador executa instrues, sem distinguir qual programa se encontra
em execuo. A gerncia de um ambiente multiprogramvel uma funo
exclusiva do SO, que deve controlar a execuo dos diversos programas e o
uso concorrente do processador. Assim, um programa deve estar associado a
um processo.
O termo processo surgiu aps os SOs multiprogramveis, sendo
utilizado no lugar de tarefa ou job, por grande parte da literatura tcnica.
O SO deve controlar os processos. Atravs dos processos, um programa
pode alocar recursos, compartilhar dados, trocar informaes e sincronizar
sua execuo. Nos SOs multiprogramveis, os processos so executados
concorrentemente, compartilhando, entre outros recursos, o uso do
processador, da memria e dos dispositivos de E/S. Em sistemas
multiprocessados, alm da concorrncia de processos pelo uso do
processador, existe tambm a execuo simultnea de processos nos
diferentes processadores.
Aqui abordaremos os principais conceitos relacionados aos processos.
5.2 Estrutura do Processo:
Inicialmente, pode-se entender um processo, como um programa em
execuo, porm, com um conceito mais abrangente. Imaginemos como os
SOs multiprogramveis atendem os diversos usurios e ainda mantm
informaes a respeito dos vrios programas executados ao mesmo tempo.
Em um sistema multiusurio, cada usurio associado a um processo.
Ao executar um programa, o usurio tem a impresso de possuir o
processador e demais recursos exclusivamente para si. Na verdade, o
processador executa o programa de um usurio durante um intervalo de
tempo, e no instante seguinte poder estar executando um outro programa
de outro usurio.
Para que esta troca ocorra sem traumas, necessrio que as
informaes do programa interrompido sejam guardadas, para que no seu
retorno, nada seja perdido. Todas informaes importantes e necessrias
execuo de um programa fazem parte de um processo.
63
C o n te x t o d e
S o f tw a r e
C o n te x t o d e
H a rd w a re
Pro g ra m a
E sp a o d e
E n d e r e a m e n to
O
contexto
de
hardware
fundamental
nos
sistemas
multiprogramveis, onde o revezamento da CPU permite que os processos
sejam interrompidos e posteriormente restaurados. A troca de um processo
por outro no processador, executada pelo SO,
chamada de mudana de contexto, e consiste em salvar o contedo dos
registradores do processo que esta saindo e carreg-los com os valores
referentes ao do novo processo que ser executado (Figura 5.2).
5.2.2 Contexto de software:
No contexto de software so especificadas as caractersticas e limites
dos recursos que podem ser alocados pelo processo, como o numero Maximo
de arquivos abertos simultaneamente, prioridade de execuo e tamanho do
buffer dos dispositivos de E/S. Muitas destas caractersticas so determinadas
no momento da criao do processo, enquanto outras podem ser alteradas
posteriormente.
A maior parte das informaes do contexto de software do processo so
provenientes de um arquivo do SO, conhecido como arquivo de contas. Neste
arquivo, gerenciado pelo SO, so especificados os limites dos recursos que
cada processo pode alocar. Outras informaes presentes no contexto de
software so geradas dinamicamente ao longo da execuo dos processos.
65
.
S iste m a O p e r a cio n a l
P ro ce sso A
Pro ce sso B
e x e c u ta n d o
S a lv a r e g is tra d o r e s d o
P ro ce ss o A
C a r r e g a r e g is tr a d o r e s d o
P r o ce ss o B
e x e c u ta n d o
S a lv a r e g is tra d o r e s d o
P r o ce ss o B
C a r r e g a r e g is tr a d o r e s d o
P ro ce ss o A
e x e c u ta n d o
Identificao
Cada processo criado pelo sistema recebe uma identificao nica
(chamada de PID Process IDentification), representada por um
nmero e em alguns casos tambm atravs de um nome.
atravs do PID que o SO e outros processos podem fazer
referncia a qualquer processo existente, consultando e at
alterando suas caractersticas.
O processo possui tambm a identificao do usurio ou do
processo que o criou (owner). Cada usurio possui uma
identificao tambm nica no sistema (representada pelo UID
User Identification), que atribuda ao processo no momento de
sua criao. A UID permite implementar modelos de segurana,
onde apenas os objetos (processos, arquivos, reas de memria,
etc) que possuam um UID autorizado, podem ser acessados.
Quotas
66
Privilgios
Os privilgios ou direitos definem as aes que um processo pode
fazer em ralao a ele mesmo, aos demais processos e ao SO.
Privilgios que afetam o prprio processo permitem que suas
caractersticas possam ser alteradas, como prioridade de
execuo, limites alocados na memria principal e secundaria,
etc. J os privilgios que afetam os demais processos permitem,
alem da alterao de suas prprias caractersticas, alterar as de
outros processos.
Privilgios que afetam o sistema so mais amplos e poderosos,
pois esto relacionados gerncia do ambiente, como a
desativao do sistema, alterao de regras de segurana,
criao de outros processos privilegiados, modificao de
parmetros de configurao do sistema, entre outros. A maioria
dos SOs possui uma conta de acesso com todos privilgios
disponveis, afim de o administrador gerenciar o SO. Nos
sistemas Unix, existe a conta root, no Windows 2000 a conta
administrador e no Open VMS a conta system.
67
.
nom e
P ID
o w n e r (U ID )
r e g i s tr a d o r e s
g e r a is
p rio r id a d e d e
e xe cu o
d a ta / h o r a
d e cr ia o
r e g i s tr a d o r P C
C o n te x t o d e
S o f tw a r e
C o n te x to d e
H a rd w a re
r e g i s tr a d o r S P
te m p o d e
p ro ce ssa d o r
q u o ta s
Pro gra m a
p r iv il g io s
r e g i s tr a d o r
d e s ta tu s
E sp a o d e
E n d e r e a m e n to
e n d e r e o s d e m e m r ia
p r in c ip a l a lo ca d o s
68
p o n te ir o s
E s ta d o d o p r o c e s s o
N o m e d o p ro ce sso
P r io r id a d e d o p r o c e s s o
R e g i s tr a d o r e s
L i m i te s d e m e m r ia
L i s ta d e a r q u iv o s a b e r to s
..
..
..
..
69
L i s ta d e
p ro ce sso s
e m e s ta d o
d e p r o n to
.
..
..
..
.
.
..
..
..
.
PCB# 5
PCB# 1
..
..
.
..
.
..
..
.
..
.
L i s ta d e
p ro ce sso s
e m e s ta d o
d e e sp e ra
PCB# 9
PCB# 2
..
..
.
..
.
PCB#4
E s ta d o d e E x e c u o
b
a
E s ta d o d e E s p e r a
E s ta d o d e P r o n to
71
E s ta d o d e E x e cu o
E s ta d o d e E s p e r a
E s ta d o d e P r o n to
E s ta d o d e E s p e r a
E s ta d o d e P r o n to
r e s i d e n te
n o r e s id e n te
E s ta d o d e E x e c u o
E s ta d o d e E s p e r a
E s ta d o d e T r m i n o
E s ta d o d e P r o n to
E s ta d o d e C r ia o
P ro ce sso A
P ro ce sso C
Pro ce sso B
P ro ce sso D
P ro ce sso E
75
C o n te x t o
d e h a rd w a re
C o n te x t o
d e h a rd w a re
Th re a d 1
Th re a d 2
Th rea d 3
C o n te x t o d e
s o f tw a r e
C o n te x to
d e h a rd w a re
E sp a o d e
e n d e r e a m e n to
76
(a ) P r o c e s s o F o r e g r o u n d
e n tr a d a
s a d a
te r m i n a l
te r m i n a l
(b ) P r o ce s s o B a c k g r o u n d
e n tr a d a
s a d a
a r q u iv o
d e e n tr a d a
a r q u iv o
d e s a d a
s a d a d o
P ro ce sso A
e n tr a d a d o
Pro ce sso A
s a d a d o
Pro ce sso B
e n tr a d a d o
P ro ce sso B
P ro ce sso A
P ro ce ss o B
auditoria e segurana;
servios de rede;
contabilizao do uso de recursos;
contabilizao de erros;
gerncia de impresso;
gerncia de jobs match;
temporizao;
comunicao de eventos;
interface de comandos.
78
E/S
E/S
U CP
U CP
(a ) C P U - b o u n d
te m p o
(b ) I/ O - b o u n d
te m p o
5.10 Sinais:
Sinais so um mecanismo que permite notificar processos de eventos
gerados pelo sistema operacional ou por outros processos. O uso de sinais
fundamental para a gerncia de processos, alm de possibilitar a
comunicao e sincronizao entre processos.
Por exemplo, ao se teclar simultaneamente as teclas Ctrl e C, para
interromper um programa, o SO gera um sinal ao processo, sinalizando a
ocorrncia do evento. O processo identificando o sinal, uma rotina especial de
tratamento executada (Figura 5.14).
79
in te r r u p o
s in a l
S is te m a O p e r a c i o n a l
[c tr l- C ]
Fig. 5.14 Uso de Sinais
Pro ce sso
80
P ro ce sso
P ro ce sso
S in a i s
S is te m a O p e r a c io n a l
I n te r r u p e s
E xce e s
H a rdw a re
81
Captulo 6
THREAD
6.1 Introduo:
At o final dos anos 70, os SOs suportavam processos com apenas um
thread (monothread), ou seja, um processo com apenas um programa
fazendo parte de seu contexto. Em 1979, introduziu-se o conceito de
processos ligthweight (peso leve), onde o espao de endereamento de um
processo era compartilhado por vrios programas. Porm, esta idia no foi
utilizada comercialmente, e apenas na metade da dcada de 80, com o SO
Mach, ficou clara a separao entre os conceitos de processo e thread.
Com o conceito de mltiplos threads (multithread), pode-se projetar
aplicaes concorrentes de forma eficiente, pois um processo pode ter
diferentes partes de seu cdigo sendo executadas em paralelo. Como os
threads de um mesmo processo compartilham o mesmo espao de
endereamento, a comunicao entre threads no envolve mecanismos
lentos de intercomunicao entre processos, aumentando assim o
desempenho da comunicao.
O desenvolvimento de programas que exploram os benefcios da
programao multithread no simples. A presena do paralelismo introduz
um novo conjunto de problemas, como a comunicao e sincronizao de
threads. Existem diferentes modelos para a implementao de threads em
um SO, onde desempenho, flexibilidade e custos devem ser avaliados.
Atualmente, o conceito de multithread pode ser encontrado em
sistemas como Sun Solaris e Windows 2000. A utilizao comercial de
sistemas multithreads tem crescido devido ao aumento de popularidade de
sistemas com multiprocessadores, do modelo cliente-servidor w dos sistemas
distribudos.
6.2 Ambiente Monothread:
Um programa uma seqncia de instrues, compostas de desvios,
repeties e chamadas a procedimentos e funes. Em um ambiente
monothread, um processo suporta apenas um programa em seu espao de
endereamento. Neste ambiente, aplicaes concorrentes so implementadas
apenas com o uso de mltiplos processos independentes ou subprocessos.
O uso de processos independentes e subprocessos permite dividir uma
aplicao em partes que podem trabalhar de forma concorrente. Por exemplo,
um usurio pode estar lendo seus e-mails antigos, ao mesmo tempo em que
estaria enviando e recebendo e-mails atuais. Co o uso de mltiplos processos,
cada funcionalidade do software implicaria na criao de um novo processo
para atend-lo, aumentando o desempenho da aplicao (Figura 6.1).
82
Su b p ro cesso s
P r o c e s s o s I n d e p e n d e n te s
T h re a d
Th re a d
Th re a d
83
C o n te x to
d e h a rd w a re
C o n te x t o
d e h a rd w a re
Th re a d 1
Th re a d 2
T h re a d 3
C o n te x to d e
s o f tw a r e
C o n te x to
d e h a rd w a re
Esp a o d e
e n d e r e a m e n to
85
.
P r o ce ss o
V a r i v e is
P r o g r a m a P r in c ip a l
T h re a d _ 1
PC
SP
C a ll Su b _ 1
C o n te x to d e
H a rd w a re
...
E sp a o d e
e n d e r e a m e n to
T h re a d _ 2
Sub_1
Ret
PC
SP
T h re a d _ 3
Sub_2
PC
SP
C o n te x to d e
H a rd w a re
F im
C o n te x to d e
H a rd w a re
C a ll Su b _ 2
...
Ret
dispositivos de E/S. Por outro lado, cada thread representa uma unidade de
escalonamento independente. Neste caso, o sistema no seleciona um
processo para a execuo, mas sim um de seus threads.
A grande diferena entre aplicaes mono e multithread est no uso do
espao de endereamento. Processos independentes e subprocessos
possuem espaos de endereamento individuais e protegidos, enquanto
threads compartilham o espao dentro de um mesmo processo. Isso permite
que o compartilhamento de dados entre threads de um mesmo processo seja
mais simples e rpido, se comparado a ambientes monothreads.
Como threads de um mesmo processo compartilham o mesmo espao
de endereamento, no existe qualquer proteo no acesso memria,
permitindo que um thread possa alterar facilmente dados de outros. Para que
os threads trabalhem de forma cooperativa, fundamental que a aplicao
implemente mecanismos de comunicao e sincronizao entre threads, a
fim de garantir o acesso seguro aos dados compartilhados na memria.
O uso de multithreads proporciona uma serie de benefcios. Programas
concorrentes com mltiplos threads so mais rpidos do que programas
concorrentes implementados com mltiplos processos, pois operaes de
criao, troca de contexto e eliminao dos threads geram menor overhead
(Tabela 6.1). Como os threads dentro de um processo dividem o mesmo
espao de endereamento, a comunicao entre eles pode ser realizada de
forma rpida e eficiente. Alm disso, threads em um mesmo processo podem
compartilhar facilmente outros recursos, como descritores de arquivos,
temporizadores, sinais, atributos de segurana, etc.
Implementao
Processo
Processo
Lightweight
Thread
Tempo de criao
(s)
1700
350
Tempo de sincronizao
(s)
200
390
52
66
especialmente
Th re a d d e
e n tr a d a
B u ff e r
T h re a d d e
e xib i o
T h re a d d e
g ra v a o
88
P r o ce ss o se rvid o r
S o l i c i ta e s
Th re a d
T h re a d
Th re a d
P r o ce s s o c lie n te
P r o c e s s o c lie n te
P r o c e s s o c lie n te
Arquitetura
Modo Usurio
Modo Usurio
Modo Kernel
Modo Kernel
Modo Kernel
Modo Hbrido
Scheduler Activations
Th re a d 4
Th re a d 3
Th re a d 2
Th rea d 1
Th re a d 0
M odo
u su rio
B ib lio te c a
K ern el
M odo
k ern el
91
Th re a d 4
Th re a d 3
Th re a d 2
Th rea d 1
Th re a d 0
M odo
u su rio
B ib lio te c a
M odo
k ern el
K ern el
Implementao
Subprocessos
Threads em Modo
Kernel
Threads em Modo
Usurio
Operao 1 (s)
11.300
948
Operao 2 (s)
1.840
441
34
37
TM U 5
TM U 4
TM U 3
TM U 2
TM U 1
TM U 0
M odo
u su rio
B ib lio te ca
TM K 0
TM K 1
TM K 2
TM K 3
M odo
k ern el
K ern el
Thread 4
Thread 3
Th re a d 2
Th re a d 1
Thread 0
M odo
u su rio
B ib lio te c a
K e rn el
M odo
k ern el
95
Captulo 7
Sincronizao e Comunicao entre processos
7.1 Introduo:
Com o surgimento dos SOs multiprogramveis, tornou-se possvel
estruturar aplicaes de maneira que partes diferentes do cdigo do
programa pudessem ser executadas concorrentemente. Este tipo de
aplicao foi denominada de aplicao concorrente.
Em sistemas com um nico processador, os processos alternam sua
execuo segundo escalonamento estabelecido pelo SO e mesmo assim
aplicaes concorrentes obtm melhoras em seu desempenho. Em sistemas
com mltiplos processadores, estendem-se estas vantagens com a
possibilidade do paralelismo na execuo de instrues.
Os processos de uma aplicao concorrente podem compartilhar
recursos, como arquivos registros, dispositivos de E/S e reas de memria.
Este compartilhamento pode gerar situaes indesejveis, capazes de
comprometer a execuo das aplicaes. Para evitar este tipo de problema,
os processos devem ter suas aes sincronizadas, atravs de mecanismos
oferecidos pelo SO.
7.2 Aplicaes Concorrentes:
Em aplicaes concorrentes, pode ser necessrio que os processos
comuniquem-se entre si. Esta comunicao pode ser implementada atravs
de variveis compartilhadas na memria principal ou trocas de mensagens.
Mais uma vez, necessrio que haja sincronizao entre a execuo dos
processos concorrentes.
A figura 7.1 apresenta um exemplo onde dois processos concorrentes
compartilham um buffer para troca de informaes. Aqui, um processo s
poder gravar dados no buffer se ele estiver vazio, e s poder ler um dado
do buffer caso haja um dado a ser lido. Em ambos os casos, os processos
devero esperar at que o buffer esteja pronto para as operaes de
gravao e leitura.
S in c r o n iz a o
P ro ce sso
g ra va d o r
P ro ce ss o
l e i to r
dado
B u ff e r
96
PROGRAMA B;
.
.
.
.
.
END.
97
P ro ce sso
p rin cip a l
PARBEGIN
Comando_1;
Comando_2;
.
.
Comando_n;
PAREND
Pro ce sso 1
P ro ce sso 2
P ro ce ss o n
P ro ce sso
p rin cip a l
Comando
READ
READLN
:=
READ
READLN
:=
WRITE
WRITE
Saldo Arquivo
1.000
1.000
1.000
1.000
1.000
1.000
800
1.300
Valor Dep/Ret
*
-200
-200
*
+300
+300
-200
+300
Saldo Memria
1.000
1.000
800
1.000
1.000
1.300
800
1.300
99
Processo B
X: = X 1;
Processo B
Load x, Rb
Sub 1,Rb
Store Rb,x
Comando
Load X,Ra
Add 1,Ra
Load X,Rb
Sub 1,Rb
Store Ra,X
Store Rb,X
X
2
2
2
2
3
1
Ra
2
3
*
*
3
*
Rb
*
*
2
1
*
1
100
Starvation:
7.5.B
Sincronizao condicional:
Desabilitao de interrupes
Faz com que o processo, antes de entrar em sua regio crtica desabilite
todas as interrupes externas e a reabilite aps deixar a regio critica. Como
a mudana de contexto de processos s pode ser realizada atravs de
interrupes, o processo que as desabilitou ter acesso exclusivo garantido.
Apesar de simples, esta soluo apresenta limitaes. Primeiramente, a
multiprogramao fica comprometida, uma vez a concorrncia entre
processos entre processos tem como base o uso da interrupo. Um caso
mais grave poderia ocorrer caso um processo desabilitasse as interrupes e
no tornasse a habilit-las. Neste caso, o sistema provavelmente teria seu
funcionamento comprometido.
Em sistemas com mltiplos processadores esta soluo torna-se
ineficiente devido ao tempo de propagao quando um processador sinaliza
aos demais que as interrupes devem ser habilitadas ou desabilitadas.
Ainda, o mecanismo de clock do sistema implementado atravs de
interrupes, portanto esta soluo deve ser implementada com muito
critrio.
Apesar destas limitaes, esta soluo pode ser til quando se deseja
que a execuo de parte do ncleo do SO ocorra sem que haja interrupo.
102
Instruo test-and-set
Muitos processadores possuem uma instruo especial onde um
processo apenas l o contedo de uma varivel, e armazena seu valor em
outra rea podendo neste caso fazer todas as manipulaes necessrias e
devidas sem precisar de prioridades ou esperar que a varivel original seja
liberada. Esta instruo chamada de test-and-set e
tem como caracterstica ser executada sem interrupo, ou seja, trata-se de
uma instruo invisvel. Assim garante-se que dois processos no manipulem
uma varivel compartilhada ao mesmo tempo, possibilitando a
implementao da excluso mtua.
O uso desta instruo especial oferece vantagens, como a simplicidade
de implementao da excluso mtua em mltiplas regies crticas e o uso da
soluo em arquiteturas com mltiplos processadores. A principal
desvantagem a possibilidade do starvation, pois a seleo do processo para
o acesso ao recurso arbitrria.
7.5.2 Solues de software:
Diversos algoritmos foram propostos na tentativa de implementar a
excluso mtua atravs de solues de software. As primeiras solues
tratavam apenas da excluso mtua para dois processos e, inicialmente,
apresentavam alguns problemas. A evoluo ocorreu at uma soluo
definitiva para a excluso mtua para N processos.
Alm da excluso mtua, que soluciona os problemas de
compartilhamento de recursos, existem outros fatores fundamentais para a
soluo de problemas de sincronizao:
- O nmero de processadores e o tempo de execuo dos processos.
- Um processo fora de sua regio crtica no pode impedir que outros
processos entrem em suas prprias regies crticas.
- Um processo no pode permanecer indefinidamente esperando para entrar
em sua regio crtica.
Todas as solues que foram apresentadas para contornar estes
inconvenientes apresentavam problemas da ESPERA OCUPADA, Na espera
ocupada, todas vezes que um processo tenta entrar em sua regio crtica ele
so impedidas por j existir um outro processo usando o recurso, fazendo o
sistema ficar parado esperando que o mesmo tenha acesso a este respectivo
recurso.
7.6 Semforos:
103
104
P r o c e s s o d e s e j a e n tr a r
n a r e g i o c r ti c a
U P (S ) - p r o c e s s o s a i
d a r e g i o c r ti c a
L ib e ra p r o ce s s o
d a fi l a d e e s p e r a
Pro ce sso a ce ssa
a r e g i o c r tic a
F ila d e e s p e r a
d e p ro ce sso s
7.7 Monitores:
Monitores so mecanismos de sincronizao de alto nvel que tornam
mais simples o desenvolvimento de aplicaes concorrentes. Este conceito foi
proposto em 1972.
Basicamente, so mecanismos de sincronizao compostos de um
conjunto de procedimentos, variveis e estrutura de dados definidos dentro
de um mdulo cuja finalidade a implementao automtica da excluso
mtua entre seus procedimentos. Somente um processo pode estar
executando um dos procedimentos do monitor em um determinado instante.
Toda vez que um processo chamar um destes procedimentos, o monitor
verifica se j existe outro processo executando algum procedimento do
monitor. Caso exista, o processo fica aguardando a sua vez ate que tenha
permisso para execut-lo.
105
M o n i to r
P ro c. 1
P r o c. 2
F ila d e e n tra d a
P r o c. n
I n i c ia li z a o
d e v a r i v e is
P ro ce sso A
P ro ce ss o A
P ro ce ss o B
P ro ce sso B
M a ilb o x
o u P o rt
107
R e cu rso 1
a lo ca d o a o
Pro ce sso A
R e cu rso 2
R e cu rso 1
P r o ce ss o B
R e cu rso 2
a lo ca d o a o
P ro ce sso B
Pro ce sso B
s o licita o
R e cu rso 1
109
Captulo 8
Gerncia do Processador
8.1 Funes:
110
Critrios de escalonamento:
8.3
10
Processo A
10 u.t.
-
18
Processo B
8 u.t.
27
Processo C
9 u.t.
Processo B Processo C
-
17
27
Processo A
A
B
C
10
1
1
1
7
u.t.
A
B
C
4
14
17 u.t.
Captulo 9
Gerncia de Memria / Memria Virtual
9.1
Introduo:
Funes:
9.3
X
registrador
rea para
programas
Sistema
Operacional
Programa do
Usurio
117
9.4
Segmentao de Programas:
4 KB
Sistema
Operacional
Mdulo Principal
rea de
Overlay
Cadastramento
4 KB
Impresso
2 KB
1 KB
2 KB
118
rea livre
Tcnica de Overlay
A definio das reas de overlay funo do programador, atravs de
comandos especficos da linguagem de programao utilizada.
A grande vantagem da utilizao desta tcnica consiste em se poder
executar programas maiores do que a memria fsica disponvel.
9.5
2 KB
Partio 2
5 KB
Partio 3
8 KB
Fragmentao
interna
Programa E
5 KB
9.7
9.8
Swapping:
uma tcnica aplicada gerncia de memria que visa dar maior taxa
de utilizao memria principal, melhorando seu compartilhamento. Visa
tambm resolver o problema da falta de memria principal num sistema.
Toda vez que um programa precisa ser alocado para execuo e no h
espao na memria principal, o sistema operacional escolhe entre os
processos alocados que
no tem previso de utilizar a CPU nos prximos instantes (quase sempre
entre aqueles que esto em interrupo de E/S ou no final da fila de pronto),
e descarrega este processo da memria para uma rea especial em disco,
chamada arquivo de swap, onde o processo fica armazenado
temporariamente. Durante o tempo em que o processo fica em swap, o outro
que necessitava de memria entra em execuo ocupando o espao deixado
pelo que saiu. Pouco antes de chegar a vez do processo armazenado em
swap utilizar a CPU, o sistema escolhe um outro processo para descarregar
para swap e devolve o anterior da rea de swap para a memria principal,
para que este possa ser executado novamente. E vai trabalhando assim at
que os processos vo terminando. O problema dessa tcnica que pode
provocar um nmero excessivo de acesso memria secundria (disco),
levando o sistema a uma queda de desempenho.
9.9
Memria Virtual:
122
Algoritmo FIFO (first in, first out): escolhe a pgina que est h
mais tempo na memria principal para fazer a troca. um algoritmo
de simples implementao, mas corre o risco de retirar uma pgina
que, embora tenha sido carregada h mais tempo, esteja sendo
muito utilizada. Por essa razo no muito usado.
126
127
Captulo 10
Gerncia de Sistemas de Arquivos
10.1 Estrutura de Diretrios:
como o Sistema organiza logicamente os arquivos. Contm entradas
associadas aos arquivos, com as informaes de localizao, nome,
organizao e outros atributos:
Alocao
contgua: armazena o arquivo em blocos
seqencialmente dispostos no disco. O arquivo localizado
atravs do endereo do primeiro bloco de sua extenso em
blocos. O principal problema neste tipo de alocao a existncia
de espao livre para novos arquivos, que deve ser contgua.
Utiliza as estratgias best-fit, worst-fit e first-fit (j conhecidas)
para definir onde o arquivo ser alocado. Causa alto ndice de
fragmentao no disco.
desvantagem a perda de
armazenamento dos ponteiros.
-
espao
nos
blocos
com
130
BIBLIOGRAFIA
Arquitetura de Sistemas Operacionais
Francis B. Machado
Ed. LTC
Sistemas Operacionais: Conceitos e Aplicaes
Abraham Silberschatz
Ed. Campus
Sistemas Operacionais Modernos
A.S. Tanenbaum
Operating Systems: Design And Implementation
Andrew S. Tanenbaum - Editora Prentice Hall
131