Академический Документы
Профессиональный Документы
Культура Документы
Aula 6
Sistemas Operacionais
Aula 6
Aula 6 | Slide 1
Sumrio
Caractersticas e funes bsicas Overlay Reentrncia Formas de alocao
Contgua simples Particionada esttica Particionada dinmica Best-fit Worst-fit First-fit
Estratgias de alocao
| Pg. 77
Aula 6
Definies e conceitos
A memria real tambm conhecida por vrios outros termos
Memria Memria Memria Memria principal fsica primria RAM
Para que poder ser executado pelo SO, um programa sempre precisar estar carregado na memria principal (RAM); caso contrrio, o carregamento de instrues a partir do disco (HD) tornaria a execuo do programa muito lenta A diferena entre os tempos de acesso ao disco e a memria RAM da ordem de 10 a 100 mil vezes!
Aula 6 | Slide 3
Caractersticas
No passado, a memria principal sempre foi tratada como um recurso caro e escasso; da a preocupao em se construir programas pequenos e o surgimento das sofisticadas tcnicas de gerenciamento de memria As memrias atuais tiveram um aumento expressivo na capacidade e na reduo de custo Nos SOs monoprogramao, a gerncia de memria bem simples; por outro lado, nos sistemas multiprogramao, a gerncia de memria mais sofisticada e tem um grande percentual de responsabilidade no desempenho global do sistema A maioria dos esquemas de gerenciamento de memria atuais combinam HW e SW para ganhar desempenho de memria
Aula 6 | Slide 4
| Pg. 78
Aula 6
Observe que a quantidade de memria RAM nos SOs mais antigos corresponde atualmente a mais ou menos a quantidade de memria cache L1 dos processadores modernos!
Aula 6 | Slide 5
Funes bsicas
A poltica de gerenciamento de memria varia de um SO para outro mas, de modo geral, dever ter por objetivos
Manter na RAM o maior nmero de processos residentes e, com isso, maximizar o uso de recursos como processador e discos Minimizar as operaes de E/S em disco Mesmo sem espao livre na RAM, admitir o carregamento de novos processos (atravs de tcnicas como swapping) Admitir programas maiores que a prpria RAM (atravs de tcnicas como overlay e memria virtual) Proteger reas do SO e reas dos processos na RAM, impedindo invases em reas alheias (de forma intencional ou inadvertida) Ser transparente para os programas
As polticas de gerenciamento de memria real vistas neste mdulo, hoje em dia j no so mais usadas nos SOs de uso geral; entretanto, servem de base para melhorar a compreenso das tcnicas atuais de gerenciamento de memria virtual
Aula 6 | Slide 6
| Pg. 79
Aula 6
Overlay (sobreposio)
Overlay uma tcnica de gerenciamento de memria usada para permitir o carregamento na memria RAM de um processo maior que o espao disponvel Isso poder ser conseguido dividindo-se o processo em diversos blocos, de modo que haja um bloco principal e vrios blocos secundrios O bloco principal mantido na RAM o tempo todo e todos os blocos secundrios so dependentes dele Os blocos secundrios so carregados na RAM, um de cada vez, e no dependem uns dos outros; entretanto, todos os blocos secundrios dependem do bloco principal Comandos executados no bloco principal descarregam um bloco secundrio e carregam outro, conforme necessrio e de escolhas no uso do aplicativo (gerando sobrecarga no SO) Cabe ao programador dividir seu programa em blocos e separar as partes independentes; nem sempre isto fcil A rea reservada para overlay dever ser dimensionada de acordo com o maior bloco secundrio do programa
Aula 6 | Slide 7
Implementao de overlay
Aula 6 | Slide 8
| Pg. 80
Aula 6
Reentrncia
Em SOs multiprogramao, reentrncia a capacidade de se aproveitar uma rea de cdigo esttica comum (cdigo executvel somente leitura), carregando-a na RAM apenas uma vez e compartilhando-a entre vrios usurios ou programas A reentrncia implementada pelos programadores dos aplicativos e suportada pelo SO Para evitar desperdcios de memria RAM quando vrios usurios invocam um mesmo programa, ou um mesmo usurio abre vrias instncias do mesmo programa, o SO detecta um cdigo comum j carregado e simplesmente faz um novo compartilhamento dessa parte Mesmo assim, preciso que cada instncia em execuo esteja associada a uma rea de dados independente, pois normalmente as tarefas em curso so distintas Cdigos reentrantes podem aparecer em utilitrios do SO, compiladores e linkers, editores de texto etc.
Aula 6 | Slide 9
Implementao de reentrncia
Aula 6 | Slide 10
| Pg. 81
Aula 6
Estratgias de gerenciamento
As estratgias de gerenciamento de memria so projetadas para tirar o melhor proveito da RAM e pode ser classificadas quanto Estratgias de busca
Determinam quando transferir um processo ou partes de um processo para a RAM (sob demanda, antecipada)
Estratgias de posicionamento
Determinam o local da RAM onde novos processos ou partes de um processo sero alocados (primeiro, melhor ou pior encaixe)
Estratgias de substituio
Determinam quais processos ou que partes de um processo devero ser substitudos (aleatria, o mais antigo, o mais ocioso, o no usado mais recentemente etc.)
Considera-se inicialmente que um programa tem que estar totalmente carregado na RAM em um espao contguo; mais tarde, na memria virtual, essas limitaes sero relaxadas
Aula 6 | Slide 11
Alocao e controle
A gerncia de memria do SO dever controlar o particionamento da RAM, quais partes esto alocadas para processos em execuo e quais partes esto livres para ser usada por novos processos Com relao ao particionamento da RAM, este poder ser de 3 formas
Alocao contgua simples
Usa toda a memria livre como um bloco nico na alocao dos processos
Aula 6 | Slide 12
| Pg. 82
Aula 6
Aula 6 | Slide 14
| Pg. 83
Aula 6
Aula 6 | Slide 16
| Pg. 84
Aula 6
Aula 6 | Slide 17
Aula 6 | Slide 18
| Pg. 85
Aula 6
Aula 6 | Slide 19
Aula 6 | Slide 20
| Pg. 86
Aula 6
Estratgias de alocao
Na alocao particionada dinmica necessria uma estratgia para alocar novos processos que vo chegando Existem 3 estratgias bsicas para alocao das lacunas
First-fit (primeiro encaixe) Best-fit (melhor encaixe) Worst-fit (pior encaixe)
O first-fit varre a tabela de espaos livres at conseguir encaixar na primeira lacuna com espao livre suficiente O best-fit varre a tabela de espaos livres toda e faz o encaixe na lacuna que gera menos desperdcio de espao O worst-fit varre a tabela de espaos livres toda e faz o encaixe na lacuna que gera mais desperdcio de espao As estratgias best-fit e worst-fit tm o encargo de manter a tabela de espaos livres ordenada de forma crescente ou decrescente respectivamente; j o first-fit baseado na ordem de endereamento, sem esse encargo
Aula 6 | Slide 21
Tanto a fragmentao interna quanto a externa so indesejveis, porque causam desperdcios na RAM A fragmentao interna ocorre na alocao esttica, nos espaos livres que sobram em cada bloco, ao se encaixar um novo processo A fragmentao externa ocorre na alocao dinmica, nos espaos livres de que se formam, quando um mais processos terminam Tcnicas de gerenciamento de memria virtual como paginao e segmentao, que sero vistas adiante, ajudam a diminuir esses efeitos colaterais
Aula 6 | Slide 22
| Pg. 87
Aula 6
Swapping (troca)
Em alguns momentos o SO poder ter vrios processos em execuo simultnea, consumindo vrios recursos e tornando a execuo excessivamente lenta (sistema degradado) A tcnica de swapping permite que um processo inteiro seja interrompido e armazenado temporariamente em disco (swap out); com isso, sobra mais espao na RAM e a degradao geral diminui consideravelmente Mais tarde, depois que alguns processos encerrarem e as condies tornarem-se mais favorveis, aquele processo interrompido trazido de volta (swap in) e agora poder executar com um maior desempenho Para que a tcnica de swapping funcione, necessrio um loader que implemente relocao dinmica, pois o processo pode voltar para uma partio diferente da anterior O algoritmo que escolhe o processo a sofrer swap out deve priorizar aquele com menores chances de ser executado em seguida, de modo a evitar um novo swapping em seguida (dar preferncia para processos no estado de espera)
Aula 6 | Slide 23
Implementao de swapping
Aula 6 | Slide 24
| Pg. 88
Aula 6
Implementao de MV
Aula 6 | Slide 26
| Pg. 89
Aula 6
Mapeamento de memria
O processo de mapeamento torna transparente para os aplicativos a localizao fsica das instrues e dados de um programa na RAM; o programador trabalha com uma memria exclusiva, plana, contgua e praticamente ilimitada Depois de mapeado um endereo virtual para real, o processador acessa o endereo correspondente de forma direta na memria principal Como consequncia do mecanismo de mapeamento e da virtualizao, fisicamente os programas no mais precisam estar alocados de forma contgua na RAM para serem executados; embora sempre estejam na memria virtual (contiguidade artificial) Outra vantagem da memria virtual que no preciso carregar um processo inteiro para execuo; pode-se carregar apenas algumas partes num dado instante e ir alocando e desalocando as partes necessrias e as no mais necessrias (atravs de tcnicas de paginao e segmentao)
Aula 6 | Slide 27
Transparncia no mapeamento
Aula 6 | Slide 28
| Pg. 90
Aula 6
Tabelas de mapeamento
Cada processo tem o seu espao de endereamento virtual, como se possusse sua prpria memria Um mecanismo de traduo se encarrega de manter tabelas de mapeamento exclusivas cada processo A tabela de mapeamento uma estrutura de dados existente para cada processo e mantida de forma esttica na RAM A troca da tabela de mapeamento realizada atravs de um registrador de UCP especial, que indica a posio inicial da tabela corrente e que muda a cada troca de contexto entre os diversos processos escalonados As tabelas mapeiam blocos de dados, cujo tamanho determina o nmero de entradas na tabela de mapeamento; quanto maior o bloco menos entradas na tabela de mapeamento e, com isso, iro ocupar menos espao na RAM; por outro lado, quanto menor o bloco menor a fragmentao interna Os projetistas de SOs devem balancear esses parmetros; a maioria dos SOs adota entradas nas tabelas de mapeamentos que relacionam blocos de 4K endereos
Aula 6 | Slide 29
Aula 6 | Slide 30
| Pg. 91
Aula 6
Blocos e endereamento
A primeira considerao a ser feita quando se cria uma memria virtual imaginar como cada clula ser referenciada (endereada); limitaes de hardware respondem a esta questo, onde na maioria das arquiteturas se usam endereos de 32 bits para identificao de clulas de memria A segunda considerao a ser feita quanto ao tamanho de cada bloco de clulas; de forma a limitar o espao ocupado pelas tabelas de mapeamento dos processos na RAM e diminuir a fragmentao O nmero de blocos dado por 232-n, onde n equivale ao nmeros de clulas em cada bloco (o deslocamento) Blocos muito grandes geram fragmentao interna e blocos muito pequenos geram tabelas de mapeamento muito grande; na prtica, n=12 mostrou-se um valor razovel Portanto, o nmero de blocos ficou em 220 bits, isto corresponde a 1 Milho de blocos e o tamanho do bloco ficou em 212 bits, isto corresponde a 4 mil deslocamentos dentro de cada bloco, aproximadamente
Aula 6 | Slide 31
Aula 6 | Slide 32
| Pg. 92
Exerccios
1. (CVM 2003) Os jobs que aguardaram disponibilidade de memria para serem executados, tm os tempos de espera indicados no ndice de (A) retardo rotacional. (B) retardo de alocao. (C) ocupao do processador. (D) utilizao de memria. (E) ciclo de processamento.
2. (CVM 2003) A quantidade de memria livre, porm no disponvel por conseqncia de alocao ineficiente de espao, indicada pelo ndice de (A) compartilhamento. (B) segmentao. (C) compactao. (D) fragmentao. (E) particionamento.
4. (TCU 2002) Uma das atividades do sistema operacional em relao gerncia de memria a) fornecer mecanismos para a sincronizao de processos. b) mapear arquivos no armazenamento secundrio. c) suspender e retomar processos. d) fornecer mecanismos para a comunicao de processos. e) decidir que processos devero ser carregados na memria quando houver espao disponvel.
3. (Petrobras 2005) O gerenciador de memria tem como funo manter na memria principal o maior nmero possvel de processos residentes, permitindo maximizar o compartilhamento do processador e demais recursos computacionais. Pode-se dizer, portanto, que: (A) a tcnica de overlay uma forma de gerenciamento de memria que consiste em dividir o programa em mdulos, de forma que seja possvel a execuo independente de cada mdulo, utilizando a mesma rea de memria. (B) a alocao contgua simples uma forma de gerenciamento de memria ainda presente em sistemas multiprogramveis. (C) na alocao particionada esttica, caso o programa do usurio no preencha toda a memria principal, existir um espao de memria livre sem utilizao. (D) na alocao contgua a memria dividida em pedaos de tamanho fixo, chamados parties. (E) na alocao particionada esttica absoluta, todas as referncias a endereos do programa Prof. Glauco Marques
5. (CGU 2003/2004) Em um computador, localizaes de memria so organizadas linearmente em ordem consecutiva, so numeradas e correspondem a uma palavra armazenada. O nmero nico que identifica cada palavra o seu endereo. Com relao aos endereos de memria correto afirmar que a) na memria de acesso aleatrio (RAM) o termo aleatrio significa que qualquer endereo de memria pode ser acessado na mesma velocidade, independentemente de sua posio na memria. b) devem ser armazenados no HD para que o processador possa recuper-los no momento do BOOT. c) so utilizados quando o processador necessita acessar um arquivo ou parte dele. d) os processadores que utilizam DMA (acesso direto memria) no utilizam os endereos de memria para acessar palavras armazenadas. e) em computadores que utilizam 4 bytes por palavra, 25% da capacidade de memria RAM instalada utilizada para armazenar os endereos.
| Pg. 93
Sistemas Operacionais - ACP 6. (CGU 2003/2004) Analise as seguintes afirmaes relativas arquitetura de computadores: I. Uma memria virtual paginada melhora o tempo de acesso mdio memria principal. II. Uma memria fsica (RAM) serve como intermediria para a memria cache sempre que esta for mantida no disco rgido. III. Uma memria cache mantm os blocos de dados mais freqentemente usados em uma memria pequena e rpida que local CPU. IV. Uma memria virtual paginada aumenta a memria principal com armazenamento em disco. Esto corretos os itens: a) I e II b) II e III c) III e IV d) I e III e) II e IV
10. A(O) _______________ uma tcnica que divide um programa em diversos segmentos lgicos e, para economizar espao, mantm somente o segmento em uso e necessrio na RAM, num dado instante de tempo a) Caching b) Overlay c) Programao dinmica d) Swapping
11. Em geral, a sobrecarga de processamento incorrida pela alocao no contgua compensada com a vantagem de se poder alocar mais processos na RAM ao mesmo tempo a) Verdadeiro b) Falso
7. funo precpua da gerncia de memria do SO? a) Determinar como a memria disponvel dever ser alocada entre os processos b) Determinar como responder a mudanas de perfil de uso de memria por um processo c) Interagir com o hardware especfico de gerenciamento de memria d) Todas as opes anteriores
12. Na memria virtual, quanto maior for o tamanho do bloco adotado, maior tambm ser a fragmentao interna a) Verdadeiro b) Falso
8. De acordo com ________________ , dados e instrues acessados na memria RAM, tem uma grande chance de serem acessados novamente nos prximos instantes. a) o padro de acesso b) a lei de Moore c) o princpio da localidade espacial d) o princpio da localidade temporal
Gabarito
Exerccio 1 2 3 4 5 6 7 8 9 10 11 12 Resposta B D A E A C D D C B A A
9. De acordo com ________________ , dados e instrues vizinhos aos dados e instrues acessados na memria RAM, tem uma grande chance de serem acessados tambm. a) o padro de acesso Prof. Glauco Marques
| Pg. 94