Вы находитесь на странице: 1из 18

Sistemas Operacionais - ACP

Aula 6

Sistemas Operacionais

(Ref. Caps. 9 e 10 do livro)


Evoluo da memria real para virtual

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

Swapping Conceitos de memria virtual


Blocos e endereamento
Aula 6 | Slide 2

Prof. Glauco Marques

| Pg. 77

Sistemas Operacionais - ACP

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

Prof. Glauco Marques

| Pg. 78

Sistemas Operacionais - ACP

Aula 6

Evoluo no consumo da RAM


SO (Windows cliente) Windows 3.1 Windows 95 Windows NT 4 Workstation Windows 2000 Pro Windows XP Pro Windows Vista Ultimate Data Lanamento Abr/1992 Ago/1995 Ago/1996 Fev/2000 Out/2001 Jan/2007 RAM RAM Mnima Recomendada 2,6 MB 8 MB 32 MB 64 MB 128 MB 1 GB 4 MB 16 MB 96 MB 128 MB 256 MB 2 GB

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

Prof. Glauco Marques

| Pg. 79

Sistemas Operacionais - ACP

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

Prof. Glauco Marques

| Pg. 80

Sistemas Operacionais - ACP

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

Prof. Glauco Marques

| Pg. 81

Sistemas Operacionais - ACP

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

Alocao particionada esttica


Usa vrios blocos de tamanhos predefinidos para alocao dos processos

Alocao particionada dinmica


No usa o conceito de blocos e vai alocando os processos de forma adjacente

Aula 6 | Slide 12

Prof. Glauco Marques

| Pg. 82

Sistemas Operacionais - ACP

Aula 6

Alocao contgua simples


Este tipo de alocao foi implementada nos primeiros SOs monousurio / monotarefa e, hoje em dia, j no mais utilizada Partindo-se da premissa que s existe um processo em execuo num dado instante, a RAM poder ser dividida em duas parties: SO e programa Neste caso, o programador dever se preocupar em desenvolver um sistema que no seja maior que a partio dedicada aos programas mas estes podero ter acesso a qualquer regio da memria Para proteo do SO, implementado um registrador de fronteira (ou de limite), estabelecendo-se a regio da memria RAM a ser protegida do SO Esse tipo de alocao de fcil implementao, porm no faz um bom aproveitamento da RAM e dos outros recursos Nesta forma de alocao, o uso de overlay seria uma forma de ultrapassar o limite de memria imposto
Aula 6 | Slide 13

Alocao contgua simples

Aula 6 | Slide 14

Prof. Glauco Marques

| Pg. 83

Sistemas Operacionais - ACP

Aula 6

Alocao particionada esttica


Tambm conhecida como alocao por partio fixa Nos primeiros SOs multitarefa, a memria era dividida em parties de tamanhos fixos, estabelecidos durante a inicializao do sistema; em cada partio se encaixa um processo Para alterar o tamanho fixo das parties necessrio reinicializar o sistema Nesse novo esquema, o SO usa uma tabela de controle para gerir os espaos alocados, seus respectivos tamanhos e processos associados, assim como, os espaos no alocados Os primeiros programas, s trabalhavam com endereamento absoluto, isto , as referncias RAM eram baseadas em posies fsicas, forando sua execuo em uma partio especfica alocao particionada esttica absoluta Os programas posteriores, j conseguiam trabalhar com endereamento relocvel, isto , as referncias RAM eram relativas apenas ao incio do cdigo, liberando sua execuo em qualquer partio livre alocao particionada esttica relocvel
Aula 6 | Slide 15

Alocao particionada esttica

Aula 6 | Slide 16

Prof. Glauco Marques

| Pg. 84

Sistemas Operacionais - ACP

Aula 6

Aloc Part Est absoluta

Aula 6 | Slide 17

Aloc Part Est relocvel

Aula 6 | Slide 18

Prof. Glauco Marques

| Pg. 85

Sistemas Operacionais - ACP

Aula 6

Alocao particionada dinmica


Tambm conhecida como alocao por partio varivel Na tentativa de eliminar os desperdcios dos esquemas anteriores, foi proposto um novo esquema que deixa de particionar a memria RAM em blocos; apenas separa o bloco relativo ao SO Os processos agora so carregados sequencialmente eliminando-se os espaos livres dos blocos; at preencher a RAM Embora este novo esquema tenha suas vantagens, ele trs um novo problema; conforme os processos vo encerrando, eles vo deixando espaos livres e criando lacunas (espaos livres entre blocos) Entretanto, a alocao particionada dinmica pode encaixar um novo processo em qualquer lacuna, mas nem sempre elas tm tamanho necessrio e surge novamente espao livre no final de uma lacuna, voltando ao problema da fragmentao Existem 2 modos de resolver o problema das lacunas
Relocao ou compactao das lacunas, que gera uma enorme sobrecarga no sistema Fuso de lacunas livres adjacentes ou coalescncia, que gera menos sobrecarga no sistema

Aula 6 | Slide 19

Alocao particionada dinmica

Aula 6 | Slide 20

Prof. Glauco Marques

| Pg. 86

Sistemas Operacionais - ACP

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

Fragmentao interna x externa


As formas de alocao vistas geram dois efeitos colaterais de fragmentao indesejveis
Fragmentao interna Fragmentao externa

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

Prof. Glauco Marques

| Pg. 87

Sistemas Operacionais - ACP

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

Prof. Glauco Marques

| Pg. 88

Sistemas Operacionais - ACP

Aula 6

Conceitos de memria virtual


A memria virtual uma memria fictcia que combina a memria principal (RAM) e uma parte pela memria secundria (HD), dando a iluso de uma memria grande e nica A idia da memria virtual tornar transparente para os programadores a quantidade de espao e a organizao fsica da memria, nos sistemas onde seu programa ir rodar A gerncia de memria virtual do SO expe ao aplicativo um espao contguo de 4 GB para uso (mesmo que no exista esta quantidade de memria RAM fsica) O compilador da linguagem de programao se encarrega de gerar o cdigo executvel baseado em um espao de endereamento virtual e o SO se encarrega dos detalhes de mapear esse endereamento virtual aos endereos fsicos reais durante a execuo do programa Para no gastar muito tempo nos mapeamentos de endereo virtual para o real e tornar a execuo de programas lenta, os SOs modernos contam com o auxilio de um hardware especfico conhecido como MMU (Memory Management Unit)
Aula 6 | Slide 25

Implementao de MV

Aula 6 | Slide 26

Prof. Glauco Marques

| Pg. 89

Sistemas Operacionais - ACP

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

Prof. Glauco Marques

| Pg. 90

Sistemas Operacionais - ACP

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

Mapeamento por processo

Aula 6 | Slide 30

Prof. Glauco Marques

| Pg. 91

Sistemas Operacionais - ACP

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

Estrutura dos blocos

Aula 6 | Slide 32

Prof. Glauco Marques

| Pg. 92

Sistemas Operacionais - ACP

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.

Aula 6 so relativas ao incio do cdigo e no a endereos fsicos de memria.

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

Aula 6 b) a lei de Moore c) o princpio da localidade espacial d) o princpio da localidade temporal

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

Вам также может понравиться