43
INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO GERENCIAMENTO DE MEMÓRIA PROFESSOR CARLOS MUNIZ

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO … › disc_intTecInf › 20... · 2020-04-03 · A arquitetura IBM PC original (processadores Intel x86) utilizava o modelo da figura

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO … › disc_intTecInf › 20... · 2020-04-03 · A arquitetura IBM PC original (processadores Intel x86) utilizava o modelo da figura

INTRODUÇÃO À TECNOLOGIA DA

INFORMAÇÃOGERENCIAMENTO DE

MEMÓRIAPROFESSOR CARLOS MUNIZ

Page 2: INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO … › disc_intTecInf › 20... · 2020-04-03 · A arquitetura IBM PC original (processadores Intel x86) utilizava o modelo da figura

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

GERENCIAMENTO DE MEMÓRIA

• CONCEITO BÁSICO DE MEMÓRIA

Professor Carlos Muniz [email protected] 2

Memória é um recurso importante que deve ser cuidadosamentegerenciado. Enquanto a capacidade de armazenamento doscomputadores vem crescendo continuamente, a complexidadedo software cresce talvez à taxas maiores. A parte do sistemaoperacional que gerencia a memória é chamada degerenciador de memória, sendo o objeto desta apresentação.

Page 3: INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO … › disc_intTecInf › 20... · 2020-04-03 · A arquitetura IBM PC original (processadores Intel x86) utilizava o modelo da figura

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

GERENCIAMENTO DE MEMÓRIA

• CONCEITO BÁSICO DE MEMÓRIA

Professor Carlos Muniz [email protected] 3

Dentre outras tarefas, o gerenciador de memória monitoraquais partes da memória estão em uso e quais estãodisponíveis; aloca e libera memória para os processos; egerencia a permuta de processos entre memória principal esecundária (quando a memória principal não é capaz deabrigar todos os processos).

Page 4: INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO … › disc_intTecInf › 20... · 2020-04-03 · A arquitetura IBM PC original (processadores Intel x86) utilizava o modelo da figura

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

GERENCIAMENTO DE MEMÓRIA

• GERENCIAMENTO DE MEMÓRIA SEM PERMUTA OU PAGINAÇÃO

Professor Carlos Muniz [email protected] 4

Sistemas de gerenciamento de memória podem ser divididosem duas grandes classes: aqueles que movem processos entre amemória principal e secundária (tipicamente disco) durante aexecução, e aqueles que mantêm os processos fixos emmemória primária. Na primeira classe, o gerenciamento ébaseado em técnicas de swapping (permuta) ou de paginação.

Page 5: INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO … › disc_intTecInf › 20... · 2020-04-03 · A arquitetura IBM PC original (processadores Intel x86) utilizava o modelo da figura

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

GERENCIAMENTO DE MEMÓRIA

• GERENCIAMENTO DE MEMÓRIA SEM PERMUTA OU PAGINAÇÃO

Professor Carlos Muniz [email protected] 5

MONOPROGRAMAÇÃO

A técnica usada em microcomputadores será mostrada nafigura(a) a seguir. A memória é dividida entre o sistemaoperacional e um processo do usuário. O sistema operacionalpode estar no final da memória RAM (Random Access Memory)como mostrado na figura(a), ou em ROM (Read Only Memory),como mostrado na figura(b), ou ainda tendo os device driversem ROM e o resto do sistema operacional em RAM ocupando aparte baixa da memória, como mostrado na figura(c).

Page 6: INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO … › disc_intTecInf › 20... · 2020-04-03 · A arquitetura IBM PC original (processadores Intel x86) utilizava o modelo da figura

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

GERENCIAMENTO DE MEMÓRIA

• GERENCIAMENTO DE MEMÓRIA SEM PERMUTA OU PAGINAÇÃO

Professor Carlos Muniz [email protected] 6

MONOPROGRAMAÇÃO

A arquitetura IBM PC original (processadores Intel x86)utilizava o modelo da figura (c), com os device driverslocalizados no bloco de 8K mais alto dentro do espaço de 1Mde endereçamento. O programa na ROM é chamado de BIOS(Basic Input Output System).

Page 7: INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO … › disc_intTecInf › 20... · 2020-04-03 · A arquitetura IBM PC original (processadores Intel x86) utilizava o modelo da figura

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

GERENCIAMENTO DE MEMÓRIA

• GERENCIAMENTO DE MEMÓRIA SEM PERMUTA OU PAGINAÇÃO

Professor Carlos Muniz [email protected] 7

MONOPROGRAMAÇÃO

Três formas de organizar a memória para o sistema operacional e um processo do usuário

Page 8: INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO … › disc_intTecInf › 20... · 2020-04-03 · A arquitetura IBM PC original (processadores Intel x86) utilizava o modelo da figura

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

GERENCIAMENTO DE MEMÓRIA

• GERENCIAMENTO DE MEMÓRIA SEM PERMUTA OU PAGINAÇÃO

Professor Carlos Muniz [email protected] 8

MONOPROGRAMAÇÃO

Quando o sistema é organizado dessa maneira, somente umprocesso pode estar em execução por vez. O usuário entra comum comando no terminal, e o sistema operacional carrega oprograma requerido do disco para a memória e o executa.Quando o processo termina, o sistema operacional reassume aCPU e espera por um novo comando para carregar um outroprocesso na memória já liberada pelo primeiro.

Page 9: INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO … › disc_intTecInf › 20... · 2020-04-03 · A arquitetura IBM PC original (processadores Intel x86) utilizava o modelo da figura

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

GERENCIAMENTO DE MEMÓRIA

• GERENCIAMENTO DE MEMÓRIA SEM PERMUTA OU PAGINAÇÃO

Professor Carlos Muniz [email protected] 9

MULTIPROGRAMAÇÃO E USO DA MEMÓRIA

Embora a monoprogramação seja usada em pequenoscomputadores, em computadores com múltiplos usuários ela éproibitiva. Grandes computadores frequentemente provêemserviços interativos para vários usuários simultaneamente. Paratal, a habilidade de ter-se mais de um processo na memória emum mesmo instante de tempo é imprescindível por razões dedesempenho.

Page 10: INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO … › disc_intTecInf › 20... · 2020-04-03 · A arquitetura IBM PC original (processadores Intel x86) utilizava o modelo da figura

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

GERENCIAMENTO DE MEMÓRIA

• GERENCIAMENTO DE MEMÓRIA SEM PERMUTA OU PAGINAÇÃO

Professor Carlos Muniz [email protected] 10

MULTIPROGRAMAÇÃO E USO DA MEMÓRIA

Uma outra razão para ter-se a multiprogramação, é que muitosprocessos gastam uma substancial fração do seu tempo paracompletar E/S em disco. É comum para um processopermanecer em um loop lendo um bloco de dados de umarquivo em disco e então realizando alguma computação sobreo conteúdo dos blocos lidos. Se for gasto 40 mseg para ler umbloco e a computação demanda apenas 10 mseg, sem amultiprogramação a CPU estará desocupada esperando peloacesso ao disco durante 80% do tempo.

Page 11: INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO … › disc_intTecInf › 20... · 2020-04-03 · A arquitetura IBM PC original (processadores Intel x86) utilizava o modelo da figura

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

GERENCIAMENTO DE MEMÓRIA

• GERENCIAMENTO DE MEMÓRIA SEM PERMUTA OU PAGINAÇÃO

Professor Carlos Muniz [email protected] 11

MULTIPROGRAMAÇÃO E USO DA MEMÓRIA

Modelagem da MultiprogramaçãoQuando a multiprogramção é usada, o percentual de utilizaçãoda CPU aumenta. Via de regra, se a média dos processos utilizamCPU somente 20% do tempo que permanecem na memória, com 5processos em memória, a CPU deverá estar ocupada o tempotodo. Este modelo é otimista, entretanto, pois assume que os 5processos nunca estejam esperando por E/S ao mesmo tempo,bem como despreza o esforço de gerenciamento dos 5 processospor parte do sistema operacional.

Page 12: INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO … › disc_intTecInf › 20... · 2020-04-03 · A arquitetura IBM PC original (processadores Intel x86) utilizava o modelo da figura

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

GERENCIAMENTO DE MEMÓRIA

• GERENCIAMENTO DE MEMÓRIA SEM PERMUTA OU PAGINAÇÃO

Professor Carlos Muniz [email protected] 12

MULTIPROGRAMAÇÃO E USO DA MEMÓRIA

Modelagem da MultiprogramaçãoO melhor modelo é ver o uso da CPU do ponto de vistaprobabilístico. Suponha que os processo gastem em média umafração p do tempo à espera de E/S. Com n processos namemória por vez, a probabilidade que todos os n processosestejam esperando por E/S é pn. A utilização da CPU é então 1- pn. A figura a seguir mostra a utilização da CPU em função den, chamado grau de multiprogramação.

Page 13: INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO … › disc_intTecInf › 20... · 2020-04-03 · A arquitetura IBM PC original (processadores Intel x86) utilizava o modelo da figura

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

GERENCIAMENTO DE MEMÓRIA

• GERENCIAMENTO DE MEMÓRIA SEM PERMUTA OU PAGINAÇÃO

Professor Carlos Muniz [email protected] 13

MULTIPROGRAMAÇÃO E USO DA MEMÓRIA

Modelagem da Multiprogramação

Utilização da CPU como uma função do número de processos na memória

Page 14: INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO … › disc_intTecInf › 20... · 2020-04-03 · A arquitetura IBM PC original (processadores Intel x86) utilizava o modelo da figura

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

GERENCIAMENTO DE MEMÓRIA

• GERENCIAMENTO DE MEMÓRIA SEM PERMUTA OU PAGINAÇÃO

Professor Carlos Muniz [email protected] 14

MULTIPROGRAMAÇÃO E USO DA MEMÓRIA

Modelagem da MultiprogramaçãoDa figura está claro que caso os processos gastem 80% do seutempo esperando por E/S, ao menos 10 processos devem estar namemória por vez para obter um desperdício de CPU em torno de10%. Quando se considera que um processo interativo aguardandocomandos do terminal está em um estado de espera de E/S, deveficar claro que tempos de espera para E/S superiores a 80% sãousuais. Processos utilizando unidades de armazenamento comelevada frequência, também contribuem para o aumento destepercentual.

Page 15: INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO … › disc_intTecInf › 20... · 2020-04-03 · A arquitetura IBM PC original (processadores Intel x86) utilizava o modelo da figura

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

GERENCIAMENTO DE MEMÓRIA

• GERENCIAMENTO DE MEMÓRIA SEM PERMUTA OU PAGINAÇÃO

Professor Carlos Muniz [email protected] 15

MULTIPROGRAMAÇÃO E USO DA MEMÓRIA

Multiprogramação com Partições FixasSe adotarmos a estratégia de admitir mais de um processo namemória por vez, devemos estabelecer uma estratégia deorganização da memória. A estratégia mais simples consiste emdividir a memória em n partições (possivelmente diferentes).Estas partições podem, por exemplo, ser estabelecidas naconfiguração do sistema operacional.

Page 16: INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO … › disc_intTecInf › 20... · 2020-04-03 · A arquitetura IBM PC original (processadores Intel x86) utilizava o modelo da figura

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

GERENCIAMENTO DE MEMÓRIA

• GERENCIAMENTO DE MEMÓRIA SEM PERMUTA OU PAGINAÇÃO

Professor Carlos Muniz [email protected] 16

Multiprogramação com Partições Fixas

Quando um processo inicia, este pode ser colocado em uma filade entrada para ocupar a menor partição de tamanhosuficiente para acomodá-lo. Desde que as partições são fixas,qualquer espaço em uma partição não usado pelo processo éperdido.

Page 17: INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO … › disc_intTecInf › 20... · 2020-04-03 · A arquitetura IBM PC original (processadores Intel x86) utilizava o modelo da figura

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

GERENCIAMENTO DE MEMÓRIA

• GERENCIAMENTO DE MEMÓRIA SEM PERMUTA OU PAGINAÇÃO

Professor Carlos Muniz [email protected] 17

Multiprogramação com Partições FixasA desvantagem de se ordenar os processos que chegam em filasseparadas torna-se aparente quando a fila para a maior partição estávazia, mas a fila para a menor partição está cheia, como no caso daspartições 1 e 4 na figura (a). Uma organização alternativa é manter umafila única como na figura (b). Toda vez que uma partição é liberada, amesma é alocada ao primeiro processo da fila. Uma vez que é indesejávelgastar uma partição grande com um processo pequeno, uma estratégiamais eficaz é procurar em toda fila de entrada a maior tarefa para apartição liberada. Note que o último algoritmo discrimina os processospequenos, quando é usualmente desejável dar a eles o melhor tratamento,não o pior.

Page 18: INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO … › disc_intTecInf › 20... · 2020-04-03 · A arquitetura IBM PC original (processadores Intel x86) utilizava o modelo da figura

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

GERENCIAMENTO DE MEMÓRIA

• GERENCIAMENTO DE MEMÓRIA SEM PERMUTA OU PAGINAÇÃO

Professor Carlos Muniz [email protected] 18

Multiprogramação com Partições FixasEste sistema, com partições fixas definidas pelo operador, foiusado pelo sistema operacional OS/360 nos grandesmainframes da IBM por muitos anos. Ele era chamado de MFT(Multiprograming with a Fixed number of Task). Ele é simples dese entender e igualmente simples de implementar: os processosque chegam são colocados em uma fila até que uma partiçãoadequada seja liberada, quando então são carregados eexecutados.

Page 19: INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO … › disc_intTecInf › 20... · 2020-04-03 · A arquitetura IBM PC original (processadores Intel x86) utilizava o modelo da figura

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

GERENCIAMENTO DE MEMÓRIA

• GERENCIAMENTO DE MEMÓRIA SEM PERMUTA OU PAGINAÇÃO

Professor Carlos Muniz [email protected] 19

Multiprogramação com Partições Fixas

(a) Partições de memória fixa com filas de entrada separadas para cada partição;(b) partição de memória fixa com uma fila simples de entrada

Page 20: INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO … › disc_intTecInf › 20... · 2020-04-03 · A arquitetura IBM PC original (processadores Intel x86) utilizava o modelo da figura

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

GERENCIAMENTO DE MEMÓRIA

• GERENCIAMENTO DE MEMÓRIA SEM PERMUTA OU PAGINAÇÃO

Professor Carlos Muniz [email protected] 20

REALOCAÇÃO E PROTEÇÃO Multiprogramação introduz dois problemas essenciais queevem ser resolvidos: realocação e proteção. Na figura anteriorestá claro que diferentes processos serão executados emendereços diferentes. Quando um programa é ligado (linked)1,o linker deve saber em qual endereço na memória o programacomeçará.

Page 21: INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO … › disc_intTecInf › 20... · 2020-04-03 · A arquitetura IBM PC original (processadores Intel x86) utilizava o modelo da figura

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

GERENCIAMENTO DE MEMÓRIA

• GERENCIAMENTO DE MEMÓRIA SEM PERMUTA OU PAGINAÇÃO

Professor Carlos Muniz [email protected] 21

REALOCAÇÃO E PROTEÇÃO Por exemplo, suponha que a primeira instrução de um programa éuma chamada para um procedimento de endereço relativo 100dentro do arquivo binário produzido pelo linker. Se o programa forcarregado na partição 1 da figura anterior(a), esta instrução saltarápara o endereço absoluto 100, em plena área do sistemaoperacional. O que é necessário é uma chamada para 100K + 100.Se o programa for carregado na da partição 2, ele deve serexecutado como uma chamada para 200K + 100, e assim pordiante. Este problema é conhecido como o problema da realocação.

Page 22: INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO … › disc_intTecInf › 20... · 2020-04-03 · A arquitetura IBM PC original (processadores Intel x86) utilizava o modelo da figura

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

GERENCIAMENTO DE MEMÓRIA

• GERENCIAMENTO DE MEMÓRIA SEM PERMUTA OU PAGINAÇÃO

Professor Carlos Muniz [email protected] 22

REALOCAÇÃO E PROTEÇÃO Realocação durante o carregamento não resolve o problemada proteção. Pelo fato de programas operarem endereçosabsolutos de memória, não existe maneira de proibir umprograma de ler ou gravar em qualquer posição de memória.Em sistemas multi-usuários é indesejável permitir que processosleiam e escrevam em posições de memória alocadas a outrosprocessos.

Page 23: INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO … › disc_intTecInf › 20... · 2020-04-03 · A arquitetura IBM PC original (processadores Intel x86) utilizava o modelo da figura

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

GERENCIAMENTO DE MEMÓRIA

• GERENCIAMENTO DE MEMÓRIA SEM PERMUTA OU PAGINAÇÃO

Professor Carlos Muniz [email protected] 23

REALOCAÇÃO E PROTEÇÃO A solução de proteção adotada pela IBM na família 360 foi dividir amemória em blocos de 2K bytes e atribuir um código de proteção de 4 bitspara cada bloco. A cada processo é atribuído um código único de 4 bits,gravado também nos blocos de memória que ele ocupa. Este código é partedo registro PSW (program status word) quando o processo tem a posse daCPU. O hardware protege qualquer tentativa de programa em execução deacessar a memória cujo código de proteção difere daquele presente naPSW. Desde que somente o sistema operacional pode mudar os códigos deproteção dos blocos de memória e dos processos, processos do usuário estãoprotegidos de interferências entre sí e com o sistema operacional.

Page 24: INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO … › disc_intTecInf › 20... · 2020-04-03 · A arquitetura IBM PC original (processadores Intel x86) utilizava o modelo da figura

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

GERENCIAMENTO DE MEMÓRIA

• GERENCIAMENTO DE MEMÓRIA SEM PERMUTA OU PAGINAÇÃO

Professor Carlos Muniz [email protected] 24

REALOCAÇÃO E PROTEÇÃO Uma solução alternativa, adotada por praticamente todos osmicroprocessadores atuais, para realocação e proteção é equipar amáquina com dois registradores especiais no hardware, chamados deregistradores de base e limite. Quando um processo é escalonado, oregistrador de base é carregado com o endereço do começo da suapartição, e o registrador limite é carregado com o tamanho da partição.Cada endereço de memória referenciado tem o conteúdo do registrador debase a ele adicionado antes de ser enviado para o barramento de acesso àmemória.

Page 25: INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO … › disc_intTecInf › 20... · 2020-04-03 · A arquitetura IBM PC original (processadores Intel x86) utilizava o modelo da figura

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

GERENCIAMENTO DE MEMÓRIA

• GERENCIAMENTO DE MEMÓRIA SEM PERMUTA OU PAGINAÇÃO

Professor Carlos Muniz [email protected] 25

REALOCAÇÃO E PROTEÇÃO Por exemplo, se o registrador de base for 100K, uma instrução CALL100 é efetivamente modificada para CALL (100K + 100). Endereçossão comparados com o registrador de limite para prevenirendereçamento fora do espaço alocado ao processo. O hardwaretambém protege os registradores de base e limite para evitar queprogramas dos usuários os modifiquem.

Page 26: INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO … › disc_intTecInf › 20... · 2020-04-03 · A arquitetura IBM PC original (processadores Intel x86) utilizava o modelo da figura

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

GERENCIAMENTO DE MEMÓRIA

• PERMUTA (SWAPPING)

Professor Carlos Muniz [email protected] 26

É uma técnica aplicada à gerência de memória que visa darmaior taxa de utilização à memória principal, melhorando seucompartilhamento. Visa também resolver o problema da faltade memória principal num sistema.

Page 27: INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO … › disc_intTecInf › 20... · 2020-04-03 · A arquitetura IBM PC original (processadores Intel x86) utilizava o modelo da figura

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

GERENCIAMENTO DE MEMÓRIA

• PERMUTA (SWAPPING)

Professor Carlos Muniz [email protected] 27

Toda vez que um programa precisa ser alocado para execução enão há espaço na memória principal, o sistema operacionalescolhe entre os processos alocados que não tem previsão deutilizar a CPU nos próximos instantes (quase sempre entre aquelesque estão em interrupção de E/S ou no final da fila de pronto), e“descarrega” este processo da memória para uma área especialem disco, chamada arquivo de swap, onde o processo ficaarmazenado temporariamente. Durante o tempo em que oprocesso fica em swap, o outro que necessitava de memória entraem execução ocupando o espaço deixado pelo (...)

Page 28: INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO … › disc_intTecInf › 20... · 2020-04-03 · A arquitetura IBM PC original (processadores Intel x86) utilizava o modelo da figura

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

GERENCIAMENTO DE MEMÓRIA

• PERMUTA (SWAPPING)

Professor Carlos Muniz [email protected] 28

(...) que saiu. Pouco antes de chegar a vez do processoarmazenado em swap utilizar a CPU, o sistema escolhe um outroprocesso para descarregar para swap e devolve o anterior daárea de swap para a memória principal, para que este possaser executado novamente. E vai trabalhando assim até que osprocessos vão terminando. O problema dessa técnica é quepode provocar um número excessivo de acesso à memóriasecundária (disco), levando o sistema a uma queda dedesempenho.

Page 29: INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO … › disc_intTecInf › 20... · 2020-04-03 · A arquitetura IBM PC original (processadores Intel x86) utilizava o modelo da figura

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

GERENCIAMENTO DE MEMÓRIA

• MEMÓRIA VIRTUAL

Professor Carlos Muniz [email protected] 29

Memória virtual é uma técnica sofisticada e poderosa de gerênciade memória onde as memórias principal e secundária sãocombinadas, dando ao usuário a impressão de que existe muitomais memória do que a capacidade real de memória principal. Oconceito de memória virtual baseia-se em não vincular oendereçamento feito pelo programa aos endereços físicos damemória principal. Desta forma, o programa e suas estruturas dedados deixam de estar limitados ao tamanho da memória físicadisponível, pois podem possuir endereços vinculados à memóriasecundária, que funciona como uma extensão da memória principal.

Page 30: INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO … › disc_intTecInf › 20... · 2020-04-03 · A arquitetura IBM PC original (processadores Intel x86) utilizava o modelo da figura

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

GERENCIAMENTO DE MEMÓRIA

• MEMÓRIA VIRTUAL

Professor Carlos Muniz [email protected] 30

Outra vantagem desta técnica é permitir um número maior deprocessos compartilhando a memória principal, já que apenaspartes de cada processo estarão residentes. Isto leva a umautilização mais eficiente do processador, além de minimizar (ouquase eliminar) o problema da fragmentação.

Page 31: INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO … › disc_intTecInf › 20... · 2020-04-03 · A arquitetura IBM PC original (processadores Intel x86) utilizava o modelo da figura

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

GERENCIAMENTO DE MEMÓRIA

• MEMÓRIA VIRTUAL

Professor Carlos Muniz [email protected] 31

A seguir, os conceitos que envolvem a gerência de memóriavirtual, incluindo a paginação:

• Espaço de endereçamento virtual: é o conjunto de endereçosvirtuais que um processo pode endereçar.

• Espaço de endereçamento real: analogamente, é o conjuntode endereços reais que um processo pode endereçar.

Page 32: INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO … › disc_intTecInf › 20... · 2020-04-03 · A arquitetura IBM PC original (processadores Intel x86) utilizava o modelo da figura

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

GERENCIAMENTO DE MEMÓRIA

• MEMÓRIA VIRTUAL

Professor Carlos Muniz [email protected] 32

• Mapeamento: como o espaço de endereçamento virtual não temnenhuma relação com o espaço de endereçamento real, umprograma pode fazer referência a um endereço virtual que estejafora dos limites da memória principal (real), ou seja, os programase suas estruturas de dados não estão mais limitados ao tamanhoda memória física disponível. Quando um programa é executado,apenas uma parte do seu código fica residente na memóriaprincipal, permanecendo o restante na memória virtual até omomento de ser referenciado. Este esquema de endereçamentovirtual é ignorado pelo programador no desenvolvimento dasaplicações. (...)

Page 33: INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO … › disc_intTecInf › 20... · 2020-04-03 · A arquitetura IBM PC original (processadores Intel x86) utilizava o modelo da figura

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

GERENCIAMENTO DE MEMÓRIA

• MEMÓRIA VIRTUAL

Professor Carlos Muniz [email protected] 33

(...)Cabe ao compilador e ao linkeditor gerar códigos executáveisem função do endereçamento virtual, e o sistema operacional seincumbe de administrar os detalhes durante a sua execução. Oprocessador apenas executa instruções e referencia dados residentesno espaço de endereçamento real. Portanto, deve existir ummecanismo que transforme os endereços virtuais em endereços reais.Este mecanismo é o que chamamos de mapeamento, e consiste empermitir a tradução do endereço virtual em endereço real. Comoconseqüência, um programa não mais precisa estar necessariamenteem endereços contíguos na memória real para ser executado.

Page 34: INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO … › disc_intTecInf › 20... · 2020-04-03 · A arquitetura IBM PC original (processadores Intel x86) utilizava o modelo da figura

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

GERENCIAMENTO DE MEMÓRIA

• MEMÓRIA VIRTUAL

Professor Carlos Muniz [email protected] 34

• Tabela de endereçamento de páginas: estrutura mantida pelosistema para armazenar, entre outras informações, o mapeamento.É única e exclusiva para cada processo, relacionando os endereçosvirtuais do processo ás suas posições na memória real.

• Memória virtual por paginação: é a técnica de gerência dememória onde o espaço de endereçamento virtual e o espaço deendereçamento real são divididos em blocos do mesmo tamanhochamados páginas. As páginas do espaço virtual são chamadaspáginas virtuais, enquanto as páginas do espaço real sãochamadas páginas reais ou frames.

Page 35: INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO … › disc_intTecInf › 20... · 2020-04-03 · A arquitetura IBM PC original (processadores Intel x86) utilizava o modelo da figura

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

GERENCIAMENTO DE MEMÓRIA

• MEMÓRIA VIRTUAL

Professor Carlos Muniz [email protected] 35

• Page fault: é a falha de página. Sempre que o processoreferencia um endereço virtual, o sistema verifica se a páginacorrespondente já está carregada na memória real. Se nãoestiver, acontece o page fault. Neste caso, o sistema devetransferir a página virtual para um endereço na memória real.Esta transferência é chamada de paginação. O número depage faults gerados por um processo em um determinadointervalo de tempo é chamado de taxa de paginação doprocesso. Se esta taxa atingir valores elevados, pode haver umcomprometimento do desempenho do sistema. (...)

Page 36: INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO … › disc_intTecInf › 20... · 2020-04-03 · A arquitetura IBM PC original (processadores Intel x86) utilizava o modelo da figura

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

GERENCIAMENTO DE MEMÓRIA

• MEMÓRIA VIRTUAL

Professor Carlos Muniz [email protected] 36

(...) Um page fault provoca uma interrupção no processo, poishá a necessidade de acessar operações de E/S. Assim, sempreque acontece a paginação, uma interrupção de E/S fará comque o processo em execução seja interrompido e colocado emestado de espera até que sua intervenção de E/S sejarealizada, quando então o processo voltará à fila de pronto eentrará em execução de acordo com o escalonamento normal.Enquanto o sistema trata a interrupção deste processo, um outroocupará a CPU.

Page 37: INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO … › disc_intTecInf › 20... · 2020-04-03 · A arquitetura IBM PC original (processadores Intel x86) utilizava o modelo da figura

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

GERENCIAMENTO DE MEMÓRIA

• MEMÓRIA VIRTUAL

Professor Carlos Muniz [email protected] 37

• Workingset: é o conjunto de páginas de um processo, emmemória real, em um determinado instante. Este conceitosurgiu com o objetivo de reduzir o problema do thrashing eestá relacionado ao princípio da localidade. Existem doistipos de localidade que são observados durante a execuçãoda maioria dos programas. A localidade espacial é atendência de que, após uma referência a um endereço dememória, sejam realizadas novas referências a endereçospróximos ou adjacentes. (...)

Page 38: INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO … › disc_intTecInf › 20... · 2020-04-03 · A arquitetura IBM PC original (processadores Intel x86) utilizava o modelo da figura

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

GERENCIAMENTO DE MEMÓRIA

• MEMÓRIA VIRTUAL

Professor Carlos Muniz [email protected] 38

(...)A localidade espacial é a tendência de que, após areferência a uma posição de memória, esta mesma posição sejareferenciada novamente num curto intervalo de tempo. A partirdesse princípio de localidade, o processador tenderá aconcentrar suas referências a um conjunto de páginas doprocesso durante um determinado período de tempo. Imagineum loop principal de um programa que ocupe três páginas. Atendência é que estas três páginas tenham um alto índice dereferências durante a execução do programa.

Page 39: INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO … › disc_intTecInf › 20... · 2020-04-03 · A arquitetura IBM PC original (processadores Intel x86) utilizava o modelo da figura

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

GERENCIAMENTO DE MEMÓRIA

• MEMÓRIA VIRTUAL

Professor Carlos Muniz [email protected] 39

• Thrashing: é o efeito causado pelo excesso de page faults durante aexecução de um processo. Pode acontecer a nível de programa ou desistema. A nível de programa, pode ser provocado por um programamal escrito, com desvios incondicionais espalhados por seu código(desobedecendo portanto aos princípios da localidade), ou por umlimite de workingset muito pequeno (que não comporte o loopprincipal do programa, por exemplo). A solução para estes casos éreescrever o programa ou aumentar o limite do workingset. No casode thrashing de sistema, significa que há mais páginas sendorequeridas na memória real do que ela pode realmente suportar. A

solução é aumentar o tamanho da memória física.

Page 40: INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO … › disc_intTecInf › 20... · 2020-04-03 · A arquitetura IBM PC original (processadores Intel x86) utilizava o modelo da figura

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

GERENCIAMENTO DE MEMÓRIA

• MEMÓRIA VIRTUAL

Professor Carlos Muniz [email protected] 40

• Tamanho da página: deve estar entre 512 bytes e 128KB,aproximadamente. Páginas menores promovem maiorcompartilhamento da memória, permitindo que maisprogramas possam ser executados. Páginas maioresdiminuem o grau de compartilhamento da memória, commenos programas disputando o processador. Assim conclui-seque quanto menor o tamanho da página, MAIOR é o graude compartilhamento da memória e da CPU.

Page 41: INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO … › disc_intTecInf › 20... · 2020-04-03 · A arquitetura IBM PC original (processadores Intel x86) utilizava o modelo da figura

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

GERENCIAMENTO DE MEMÓRIA

• MEMÓRIA VIRTUAL

Professor Carlos Muniz [email protected] 41

• Políticas de busca de páginas: definem como as páginas serãocarregadas da memória virtual para a memória real. A política pordemanda estabelece que uma página somente será carregadaquando for referenciada. Este mecanismo é conveniente, pois levapara a memória real somente as páginas realmente necessárias àexecução do programa, ficando as outras na memória virtual. A outrapolítica, chamada paginação antecipada, funciona carregandoantecipadamente várias páginas da memória virtual para aprincipal, na tentativa de economizar tempo de E/S. Nem sempre osistema acerta na antecipação, mas o índice de acertos é quasesempre maior que o de erros.

Page 42: INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO … › disc_intTecInf › 20... · 2020-04-03 · A arquitetura IBM PC original (processadores Intel x86) utilizava o modelo da figura

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

GERENCIAMENTO DE MEMÓRIA

• MEMÓRIA VIRTUAL

Professor Carlos Muniz [email protected] 42

• Políticas de alocação de páginas: determinam quantosframes cada processo pode manter na memória real. Apolítica de alocação fixa determina um limite de workingsetigual para todos os processos, e pode ser vista como umapolítica injusta, na medida em que processos maioresnormalmente necessitam de um workingset maior. A outrapolítica é a variável, que define um limite de workingsetdiferente e variável para cada processo, em função de seutamanho, taxa de paginação ou até mesmo da taxa deocupação da memória principal.

Page 43: INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO … › disc_intTecInf › 20... · 2020-04-03 · A arquitetura IBM PC original (processadores Intel x86) utilizava o modelo da figura

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

GERENCIAMENTO DE MEMÓRIA

• MEMÓRIA VIRTUAL

Professor Carlos Muniz [email protected] 43

• Políticas de substituição de páginas: definem onde serãotrocadas as páginas, quando se fizer necessária uma substituição.Na política local, somente as páginas do processo que gerou opage fault são candidatas a serem substituídas.Já na políticaglobal, todas as páginas alocadas na memória principal sãocandidatas à substituição, independente do processo que gerou opage fault. Como uma página de qualquer processo pode serescolhida, pode ser que este processo sofra um aumentotemporário da taxa de paginação em função da diminuição dassuas páginas alocadas em memória.