Professional Documents
Culture Documents
1. Histrico ............................................................................................................ 3
5. PROCESSO .................................................................................................... 24
5.1 Componentes do processo ....................................................................... 24
5.2 Estados do processo ................................................................................. 26
5.3 Mudanas de estado ................................................................................. 27
5.4 Tipos de processo ................................................................................. 28
1
7.5 Alocao Particionada Esttica Absoluta e Relocvel .................................... 36
7.6 Alocao Particionada Dinmica ................................................................... 38
7.7 Estratgias de Alocao de Partio ........................................................ 39
7.8 Swapping ................................................................................................... 39
7.9 Memria Virtual ................................................................................................... 40
7.10 Algoritmos de substituio de pginas ........................................................ 43
9. BIBLIOGRAFIA ............................................................................................................... 48
2
1. Histrico
Antes da dcada de 50, os computadores eram muito difceis de serem programados. Era
necessrio conhecer totalmente sua arquitetura, e tal operao era efetuada em painis com
cerca de 6.000 conectores, em linguagem de mquina. Nesta fase os computadores no
possuam ainda dispositivos para interagir com o usurio, como teclados e monitores.
Na dcada de 60, a partir do surgimento dos circuitos integrados, foi possvel difundir u
uso de sistemas computacionais em empresas, com diminuio de custos e tamanho dos
equipamentos. Alm disso, esta dcada presenciou inmeras inovaes na rea de sistemas
operacionais, presentes at hoje, como os ambientes de multitarefa, multiprogramao,
multiprocessamento e time-sharing, tendo o desenvolvimento destas tcnicas avanado at o
meado da dcada de 70, onde tambm foram implementadas as tecnologias baseadas em
arquitetura VLSI (chips), as primeiras redes de computadores, e o desenvolvimento de diversas
linguagens de programao de alto nvel.
Nota-se que, a partir do meado da dcada de 80, acontece uma diviso de guas, com a
indstria passando a produzir equipamentos de grande porte e muitos modelos de
microcomputadores, que tambm precisavam de sistemas operacionais bastante evoludos.
Foram, ento, utilizadas as tcnicas modernas j existentes nos ambientes de grande porte na
implementao de sistemas operacionais para os microcomputadores, com verses diversas,
todas inicialmente monousurio/monotarefa (devido baixa capacidade de armazenamento dos
micros, naquela poca). Com o avano da tecnologia, os micros ganharam discos rgidos e
outros perifricos, possibilitando a criao de sistemas operacionais mais evoludos nesta
categoria de computadores, quando surgiram os sistemas monousurio/multitarefa, que
executam at hoje.
3
Cronologia
1990
Sistemas
1 Sistema Operacional Sistemas Multiprogramveis
Monoprogramvel Multitarefa Multitarefa
Monotarefa
Introduzido o Microcomputadores
conceito de
Memria Virtual
Tipos de
Sistemas Operacionais
4
Era muito clara a desvantagem deste tipo de sistema, no que diz respeito limitao de
tarefas (uma de cada vez), o que provocava um grande desperdcio de recursos de hardware.
_______
_______
CPU _______
_______
_______
Dispositivos E/S
Programa/Tarefa
Memria
Principal
Sistema Monoprogramvel/Monotarefa
_______
_______
_______ 5
_______
_______
_______
_______
_______
CPU _______
_______
Programa/Tarefa Programa/Tarefa
Memria Dispositivos E/S
Principal
_______
_______
_______
_______
_______ _______
_______
_______
_______
Programa/Tarefa _______
Programa/Tarefa
Sistema Multiprogramvel/Multitarefa
Sistemas
Multiprogramveis/
Multitarefa
Sistemas de Sistemas de
Sistemas BATCH
Tempo Compartilhado Tempo Real
6
Estes sistemas, se bem projetados, podem ser bastante eficientes devido melhor
utilizao do processador, mas podem oferecer tempos de resposta bastante longos.
Atualmente, os sistemas operacionais simulam este tipo de processamento, no havendo
sistemas dedicados a este tipo de execuo.
No sistema de tempo real no existe a idia de fatia de tempo como nos sistemas de
tempo compartilhado. Um programa ocupa o processador o tempo que for necessrio ou at
que aparea um outro com um nvel de prioridade maior. Esta prioridade de execuo definida
pela prpria aplicao e no pelo sistema operacional, como nos sistemas de tempo
compartilhado.
7
Estes sistemas so utilizados em aplicaes de controle de processos, como
monitoramento de refinarias de petrleo, controle de trfego areo, de usinas, ou em qualquer
aplicao onde o tempo de processamento fator fundamental.
Os sistemas com mltiplos processadores caracterizam-se por possuir duas ou mais CPUs
interligadas e trabalhando em conjunto. A vantagem deste tipo de sistema permitir que
vrios programas sejam executados ao mesmo tempo ou que um mesmo programa seja
subdividido em vrias partes para serem executadas simultaneamente em mais de um
processador.
Sistemas
com
Mltiplos
Processadores
Sistemas Sistemas
Fortemente Fracamente
Acoplados Acoplados
8
a ser compartilhada pelos processadores do conjunto, enquanto que nos fracamente
acoplados cada sistema tem sua prpria memria individual. A taxa de transferncia entre
processadores e memria em sistemas fortemente acoplados muito maior que nos
fracamente acoplados.
Enquanto nos sistemas em rede os usurios tm conhecimento dos hosts e seus servios,
nos sistemas distribudos os sistema operacional esconde os detalhes dos hosts individuais e
passa a trat-los como um conjunto nico, como se fosse um sistema s, fortemente
acoplado. Os sistemas distribudos permitem, por exemplo, que uma aplicao seja dividida
em partes e que cada parte seja executada por hosts diferentes na rede. Para os usurios e
suas aplicaes como se no existisse a rede, mas um nico sistema centralizado.
9
3. Sistemas Multiprogramveis
Um Sistema Operacional pode ser visto como um conjunto de rotinas que executam
concorrentemente de forma ordenada. A possibilidade de um processador executar instrues
em paralelo com operaes de entrada e sada permite que diversas tarefas sejam executadas
concorrentemente. este conceito de concorrncia o princpio fundamental para o projeto e
implementao de sistemas multiprogramveis.
A utilizao concorrente da CPU deve ser feita de maneira que, quando um programa perde
o uso do processador e depois retorna para continuar sua execuo, seu estado deve ser
idntico ao do momento em que foi interrompido. O programa dever continuar sua execuo
exatamente na instruo seguinte quela onde havia parado, aparentando ao usurio que nada
aconteceu. Em sistemas de tempo compartilhado existe a impresso de que o computador est
inteiramente dedicado ao usurio, ficando esse mecanismo totalmente transparente aos
usurios.
Quanto ao uso dos perifricos, comum nos sistemas monoprogramveis comum termos,
por exemplo, impressoras paradas por um grande perodo de tempo e discos com acesso
restrito a um nico usurio. Esses problemas so minimizados nos sistemas multiprogramveis,
onde possvel compartilhar os dispositivos de E/S, como impressoras e discos, entre diversos
usurios e aplicativos.
10
3.1 Interrupo e Exceo
Uma interrupo sempre gerada por um evento externo ao programa e, sendo assim,
independe da instruo que est sendo executada. Um exemplo de interrupo quando um
dispositivo avisa ao processador que alguma operao de E/S est completa. Neste caso, o
processador deve interromper o programa para tratar o trmino da operao.
Programa
Salva
Contexto
Identifica
a origem
Interrupo
Trata a
Rotina
Interrupo
de
Restaura
Tratamento
Contexto
Mecanismo de interrupo/exceo
11
Para cada tipo de interrupo existe uma rotina de tratamento associada, para onde o
fluxo do programa desviado. A identificao do tipo de evento ocorrido fundamental para
determinar o endereo da rotina adequada ao tratamento da interrupo.
Na maioria das vezes, a exceo provoca um erro fatal no sistema, causando o trmino
anormal do programa. Isto se deve ao fato de que a exceo melhor tratada dentro do
prprio programa, com instrues escritas pelo programador.
3.2 Buffer
3.3 SPOOL
12
Com o aparecimento dos terminais para acesso ao sistema, esta tcnica teve sua funo
adaptada para armazenar o resultado da impresso dos programas em execuo.
3.4 Reentrncia
13
Como vrios programas ocupam a memria principal simultaneamente, cada usurio
possui uma rea reservada onde seus programas e dados so armazenados durante o
processamento. O sistema operacional deve possuir mecanismos de proteo a essas reas,
de forma a preservar as informaes nela contidas. Caso um programa tente acessar uma
posio de memria fora de sua rea, um erro indicando a violao de acesso deve ocorrer,
sendo responsabilidade do sistema operacional o controle eficiente do compartilhamento dos
recursos e a sincronizao da comunicao, evitando problemas de consistncia.
14
- por interrupo: evoluindo o processo anterior, aps o incio da transferncia de
dados o processador passou a ficar livre para realizar outras tarefas. Assim, em
determinados intervalos de tempo o sistema operacional deveria testar o estado dos
perifricos para saber se a operao de E/S tinha terminado. Este tipo de operao
permitiu um certo grau de paralelismo, j que um programa poderia ser processado
enquanto uma operao de leitura/gravao em perifrico estava sendo efetuada.
Isto permitiu a implementao dos primeiros sistemas multiprogramveis.
Memria
Principal
CPU
Controlador
Dispositivos de E/S
O canal de E/S funciona ento como uma interface entre os controladores e a CPU,
como mostra a figura a seguir:
15
Memria
Principal
CPU
Canal de E/S
Controlador Controlador
16
4.1 Estrutura do Sistema
USURIO
UTILITRIOS
NCLEO
DO SISTEMA
HARDWARE
17
As principais funes do ncleo encontradas na maioria dos sistemas comerciais so as
seguintes:
18
direitos de acesso ao sistema, aos arquivos, memria e a todos os recursos do sistema.
O arquivo de LOG usado pela gerncia de sistemas, com o intuito de verificar e
aperfeioar os mecanismos de segurana e proteo ao sistema.
As system calls podem ser entendidas como uma porta de entrada para acesso ao ncleo do
sistema e aos seus servios. Sempre que um usurio ou uma aplicao necessita de algum
servio do sistema, realizada uma chamada a uma de suas rotinas atravs de uma system call.
Aplicao
Ncleo do
System Call Sistema
Operacional
Biblioteca Hardware
19
Existem certas instrues que no podem ser colocadas diretamente disposio das
aplicaes, pois a sua utilizao indevida poderia ocasionar srios problemas integridade do
sistema. Imagine que uma aplicao atualize um arquivo em disco. O programa, por si s, no
pode especificar diretamente as instrues que acessam seus dados no disco pois, como o disco
um recurso compartilhado, sua utilizao deve ser gerenciada unicamente pelo sistema
operacional. Tal procedimento evita que a aplicao possa ter acesso a qualquer rea do disco
indiscriminadamente, o que poderia comprometer a segurana e a integridade do sistema de
arquivos.
Assim, fica claro que existem certas instrues que s podem ser executadas pelo sistema
operacional ou sob sua superviso. As instrues que tm o poder de comprometer o sistema
so chamadas de instrues privilegiadas, enquanto as instrues que no comprometem o
funcionamento do sistema chamam-se instrues no-privilegiadas.
Para que uma aplicao possa executar uma instruo privilegiada, preciso que haja um
mecanismo de proteo no processador, chamado modos de acesso. Existem basicamente dois
modos de acesso ao processador: modo usurio e modo kernel. Quando o processador trabalha
no modo usurio, somente instrues no-privilegiadas podem ser executadas, tendo assim
acesso a um nmero limitado de instrues do processador. J no modo kernel (ou supervisor),
a aplicao pode ter acesso ao conjunto total de instrues do processador.
20
4.5 Arquiteturas: Sistemas monolticos, em camadas e microkernel
Aplicao Aplicao
Modo Usurio
Ncleo
do
Sistema
Hardware
Arquitetura monoltica
21
- Arquitetura em camadas: com o aumento do tamanho do cdigo dos sistemas
operacionais, tcnicas de programao estruturada e modular foram incorporadas em seu
projeto.Na arquitetura em camadas, o sistema dividido em nveis sobrepostos. Cada
camada oferece um conjunto de funes que podem ser utilizadas somente pelas
camadas superiores. Neste tipo de implementao as camadas mais internas so mais
privilegiadas que as camadas mais externas. A vantagem da estruturao em camadas
o isolamento das funes do sistema, facilitando sua manuteno. Uma desvantagem o
desempenho, comprometido devido s vrias mudanas de estado do processador
provocado pela mudana de camadas. A figura a seguir mostra esta arquitetura.
Camada Usurio
Camada Supervisor
Camada Executivo
Kernel
Arquitetura em camadas
22
direto a certos componentes do sistema. Apenas o ncleo do sistema, responsvel pela
comunicao entre clientes e servidores, executa em modo kernel. Como conseqncia,
se ocorrer um erro em algum servidor,este poder parar, mas o sistema no ficar
inteiramente comprometido, aumentando assim a sua disponibilidade. Como os
servidores se comunicam atravs de trocas de mensagens, no importa se os clientes e
servidores processam em um sistema com um nico processador, com vrios
processadores ou ainda em um ambiente de sistema distribudo. A arquitetura
microkernel permite isolar as funes do sistema operacional por diversos servidores
pequenos e dedicados a servios especficos, tornando o ncleo menor, mais fcil de
depurar (procurar e solucionar erros) e, com isso, aumentando a sua confiabilidade.
Apesar de todas as vantagens deste modelo, sua implementao muito difcil. A
comear pelo desempenho, comprometido devido s vrias trocas de modo de acesso a
cada troca de mensagens entre cliente e servidor. Outro problema que certas funes
do sistema operacional, como operaes de E/S, exigem acesso direto ao hardware.
Assim, o ncleo do sistema, alm de promover a comunicao entre clientes e servidores,
passa a incorpora funes crticas do sistema, como escalonamento, tratamento de
interrupes e gerncia de dispositivos.
Servidor Servidor
Servidor Rede
Arquivo
Memria
Servidor Servidor
Processo Impresso
Modo Usurio
Modo Kernel
Microkernel
Hardware
5. PROCESSO
23
O conceito de processo a base para a implementao de um sistema multiprogramvel. O
processador projetado apenas para executar instrues, no sendo capaz de distinguir qual
programa se encontra em execuo.A gerncia de um ambiente multiprogramvel funo
exclusiva do sistema operacional, que deve controlar a execuo dos diversos programas e o
uso concorrente do processador.
Um processo pode ser entendido inicialmente como um programa em execuo, que tem
suas informaes mantidas pelo sistema operacional.
Num sistema multiusurio, cada usurio tem a impresso de possuir o processador e todos
os demais recursos reservados exclusivamente para si, mas isto no verdade. Todos os
recursos esto sendo compartilhados, inclusive a CPU. Neste caso, o processador executa o
processo do usurio por um intervalo de tempo e, no instante seguinte, poder estar
processando um outro programa, do mesmo ou de outro usurio.
Para que a troca de processos possa ser feita sem problemas, necessrio que todas as
informaes do programa que est sendo interrompido sejam guardadas, para que ele possa
retornar CPU exatamente do ponto em que parou, no lhe faltando nenhuma informao vital
sua continuao. Todas as informaes necessrias execuo de um programa fazem parte
do processo.
Um processo tambm pode ser definido como o ambiente onde o programa executado.
Este ambiente, alm das informaes sobre a execuo, possui tambm a quantidade de
recursos do sistema que o programa pode utilizar,como espao de endereamento, tempo do
processador e rea em disco.
24
Estrutura do processo:
Contexto de Contexto de
Software Hardware
________
________
________
Programa
Espao de
endereamento
Contexto de Hardware: armazena o contedo dos registradores gerais da CPU, alm dos
registradores de uso especfico. Quando um processo est em execuo, o seu contexto
de hardware est armazenado nos registradores da CPU. No momento em que o
processo perde a utilizao da CPU, o sistema salva as informaes no contexto de
hardware do processo.
25
referentes ao do novo processo que ir executar. Essa operao resume-se em substituir
o contexto de hardware de um processo pelo de outro.
- Criao: neste estado o processo est sendo alocado na memria, sendo criado no
sistema. Todos os recursos necessrios execuo do processo so reservados
durante a passagem do processo por este estado, o que acontece uma nica vez.
Vrios processos podem estar neste estado, ao mesmo tempo.
- Espera: neste estado esto todos os processos que sofreram algum tipo de
interrupo de E/S, onde permanecem at que a interveno seja resolvida. Vrios
processos podem estar neste estado, ao mesmo tempo.
26
- Sada: o estado final do processo, quando este termina seu processamento.
Vrios processos podem estar neste estado, ao mesmo tempo.
- Criao Pronto: o processo foi criado, tem seus recursos alocados, e est apto a
disputar o uso da CPU.
Pronto
Execuo
Mudanas de estado de um
processo
27
5.4 Tipos de processos
Alm dos processos do usurio, a CPU tambm executa processos do sistema. So aqueles
que oferecem os servios do sistema operacional aos usurios, como criao/eliminao de
processos, tratamento de interrupo e todos aqueles correspondentes s funes do sistema j
estudadas. Estes executam sempre, com certa prioridade, concorrendo com os processos do
usurio.
Os processos em execuo, do usurio, podem assumir dois tipos diferentes, de acordo com
suas caractersticas de uso de CPU e perifricos:
- Processo CPU-bound: aquele processo que utiliza muito a CPU. Ele ganha uma fatia de
tempo e a utiliza por inteiro, sem desperdiar nenhum tempo. o caso de programas
cientficos, de clculo numrico, estatstica, matemtica, e tambm na rea de simulao.
Normalmente fazem pouca ou nenhuma entrada de dados, e muito processamento.
- Processo I/O-bound: o tipo de processo que utiliza muito mais E/S do que CPU.
Aplicaes em Banco de Dados, onde se faz consultas e atualizaes constantes em
arquivos em disco so um bom exemplo deste tipo de processo. De acordo com essas
caractersticas, podemos dizer que este tipo de processo permanece mais tempo em
espera (tratando interrupes) do que propriamente em execuo, ocupando a CPU por
perodos mnimos de tempo.
28
6. Gerncia do Processador
6.1 Funes
A partir do momento em que vrios processos podem estar no estado de pronto, devem
ser estabelecidos critrios para definir qual processo ser escolhido para fazer uso do
processador. Tais critrios compem a poltica de escalonamento, que a base da gerncia do
processador e da multiprogramao em um sistema operacional.
- Tempo de Espera (pela CPU): todo o tempo que o processo permanece na fila de
pronto, aguardando a liberao da CPU para ser executado. A reduo deste tempo de
espera desejada pela maioria das polticas de escalonamento.
29
- Tempo de Turnaround: o tempo total que o processo permaneceu no sistema, desde
sua criao at o momento em que encerrado. So contados os tempos de alocao
de memria, espera na fila de pronto e interrupo (E/S).
So escalonamentos no-preemptivos:
- FIFO: o processo que chegar primeiro fila de pronto selecionado para execuo, e
permanece utilizando o processador at terminar sua execuo ou ser interrompido por
E/S. Neste caso, o prximo processo da fila de pronto selecionado para execuo.
Todo processo que chega fila de pronto entra no final desta fila, conservando a ordem
de chegada na fila, at ser escalonado novamente. Apesar de simples, este
escalonamento apresenta algumas deficincias, principalmente no que diz respeito
dificuldade de se prever o incio da execuo de um processo, j que a ordem de
chegada fila de pronto deve ser observada risca. Outro problema quanto aos tipos
de processo, onde os CPU-bound levam vantagem no uso do processador em relao
aos do tipo I/O-bound, pois o sistema no trata este tipo de diferena. O escalonamento
FIFO foi inicialmente implementado em sistemas monoprogramveis, sendo ineficiente
se aplicado em sistemas interativos de tempo compartilhado.
30
Abaixo, um exemplo de escalonamento utilizando o mtodo FIFO: a ordem de chegada
dos processos (A, B, C) na fila de pronto foi obedecida, e, no tendo sido interrompidos por
E/S, os processos executaram inteiramente at terminar, de acordo com seus tempos
necessrios para execuo.
0 10 18 27
- SJF (Shortest Job First): este escalonamento seleciona o processo que tiver o menor
tempo de processador ainda por executar. Desta forma, o processo que estiver na fila de
pronto com menor necessidade de tempo de CPU para terminar o seu processamento
ser o escolhido para ocupar a CPU. Funciona com um parmetro passado ao sistema
via contexto de software, onde o tempo estimado para o processo informado
baseando-se em estatsticas de execues anteriores.
0 8 17 27
31
So escalonamentos preemptivos:
u.t.
2 4 6 8 10 11 17
- Por Prioridades: funciona com base num valor associado a cada processo, denominado
prioridade de execuo. O processo com maior prioridade na fila de PRONTO sempre
o escolhido para ocupar o processador, sendo os processos com prioridades iguais
escalonados pelo critrio FIFO. Neste escalonamento o conceito da fatia de tempo no
existe. Como conseqncia disto, um processo em execuo no pode sofrer preempo
por tempo. Neste escalonamento a perda do uso do processador somente ocorrer no
caso de uma mudana voluntria para o estado de espera (interrupo por E/S), ou
quando um outro processo de prioridade maior passa (ou chega) para o estado de
pronto. Neste caso o sistema operacional interrompe o processo em execuo, salva seu
contexto e o coloca na fila de pronto, dando lugar na CPU ao processo prioritrio. Este
mecanismo chamado de preempo por prioridade. A figura a seguir mostra a
execuo dos processos A, B e C, com tempos de execuo de 10, 4 e 3 u.t.
respectivamente, e valores de prioridades de 2, 1 e 3, tambm respectivamente. Na
32
maioria dos sistemas, valores menores correspondem MAIOR prioridade. Assim, a
ordem de execuo ser invertida para B, A e C.
C
4 14 17 u.t.
- Por Mltiplas Filas: Este escalonamento implementa vrias filas de pronto, cada uma
com prioridade especfica. Os processos so associados s filas de acordo com
caractersticas prprias, como importncia da aplicao, tipo de processamento ou rea
de memria necessria. Assim, no o processo que detm a prioridade, mas sim a fila.
O processo em execuo sofre preempo caso um outro processo entre em uma fila de
maior prioridade. O sistema operacional s pode escalonar processos de uma fila
quando todas as outras filas de maior prioridade estejam vazias. Os processos sempre
voltam para a mesma fila de onde saram.
33
7.1 Introduo
Historicamente, a memria principal sempre foi vista como um recurso escasso e caro.
Uma das maiores preocupaes dos projetistas foi desenvolver sistemas operacionais que no
ocupassem muito espao de memria e, ao mesmo tempo, otimizassem a utilizao dos
recursos computacionais. Mesmo atualmente, com a reduo do custo e o aumento considervel
da capacidade da memria principal, seu gerenciamento dos fatores mais importantes no
projeto e implementao dos sistemas operacionais.
7.2 Funes
Este tipo de alocao foi implementado nos primeiros sistemas operacionais, embora
ainda nos dias de hoje esteja presente em alguns sistemas monoprogramveis. Nesse modelo, a
memria principal dividida em duas partes, uma para o sistema operacional e a outra para o
programa do usurio. Dessa forma, o programador deve desenvolver suas aplicaes
preocupado apenas em no ultrapassar o espao de memria disponvel.
34
Neste esquema o usurio tem total controle sobre toda a memria, exceto naquela rea
onde reside o sistema operacional, cujo endereamento protegido por um registrador,
impedindo acesso indevido pelo usurio.
Sistema
Operacional X
registrador
rea para
programas
Sistema
Operacional
Programa do
Usurio
rea livre
35
independncia significa que quando um mdulo estiver na memria para execuo, o outro no
necessariamente precisa estar presente.O mdulo principal comum aos outros dois, logo,
precisa estar na memria durante todo o tempo da execuo do programa.
Memria Principal
Sistema
2 KB Operacional Cadastramento
3 KB Mdulo
Principal 4 KB
4 KB rea de
Overlay Impresso
2 KB
1 KB
rea livre 2 KB
Tcnica de Overlay
36
Nos primeiros sistemas multiprogramveis a memria era dividida em blocos de tamanho
fixo, chamados parties.O tamanho dessas parties, estabelecido em tempo de inicializao
do sistema, era definido em funo do tamanho dos programas que executariam no
ambiente.Sempre que fosse necessria a alterao do tamanho de uma partio, o sistema
deveria ser inicializado novamente com uma nova configurao.
Sistema
Operacional
Partio 1 2 KB
Partio 2 5 KB
Partio 3 8 KB
Tanto nos sistemas de alocao absoluta como nos de alocao relocvel, os programas,
normalmente, no ocupam totalmente as parties onde so alocados, deixando algum espao
livre dentro das parties. Este tipo de problema, decorrente do esquema de alocao fixa de
parties, chamado fragmentao interna.
Memria Principal
Sistema
37
Operacional
Programa C
1 KB
Programa A
Fragmentao
interna 3 KB
Programa E
5 KB
38
Estas solues ajudaram a diminuir os problemas da fragmentao (tanto interna como
externa), mas, devido complexidade dos algoritmos, nem todos os sistemas operacionais
as utilizaram.
A melhor estratgia a ser adotada por um sistema depende de uma srie de fatores,
sendo o mais importante o tamanho dos programas executados no ambiente.
Independentemente do algoritmo utilizado, o sistema possui uma lista das reas livres,
com endereo e tamanho de cada rea.
So estratgias de alocao:
- Best-fit: escolhida a melhor partio, ou seja, aquela que deixa o menor espao sem
utilizao. Uma grande desvantagem desta estratgia que, como so alocados
primeiramente as parties menores, deixando pequenos blocos, a fragmentao
aparece mais rapidamente.
- Worst-fit: aloca o programa na pior partio, ou seja, aquela que deixa o maior
espao livre. Esta tcnica, apesar de aproveitar primeiro as parties maiores, acaba
deixando espaos livres grandes o suficiente para que outros programas utilizem
esses espaos, permitindo que um nmero maior de processos se utilizem da
memria, diminuindo ou retardando a fragmentao.
7.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
39
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.
40
- Mapeamento: como o espao de endereamento virtual no tem nenhuma relao
com o espao de endereamento real, um programa pode fazer referncia a um
endereo virtual que esteja fora dos limites da memria principal (real), ou seja, os
programas e suas estruturas de dados no esto mais limitados ao tamanho da
memria fsica disponvel. Quando um programa executado, apenas uma parte do
seu cdigo fica residente na memria principal, permanecendo o restante na memria
virtual at o momento de ser referenciado. Este esquema de endereamento virtual
ignorado pelo programador no desenvolvimento das aplicaes. Cabe ao compilador e
ao linkeditor gerar cdigos executveis em funo do endereamento virtual, e o
sistema operacional se incumbe de administrar os detalhes durante a sua execuo. O
processador apenas executa instrues e referencia dados residentes no espao de
endereamento real. Portanto, deve existir um mecanismo que transforme os
endereos virtuais em endereos reais. Este mecanismo o que chamamos de
mapeamento, e consiste em permitir a traduo do endereo virtual em endereo
real. Como conseqncia, um programa no mais precisa estar necessariamente em
endereos contguos na memria real para ser executado.
41
- Working-set: o conjunto de pginas de um processo, em memria real, em um
determinado instante. Este conceito surgiu com o objetivo de reduzir o problema do
thrashing e est relacionado ao princpio da localidade. Existem dois tipos de
localidade que so observados durante a execuo da maioria dos programas. A
localidade espacial a tendncia de que, aps uma referncia a um endereo de
memria, sejam realizadas novas referncias a endereos prximos ou adjacentes. A
localidade espacial a tendncia de que, aps a referncia a uma posio de
memria, esta mesma posio seja referenciada novamente num curto intervalo de
tempo. A partir desse princpio de localidade, o processador tender a concentrar suas
referncias a um conjunto de pginas do processo durante um determinado perodo
de tempo. Imagine um loop principal de um programa que ocupe trs pginas. A
tendncia que estas trs pginas tenham um alto ndice de referncias durante a
execuo do programa.
- Tamanho da pgina: deve estar entre 512 bytes e 128KB, aproximadamente. Pginas
menores promovem maior compartilhamento da memria, permitindo que mais
programas possam ser executados. Pginas maiores diminuem o grau de
compartilhamento da memria, com menos programas disputando o processador.
Assim conclui-se que quanto menor o tamanho da pgina, MAIOR o grau de
compartilhamento da memria e da CPU.
42
para cada processo, em funo de seu tamanho, taxa de paginao ou at mesmo da
taxa de ocupao da memria principal.
- 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.
- Algoritmo LFU (least frequently used): elege a pgina menos freqentemente usada
para efetuar a troca. Atravs de um contador, armazenado na tabela de
endereamento de pginas, mo sistema identifica quantas referncias cada pgina
teve e utiliza esta informao para escolher a pgina.
43
- Algoritmo LRU (least recently used) : elege a pgina menos recentemente usada para
fazer a troca. O sistema mantm na tabela de endereamento de pginas um campo
onde so armazenadas a data e a hora da ltima referncia de cada pgina, e com
base nestas informaes faz a seleo.
- Algoritmo NRU (not recently used): elege a pgina menos recentemente usada para
efetuar a troca. O sistema exclui da deciso a pgina mais recente e escolhe entre as
outras, pelo mtodo FIFO, qual pgina deve sair.
44
8. Gerncia de Sistemas de Arquivos
Nvel nico: a implementao mais simples de uma estrutura de diretrios, onde existe
um nico diretrio contendo todos os arquivos do disco. muito limitado, no permitindo
a criao de arquivos com o mesmo nome.
Diretrio pessoal: Evoluo do modelo anterior, permite a cada usurio ter ser diretrio
particular, sem a preocupao de conhecer os outros arquivos do disco. Neste modelo h
um diretrio master que indexa todos os diretrios particulares dos usurios, provendo
o acesso a cada um.
Mltiplos nveis (RVORE): o modelo utilizado hoje em dia em quase todos os Sistemas
Operacionais. Nesta modalidade cada usurio pode criar vrios nveis de diretrios (ou
sub-diretrios), sendo que cada diretrio pode conter arquivos e sub-diretrios. O
nmero de nveis possveis depende do Sistema Operacional.
FAT: sistema criado no MS-DOS e depois utilizado no Windows. Usa listas encadeadas,
tem um limite de rea utilizvel em parties de 2 GB, caracteriza-se por um baixo
desempenho no acesso e armazenamento.
FAT32: igual ao FAT no que diz respeito a organizao e desempenho, mas pode
trabalhar com parties de at 2TB.
NTFS: NT File System, original da plataforma Windows NT/2000/XP. Opera com uma
estrutura em rvore binria, oferecendo alto grau de segurana e desempenho:
UNIX: Usa diretrio hierrquico, com um raiz e outros diretrios subordinados. Neste
Sistema Operacional todos os arquivos so considerados apenas como uma seqncia
de bytes, sem significado para o Sistema. responsabilidade da aplicao controlar os
45
mtodos de acesso aos arquivos. O UNIX utiliza tambm alguns diretrios padronizados,
de exclusividade do Sistema.
A segunda forma utilizando uma lista encadeada dos blocos livres do disco. Desse
modo, cada bloco possui uma rea reservada para armazenar o endereo do prximo bloco
livre. Apresenta problemas de lentido no acesso, devido s constantes buscas seqenciais na
lista.
A terceira forma a tabela de blocos livres. Nesta, leva em considerao que blocos
contguos de dados geralmente so alocados/liberados simultaneamente. Desta forma, pode-se
enxergar o disco como um conjunto de segmentos de blocos livres. Assim, pode-se manter uma
tabela com o endereo do primeiro bloco de cada segmento e o nmero de blocos contguos
que se seguem.
46
8.4 Proteo de acesso
47
9. BIBLIOGRAFIA
48