Escolar Documentos
Profissional Documentos
Cultura Documentos
OPERACIONAIS
Andréa Martins
E-book 3
Neste E-Book:
INTRODUÇÃO���������������������������������������������� 3
ENTENDENDO A MEMÓRIA�������������������� 4
Função da memória�������������������������������������������������4
Gerenciando a memória������������������������������������������9
Alocação contígua simples���������������������������������� 10
Overlay������������������������������������������������������������������� 11
CONSIDERAÇÕES FINAIS���������������������� 27
SÍNTESE�������������������������������������������������������28
2
INTRODUÇÃO
Continuamos na nossa jornada em busca do aprimo-
ramento profissional e acadêmico, e neste e-book
daremos mais um passo importante em direção às
nossas metas: aprenderemos sobre o gerenciamento
de memória e também sobre o gerenciamento de
arquivos.
Vamos começar?
3
ENTENDENDO A MEMÓRIA
A memória que existe dentro dos sistemas opera-
cionais era conhecida por ser um recurso com valor
elevado e, por esse motivo, sua escassez era a con-
sequência. Essa realidade está mudando atualmente,
pois a memória principal teve evoluções significati-
vas que resultaram no aumento de performance e
diminuição dos custos. Hoje a otimização do uso
da memória é fundamental para quem quer ter um
sistema operacional eficiente. Vamos conhecer téc-
nicas para melhorar o desempenho dessa parte tão
importante?
Função da memória
De forma geral, podemos dizer que a função da me-
mória principal de um sistema operacional é alocar
os programas que estão em execução, pois foram
acionados pelo usuário e também os programas que
são necessários para o correto funcionamento do
sistema. Sendo assim, os processos computacionais
que estão ‘rodando’ dentro do sistema operacional
ficam alocados nessa memória. Essa alocação é
temporária. Algumas das características da memória
principal são:
● É relativamente cara e, por isso mesmo, escassa
4
● Todos os programas que executamos só conse-
guem funcionar se estiverem sendo executados pela
memória principal
● O compartilhamento do processador tende a
melhorar se tivermos mais processos na memória
principal
● Memórias necessitam de uso otimizado
● O uso do sistema operacional não pode ocupar
muito espaço na memória
● Fazer a gestão correta do uso da memória é um
item de extrema importância aos projetos relativos
a sistemas operacionais.
Memória Principal
Endereço inicial
Sistema Operacional
Endereço final
5
Dentro dos sistemas operacionais que conhecemos,
geralmente os programas têm seu armazenamento
realizado pela memória secundária. Essa maneira
de gerenciar a memória faz com que os programas
estejam sempre disponíveis, quando precisam ser
acessados pelo usuário. Como estudamos ante-
riormente, entendemos como memória secundária
equipamentos como pendrives, CDs e DVDs, discos
rígidos, entre vários outros equipamentos de entrada
e saída. Com a evolução da tecnologia, esses equi-
pamentos de entrada e saída têm sua capacidade
de armazenamento cada vez maior, e outra vanta-
gem é o preço bastante acessível, especialmente
se compararmos o valor desses equipamentos com
o preço da memória principal. Além disso, quando
usamos esses equipamentos para armazenar dados,
sabemos que eles não serão apagados quando o
computador for desligado.
6
principal, pois o sistema sempre tenta fazer a redu-
ção do número de operações de dispositivos de E/S,
fazendo com que a maior parte dos programas fique
mesmo na memória principal, pois assim a memória
evita problemas de sistema.
Podcast 1
SAIBA MAIS
Vamos entender um pouco mais sobre memória
operacional? Assista ao vídeo:
Link do vídeo.
7
Memória Principal Memória Principal
Sistema Sistema
Operacional Operacional
Programa A Programa A
FIQUE ATENTO
Overlay significa sobreposição e, quando dizemos
overlay em memória, queremos dizer que pode-
mos permitir que programas maiores que a me-
mória principal sejam utilizados, pois faremos um
overlay (sobreposição) com a memória virtual.
8
sendo executados e que precisam utilizar o overlay
para conseguir rodar o programa:
Técnica de Overlay
Memória Principal Cadastramento
Sistema
2 Kb
Operacional
4 Kb
3 Kb Módulo principal
2 Kb
1 Kb Área Livre
Área não 2 Kb
utilizada
Gerenciando a memória
O gerenciamento efetivo da memória é fundamental
para que o sistema operacional consiga ser eficiente.
E esse gerenciamento é essencial em ambientes
multiprogramáveis, pois a partir dele serão sanadas
todas as necessidades do usuário, dentro do tempo
previsto e tudo isso sem o comprometimento do
desempenho desejado, garantindo a segurança do
sistema e permitindo que o sistema execute o corre-
to compartilhamento de recursos. E, para que esse
gerenciamento seja eficiente, foram desenvolvidas
algumas técnicas específicas para o gerenciamento
da memória. Vamos conhecê-las?
9
Alocação contígua simples
A alocação contígua simples foi muito usada nos
primórdios dos sistemas operacionais, mas esse
tipo de alocação ainda pode ser encontrada nos dias
e hoje em sistemas monoprogramáveis. A técnica é
simples: ela particiona a memória principal em duas
áreas: a área do sistema operacional e a área do usu-
ário. Quando usamos essa técnica de gerenciamento,
o usuário do sistema não consegue usar uma área
de memória maior do que a que está disponível.
10
Memória Principal Memória Principal
Sistema
Registrador Operacional
Sistema
Operacional
Programa do
usuário
Área para
Área Livre
programa
SAIBA MAIS
Vamos entender um pouco mais sobre o geren-
ciamento de memória? O vídeo abaixo traz dicas
importantes sobre o assunto. Acesse e confira:
Link do vídeo.
Overlay
A técnica que denominamos overlay tem como obje-
tivo a resolução da maior parte (não totalmente) do
grande problema ocasionado pela perda de espaço
de memória que a técnica de alocação contígua cau-
sa. Para conseguir driblar essa situação, a técnica
de sobreposição – overlay – executa o comparti-
11
lhamento das áreas da memória que se encontram
livres, e isso é feito por meio do uso de programas
independentes, que fazem com que só fique na me-
mória principal o módulo principal do programa que
está sendo executado pelo usuário.
12
Memória Principal Cadastramento
Sistema
2 Kb
Operacional
4 Kb
3 Kb Módulo principal
2 Kb
1 Kb Área Livre
Área não 2 Kb
utilizada
Alocação Particionada
13
A partir desse cenário, algumas técnicas foram cria-
das com sucesso. Vamos conhecê-las?
● Alocação Particionada Estática: essa técnica foi
desenvolvida para permitir a divisão da memória em
partes menores; essas partes têm partes fixas (está-
ticas) e são comumente chamadas de partições. O
tamanho de cada uma dessas partes que foi criada
por essa técnica era determinado no momento de
inicialização dos sistemas operacionais, e a porção
de cada parte da memória que seria designada para
cada programa era determinada tendo como base
os programas que seriam executados no ambiente
computacional. Toda vez que alguma mudança no
tamanho dessas partes fosse imprescindível para
o correto funcionamento do sistema, um novo pro-
cesso de inicialização era executado, gerando assim
uma configuração nova e mais adequada às necessi-
dades do usuário naquele momento. A figura abaixo
torna a visualização mais fácil, pois conseguimos
verificar todo o processo que a alocação particionada
estática realiza dentro da memória:
14
Memória de partições Memória Principal
Partição Tamanho Sistema
Operacional
1 2 Kb
2 5 Kb Partição 1 2 Kb
3 8 Kb
Partição 2 5 Kb
3 Kb 6 Kb 1 Kb 4 Kb 2 Kb
15
mentos do programa têm ligação com a inicialização
do código – e não mais a endereços físicos da me-
mória – e, com isso, os programas conseguem ter
sua execução feita em qualquer partição da memória
e não mais em um lugar fixo e estático.
● Alocação Particionada Dinâmica: A técnica de
partição estática apresentava, como principal en-
trave para sua utilização, o fato de apresentar frag-
mentação interna e essa fragmentação acontecida
porque a alocação do espaço era estática. Por isso,
os programadores começaram a estudar formas de
corrigir esse problema e surgiu, então, a alocação
particionada dinâmica, que tinha como princípio di-
zimar a alocação estática na memória. A técnica da
alocação dinâmica tem o princípio de fazer com que
cada programa possa utilizar livremente seu espaço
na memória, criando assim sua própria partição na
memória. Simples, não é? A figura abaixo nos mos-
tra claramente esse processo da forma como ele é
executado pelo sistema operacional; a seta do meio
indica a relocação do programa:
16
Memória Principal Memória Principal
Sistema Sistema
Operacional Operacional
4 Kb
8 Kb
Programa C
3 Kb
Programa A
Programa A
5 Kb 8 Kb
17
SO
Processo 120k
Processo 4 128 K
96 K
Processo 3 288 K
64 K
18
Estratégias de alocação e partição
Foram desenvolvidas basicamente três técnicas ou
estratégias para que o sistema operacional consiga
realizar o gerenciamento da memória principal de
forma mais otimizada possível. O propósito dessas
estratégias é eliminar ou mitigar a fragmentação
externa, que, como estudamos há pouco, pode fa-
zer com que certas partes da memória não sejam
usadas. Para que essa técnica tenha êxito, é preciso
levar em consideração o tamanho do programa a
ser executado. Vamos conhecer essas estratégias?
● Best Fit: Essa estratégia ficou conhecida por ser a
forma que promove a melhor alocação, procurando
pedir da memória principal o menor espaço disponí-
vel e que tenha somente o tamanho do programa que
irá executar. Assim promove a melhoria da memória
e elimina a perda de espaços desnecessários. Isso
é feito por meio da criação de um algoritmo que faz
com que as áreas da memória sejam classificadas
de acordo com o tamanho disponível e isso diminui,
consideravelmente, o tempo de resposta do sistema
para encontrar uma área de memória disponível.
A desvantagem é que esse algoritmo, apesar de
eficiente, também ocasiona fragmentação. Vamos
observar essa técnica na figura abaixo que mostra
a fragmentação causada por essa técnica:
19
Sistema
Memória Principal Operacional
Sistema
Operacional
Programa C
4 Kb
it
t-f
es
)B
Programa C
(a
Programa A
F
5 Kb Programa F
1 Kb
Programa A Área Livre 2 Kb
3 Kb
20
Memória Principal
Sistema Sistema
Operacional Operacional
4 Kb
Programa C Programa C
(b) Worst-fit
Programa F
F
5 Kb
1 Kb Área livre 4 Kb
Programa A
Programa A
3 Kb
21
Memória Principal
Sistema Sistema
Operacional Operacional
Programa F
4 Kb
Área livre 3 Kb
(c)
Programa C
Fir
Programa C
st-
F
fi
t
5 Kb
1 Kb
Programa A
Programa A
3 Kb
SAIBA MAIS
Vamos entender como é feito o particionamento
de memória na prática? O vídeo abaixo mostra o
passo a passo:
Link Techmundo.
Swapping
22
gerenciamento ruim – surgiu o swapping. Observe
a área de swapping na figura abaixo:
Memória Principal
Processo A
Processo B
Processo
Processo C
F
Sw
Processo D
pa
ou
t
Processo E
in
ap
Processo B
Sw
Processo A Arquivo de
Processo F swapping
Processo C
Processo D
Processo B
23
chamado de swap-in. Para conseguir realizar essa
tarefa de realocação de processos com êxito, o sis-
tema consegue saber quais são os programas que
são menos utilizados, dessa forma, são evitados
swappings que não sejam necessários.
operating
system
process
swap P1
1
out
process
swap P2
2
in
user space
24
Entretanto, tal qual acontece nas outras técnicas, o
swapping também apresenta problemas, como o fato
de executar muitas operações de entrada e saída.
Essas operações apresentam velocidades de acesso
de leitura bastante distintas entre si (isso tendo como
parâmetro o uso da memória principal e secundária).
Nesse cenário, precisamos levar em consideração
que, quanto mais usamos a memória virtual, maior
será o abalo que o sistema operacional irá sofrer e
isso prejudicará o desempenho do sistema. Essa
situação pode fazer com que o sistema operacio-
nal não realize algumas tarefas. Esse problema é
chamado de trashing. Podemos observar na figura
abaixo a taxa de utilização do processador, quando
ocorre o trashing:
Thrashing
25
SAIBA MAIS
Vamos entender melhor a técnica swapping? Leia
o artigo abaixo para aumentar, ainda mais, seus
conhecimentos sobre essa técnica de gerencia-
mento de memória:
https://www.inf.pucrs.br/~emoreno/undergradua-
te/SI/orgarq/class_files/Aula15.pdf
Podcast 2
26
CONSIDERAÇÕES FINAIS
Neste capítulo, conseguimos aprofundar nossos
conhecimentos sobre gerenciamento de memória
e pudemos perceber que escolher a técnica certa
para fazer a gestão da memória pode ser vital para
o sucesso e desempenho do sistema operacional,
pois, a memória é um recurso com valor bastante
alto e, por isso mesmo, torna-se um recurso escas-
so na imensa maioria dos sistemas operacionais.
Também pudemos conhecer as principais técnicas
para fazer a gestão da memória; conseguimos enten-
der as vantagens e desvantagens de cada técnica e,
dessa forma, aumentamos nossa probabilidade de
sucesso na escolha da técnica mais apropriada para
gerenciar o nosso sistema operacional.
27
SÍNTESE
SISTEMAS
OPERACIONAIS