SlideShare uma empresa Scribd logo
1 de 43
UNIVERSIDADE LURIO
FACULDADE DE ENGENHARIA
LICENCIATURA EM ENGENHARIA INFORMÁTICA
SISTEMA OPERATIVO
Gestão de Memória
Estudantes:
Abel Mondlane
Alberto Cipriano
Cesar Moda
Introdução
A seguir discutiremos várias formas de gerir a memória em que podemos observar
qual o papel da memória na multi-programação, como a memória real e virtual está
organizada, assim como os algoritimos de substituição de páginas em caso de haver
falta de uma páginas.
Na gestão de memória, os algoritmos variam desde uma abordagem primitiva da
bare-machine até estratégias de paginação e segmentação. Cada abordagem tem as
suas próprias vantagens e desvantagens. A Seleção de um método de gestão de
memória para um sistema específico depende de muitos factores, especialmente da
concepção do hardware do sistema.
Como veremos, muitos algoritmos requerem suporte de hardware, embora os
designs recentes integraram de perto o hardware e o sistema operativo. O trabalho
tem como bjectivo geral, descrever as principais técnicas de gestão de memória
implementas pelos sistemas operativos modernos.
Gestão de Memória
● Segundo (Silberschatz, Galvin, & Gagne, 2009), a memória principal é uma
grande variedade de palavras ou bytes, de centenas de milhares a milhares de
milhões. Cada palavra ou byte tem o seu próprio endereço. A memória principal
é um repositório de acesso rápido dos dados partilhados pelo CPU e
dispositivos E/S.
Gestão de Memória
● Segundo (Silberschatz, Galvin, & Gagne, 2009), o sistema operativo é
responsável pelas seguintes actividades relacionadas com gestão de memória:
● Manter um registo de que partes da memória estão actualmente a ser utilizadas
e por quem;
● Decidir quais os processos (ou partes dos mesmos) e dados a entrar e a sair de
memória;
● Atribuição e desalocação de espaço de memória conforme necessário.
Hierarquia
As restrições de concepção da memória de um computador podem ser resumidas
em três questões:
● Quanto?
● Com que rapidez?
● Quanto custa?
Hierarquia
Existe uma relação entre as três características-chave de memória: capacidade,
tempo de acesso, e custo. Uma variedade de tecnologias são utilizados para
implementar sistemas de memória, e em todo este espectro de tecnologias, as
relações seguintes mantêm-se:
● Tempo de acesso mais rápido, maior custo por bit; Maior capacidade, menor
custo por bit;
● Maior capacidade, velocidade de acesso mais lenta.
Hierarquia
Hierarquia
● É possível organizar os dados em toda a hierarquia de modo a que a
percentagem de acessos a cada nível sucessivamente inferior é
substancialmente menor do que a de o nível acima. O tipo de memória mais
rápido, mais pequeno e mais caro consiste nos registos internos para o
processador.
● Cada local na memória principal tem um endereço único, e a maioria das
instruções da máquina referem-se para um ou mais endereços de memória
principais. A memória principal é normalmente estendida com um de maior
velocidade, menor cache.
● A memória cache não é normalmente visível para o programador mas sim para
o processador. É um dispositivo para encenar o movimento de dados entre
memória principal e registos do processador para melhorar o desempenho.
Hierarquia
● As formas de memória descritas são, tipicamente, voláteis. A memória externa,
não volátil, é também referida como memória secundária ou memória auxiliar,
que são utilizadas para armazenar ficheiros de programas e de dados, e são
normalmente visíveis para o programador apenas em termos de ficheiros e
registos.
Papel da gestão da memória em multi-
programação: Arquitectura de partições fixas
● Para que a multprogramação exista, é necessário que vários programas
possam coexistir em memória primária. A forma mais simples de o fazer é
dividir a memória do computador em partições, carregando-se um programa em
cada uma delas;
● O grau de multprogramação máximo é dado pelo número de partições
existentes.
Papel da gestão da memória em multi-
programação: Programas Recolocáveis
● Inicialmente os programas eram compilados para uma determinada partição, e
somente nessa poderiam ser executados. Isso porque quer as variáveis quer o
código estavam associados a endereços que só faziam sentido numa partição;
● Em algumas situações, uma partição podia ter uma fila de programas a espera
de serem executados, enquanto outra estava vazia. Para resolver esse
problema tornaram-se os programas recolocáveis.
Papel da gestão da memória em multi-
programação: Programas Recolocáveis
● A recolocação efectuada deste modo tem um custo elevado que se repete
sempre que o programa é carregado em memória. Uma evolução consistiu em
dotar os computadores de um registo base que era carregado com o endereço
físico do início da partição.
● Em tempo de execução, o hardware somava o valor do registo base com o
endereço proveniente do programa para obter o endereço real. Esse tipo de
endereçamento, também chamado endereçamento baseado, constitui já uma
aproximação ao endereçamento virtual, pois conta com uma ajuda do hardware
para transformar os endereços.
Papel da gestão da memória em
multiprogramação: Proteção
● A existência de programas de vários utilizadores simultâneos obriga a
existência de mecanismos de proteção entre eles, para impedir que um
programa, que se esteja a executar numa partição, possa aceder as zonas de
memória de outra. Houve varias tentativas para obviar alguns destes problemas
usando endereçamento real, mas apenas o endereçamento virtual surgiu como
resposta para estes problemas.
gestão da memória em multiprogramação:
Arquitectura de partições variáveis
● Devido a inflexibilidade imposta pelas partições fixas, era um importante factor
de perda de eficácia, que poderia ser resolvido mudando de forma dinâmica, o
número e a dimensão das partições em tempo de execução.
● Ao colocar um segundo processo em execução, procede-se de maneira
semelhante, cria-se uma partição de memória de dimensão suficiente para
conter o seu espaço de endereçamento. Isto é o número de partição poderá
crescer ate se esgotar a memória (Marques, Ferreira, Ribeiro, Veiga, &
Rodrigues,2012, pp. 312-313).
Papel da gestão da memória em multi-
programação: Multprogramação com partições
variáveis
PAPEl da gestão da memória em
multiprogramação: Fragmentação
● Para este método, quando um processo termina, o bloco de memória onde
estava sendo executado e liberado, e normalmente assocado ao outro bloco
livre que lhe seja contiguo, o que pode permitir a execução de outro programa
que estivesse executável e não residente (Marques, Ferreira, Ribeiro, Veiga, &
Rodrigues, 2012).
Organização de memória real
● Segundo (Marques, Ferreira, Ribeiro, Veiga, & Rodrigues, 2012), a gestão de
memória tem por objectio:
● Gerir o espaço de endereçamento dos processos
● Assegurar que cada processo dispõe da memória que precisa;
● Garantir que cada processo só aceda a memória a que tem direito (protecção);
● Optimizar as transferências de informação em memórias organizadas
hierarquicamente.
Organização de memória real: Endereçamento
Real
● Um endereço real refere-se sempre a memória primária, nunca a memória
secundária. Este método apresenta desvantagens como: A dimensão dos
programas é limitada pela dimensão da memória primária do computador;
● Um programa só pode funcionar nos endereços físicos para onde foi escrito, ou
gerado por um compilador de uma linguagem de alto nível, não podendo ser
executado directamente noutra máquina com um mapa de memória diferente
ou mesmo noutro endereço da mesma máquina;
● A multiplicação fica seriamente dificultada. Como os endereços físicos onde o
programa se vai executar têm de ser decididos numa fase inicial (compilação
ou carregamento em memoria), não é possível executar simultaneamente dois
programas que tivessem sido preparados para se executarem nos mesmos
endereços.
Organização de memória virtual
● Memória virtual é uma técnica que permite a execução de processos que não
estejam completamente na memória; porque com este esquema de alocação
de memória é possível endereçar a memória secundária como se esta fizesse
parte da memória principal (Silberschatz, Galvin e Gagne, 2009; Stallings, 2012)
Organização de memória virtual
Organização de memória virtual
Organização de memória virtual: Segmentação Da
Memória Virtual
● Segmentação é um esquema de gestão de memória com espaços de
endereços ou segmentos completamente diferentes. Cada segmento consiste
numa sequência linear de endereços (Tanembaum & Bos, 2015; Silberschatz,
Galvin e Gagne, 2009).
Organização de memória virtual: Segmentação Da
Memória Virtual-Organização
● Legenda:
● M = 1, segmento modificado;
● M = 0, segmento não modificado
● Segment base, o primeiro endereço físico do segmento.
● Length, o tamanho do segmento.
Organização de memória virtual: Segmentação Da
Memória Virtual-paginação
● Um endereço virtual usando paginação é composto por dois campos:
1. Número de páginas: usado com um índice para a tabela de páginas que contem
os enderecos base e de cada página em memória.
2. Deslocamento: é combinado com o endereço-base para definir o endereço físico
para ser enviado à unidade de memória.
Organização de memória virtual: Implementação
da Tabela de Páginas
● Cada processo tem uma Tabela de Páginas, onde há uma entrada para cada
página do processo. Com a memória virtual, um processo pode consistir de um
grande número de páginas, impossibilitando alocar a Tabela de Páginas dentro
da memória física. As Tabelas de Páginas desses processos são
implementadas em memória virtual (disco).
● Para evitar esse problema, é usada uma memória cache especial Translation
Lookaside Buffer (TLB), para entradas da Tabela de Páginas.
Organização de memória virtual: Translation
Lookaside Buffer (TLB)
● O Translation Lookaside Buffer (TLB) funciona como uma memória cache e
contém as entradas (i.e. as linhas) da Tabela de Páginas mais recentemente
usadas. Para localizar uma dada página, TLB é consultado e se encontrar (TLB
hit), o número do bloco correpondente é obtido e se nao encontrar (TLB miss).
Organização de memória virtual: Tabelas de
Páginas
Existem duas formas básicas de projetar tabelas de páginas:
● Ter uma única tabela de páginas, através de uma matriz de rápidos
registradores de hardware, com uma entrada para cada página virtual, indexada
pelo número da página. Esta é uma solução cara se a tabela de páginas é
grande;
● Manter a tabela de páginas inteiramente na memória principal, sendo que o
hardware precisa de apenas um registrador que aponta para o início da tabela
de páginas.
Algoritmos de substituiçãode páginas
● Quando ocorre uma falta de página, o sistema operacional tem de escolher uma
página para remover da memória a fim de abrir espaço para a que está
chegando. Se a página a ser removida foi modificada enquanto estava na
memória, ela precisa ser reescrita para o disco a fim de atualizar a cópia em
disco. Se, no entanto, ela não tiver sido modificada (por exemplo, ela contém
uma página de código), a cópia em disco já está atualizada, portanto não é
preciso reescrevê-la.
Algoritmos de substituiçãode páginas
Vários critérios podem ser usados para :escolher “vítimas”, ou seja, páginas a
transferir da memória para a área de troca no disco como:
● Idade da página;
● Frequência de acessos à página;
● Data do último acesso;
● Prioridade do processo proprietário;
● Conteúdo da página;
● Páginas especiais.
Algoritmos de substituiçãode páginas
● O algoritmo ótimo de substituição de página;
● O algoritmo de substituição de páginas não usadas recentemente (NRUNot
Recently Used);
● O algoritmo de substituição de páginas primeiro a entrar, primeiro a sair (first in,
first out-- FIFO).
● O algoritmo de substituição de página WSClock
Algoritmos de substituiçãode páginas
● O algoritmo de substituição de páginas segunda chance (SC-Second Chance).
Algoritmos de substituiçãode páginas
● Algoritmo de substituição de páginas usadas menos recentemente (LRULeast
Recently Used ).
● Uma boa aproximação para o algoritmo ótimo é baseada na observação de que
as páginas que foram usadas intensamente nas últimas instruções
provavelmente o serão em seguida de novo. De maneira contrária, páginas que
não foram usadas há eras provavelmente seguirão sem ser utilizadas por um
longo tempo. Essa ideia sugere um algoritmo realizável: quando ocorre uma
falta de página, jogue fora aquela que não tem sido usada há mais tempo.
(Tanenbaum, 2010).
Algoritmos de substituiçãode páginas
Algoritmos de substituiçãode páginas
● Simulação do LRU em software
Porque as abordagens de soluções em Hardware enfrentam problemas, dos quais:
dependem de um Hardware especial e necessitam procurar uma solução em
Software, surge o Algoritmo NFU (Not Frequently Used) e o Algoritmo Aging.
Algoritmos de substituiçãode páginas
● O algoritmo de substituição de páginas do conjunto de trabalho
Na forma mais pura de paginação, os processos são inicializados sem nenhuma de
suas páginas na memória. A seguir a CPU tenta buscar a primeira instrução, ela
detecta uma falta de página, fazendo que o sistema operacional traga a página
contendo a primeira instrução. Outras faltas de páginas para variáveis globais e a
pilha geralmente ocorrem logo em seguida. Após um tempo, o processo tem a
maior parte das páginas que ele precisa para ser executado com relativamente
poucas faltas de páginas. Essa estratégia é chamada de paginação por demanda,
pois as páginas são carregadas apenas sob demanda, não antecipadamente.
(Tanenbaum, 2010)
Algoritmos de substituiçãode páginas
● O algoritmo de substituição de páginas do conjunto de trabalho
Eles apresentam uma localidade de referência significando que durante qualquer
fase de execução o processo referencia apenas uma fração relativamente pequena
das suas páginas. O conjunto de páginas que um processo está atualmente usando
é o seu conjunto de trabalho.
Algoritmos de substituiçãode páginas
● O algoritmo de substituição de páginas do Relógio
Algoritmos de substituiçãode páginas
● O algoritmo de substituição de página WSClock
Uma vez que esse limite de tráfego de disco tenha sido alcançado, não serão
escalonadas mais escritas novas. Há dois casos que precisamos considerar:
Pelo menos uma escrita foi escalonada;
Nenhuma escrita foi escalonada.
Algoritmos de substituiçãode páginas
● O algoritmo de substituição de página WSClock
Na ocorrência de um Page Fault: Se o bit R desta página for 0, ela é substituída, e
o ponteiro roda uma casa;
Se R=1, é feito o reset e o ponteiro avança para a próxima página até encontrar uma
página com R=0.
Algoritmos de substituiçãode páginas
● Algoritmo ARC – Adaptive Replacement Cache
Divide a memória em duas áreas de gestão, uma com as páginas recémcarregadas
e outra armazenando aquelas que receberam mais de um acesso. Entretanto, a
substituição é feita sempre utilizando o critério LRU em uma das duas áreas. A
seleção da área se dá de forma balanceada, de acordo com o estado em que cada
uma delas se encontra nos momentos de substituição (Megiddo & Modha, 2003).
Conclusão
Sistemas computacionais mais simples não precisam realizar nenhum tipo de
gerenciamento pois, usualmente, seus programas rodam diretamente na memória
principal disponível. No entanto, esta não é a situação mais comum. Na maioria
dos sistemas em uso, os programas são muito maiores que a quantidade de
memória principal disponível e/ou é necessário rodar mais de um programa ao
mesmo tempo. Nestes casos, a utilização de esquemas de troca, páginas e
segmentos pode ser uma alternativa. Um modelo de memória virtual, que fornece
um espaço de endereçamento maior do que o físico, pode ser disponibilizado para
os programadores no desenvolvimento de seus sistemas. Internamente, no
entanto, o S.O. deve ser capaz de gerenciar a memória de forma a manter as partes
do programa em uso na memória principal, armazenando as demais partes em
disco.
Referências Bibliográficas
● Maziero, C. A. (2017). Sistemas Operativos: Conceitos e Mecanismos. Curitiba:
DINF-UFPR.
● Megiddo, N., & Modha, D. (2003). ARC: a self-tuning, low overhead replacement
cache. USENIX.
● Silberschatz, A., Galvin, P. B., & Gagne, G. (2009). Operating System Concepts (8
ed.). Danvers, United States of America: John Willey&Sons, Inc. Acesso em Maio
de 2021
● Stallings, W. (2011). Operating Systems: Internals and Design Principles (7 ed.).
(P. E. Inc, Ed.) New Jersay, United States of America: Pretince Hall. Acesso em
Maio de 2021
● Tanenbaum, A. S. (2010). Sistemas Operacionais Modernos (3 ed.). (P.
Education, Ed.) Sao PAulo, Brasil: Pearson Education, Inc. Acesso em Maio de
2021
● Marques, J. A., Ferreira, P., Ribeiro, C., Veiga, L., & Rodrigues, R. (2012.).
Sistemas Operativos. FCA.
OBRIGAD0!

Mais conteúdo relacionado

Semelhante a Gestao de Memoria_SLIDE.pptx

Gerencia de memoria
Gerencia de memoriaGerencia de memoria
Gerencia de memoria37193694
 
Gerenciamento de memória cap 03 (ii unidade)
Gerenciamento de memória cap 03 (ii unidade)Gerenciamento de memória cap 03 (ii unidade)
Gerenciamento de memória cap 03 (ii unidade)Faculdade Mater Christi
 
Memoria Virtual - Gerenciamento
Memoria Virtual - GerenciamentoMemoria Virtual - Gerenciamento
Memoria Virtual - GerenciamentoErichBraganca
 
Memória Virtual - Aspectos Básicos
Memória Virtual - Aspectos BásicosMemória Virtual - Aspectos Básicos
Memória Virtual - Aspectos Básicosblumenschein
 
SO03 - Sistemas-Operacionais - Gerencia de Memoria.pdf
SO03 - Sistemas-Operacionais - Gerencia de Memoria.pdfSO03 - Sistemas-Operacionais - Gerencia de Memoria.pdf
SO03 - Sistemas-Operacionais - Gerencia de Memoria.pdfSilvano Oliveira
 
7 – mecanismos de gestão de memória
7 – mecanismos de gestão de memória7 – mecanismos de gestão de memória
7 – mecanismos de gestão de memóriaMaria194536
 
Memoria virtual
Memoria virtualMemoria virtual
Memoria virtualMauro Melo
 
Aula 5a - Sistemas Operacionais
Aula 5a - Sistemas OperacionaisAula 5a - Sistemas Operacionais
Aula 5a - Sistemas OperacionaisJocelma Rios
 
Arquitetura 8 1 - 2012.2
Arquitetura 8   1 - 2012.2Arquitetura 8   1 - 2012.2
Arquitetura 8 1 - 2012.2Paulo Fonseca
 
Arquitetura 8 1 - 2012.2
Arquitetura 8   1 - 2012.2Arquitetura 8   1 - 2012.2
Arquitetura 8 1 - 2012.2Paulo Fonseca
 
12/03/2010 - Sistemas Operacionais Aula3
12/03/2010 - Sistemas Operacionais Aula312/03/2010 - Sistemas Operacionais Aula3
12/03/2010 - Sistemas Operacionais Aula3Universal.org.mx
 
Desempenho em equipamentos informáticos
Desempenho em equipamentos informáticosDesempenho em equipamentos informáticos
Desempenho em equipamentos informáticospjclima
 
Trabalho de sistemas operativos
Trabalho de sistemas operativosTrabalho de sistemas operativos
Trabalho de sistemas operativosFrank macoo
 
Gerenciamento de Memoria
Gerenciamento de MemoriaGerenciamento de Memoria
Gerenciamento de Memoriaaudineisilva1
 
Apostila 6 gerência de memória
Apostila 6   gerência de memóriaApostila 6   gerência de memória
Apostila 6 gerência de memóriaPaulo Fonseca
 

Semelhante a Gestao de Memoria_SLIDE.pptx (20)

Gerencia de memoria
Gerencia de memoriaGerencia de memoria
Gerencia de memoria
 
Gerenciamento de memória cap 03 (ii unidade)
Gerenciamento de memória cap 03 (ii unidade)Gerenciamento de memória cap 03 (ii unidade)
Gerenciamento de memória cap 03 (ii unidade)
 
Memoria Virtual - Gerenciamento
Memoria Virtual - GerenciamentoMemoria Virtual - Gerenciamento
Memoria Virtual - Gerenciamento
 
S.o aula 3132
S.o aula 3132S.o aula 3132
S.o aula 3132
 
Memória Virtual - Aspectos Básicos
Memória Virtual - Aspectos BásicosMemória Virtual - Aspectos Básicos
Memória Virtual - Aspectos Básicos
 
SO03 - Sistemas-Operacionais - Gerencia de Memoria.pdf
SO03 - Sistemas-Operacionais - Gerencia de Memoria.pdfSO03 - Sistemas-Operacionais - Gerencia de Memoria.pdf
SO03 - Sistemas-Operacionais - Gerencia de Memoria.pdf
 
7 – mecanismos de gestão de memória
7 – mecanismos de gestão de memória7 – mecanismos de gestão de memória
7 – mecanismos de gestão de memória
 
Curso openmp
Curso openmpCurso openmp
Curso openmp
 
Sistema Operativo 2
Sistema Operativo 2Sistema Operativo 2
Sistema Operativo 2
 
Memoria virtual
Memoria virtualMemoria virtual
Memoria virtual
 
Aula 5a - Sistemas Operacionais
Aula 5a - Sistemas OperacionaisAula 5a - Sistemas Operacionais
Aula 5a - Sistemas Operacionais
 
Arquitetura 8 1 - 2012.2
Arquitetura 8   1 - 2012.2Arquitetura 8   1 - 2012.2
Arquitetura 8 1 - 2012.2
 
Arquitetura 8 1 - 2012.2
Arquitetura 8   1 - 2012.2Arquitetura 8   1 - 2012.2
Arquitetura 8 1 - 2012.2
 
12/03/2010 - Sistemas Operacionais Aula3
12/03/2010 - Sistemas Operacionais Aula312/03/2010 - Sistemas Operacionais Aula3
12/03/2010 - Sistemas Operacionais Aula3
 
Desempenho em equipamentos informáticos
Desempenho em equipamentos informáticosDesempenho em equipamentos informáticos
Desempenho em equipamentos informáticos
 
Trabalho de sistemas operativos
Trabalho de sistemas operativosTrabalho de sistemas operativos
Trabalho de sistemas operativos
 
Gerenciamento de Memoria
Gerenciamento de MemoriaGerenciamento de Memoria
Gerenciamento de Memoria
 
Apostila 6 gerência de memória
Apostila 6   gerência de memóriaApostila 6   gerência de memória
Apostila 6 gerência de memória
 
Memória Compartilhada Distribuída Conceitos e Algoritmos
Memória Compartilhada Distribuída Conceitos e AlgoritmosMemória Compartilhada Distribuída Conceitos e Algoritmos
Memória Compartilhada Distribuída Conceitos e Algoritmos
 
Gerenciamento de memória
Gerenciamento de memóriaGerenciamento de memória
Gerenciamento de memória
 

Último

07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptxVagner Soares da Costa
 
Calculo vetorial - eletromagnetismo, calculo 3
Calculo vetorial - eletromagnetismo, calculo 3Calculo vetorial - eletromagnetismo, calculo 3
Calculo vetorial - eletromagnetismo, calculo 3filiperigueira1
 
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptxVagner Soares da Costa
 
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docxTRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docxFlvioDadinhoNNhamizi
 
Apresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPMApresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPMdiminutcasamentos
 
Lista de presença treinamento de EPI NR-06
Lista de presença treinamento de EPI NR-06Lista de presença treinamento de EPI NR-06
Lista de presença treinamento de EPI NR-06AndressaTenreiro
 

Último (6)

07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
 
Calculo vetorial - eletromagnetismo, calculo 3
Calculo vetorial - eletromagnetismo, calculo 3Calculo vetorial - eletromagnetismo, calculo 3
Calculo vetorial - eletromagnetismo, calculo 3
 
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
 
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docxTRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
 
Apresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPMApresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPM
 
Lista de presença treinamento de EPI NR-06
Lista de presença treinamento de EPI NR-06Lista de presença treinamento de EPI NR-06
Lista de presença treinamento de EPI NR-06
 

Gestao de Memoria_SLIDE.pptx

  • 1. UNIVERSIDADE LURIO FACULDADE DE ENGENHARIA LICENCIATURA EM ENGENHARIA INFORMÁTICA SISTEMA OPERATIVO Gestão de Memória Estudantes: Abel Mondlane Alberto Cipriano Cesar Moda
  • 2. Introdução A seguir discutiremos várias formas de gerir a memória em que podemos observar qual o papel da memória na multi-programação, como a memória real e virtual está organizada, assim como os algoritimos de substituição de páginas em caso de haver falta de uma páginas. Na gestão de memória, os algoritmos variam desde uma abordagem primitiva da bare-machine até estratégias de paginação e segmentação. Cada abordagem tem as suas próprias vantagens e desvantagens. A Seleção de um método de gestão de memória para um sistema específico depende de muitos factores, especialmente da concepção do hardware do sistema. Como veremos, muitos algoritmos requerem suporte de hardware, embora os designs recentes integraram de perto o hardware e o sistema operativo. O trabalho tem como bjectivo geral, descrever as principais técnicas de gestão de memória implementas pelos sistemas operativos modernos.
  • 3. Gestão de Memória ● Segundo (Silberschatz, Galvin, & Gagne, 2009), a memória principal é uma grande variedade de palavras ou bytes, de centenas de milhares a milhares de milhões. Cada palavra ou byte tem o seu próprio endereço. A memória principal é um repositório de acesso rápido dos dados partilhados pelo CPU e dispositivos E/S.
  • 4. Gestão de Memória ● Segundo (Silberschatz, Galvin, & Gagne, 2009), o sistema operativo é responsável pelas seguintes actividades relacionadas com gestão de memória: ● Manter um registo de que partes da memória estão actualmente a ser utilizadas e por quem; ● Decidir quais os processos (ou partes dos mesmos) e dados a entrar e a sair de memória; ● Atribuição e desalocação de espaço de memória conforme necessário.
  • 5. Hierarquia As restrições de concepção da memória de um computador podem ser resumidas em três questões: ● Quanto? ● Com que rapidez? ● Quanto custa?
  • 6. Hierarquia Existe uma relação entre as três características-chave de memória: capacidade, tempo de acesso, e custo. Uma variedade de tecnologias são utilizados para implementar sistemas de memória, e em todo este espectro de tecnologias, as relações seguintes mantêm-se: ● Tempo de acesso mais rápido, maior custo por bit; Maior capacidade, menor custo por bit; ● Maior capacidade, velocidade de acesso mais lenta.
  • 8. Hierarquia ● É possível organizar os dados em toda a hierarquia de modo a que a percentagem de acessos a cada nível sucessivamente inferior é substancialmente menor do que a de o nível acima. O tipo de memória mais rápido, mais pequeno e mais caro consiste nos registos internos para o processador. ● Cada local na memória principal tem um endereço único, e a maioria das instruções da máquina referem-se para um ou mais endereços de memória principais. A memória principal é normalmente estendida com um de maior velocidade, menor cache. ● A memória cache não é normalmente visível para o programador mas sim para o processador. É um dispositivo para encenar o movimento de dados entre memória principal e registos do processador para melhorar o desempenho.
  • 9. Hierarquia ● As formas de memória descritas são, tipicamente, voláteis. A memória externa, não volátil, é também referida como memória secundária ou memória auxiliar, que são utilizadas para armazenar ficheiros de programas e de dados, e são normalmente visíveis para o programador apenas em termos de ficheiros e registos.
  • 10. Papel da gestão da memória em multi- programação: Arquitectura de partições fixas ● Para que a multprogramação exista, é necessário que vários programas possam coexistir em memória primária. A forma mais simples de o fazer é dividir a memória do computador em partições, carregando-se um programa em cada uma delas; ● O grau de multprogramação máximo é dado pelo número de partições existentes.
  • 11. Papel da gestão da memória em multi- programação: Programas Recolocáveis ● Inicialmente os programas eram compilados para uma determinada partição, e somente nessa poderiam ser executados. Isso porque quer as variáveis quer o código estavam associados a endereços que só faziam sentido numa partição; ● Em algumas situações, uma partição podia ter uma fila de programas a espera de serem executados, enquanto outra estava vazia. Para resolver esse problema tornaram-se os programas recolocáveis.
  • 12. Papel da gestão da memória em multi- programação: Programas Recolocáveis ● A recolocação efectuada deste modo tem um custo elevado que se repete sempre que o programa é carregado em memória. Uma evolução consistiu em dotar os computadores de um registo base que era carregado com o endereço físico do início da partição. ● Em tempo de execução, o hardware somava o valor do registo base com o endereço proveniente do programa para obter o endereço real. Esse tipo de endereçamento, também chamado endereçamento baseado, constitui já uma aproximação ao endereçamento virtual, pois conta com uma ajuda do hardware para transformar os endereços.
  • 13. Papel da gestão da memória em multiprogramação: Proteção ● A existência de programas de vários utilizadores simultâneos obriga a existência de mecanismos de proteção entre eles, para impedir que um programa, que se esteja a executar numa partição, possa aceder as zonas de memória de outra. Houve varias tentativas para obviar alguns destes problemas usando endereçamento real, mas apenas o endereçamento virtual surgiu como resposta para estes problemas.
  • 14. gestão da memória em multiprogramação: Arquitectura de partições variáveis ● Devido a inflexibilidade imposta pelas partições fixas, era um importante factor de perda de eficácia, que poderia ser resolvido mudando de forma dinâmica, o número e a dimensão das partições em tempo de execução. ● Ao colocar um segundo processo em execução, procede-se de maneira semelhante, cria-se uma partição de memória de dimensão suficiente para conter o seu espaço de endereçamento. Isto é o número de partição poderá crescer ate se esgotar a memória (Marques, Ferreira, Ribeiro, Veiga, & Rodrigues,2012, pp. 312-313).
  • 15. Papel da gestão da memória em multi- programação: Multprogramação com partições variáveis
  • 16. PAPEl da gestão da memória em multiprogramação: Fragmentação ● Para este método, quando um processo termina, o bloco de memória onde estava sendo executado e liberado, e normalmente assocado ao outro bloco livre que lhe seja contiguo, o que pode permitir a execução de outro programa que estivesse executável e não residente (Marques, Ferreira, Ribeiro, Veiga, & Rodrigues, 2012).
  • 17. Organização de memória real ● Segundo (Marques, Ferreira, Ribeiro, Veiga, & Rodrigues, 2012), a gestão de memória tem por objectio: ● Gerir o espaço de endereçamento dos processos ● Assegurar que cada processo dispõe da memória que precisa; ● Garantir que cada processo só aceda a memória a que tem direito (protecção); ● Optimizar as transferências de informação em memórias organizadas hierarquicamente.
  • 18. Organização de memória real: Endereçamento Real ● Um endereço real refere-se sempre a memória primária, nunca a memória secundária. Este método apresenta desvantagens como: A dimensão dos programas é limitada pela dimensão da memória primária do computador; ● Um programa só pode funcionar nos endereços físicos para onde foi escrito, ou gerado por um compilador de uma linguagem de alto nível, não podendo ser executado directamente noutra máquina com um mapa de memória diferente ou mesmo noutro endereço da mesma máquina; ● A multiplicação fica seriamente dificultada. Como os endereços físicos onde o programa se vai executar têm de ser decididos numa fase inicial (compilação ou carregamento em memoria), não é possível executar simultaneamente dois programas que tivessem sido preparados para se executarem nos mesmos endereços.
  • 19. Organização de memória virtual ● Memória virtual é uma técnica que permite a execução de processos que não estejam completamente na memória; porque com este esquema de alocação de memória é possível endereçar a memória secundária como se esta fizesse parte da memória principal (Silberschatz, Galvin e Gagne, 2009; Stallings, 2012)
  • 22. Organização de memória virtual: Segmentação Da Memória Virtual ● Segmentação é um esquema de gestão de memória com espaços de endereços ou segmentos completamente diferentes. Cada segmento consiste numa sequência linear de endereços (Tanembaum & Bos, 2015; Silberschatz, Galvin e Gagne, 2009).
  • 23. Organização de memória virtual: Segmentação Da Memória Virtual-Organização ● Legenda: ● M = 1, segmento modificado; ● M = 0, segmento não modificado ● Segment base, o primeiro endereço físico do segmento. ● Length, o tamanho do segmento.
  • 24. Organização de memória virtual: Segmentação Da Memória Virtual-paginação ● Um endereço virtual usando paginação é composto por dois campos: 1. Número de páginas: usado com um índice para a tabela de páginas que contem os enderecos base e de cada página em memória. 2. Deslocamento: é combinado com o endereço-base para definir o endereço físico para ser enviado à unidade de memória.
  • 25. Organização de memória virtual: Implementação da Tabela de Páginas ● Cada processo tem uma Tabela de Páginas, onde há uma entrada para cada página do processo. Com a memória virtual, um processo pode consistir de um grande número de páginas, impossibilitando alocar a Tabela de Páginas dentro da memória física. As Tabelas de Páginas desses processos são implementadas em memória virtual (disco). ● Para evitar esse problema, é usada uma memória cache especial Translation Lookaside Buffer (TLB), para entradas da Tabela de Páginas.
  • 26. Organização de memória virtual: Translation Lookaside Buffer (TLB) ● O Translation Lookaside Buffer (TLB) funciona como uma memória cache e contém as entradas (i.e. as linhas) da Tabela de Páginas mais recentemente usadas. Para localizar uma dada página, TLB é consultado e se encontrar (TLB hit), o número do bloco correpondente é obtido e se nao encontrar (TLB miss).
  • 27. Organização de memória virtual: Tabelas de Páginas Existem duas formas básicas de projetar tabelas de páginas: ● Ter uma única tabela de páginas, através de uma matriz de rápidos registradores de hardware, com uma entrada para cada página virtual, indexada pelo número da página. Esta é uma solução cara se a tabela de páginas é grande; ● Manter a tabela de páginas inteiramente na memória principal, sendo que o hardware precisa de apenas um registrador que aponta para o início da tabela de páginas.
  • 28. Algoritmos de substituiçãode páginas ● Quando ocorre uma falta de página, o sistema operacional tem de escolher uma página para remover da memória a fim de abrir espaço para a que está chegando. Se a página a ser removida foi modificada enquanto estava na memória, ela precisa ser reescrita para o disco a fim de atualizar a cópia em disco. Se, no entanto, ela não tiver sido modificada (por exemplo, ela contém uma página de código), a cópia em disco já está atualizada, portanto não é preciso reescrevê-la.
  • 29. Algoritmos de substituiçãode páginas Vários critérios podem ser usados para :escolher “vítimas”, ou seja, páginas a transferir da memória para a área de troca no disco como: ● Idade da página; ● Frequência de acessos à página; ● Data do último acesso; ● Prioridade do processo proprietário; ● Conteúdo da página; ● Páginas especiais.
  • 30. Algoritmos de substituiçãode páginas ● O algoritmo ótimo de substituição de página; ● O algoritmo de substituição de páginas não usadas recentemente (NRUNot Recently Used); ● O algoritmo de substituição de páginas primeiro a entrar, primeiro a sair (first in, first out-- FIFO). ● O algoritmo de substituição de página WSClock
  • 31. Algoritmos de substituiçãode páginas ● O algoritmo de substituição de páginas segunda chance (SC-Second Chance).
  • 32. Algoritmos de substituiçãode páginas ● Algoritmo de substituição de páginas usadas menos recentemente (LRULeast Recently Used ). ● Uma boa aproximação para o algoritmo ótimo é baseada na observação de que as páginas que foram usadas intensamente nas últimas instruções provavelmente o serão em seguida de novo. De maneira contrária, páginas que não foram usadas há eras provavelmente seguirão sem ser utilizadas por um longo tempo. Essa ideia sugere um algoritmo realizável: quando ocorre uma falta de página, jogue fora aquela que não tem sido usada há mais tempo. (Tanenbaum, 2010).
  • 34. Algoritmos de substituiçãode páginas ● Simulação do LRU em software Porque as abordagens de soluções em Hardware enfrentam problemas, dos quais: dependem de um Hardware especial e necessitam procurar uma solução em Software, surge o Algoritmo NFU (Not Frequently Used) e o Algoritmo Aging.
  • 35. Algoritmos de substituiçãode páginas ● O algoritmo de substituição de páginas do conjunto de trabalho Na forma mais pura de paginação, os processos são inicializados sem nenhuma de suas páginas na memória. A seguir a CPU tenta buscar a primeira instrução, ela detecta uma falta de página, fazendo que o sistema operacional traga a página contendo a primeira instrução. Outras faltas de páginas para variáveis globais e a pilha geralmente ocorrem logo em seguida. Após um tempo, o processo tem a maior parte das páginas que ele precisa para ser executado com relativamente poucas faltas de páginas. Essa estratégia é chamada de paginação por demanda, pois as páginas são carregadas apenas sob demanda, não antecipadamente. (Tanenbaum, 2010)
  • 36. Algoritmos de substituiçãode páginas ● O algoritmo de substituição de páginas do conjunto de trabalho Eles apresentam uma localidade de referência significando que durante qualquer fase de execução o processo referencia apenas uma fração relativamente pequena das suas páginas. O conjunto de páginas que um processo está atualmente usando é o seu conjunto de trabalho.
  • 37. Algoritmos de substituiçãode páginas ● O algoritmo de substituição de páginas do Relógio
  • 38. Algoritmos de substituiçãode páginas ● O algoritmo de substituição de página WSClock Uma vez que esse limite de tráfego de disco tenha sido alcançado, não serão escalonadas mais escritas novas. Há dois casos que precisamos considerar: Pelo menos uma escrita foi escalonada; Nenhuma escrita foi escalonada.
  • 39. Algoritmos de substituiçãode páginas ● O algoritmo de substituição de página WSClock Na ocorrência de um Page Fault: Se o bit R desta página for 0, ela é substituída, e o ponteiro roda uma casa; Se R=1, é feito o reset e o ponteiro avança para a próxima página até encontrar uma página com R=0.
  • 40. Algoritmos de substituiçãode páginas ● Algoritmo ARC – Adaptive Replacement Cache Divide a memória em duas áreas de gestão, uma com as páginas recémcarregadas e outra armazenando aquelas que receberam mais de um acesso. Entretanto, a substituição é feita sempre utilizando o critério LRU em uma das duas áreas. A seleção da área se dá de forma balanceada, de acordo com o estado em que cada uma delas se encontra nos momentos de substituição (Megiddo & Modha, 2003).
  • 41. Conclusão Sistemas computacionais mais simples não precisam realizar nenhum tipo de gerenciamento pois, usualmente, seus programas rodam diretamente na memória principal disponível. No entanto, esta não é a situação mais comum. Na maioria dos sistemas em uso, os programas são muito maiores que a quantidade de memória principal disponível e/ou é necessário rodar mais de um programa ao mesmo tempo. Nestes casos, a utilização de esquemas de troca, páginas e segmentos pode ser uma alternativa. Um modelo de memória virtual, que fornece um espaço de endereçamento maior do que o físico, pode ser disponibilizado para os programadores no desenvolvimento de seus sistemas. Internamente, no entanto, o S.O. deve ser capaz de gerenciar a memória de forma a manter as partes do programa em uso na memória principal, armazenando as demais partes em disco.
  • 42. Referências Bibliográficas ● Maziero, C. A. (2017). Sistemas Operativos: Conceitos e Mecanismos. Curitiba: DINF-UFPR. ● Megiddo, N., & Modha, D. (2003). ARC: a self-tuning, low overhead replacement cache. USENIX. ● Silberschatz, A., Galvin, P. B., & Gagne, G. (2009). Operating System Concepts (8 ed.). Danvers, United States of America: John Willey&Sons, Inc. Acesso em Maio de 2021 ● Stallings, W. (2011). Operating Systems: Internals and Design Principles (7 ed.). (P. E. Inc, Ed.) New Jersay, United States of America: Pretince Hall. Acesso em Maio de 2021 ● Tanenbaum, A. S. (2010). Sistemas Operacionais Modernos (3 ed.). (P. Education, Ed.) Sao PAulo, Brasil: Pearson Education, Inc. Acesso em Maio de 2021 ● Marques, J. A., Ferreira, P., Ribeiro, C., Veiga, L., & Rodrigues, R. (2012.). Sistemas Operativos. FCA.