Buscar

Sistemas Operacionais II - aula02

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Sistemas Operacionais I - France Ricardo Marques Gonzaga - UNIGRAN
21
Podemos dizer que no universo da computação existem alguns fatores que são mais 
e outros são menos importantes, mas devemos sempre lembrar que as peças que formem o 
conjunto são todas de mesma importância para a formação do sistema.
Assim sendo não podemos deixar de perceber que a memória, de qualquer tipo, é uma 
peça de suma importância. Existe a memória virtual que é volátil, considerada de preço médio, 
é uma peça importantíssima para o funcionamento do sistema. Existe também a memória 
cachê que é volátil, porém de alto custo. As memórias são componentes do sistema que não 
Aula 02
GERENCIAMENTO
DE MEMÓRIA
Sistemas Operacionais I - France Ricardo Marques Gonzaga - UNIGRAN
22
se pode deixar passar despercebidas, elas não podem ser utilizadas sem uma ordem ou sem 
um controle, por isso vamos estudar um pouco sobre como as memórias são gerenciadas. 
Vamos falar sobre o gerenciamento de memória do sistema computacional. Todos querem 
um computador que tenha uma memória que seja rápida, com grande capacidade e que seja 
de preferência não volátil.
Uma parte do sistema operacional que faz com que essas memórias sejam utilizadas da 
melhor maneira possível, e que tem a incumbência de gerenciar a hierarquia existente entre elas 
é chamado de gerenciador de memória. Sua principal tarefa é a de cuidar as partes da memória 
que estão sendo usadas e as que estão disponíveis e tem também a tarefa de disponibilizar 
memória para os processos, quando eles precisarem, de liberar memória quando terminam o 
seu uso. Além disso, cabe ao gerenciador controlar a transferência entre memória principal e o 
disco quando a memória principal não for sufi ciente para conter os processos.
Os primeiros computadores produzidos na década de 60 e de 70, que eram os 
computadores de grande porte, e também os microcomputadores produzidos antes da década 
de 80 não possuíam memória virtual. Isso tornava o gerenciamento de memória bem mais 
simples, pois cada programa considerava a memória física, isso quando um programa 
executava uma instrução. O computador apenas movia o conteúdo para uma posição do 
registrador que executava os processos e os devolvia.
Com isso a memória que era apresentada ao programador era a memória física, por 
isso não era possível executar mais de uma aplicação na memória ao mesmo tempo, pois se 
um outro programa escrevesse um novo valor para um endereço que estivesse sendo utilizado, 
isso excluiria o valor que estava sendo utilizado por um primeiro programa. Resultado: 
nenhum dos programas funcionaria e os dois programas parariam no mesmo momento.
Imagine se o modelo da memória fosse apenas memória física, com isso poderíamos 
ter varias opções possíveis. Observe na fi gura que se segue.
Programa
do usuário
Programa
do usuário
Programa
do usuário
Sistema
Operacional
em RAM.
Sistema
Operacional
em RAM.
Sistema
Operacional
em ROM.
Drivers de
dispostivos em ROM.
0x FFF ...
0 0 0
Figura: 3
Sistemas Operacionais I - France Ricardo Marques Gonzaga - UNIGRAN
23
Vamos observar três variações. O sistema operacional pode estar na parte inferior 
da memória em RAM1, como podemos visualizar no primeiro quadro ou pode estar em 
ROM2 o sistema pode fi car na parte superior como mostra o segundo quadro ou os drivers 
de dispositivos podem estar na parte superior na memória em ROM e o resto do sistema em 
RAM, como mostra o terceiro quadro.
Antigamente usava-se o primeiro modelo em computadores de grande porte e 
minicomputadores. Já o segundo modelo era utilizado em computadores portáteis, o terceiro 
foi colocado nos primeiros computadores pessoais. Por exemplo, executando o sistema 
operacional MS-DOS em que existia em parte do sistema que consta é chamado de BIOS3.
Nas três opções existem vantagens e desvantagens, repare no primeiro e no 
terceiro quadro. Existe grande possibilidade de acontecer um possível erro no programa 
do usuário e com isso pode acontecer o apagamento do sistema operacional e isso 
ocasionaria resultados bem insatisfatórios.
Nessa organização de sistemas, em geral acontece de se executar um processo por 
vez. Logo quando o usuário digita o comando dando alguma ordem ao computador, o sistema 
operacional copia o programa solicitado do disco rígido para a memória principal e o executa, 
esses sistemas são raramente utilizados hoje em dia a não ser em sistemas embarcados4.
Em sistemas modernos é permitido que vários processos sejam executados ao mesmo 
tempo, com isso quando acontecer de um processo ser bloqueado por estar esperando para 
que uma operação de E/S termine algum outro procedimento poderá utilizar o processador. 
Com isso, podemos perceber que a multiprogramação aumenta a usabilidade do processador 
não o deixando muito tempo ocioso.
A maneira mais simples e objetiva de realizar a técnica multiprogramação é fazendo 
a divisão da memória em várias partições. Essas partições podem ser divididas manualmente 
quando o sistema for inicializado.
Assim que se separar a memória em partições, pode-se organizar os processos em 
fi las. Existem algumas desvantagens ao fazer isso, pois logo que as partições são montadas 
forma-se uma fi la para cada partição e o que pode ocorrer é que uma fi la vazia para uma 
grande partição ou que haja uma grande fi la para uma partição pequena, são as chamadas 
múltiplas fi las de entrada. Como é o caso do primeiro quadro de múltiplas fi las de entrada 
da fi gura 3, em alguns casos processos pequenos têm que esperar liberar memória, apesar 
de existir memória sobrando, mas uma grande fatia de memória ou partição pode estar 
ocupada com pequenos processos.
Uma boa alternativa é a de manter apenas uma fi la, como pode ser mostrado no 
1 RAM-random acess memory – Memória de acesso aleatório.
2 ROM-read-only memory – Memória apenas para leitura.
3 BIOS-basic input output system – Sistema básico de E/S
4 Um sistema embarcado (ou sistema embutido) é um sistema microprocessado no qual o computador é completamente encapsulado ou 
dedicado ao dispositivo ou sistema que ele controla. Diferente de computadores de propósito geral, como o computador pessoal, um 
sistema embarcado realiza um conjunto de tarefas predefi nidas, geralmente com requisitos específi cos. Já que o sistema é dedicado a tarefas 
específi cas, através de engenharia pode-se otimizar o projeto reduzindo tamanho, recursos computacionais e custo do produto. (fonte: http://
pt.wikipedia.org/wiki/Sistemas_embarcados)
Sistemas Operacionais I - France Ricardo Marques Gonzaga - UNIGRAN
24
segundo quadro o de fi la de entrada única, da fi gura 3. Portanto quando uma partição estiver 
livre, o processo que for o próximo da fi la pode nela ser carregado e executado, é claro que 
esse processo tem que ser de um tamanho compatível com a partição que fi cou livre. Há outras 
maneiras de gerenciar a memória. Por exemplo, é um desperdício colocar pequenos processos 
em partições grandes; outra alternativa que pode ser implementada é pesquisar em toda a fi la de 
entrada e alocar a partição disponível ao maior processo que estiver na fi la. É claro que antes 
haveria uma verifi cação se o referente processo pode ser carregado nessa partição. 
Múltiplas fi las de entrada
Fila de entrada única
Partição 4
800k
700k
400k
200k
100k
0k
Partição 3
Partição 2 Partição 3
Partição 3
Partição 4
Partição 1 Partição 1
Sistema 
Operacional
Sistema 
Operacional
Figura: 4
Podemos observar também que os processos pequenos fi cam como se eles não 
pudessem ter uma partição completa, sendo que os processos menores, que muitas vezes são 
interativos, fi cariam muito tempo em espera.
Uma solução que pode ser utilizada é a de se ter uma partição pequena que seria 
utilizada para a execução de processos menores assim não havendo a necessidade de alocar 
o processo em uma grande partição. Uma outra alternativa seria a de defi nir uma regra que 
se resumisse da seguinte forma: um processo em estado pronto para a sua execuçãonão 
poderia parar de receber uma partição mais do que k vezes. Toda vez que o processo tentasse 
utilizar a partição e a partição lhe fosse negada, ele receberia um ponto. Quando esse processo 
alcançar certa quantia de k pontos de negação de uso da partição, ele seria benefi ciado por 
uma partição, mesmo que isso ocasionasse o desperdício de uma área da memória.
Há também alocação de memória contígua e não contígua. Em sistemas mais 
antigos, o sistema operacional era obrigado a encontrar a memória com o tamanho exato 
ou maior para possibilitar que o processo tivesse andamento, ou seja, teria que haver uma 
partição do tamanho igual ou maior do que o processo, caso contrário o processo não seria 
executado. Já na alocação não contígua o processo é dividido em blocos que o sistema pode 
alocar em espaços menores que não teriam capacidade para alocar um processo inteiro. Como 
consequência disso, o sistema operacional adquire mais sobrecarga, pois os processos fi cam 
fracionados, cada bloco do processo que foi dividido fi ca em uma área da memória.
Na alocação de memória contígua é feita uma limitação dos processos que poderiam 
Sistemas Operacionais I - France Ricardo Marques Gonzaga - UNIGRAN
25
ser executados em um sistema. Um modo feito para se superar a limitação da memória era 
criar sobreposições (overlays) que faziam com que o sistema pudesse executar processos 
maiores que a memória principal. É feita a divisão dos processos em seções lógicas e quando 
o processo não necessitar de memória para uma seção, o sistema pode substituir essa memória, 
parcial ou totalmente, pela memória de uma seção necessitada.
Com isso é permitido que seja “estendida” a memória principal, mas a sobreposição 
feita manualmente exige um planejamento cuidadoso e demorado, pois é necessário um 
conhecimento detalhado em relação à organização da memória do sistema.
Com o modelo de multiprogramação pode se chegar a ter uma melhora na usabilidade 
do processador. Em geral, se em média, um processo permanece em execução apenas 20 por 
cento do tempo em que reside na memória, se contarmos com cinco processos ao mesmo 
tempo na memória o processador deveria fi car ocupado durante o tempo todo. Esse é um 
modelo de gerenciamento que se pode chamar de otimista, mas não de realista, pois se 
presume que cinco processos nunca poderão estar ao mesmo tempo à espera de E/S.
Um modelo real do uso do processador para se considerar é o modelo probabilístico. 
Vamos supor que um processo gaste certa quantidade de tempo esperando pela fi nalização de 
uma solicitação de E/S. Com vários processos na memória, existe a probabilidade de todos os 
processos estarem esperando por E/S. Nessa situação o processador estaria ocioso.
Em alguns modelos para controlar em qual partição será alocado o processo, é mantida 
uma tabela com os endereços iniciais de cada partição. Nessa tabela fi cam as informações de 
tamanho e se a partição está em uso ou não. Sempre que processos podem entrar em estado de 
pronto, quando é iniciado um novo processo, essa tabela é percorrida na tentativa de localizar 
uma partição livre onde o processo pode ser alocado.
Existem algumas estratégias de alocação de partição. Basicamente existem três que 
são utilizados para determinar em que área livre o processo vai ser alocado.
BEST-FIT
Essa estratégia utiliza a seguinte manobra: a melhor partição é escolhida, ou seja, 
aquela em que o processo deixa a menor parte de espaço da partição sem utilização. Mas 
MFT (multi-programing with a fi xed number of tasks – 
multiprogramação com números fi xos de tarefas ou OS/MFT).
Sistemas com partições fi xas, estabelecidas pelo operador pela 
manhã e não alteradas o dia todo, foi usado durante muitos anos 
pelos OS/360 em computadores IBM de grande porte.(Sistemas 
Operacinais Modernos 2° Ed. Andrew S. Tanenbaum 
São Paulo – Prentice Hall,2003)
Sistemas Operacionais I - France Ricardo Marques Gonzaga - UNIGRAN
26
isso gera uma defi ciência, pois como ele seleciona uma partição onde fi ca uma pequena 
parte sem utilização, isso gera pequenas áreas da memória não-contíguas, o que ocasiona 
um problema de fragmentação.
WORSR-FIT
Essa estratégia é o oposto da primeira, pois ela utiliza a pior partição para alocar o 
processo. Ela executa a seguinte manobra: pega o maior espaço de partição, assim deixando 
uma parte maior sem utilização. Com isso ela deixa uma área maior podendo ser utilizada por 
outros processos, isso diminui um problema causado pela best-fi t, a fragmentação.
FIRST-FIT
Nessa estratégia utiliza-se a primeira partição que esteja livre e de tamanho sufi ciente 
para carregar o processo. Como as listas de áreas livres estão ordenadas por endereço 
crescentemente e como o esquema tenta utilizar primeiro as áreas livres de endereços mais 
baixos, isso pode gerar uma situação onde ele pode ser alocado em uma grande partição livre 
nos endereços de memória mais altos.
SWAPPING
Na multiprogramação foram alcançados muitos objetivos no gerenciamento de 
memória, mas mesmo assim foi encontrada uma defi ciência, pois muitas vezes um processo 
não podia ser executado por falta de uma partição livre. Foi então desenvolvida a técnica de 
swapping para sanar esse problema.
Na maioria das estratégias de gerenciamento de memória vistas até agora, o processo 
fi ca na memória até o fi nal de sua execução, inclusive na espera de eventos de I/O. O swapping 
é uma estratégia que consiste em ser aplicado em processos que esperam por memória livre para 
serem executados. O swapping é uma situação onde o sistema escolhe um processo residente, esse 
processo é enviado da memória principal para uma memória secundária sendo chamado de (swap 
out), geralmente é enviado para o disco. Momentos depois o processo é novamente enviado da 
memória secundária para a memória principal, como se nada tivesse acontecido. No momento em 
que é feita essa seleção do processo que vai ser enviado para a memória secundária, o algoritmo 
deve priorizar os processos que têm a menor chance de serem escalonados, assim ele evita o 
swapping desnecessário de um processo que será executado em seguida. Na maioria das vezes 
que é feita essa seleção, os processos encontram-se em estado de espera, mas há a possibilidade 
de serem selecionados processos que se encontram em estado de pronto. Os processos em 
estado de espera ou pronto que estão fora da memória são chamados de processos não residentes 
(outswapped). Veja na fi gura 5 um exemplo que ilustra um processo em swapping.
Sistemas Operacionais I - France Ricardo Marques Gonzaga - UNIGRAN
27
Para que a estratégia de swapping tenha sucesso é necessário que no sistema seja 
oferecido um loader para que aconteça a relocação dinâmica de processos. Esse loader 
relocável permite que o processo seja colocado em qualquer posição da memória, mas a 
relocação é realizada somente no momento do carregamento. O swapping faz com que um 
processo saia e volte várias vezes para a memória.
Essa estratégia permite um maior compartilhamento de memória principal, assim, 
tem-se uma maior utilização dos recursos de todo sistema computacional. O maior problema 
dessa estratégia é o seu alto custo das operações de I/O (swap in/out). Nos instantes em que 
a memória estiver pouco disponível, o sistema pode até fi car inteiro dedicado à realização de 
swapping, fi cando assim sem executar outras tarefas e fi cando impedido de realizar a execução 
de outros processos residentes. Essa situação é chamada de thrashing, e é considerado um 
problema crítico na gerência de memória em sistemas operacionais.
B
B
Arquivo de
Swap
Memória Principal
Memória Principal
Arquivo de
Swap
Swap out
Swap in
Sistema 
Operacional
Sistema 
Operacional
Processo A
Processo A
Processo B
Processo C
Área livre
Processo B
Processo C
Processo D
Figura: 5
Sistemas Operacionais I - France Ricardo Marques Gonzaga - UNIGRAN
28
ATIVIDADES 
As atividades referentes a esta aula estão disponibilizadas na ferramenta “Atividades”. 
Apósrespondê-las, envie-nas por meio do Portfólio- ferramenta do ambiente de aprendizagem 
UNIGRANET. Em caso de dúvidas, utilize as ferramentas apropriadas para se comunicar com 
o professor.

Outros materiais