Você está na página 1de 6

Faculdade Ruy Barbosa

Bacharelando em Sistemas de Informao


Andr Lus Conceio Santana




ESTUDO DIRIGIDO SISTEMAS OPERACIONAIS
Respostas da Atividade 4









SALVADOR
2014
a) Tcnicas bsicas de gerenciamento de memria.
b) Swapping
Enquanto no sistema monoprogramveis a gerncia da memria no so muito complexa, pois
apenas um nico programa reside na memria, nos sistemas multiprogramveis essa gerncia
se torna crtica, devido a ter vrios processos residindo na mesma memria.
De forma geral os programas so armazenados em memrias secundrias, a exemplo de disco,
devido as ser um meio abundante de espao, no voltil, as informaes no disco no sero
apagados caso tenha falta de energia ou desligamento do computador e principalmente de
baixo custo. Devido ao processador executar apenas instrues localizadas na memria
principal, o sistema Operacional tem o papel de transferir programas da memria secundria
para a principal antes de sua execuo. Devido ao tempo de acesso da memria secundria ser
muito mais lento em comparao ao tempo de acesso memria principal, o sistema
operacional deve buscar reduzir o numero de operaes de E/S memria secundria, caso
contrario, srios problemas no desempenho do sistema poder ocorrer.
A gerncia de memria deve tentar manter na memria principal o maior numero de
processos residentes, permitindo maximizar o compartilhamento do processador e demais
recurso computacionais. Onde mesmo na ausncia de espao livre, o sistema deve permitir
que novos processos fossem aceitos e executados. Tal ao s possvel por meio de
transferncia temporria de processos residentes na memria principal para a memoria
secundria, obtendo assim espao para novos processos. Essa ao permite que quando esse
processo que foi transferido para a memria secundria e posteriormente houver a
necessidade desse processo usar o processador, suas informaes j esto armazenadas na
memria secundria havendo s a necessidade de carrega-los para a memria principal. Essa
ao de leva e traz processo entre as memrias chamado de swapping.
Outra situao que a gerncia de memria precisa de preocupar a permisso de execuo de
programas que sejam maiores que a memria fsica disponvel, implementada por meio de
tcnicas como memoria virtual.
Como j foi dito nas outras atividades apresentada para esse estudo dirigido, nos ambientes
de multiprogramao, sistema operacional tem que proteger as reas de memrias ocupadas
por cada processo, alm das reas que reside o prprio sistema operacional, pois se algum
programa tentar realizar algum acesso indevido memria, o sistema deve impedi-lo de
alguma forma, apesar de a gerncia de memria garantir a proteo de reas de memria,
existem mecanismos de compartilhamento que devem ser ofertados para diferentes
processos, que permita a troca de dados de forma protegida.
Com isso entro nas respostas do que foi pedido.
a) Tcnicas bsicas de gerenciamento de memria.
As tcnicas so:
Alocao contgua simples: a memria principal subdividida em duas reas: Uma para o
sistema operacional e a outra para o programa do usurio, utilizada em sistemas
monoprogramveis, onde apenas um programa reside na memria por vs, onde uma
preocupao prevenir que o programa no acessasse a rea do SO, que para isso utilizado
um registrador informando a rea limite. Outra preocupao o tamanho do processo, se o
processo iria caber no espao disponvel.
Essa tcnica permite que o usurio tenha controle de toda a memria principal, podendo ter
acesso a qualquer posio da memria, inclusive a rea do SO.
Com o proposito de proteo desse tipo de acesso que alguns sistemas implementam a
proteo por meio de um registrador, que delimita as reas do SO e do usurio, sendo que
sempre que um programa fizer referencia a um endereo na memria, o sistema verifica se o
endereo esta dentro dos limites permitidos, caso no esteva poder ser emitido um aviso de
erro e a ao no ser permitida.

Alocao Particionada: Devido evoluo dos sistemas operacionais, proporcionando um
melhor aproveitamento dos recursos disponveis, os sistemas multiprogramveis j so muito
mais eficientes no uso do processador, necessitando assim, que diversos programas estejam,
ao mesmo tempo, na memria principal e que novas formas de gerncia da memria sejam
implementadas.
Com isso a tcnica de alocao particionada pode ser esttica ou fixa, onde a memria
dividida em pedaos de tamanhos fixos, chamado de parties e seu tamanho deve ser
estabelecido na fase de inicializao do sistema e definido em funo do tamanho dos
programas que executaro no ambiente.
Na memria principal primeiramente separado o espao do Sistema operacional, e o
restante da memria dividida em pequenos espaos fixo que no pode ser modificado, a
exemplo: se uma memria de 10kb for dividida em 3 espao sendo que 2 kb do sistema
operacional, e mais com 3 kb e o ultimo com 5kb, esses pequenos espao de memria no
podero mudar seu tamanho, a no ser se o computador for desligado e na sua reinicializao
o SO poder criar parties de tamanho diferentes.
No inicio o programas s podiam ser carregados e executados em apenas uma partio
especfica, mesmo se outra partio estivesse livre, a esse tipo de gerncia de memria
chamou-se de alocao particionada esttica absoluta.
Quando se tinha os programas ou processos a serem executados, tambm era definido que
partio cada programa iria ser executada, no podendo assim ser alterada. O problema m
utilizao da memria, onde digamos que existe 2 processos o A na posio de 1kb e B na
posio de 2kb e em sua inicializao foi definido que eles utilizariam a partio de 3kb,
conforme o exemplo inicial, a memria tem 3 parties que um do SO, restando 2 parties
para o usurio, com isso temos o processo B esperando que o processo A termine e deixe a
utilizao da memria, para que o processo B possa utilizar, nesse momento existe ainda livre
duas parties que o processo B no pode utilizar por j ter tido definido que partio ele
utilizaria, e com isso fica duas parties livres (desperdiada) e um processo esperando a
utilizao da memria. Com essa exigncia de cada programa poder ser executada em
parties definidas deixa um alto desperdcio de memria. Essa determinao que cada
programa tem em usar uma partio especfica devido a os processos fazer referncias a
endereos absolutos na memria, a exemplo digamos que o processo B utiliza a posio 2kb,
com isso a partio utilizada de 3kb, aps o final dessa partio, e iniciado o endereo da
partio seguinte.
Com a evoluo dos compiladores, montadores, linkers e loaders, o cdigo gerado deixou de
ser absoluto e passou ser realocvel. No cdigo realocvel, todas as referncias e endereos
no programa so relativos ao incio do cdigo, e no, a endereos fsicos de memria. Esse tipo
de gerenciamento de memria denominado locao particionada esttica realocvel. Com
isso o processo B que tem que esta na posio 2kb, feito a referencia a partir da posio do
inicio da partio e no da posio 2kb da memria, ento toda partio vai ter uma posio
1kb, 2kb, ..., limitado at o fim de seu espao de memria, dessa forma os processos no ficam
presos a uma nica partio.
Na Alocao particionada esttica, sua proteo baseia-se em dois registradores que indicam
o limite superior e inferior da partio, onde o programa est sendo executado, com isso caso
o programa tente acessar uma posio de memria fora dos limites definidos pelos
registradores, ele ser interrompido e uma mensagem de violao de acesso ser gerada pelo
SO.
Vemos tambm que tanto na alocao absoluta e alocao realocvel, os programas,
normalmente no preenchem totalmente as parties onde carregador, causando um
problema conhecido como fragmentao interna. Exemplificando, se uma partio de 4kb for
utilizado por um processo ou programa de tamanho de 2kb e em outra partio de tamanho
3kb estiver com um processo de tamanho 1kb, ter uma fragmentao na primeira partio de
2kb e na segunda de 1kb. Digamos que surgiu outro processo com tamanho 3kb, esse no
poderia ter acesso memria, pois no existe uma partio com tamanho continuo de 3kb,
mesmo havendo espao, esta no so contnuos, no permitindo guardar uma informao
completa.
A alocao particionada pode ser tambm dinmica ou varivel, que cada programa utiliza
um espao necessrio, tornando essa rea sua partio. Com isso no existe uma rea de
partio j definida, j com tamanho, antes do programa ser executado. Porm poder ocorrer
um diferente tipo de fragmentao, quando os programas forem terminando e deixando
espaos cada vez menores na memria, chamado assim de fragmentao externa.
Digamos que surja 4 processo (A, B, C e D) com tamanhos (2, 4, 5 e 7kb), seguindo a tcnica
cada processo transformar seu tamanho em sua partio, at esse momento o processo
funciona bem, pois no haver desperdcio de memria, porm, digamos que a ordem de
ocupao da memria siga a ordem A sendo o 1 e assim por diante, nesse momento o
processo B termine sua utilizao da memria, com isso ficar um buraco de tamanho de 4kb,
que s aceitar processo desse tamanho ou menor e com o tempo esse espao ficar to
pequeno que no comportar nenhum outro processo, ficando assim um buraco de memria
se utilizao. Para solucionar esse problema existem duas solues:
A primeira soluo esperar que o programa que esta entre dois espaos vazios na memria
finalizar. A exemplo, digamos que uma memria de espao para os programas tenha em sua
totalidade 10Kb, e nessa memria exista um programa B ocupando 4 k no centro da memria,
ou seja, tenha 3kb livre ante do programa B e 3kb livres depois do programa B com essa
soluo tem que esperar o programa ser finalizado para que tenhamos os 10 kb de memria
livres. Com isso essa soluo se torna ineficaz devido a ser dependente do tempo de utilizao
do programa B, quero dizer se o programa B demorar muito tempo para sua finalizao, esse
tempo ter que ser esperado para obteno da memria total.

A segunda soluo mover as reas utilizadas da posio que esteja para o inicio da memria,
tornando o sistema totalmente realocvel, tornando assim uma melhor soluo.

No entanto devido a complexdade do algoritmo e o recurso utilizado so sistema, essa soluo
se torna inviavel, devido ao gasto de tempo para essa realocao.
Respondendo a segunda questo.
b) Swapping
Essa tcnica aplicada a gerencia de memria para programas que esperam por memria livre
para serem executados. Nessa situao o sistema escolhe um processo residente na memria
que ser transferido da memria principal para secundria (swap out) e posteriormente o
processo carregado de volta para a memria principal (swap in) para poder continuar sua
execuo como se nada tivesse acontecido.
O algoritmo de escolha do processo a ser retirado da memria principal deve priorizar aquela
com menor chance de ser executado, para evitar o swapping desnecessrio de um processo
que ser executado logo em seguida.
O conceito de swapping permite maior compartilhamento da memria principal e,
consequentemente, maior utilizao dos recursos do sistema operacional.
Seu maior problema o elevado custo das operaes de E/S (swap in/out).

Referncias:
TANENBAUM, Andrew S. Sistemas Operacionais Modernos. 3 ed., 2010.

Você também pode gostar