Gestão de Memória. mecanismos de gestão de memória protecção da memória algoritmos de gestão de memória. P. Ferreira/J. A. Marques - INESC/IST 01/02 1

Tamanho: px
Começar a partir da página:

Download "Gestão de Memória. mecanismos de gestão de memória protecção da memória algoritmos de gestão de memória. P. Ferreira/J. A. Marques - INESC/IST 01/02 1"

Transcrição

1 Gestão de Memória mecanismos de gestão de memória protecção da memória algoritmos de gestão de memória 1

2 Mecanismos de Gestão de Memória 2

3 Objectivos e Organização da Gestão de Memória objectivo: 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ó acede à memória a que tem direito (protecção) optimizar (ie minimizar) as transferências de informação em memórias organizadas hierarquicamente organização: memória uniforme:a informação (dados ou código) apenas é acessível quando se encontra na memória principal memória hierarquizada: as informações são repartidas ou replicadas por diversos níveis da memória de modo a, simultaneamente, maximizar o número de referências às unidades mais rápidas e minimizar a ocupação das mesmas 3

4 Hierarquia de Memória memória principal (física ou central): acesso aleatório tempo de acesso reduzido custo elevado informação volátil memórias secundárias (ou de disco): acesso quase aleatório (por blocos) tempo de acesso elevado custo reduzido informação persistente 4

5 Endereçamento Para perceber a gestão da memória tem de se começar por compreender a relação entre os endereços manipulados pelos programadores, os endereços gerados pelo compilador e os endereços físicos que realmente permitem aceder à memória Consideremos uma instrução numa linguagem de alto nível A= B+1 O programador vê apenas referências lógicas que o compilador tem de transformar em endereços Três situações se podem colocar: Endereços reais físicos não existe qualquer operação posterior Endereços reais recolocáveis os endereços tem de ser somados a uma base para obter o endereço físico Endereços virtuais os endereços têm de ser transformados em tempo de execução para os endereços físicos 5

6 Geração dos Endereços Físicos realizada na escrita do programa, na sua compilação ou na edição de ligações: o programa apenas poderá ser executado numa zona determinada da memória principal (colocação estática) realizada aquando do carregamento do executável na memória principal: o editor de ligações gera um executável recolocável que pode ser implantado em qualquer região da memória principal (recolocação e reimplantação estática) a correspondência é realizada durante a execução do programa: tradução dinâmica dos endereços virtuais em endereços reais durante a execução do processo (reimplantação dinâmica) 6

7 Recolocação endereços lógicos e tabelas de conversão: o código dos executáveis possui endereços lógicos convertíveis quando do carregamento em memória para endereços reais mediante a utilização de tabelas de conversão geradas pelo compilador ou editor de ligações utilização de endereçamento baseado: durante a execução um endereço real é gerado somando ao endereço lógico um valor constante B (base) O valor B é guardado no registo base do processador e é definido em cada carregamento do executável como medida de protecção, os endereços reais obtidos mediante endereçamento baseado são comparados (pelo hardware) com um valor limite, guardado no registo limite 7

8 Mecanismo de Sobreposição (overlay) Possibilidade de executar programas com dimensão superior à memória principal em sistemas com endereçamento real os overlays continuam a ter de ser dimensionados para a memória física disponível Memória principal Programa principal (residente) Overlay 1 Overlay 2 Overlay 3 8

9 exemplo: Overlay (cont) parte residente contém as variáveis globais vários overlays comn rotinas de inicialização, cálculo, escrita dos resultados é simples de suportar pelo sistema operativo implica que o programador indique explicitamente quando deve ser carregado um novo overlay certos programas não são facilmente divididos em overlays lento devido à possível troca sistemática de overlays obviamente, a parte residente mais qualquer um dos overlays tem de caber na memória principal 9

10 Sistemas Multiprogramados com Endereçamento Real a memória principal está dividida em partições, às quais está associada uma fila de processos para execução as partições podem ser de tamanho fixo (único ou não) ou de tamanho variável: fixo: menor capacidade de recolocação, utilização de overlays, fragmentação interna, paragem da máquina para alterar a dimensão das partições variável: maior capacidade de recolocação, fragmentação externa, recompactação protecção através da utilização de registos com endereços inicial e final da partição activa (ou dos registos base e limite) 10

11 Sistemas Multiprogramados com Endereçamento Real - partições fixas memória dividida em partições de dimensão fixa em cada partição é carregado um programa programas recolocáveis fragmentação interna: dimensão dos programas não coincide exactamente com a dimensão das partições vários programas em execução implica mecanismos de protecção 11

12 Sistemas Multiprogramados com Endereçamento Real - partições fixas Partição 0 Partição 1 Partição 2 Filas de espera de programas para execução (uma por partição) Se o programa da partição i fica bloqueado então o programa da partição j pode ser executado O grau máximo de multiprogramação é dado pelo número de partições Pode suceder que haja uma fila de processos à espera de ser executados numa dada partição: Os overlays podem ser usados dentro das partições 12

13 Tradução de Endereços com Partições Fixas Memória física S offset <? + endereço registo limite 2K N Gera Excepção registo base P3 base: 6K partição 0 partição 1 partição 2 partição 3 partição 4 partição 5 0 2K 4K 6K 8K 10K 13

14 Sistemas Multiprogramados com Endereçamento Real - partições variáveis Alocação sucessiva de partições com dimensões variáveis Quando um programa termina, a sua partição pode ser associada a outra (se for contígua), criando uma única de maior dimensão dimensão dos programas limitada pela memória física protecção assegurada de modo análogo às partições fixas 14

15 Sistemas Multiprogramados com Endereçamento Real - partições variáveis Prog E 40 K Fila de espera única de programas para execução Prog D 80 K Prog C 30 K Prog B 70 K Prog A 50 K Sistema Operativo Prog A 50 K Prog B 70 K Prog C 30 K Prog D 80 K Livre número e dimensão de partições variáveis resolve fragmentação interna fragmentação externa: muitas partições de dimensão muito reduzida implica a recompactação da memória (garbage collector): programas todos juntos em partições contíguas (processamento suspenso) 15

16 Tradução de Endereços com Partições Variáveis memória física registo limite P3 dimensão registo base P3 base partição 0 partição 1 S offset <? + endereço N Gera Excepção partição 2 partição 3 partição 4 16

17 Endereços Reais e Virtuais Os primeiros computadores suportavam apenas endereços reais: endereços gerados pelo compilador têm relação directa com os endereços da memória física O sistema operativo não podia efectuar qualquer gestão dos programas (para quem se lembra o Sprectum é um computador deste tipo) Os primeiros sistemas multiprogramados utilizavam uma arquitectura baseada em que um registo base é somado ao endereço codificado no programa Os programas podem ser recolocados a partir de um endereço inicial um programa era gerado de forma contígua a dimensão dificulta a gestão da memória Endereçamento virtual surge como uma solução para estes problemas: os endereços gerados pelo programa são convertidos pelo processador, em tempo de execução, em endereços físicos a unidade de gestão de memória no processador é responsável pela conversão os dados referenciados pelo endereço virtual podem estar em memória principal ou secundária 17

18 Endereçamento Real vs Endereçamento Virtual Espaço de endereçamento visto pelo programa Memória Física Espaço de endereçamento virtual Memória Física Unidade de gestão da memória a) Memória Real b) Memória Virtual 18

19 Endereços Reais e Virtuais (cont) Programa fonte Referências simbólicas: A = A + 1; Apontadores: B = malloc (size); Código executável Compilador + editor de ligações Não recolocáveis Contém endereços físicos Endereços reais Recolocáveis Gerado com referência a um endereço de base Endereços virtuais Endereços que necessitam de tradução dinâmica durante a execução do programa 19

20 Endereçamento Virtual espaço de endereçamento dos processos não linearmente relacionado com a memória física de cada vez que são usados os endereços virtuais são convertidos (pela UGM) para endereços reais para minimizar a informação necessária à conversão, a memória virtual é logicamente dividida em blocos contíguos: endereço virtual = (bloco, deslocamento) dois tipos de blocos: segmentos - dimensão variável páginas - dimensão constante apenas precisam de estar na memória principal os blocos que estão a ser utilizados por cada processo 20

21 Espaço de Endereçamento Virtual Memória auxiliar Espaço Virtual do processo A Espaço Virtual do processo B Memória física Espaço Virtual do Processo C 21

22 Paginação espaço de endereçamento virtual linear de dimensão superior à da memória principal: o programador nunca precisa de se preocupar com a gestão de memória quando escreve um programa na memória principal mantêm-se apenas algumas páginas do programa, sendo carregadas de memória secundária as demais apenas quando necessário (falta de página) as instruções do processador têm de ser recomeçáveis a dimensão das páginas (constante) é normalmente muito menor que a da memória principal e influencia: a fragmentação interna o número de faltas de páginas e o tempo da sua resolução a dimensão das tabelas de páginas e listas de páginas mantidas pelo sistema operativo 22

23 Tradução de Endereços Virtuais em Memória Paginada Endereço virtual Página Deslocamento BTP + Memória principal Base Endereço real Deslocamento Base BTP Tabela de Páginas P R M Prot Base LTP 23

24 Tabela de Tradução de Endereços (Translation Lookaside Buffer, TLB) Endereço virtual Página Deslocamento TLB BTP + Memória principal Base Endereço real Deslocamento Base BTP Tabela de Páginas P R M Prot Base LTP 24

25 Memória Virtual Paginada Bits da página são enviados para o TLB S Comparação Trazer Página do Acesso à Tab de Páginas Disco Página Presente S Actualizar TLB Concatenar Base e Desloc 25

26 Memória Virtual Paginada (cont) fragmentação interna na última página de cada bloco lógico do programa a dimensão das páginas (constante) influencia: a fragmentação interna o número de faltas de páginas e o tempo da sua resolução a dimensão das tabelas de páginas e listas de páginas mantidas pelo sistema operativo protecção: verificação e limitação dos tipos de acesso ao segmento: leitura, escrita e execução processos diferentes têm tabelas de páginas diferentes: espaços de endereçamento disjuntos e inacessíveis a terceiros protecção de blocos lógicos: igual protecção do conjunto de páginas que formam esse bloco partilha de memória entre processos: podem-se partilhar páginas entre diferentes processos usando um mecanismo semelhante ao usado para memória segmentada partilha de blocos lógicos: partilha de múltiplas páginas não é possível partilhar menos que uma página 26

27 Segmentação divisão dos programas em segmentos lógicos que reflectem a sua estrutura funcional: rotinas, módulos, código, dados, pilha, etc o espaço de endereçamento virtual é linear em cada segmento o programador pode ter que se preocupar com a gestão de memória quando escreve um programa tentar suportar directamente na gestão de memória as abstracções comuns nas linguagens de programação: carregamento em memória protecção eficiência (princípio da localidade de referência) dimensão dos segmentos é limitada pela arquitectura e não pode exceder a dimensão da memória principal 27

28 Tradução de Endereços Virtuais em Memória Segmentada Endereço virtual Segmento Deslocamento BTS + Memória principal Deslocamento Base BTS Tabela de segmentos + Limite P Prot Limite Base LTS 28

29 Memória Virtual Segmentada fragmentação externa protecção: verificação de limites de endereçamento intra-segmentos verificação e limitação dos tipos de acesso ao segmento: leitura, escrita e execução processos diferentes têm tabelas de segmentos diferentes: espaços de endereçamento disjuntos e inacessíveis a terceiros partilha de memória entre processos: basta colocar nas tabelas de segmentos dos processos em questão o endereço real do segmento a partilhar os endereços virtuais usados para aceder ao segmento partilhado podem ser diferentes nos vários processos a protecção dum segmento partilhado é definida para cada processo através da respectiva tabela de segmentos os segmentos têm tamanhos variáveis pelo que os algoritmos de substituição na memória são mais complicados os programadores têm de ter uma noção mínima do modelo de endereçamento o espaço de endereçamento não é linear 29

30 Memória Segmentada/Paginada Endereço virtual Segmento Página Deslocamento TLB BTS + Base Endereço real Deslocamento Tabela de Segmentos Tabela de Páginas P Prot Limite Base + P R M Prot Base 30

31 Partilha de Memória A partilha de memória virtual é bastante simples, basta que os descritores de segmento ou página em dois processos independentes referenciem o mesmo endereço base A protecção no acesso (RWE) nos dois processos não têm de ser idêntica Por exemplo um segmento pode ser de (RW) num processo e noutro apenas R Na paginação a partilha tem que ter em conta a granularidade das páginas Apenas se pode partilhar páginas ou múltiplos de páginas Numa arquitectura segmentada a entidade partilhada é uma divisão lógica do programa pelo que a partilha é natural 31

32 Arquitectura Segmentada Protecção de Memória Processos diferentes têm tabelas de segmentos diferentes; O número de segmento e o deslocamento são verificados, comparando-os respectivamente com a dimensão da tabela e com a dimensão do segmento; Cada segmento tem associado em código de acesso (leitura, escrita, execução) Sistemas Paginados Processos diferentes têm tabelas independentes; O número de página é validado com o tamanho da tabela; Cada página tem um código de acesso; A granularidade mínima da protecção é a da página 32

33 Arquitectura de memória do i386

34 Algoritmos de Gestão de Memória 34

35 Algoritmos de Gestão de Memória existem três tipos de decisões que o sistema operativo tem de tomar em relação à memória principal: reserva: onde colocar um bloco de informação transferência: quando transferir um bloco de memória secundária para memória primária e vice-versa substituição: quando não existe mais memória livre, qual o bloco a retirar da memória principal para satisfazer um pedido 35

36 Reserva de Memória a reserva e a libertação de memória ocorre nas seguintes situações: na criação e terminação de processos na criação é reservado espaço para o código, dados e pilha do programa na extensão do espaço de endereçamento (área de dados ou pilha) reserva de páginas: reservar uma qualquer página entre todas as que estão livres reserva de partições variáveis ou segmentos: analisar uma lista de blocos livres para encontrar um com dimensão igual ou superior à desejada escolher o bloco livre que provocar menor fragmentação externa reservar parte ou a totalidade do bloco escolhido tendo em conta uma dimensão mínima para o fragmento gerado essa dimensão mínima gera fragmentação interna mas reduz a lista de blocos livres 36

37 Critérios de Escolha de Blocos Livres best-fit (o menor possível): gera elevado número de pequenos fragmentos em média percorre-se metade da lista de blocos livres na procura a lista tem de ser percorrida outra vez para introduzir o fragmento worst-fit (o maior possível): pode facilmente impossibilitar a reserva de blocos de grandes dimensões a lista de blocos livres tem de ser percorrida para introduzir o fragmento first-fit (o primeiro possível): minimiza a tempo gasto a percorrer a lista de blocos livres gera muita fragmentação externa acumula muitos blocos pequenos no início da lista, ficando para o fim os blocos maiores a lista é desordenada e os fragmentos não têm que ser reintroduzidos next-fit (o primeiro possível a seguir ao anterior): espalha os blocos pequenos por toda a memória 37

38 Critérios de Escolha de Blocos Livres (cont) dimensão do pedido: 15k best-fit C worst-fit D first-fit - B 13K A 22K B 16K C 32K D 29K E 38

39 Critérios de Escolha de Blocos Livres (cont) buddy: a memória livre é dividida em blocos de dimensão b n se b = 2 então designa-se por buddy binário para satisfazer um pedido de dimensão D percorre-se a lista à procura de um bloco de dimensão R tal que 2 k-1 < R < 2 k se não for encontrado procura-se um de dimensão 2 k+i, i >0, que será dividido em duas partes iguais (buddies) um dos buddies será subdividido quantas vezes for necesssário até se obter um bloco de dimensão 2 k se possível, na libertação um bloco é recombinado com o seu buddy, sendo a associação entre buddies repetida até se obter um bloco com a maior dimensão possível consegue-se um bom equilíbrio entre o tempo de procura e a fragmentação interna e externa 39

40 Algoritmos de Transferência existem três situações em que a transferência pode ser feita: apedido(on request): o programa ou o sistema operativo determinam quando se deve carregar o bloco em memória principal por necessidade (on demand): o bloco é acedido e gera-se uma falta (de segmento ou de página), sendo necessário carregá-lo para a memória principal por antecipação: o bloco é carregado na memória principal pelo sistema operativo porque este considera fortemente provável que ele venha a ser acedido nos próximos instantes 40

41 Transferência de Segmentos normalmente um processo para se executar precisa de ter pelo menos um segmento de cóidgo, de dados e de stack em memória caso haja escassez de memória os segmentos de outros processos que não estejam em execução são transferidos na íntegra para disco (swapping) os segmentos são guardados numa zona separada do disco chamada área de transferência (swap area) quando são transferidos todos os segmentos de um processo diz-se que o processo foi transferido para disco (swapped out) a transferência de segmentos faz-se usualmente a pedido: em arquitecturas que suportem a falta de segmentos, certos segmentos de um programa podem ser transferidos para memória principal por necessidade 41

42 Transferência de Páginas o mecanismo normal de transferência de páginas é por necessidade: páginas de um programa que não sejam acedidas durante a execução de um processo não chegam a ser carregadas em memória principal usam-se também políticas de transferência por antecipação para: diminuir o número de faltas de página optimizar os acessos a disco as páginas retiradas de memória principal são guardadas numa zona separada do disco chamada área de paginação: apenas se ainda não existir uma cópia da página em disco as páginas modificadas são transferidas em grupos para memória secundária de modo a optimizar os acessos a disco 42

43 Algoritmos de Swapping de Processos ou de Segmentos usam-se geralmente três critérios para decidir qual o processo a transferir para disco: estado e prioridade do processo: processos bloqueados e pouco prioritários são candidatos preferenciais tempo de permanência na memória principal: um processo tem que permanecer um determinado tempo a executar-se antes de ser novamente enviado para disco dimensão do processo estas decisões são normalmente tomadas pela componente de gestão de processos e não pela de gestão de memória 43

44 Algoritmos de Substituição de Páginas substituição de páginas: manutenção de duas listas de páginas: livres livres modificadas quando o número de páginas livres é inferior a um determinado valor, o processo paginador irá transferir as páginas livres para disco Se as páginas livres forem insuficientes será necessário transferir páginas livres modificadas páginas livres modificadas são periodicamente escritas em disco o algoritmo de escolha das páginas a libertar segue o princípio da localidade de referência menos usada recentemente (Least Recently Used, LRU): utilização de uma marca temporal do último acesso na PTE utilização de um contador por página que indique a que grupo etário ela pertence quando o contador, que é actualizado regularmente pelo processo paginador, atingir um valor máximo, a página passa para a lista das livres ou das livres mas modificadas 44

45 Algoritmos de Substituição de Páginas (cont) não usada recentemente (Not Recently Used, NRU): agrupamento das páginas em 4 grupos: 0: (R = 0, M = 0) Não referenciada, não modificada 1: (R = 0, M = 1) Não referenciada, modificada 2: (R = 1, M = 0) Referenciada, não modificada 3: (R = 1, M = 1) Referenciada, modificada o processo paginador percorre regularmente as tabelas de páginas e coloca o bit R a 0 caso não exista, este pode ser simulado usando os direitos de acesso da PTE libertam-se primeiro as páginas dos grupos de número mais baixo FIFO: é muito eficiente mas não atende ao grau de utilização das páginas (apenas ao seu tempo de permanência em memória primária) existem variantes desta política que evitam a transferência de páginas antigas mas muito usadas para disco 45

46 Espaços de Trabalho (working sets) os processos devem roubar páginas uns aos outros ou devem roubar páginas a si mesmos? espaço de trabalho (working set) de um processo num determinado intervalo de tempo é o conjunto de páginas acedidas pelo processo nesse intervalo de tempo: verifica-se que, para intervalos de tempo razoáveis, o espaço de trabalho de um processo mantém-se constante e menor que o seu espaço de endereçamento se vários processos tiverem menos páginas em memória que o seu espaço de trabalho o sistema pode entrar em colapso (trashing) utilização de valores máximo e mínimo de dimensão do espaço de trabalho para controlar a paginação: estes valores devem-se adaptar dinamicamente a cada aplicação 46

47 Espaços de Trabalho (cont) faltas de páginas 1 Acessos aleatórios a memória Acessos à memória com localidade de referência 1 fracção do processo carregado em memória 47

48 Comparação: segmentação e paginação (1) segmentação: vantagens: adapta-se à estrutura lógica dos programas permite a realização de sistemas simples sobre hardware simples permite realizar eficientemente as operações que agem sobre segmentos inteiros desvantagens: o programador tem de ter sempre algum conhecimento dos segmentos subjacentes os algoritmos tornam-se bastantes complicados em sistema mais sofisticados o tempo de transferência de segmentos entre memória principal e disco torna-se incomportável para segmentos muito grandes a dimensão máxima dos segmentos é limitada 48

49 Comparação: segmentação e paginação (2) paginação: vantagens: o programador não tem que se preocupar com a gestão de memória os algoritmos de reserva, substituição e transferência são mais simples e eficientes o tempo de leitura de uma página de disco é razoavelmente pequeno a dimensão dos programas é virtualmente ilimitada desvantagens: o hardware é mais complexo que o de memória segmentada operações sobre segmentos lógicos são mais complexos e menos elegantes, pois têm de ser realizadas sobre um conjunto de páginas o tratamento das faltas de páginas representa uma sobrecarga adicional de processamento 49

50 UNIX Gestão de Memória 50

51 Unix - Gestão de Memória Unix implementado sobre muitos computadores diferentes (baseada, segmentada, paginada, segmentada/paginada) a gestão de memória garante: protecção do espaço de endereçamento permitir modificação dinâmica do espaço de endereçamento existem ainda requisitos de desempenho: manter em memória o maior número de processos minimizar as transferências entre disco e memória dois grupos de implementações: transferência (swapping) nas arquitecturas baseadas e segmentadas paginação nas arquitecturas paginadas e segmentadas/paginadas 51

52 Transferência (swapping) primeira implementação do Unix: pdp-11, espaço de endereçamento de um processo limitado a 8 páginas de 8 Kb cada arquitecturas segmentadas: regiões (texto, dados, stack)carregadas contiguamente em memória transfere para disco processos que estejam bloqueados ou com menor prioridade existem 4 casos que provocam a transferência: chamada fork - é preciso espaço para o novo processo chamada brk - expande o segmento de dados do processo crescimento natural do stack sistema operativo precisa de espaço para carregar em memória um processo que estava swapped-out 52

53 Swapper swapper: processo que efectua as transferências de segmentos entre memória principal e secundária área especial do disco reservada para os segmentos retirados de memória área de swap: o swapper usa o disco directamente (sem passar pela cache) alocação de espaço na área de swap é diferente da alocação feita pelo sistema de ficheiros área de swap: regiões de cada processo contíguas em disco processo no estado executável permanece pelo menos 2 segundos em memória antes de ser swapped out processo em disco permanece pelo menos 2 segundos em disco 53

54 Paginação maioria dos Unixs têm memória virtual paginada no sistema V o espaço de endereçamento de um processo organiza-se em regiões de memória Um processo tem inicialmente 3 regiões: código, dados e stack cada região tem uma tabela de páginas própria e uma tabela de descritores de blocos de disco As regiões de memória partilhada que um processo mapear constituem novas regiões de memória 54

55 Tabelas de Gestão de memória de um Processo per process region table region table u area process table main memory 55

56 Paginação tabela de descritores de blocos de disco: para cada PTE contém informação sobre a página quando está em disco PTE: endereço físico da página bit P (página válida ou não) bit R (página referenciada ou não) bit M (página modificada ou não), protecção da página, bit de copy on write (C/W), bits com idade da página descritor de blocos: número do device, bloco de disco, tipo da página (transferida, demand fill, demand zero) 56

57 Tabela de Páginas e de Descritores de Blocos de Disco região P R M C/W PROT Idade End Físico Nº do Dispositivo Nº do Bloco Tipo Tabela de Páginas Tabela de Descritores de Blocos de Disco 57

58 Paginação (cont) páginas de memória física descritas pela tabela pfdata indexada pelo número da página: estado da página (livre, existe cópia na área de swap ou num ficheiro executável, operação de leitura pendente) contador com número de processos que referenciam a página número de device e bloco onde existe cópia da página dois pares de apontadores (lista de páginas livres, tabela de hashing cuja chave é o device e bloco de disco) quando a página é libertada: sistema operativo preenche descritor do bloco de disco com o número do device e bloco onde a página vai ser escrita coloca a página na lista das páginas livres e na lista de hashing falta de página: [número do device-número de bloco] é a chave da tabela de hashing 58

59 Mapeamento da Memória Virtual Per Proc Region Table text 8 K Page Tables (Physical Addresses) data 32 K empty stack 64 K Virtual Addresses 541 K 783 K 986 K 897 K 87 K 552 K 727 K 941 K 1096 K 2001 K 137K 852 K 764 K 433 K 333 K 59

60 Faltas de Presença Faltas na Gestão de Memória A página nã está persente na tabela de páginas Faltas de Protecção O acesso pretendido não está de acordo com a protecção definida para a página SIGSEGV Signal que é enviado ao processo quando a falta não pode ser resolvida pela Gestão de Memória Poderá eventualmente ser tratada pelo processo por exemplo aumentando a região de dados 60

61 Criação de um Processo fork: duplica os segmentos de código, dados e pilha do pai não é feita nenhuma cópia física de memória: cria uma nova tabela de regiões para o filho dá-lhe a mesma região de código copia as regiões de dados e pilha, ie aloca novas tabelas de páginas e copias as PTE e os descritores de blocos de disco em seguida, percorre as PTE do pai e, para as páginas válidas, incrementa o contador de processos na pfdata e coloca a 1 o bit copy on write (no pai e no filho) antes duma página ser escrita (pelo pai ou pelo filho): o sistema copia-a para uma nova página que aloca, preenchendo a PTE do processo onde ocorreu a falta com o endereço físico da nova página só se copiam as páginas que forem de facto modificadas 61

62 fork Tabela de Regiões do Processo Pai Tabela de Regiões do Processo Filho 0K 4K 8K 12K 16K Região 1 (Código) 327 Região 2 (Dados do Pai) 0K 4K 8K 12K 16K 921 Região 3 (Dados do Filho) 0K 4K 8K 12K 16K 921 Tabela de Páginas Tabela de Páginas Tabela de Páginas 62

63 Tratamento do Copy on Write Page Table Entry Proc A Page 828 Valid, Copy on Write Page Table Entry Proc B Page 828 Valid, Copy on Write Page Frame 828 Ref Count 3 Page Table Entry Proc C Page 828 Valid, Copy on Write (a) Before Proc B Incurs Protection Fault Page Table Entry Proc A Page 828 Valid, Copy on Write Page Table Entry Proc B Page Frame 828 Ref Count 2 Page 786 Valid Page Table Entry Proc C Page 828 Valid, Copy on Write Page Frame 786 Ref Count 1 63

64 Execução de um Programa só são carregadas as páginas de facto necessárias exec: lê o inode correspondente ao ficheiro executável cria uma tabela com os números dos blocos do ficheiro executável correspondente a cada página e associa a tabela ao inode preenche a tabela dos descritores de blocos de disco com o deslocamento da página no ficheiro falta de página: sistema operativo usa o valor guardado no descritor de bloco de disco para indexar a tabela asociada ao inode, tendo aí o número do bloco de disco onde está a página 64

65 exec Tabela de Regiões do Processo Pai Tabela de Regiões do Processo Filho Região 1 (Código do Pai) 0K Região 2 (Dados do Pai) 0K Região 3 (Código do Filho) 0K Região 4 (Dados do Filho) 0K 4K 8K 327 4K 8K 921 4K 8K 425 4K 8K K 12K 12K 12K 16K 16K 16K 16K Tabela de Páginas Tabela de Páginas Tabela de Páginas Tabela de Páginas 65

66 Substituição de Páginas algoritmo Menos Usada Recentemente (LRU) utilização de cada página é mantida na PTE page-stealer é acordado quando o número de páginas livres desce abaixo de um dado limite percorre as PTE incrementando os bits de idade das páginas se a página for referenciada a sua idade é anulada se a página atingir uma certa idade: se não existir cópia na área de transferência o núcleo coloca a página numa lista de páginas para serem transferidas se existir cópia na área de transferência e a página não tiver sido modificada, o núcleo apenas coloca o bit P a zero, decrementa o contador de referências na pfdata e coloca a página a lista de páginas livres se existir cópia na área de transferência mas a página tiver sido modificada em memória, o núcleo coloca-a na lista de páginas para serem transferidas e liberta o espaço que ela ocupava na área de transferência 66

67 Substituição de Páginas (cont) quando a página for escrita em disco: núcleo coloca o bit P a zero na PTE respectiva decrementa o contador de referências na pfdata se este contador ficar nulo, a página é colocada na lista de páginas livres (pode ainda ser recuperada se for referenciada antes de ser reutilizada) núcleo aloca espaço para a página na área de transferência e guarda o número do bloco de disco no descritor do bloco de disco respectivo mesmo se a página for reutilizada, será sempre escrita em disco para optmizar os acessos a disco, a escrita é feita quando a lista de páginas a serem escritas atinge uma dada dimensão 67

68 Tratamento da Falta de Página Virt Addr 0 Page Table Entries Phys Page State Disck Block Descriptors State Block Page Frames Page Disk Block Count 1K 1648 Inv File 3 2K 3K None Inv DF 5 4K K 1917 Inv Disk K None Inv DZ 66K 1036 Inv Disk K 68

Gestão de Memória. Algoritmos de Gestão de Memória

Gestão de Memória. Algoritmos de Gestão de Memória Gestão de Memória Parte II Algoritmos Algoritmos de Gestão de Memória Tipos de decisões que o sistema operativo tem de tomar em relação à memória principal: Reserva: onde colocar um bloco de informação?

Leia mais

Gestão de Memória. Algoritmos de Gestão de Memória

Gestão de Memória. Algoritmos de Gestão de Memória Gestão de Memória Parte II Algoritmos Algoritmos de Gestão de Memória Tipos de decisões que o sistema operativo tem de tomar em relação à memória principal: Transferência: quando transferir um bloco de

Leia mais

Algoritmos de Gestão de Memória

Algoritmos de Gestão de Memória Gestão de Memória Parte II - algoritmos Sistemas Operativos 2015 / 2016 Algoritmos de Gestão de Memória Os algoritmos de gestão de memória são utilizados para decidir: Onde se deve colocar um bloco (segmento

Leia mais

Algoritmos de Gestão de Memória

Algoritmos de Gestão de Memória Gestão de Memória Parte II - algoritmos Sistemas Operativos 2011 / 2012 Algoritmos de Gestão de Memória Os algoritmos de gestão de memória são utilizados para decidir: Onde se deve colocar um bloco (segmento

Leia mais

Departamento de Engenharia Informática. Gestão de Memória. Parte II Algoritmos

Departamento de Engenharia Informática. Gestão de Memória. Parte II Algoritmos Gestão de Memória Parte II Algoritmos Algoritmos de Gestão de Memória Tipos de decisões que o sistema operativo tem de tomar em relação à memória principal: Reserva: onde colocar um bloco de informação?

Leia mais

Gestão de Memória. Espaço de Endereçamento

Gestão de Memória. Espaço de Endereçamento Gestão de Memória Parte I Mecanismos Espaço de Endereçamento Conjunto de posições de memória que um processo pode referenciar E se referenciar outras posições de memória? HW de gestão de memória desencadeia

Leia mais

Gestão de Memória. Espaço de Endereçamento

Gestão de Memória. Espaço de Endereçamento Gestão de Memória Parte I Mecanismos Espaço de Endereçamento Conjunto de posições de memória que um processo pode referenciar Para ler, escrever ou executar E se referenciar outras posições de memória?

Leia mais

Espaço de Endereçamento

Espaço de Endereçamento Gestão de Memória Parte I - mecanismos Sistemas Operativos 2015 / 2016 Espaço de Endereçamento Conjunto de posições de memória que um processo pode referenciar E se referenciar outras posições de memória?

Leia mais

Espaço de Endereçamento

Espaço de Endereçamento Gestão de Memória Parte I - mecanismos Sistemas Operativos 2011 / 2012 Espaço de Endereçamento Conjunto de posições de memória que um processo pode referenciar E se referenciar outras posições de memória?

Leia mais

Arquitetura de Sistemas Operacionais

Arquitetura de Sistemas Operacionais Arquitetura de Sistemas Operacionais Francis Berenger Machado Luiz Paulo Maia Capítulo 10 Gerência de Memória Virtual Cap 10 Gerência de Memória Virtual 1 Sumário Introdução Espaço de Endereçamento Virtual

Leia mais

Sistemas Opera r cionais Gerência de Memória

Sistemas Opera r cionais Gerência de Memória Sistemas Operacionais Gerência de Memória Gerência de Memória Idealmente, o que todo programador deseja é dispor de uma memória que seja grande rápida não volátil Hierarquia de memórias pequena quantidade

Leia mais

UFRJ IM - DCC. Sistemas Operacionais I. Unidade III Memória Primária. 29/04/2014 Prof. Valeria M. Bastos

UFRJ IM - DCC. Sistemas Operacionais I. Unidade III Memória Primária. 29/04/2014 Prof. Valeria M. Bastos UFRJ IM - DCC Sistemas Operacionais I Unidade III Memória Primária 29/04/204 Prof. Valeria M. Bastos ORGANIZAÇÃO DA UNIDADE Processador - Escalonamento Memória Primária Fundamentos Formas de Particionamento

Leia mais

Sistemas de Computação. Gerenciamento de memória

Sistemas de Computação. Gerenciamento de memória Gerenciamento de memória Localização de processos Um programa fica armazenado em disco como um arquivo executável binário e tem que ser colocado na memória para começar a ser executado Os processos podem

Leia mais

Sistemas operacionais P A G I N A Ç Ã O D E M E M Ó R I A

Sistemas operacionais P A G I N A Ç Ã O D E M E M Ó R I A Sistemas operacionais P A G I N A Ç Ã O D E M E M Ó R I A O Espaço de Endereçamento lógico de um processo pode ser não contínuo; aloca-se memória física ao processo sempre que esta é disponível. A memória

Leia mais

Gestão de memória - Memory Management Unit (MMU)

Gestão de memória - Memory Management Unit (MMU) Gestão de memória - Memory Management Unit (MMU) A distinção entre espaço de edereçamento virtual e espaço de endereçamento físico é fundamental na eficiente gestão do recurso memória física (RAM) por

Leia mais

Gestão de memória - Memory Management Unit (MMU)

Gestão de memória - Memory Management Unit (MMU) Gestão de memória - Memory Management Unit (MMU) A distinção entre espaço de edereçamento virtual e espaço de endereçamento físico é fundamental na eficiente gestão do recurso memória física (RAM) por

Leia mais

UNIX Gerência de Memória

UNIX Gerência de Memória UNIX Gerência de Memória Introdução Unix implementado sobre muitos computadores diferen tes baseada, segmentada, paginada, segmentada/paginada A gerência de memória garante: Proteção do espaço de endereçamento

Leia mais

MEMÓRIA LÓGICA E FÍSICA (1)

MEMÓRIA LÓGICA E FÍSICA (1) GERÊNCIA DE MEMÓRIA memória = vetor de palavras (ou bytes), cada uma com endereço próprio a memória é usada para armazenar os diversos programas em execução, bem como os dados sobre a execução dos programas

Leia mais

Organização de um Sistema Operativo

Organização de um Sistema Operativo Gestão de Memória 1. Conceitos Básicos 2. Swapping 3. Memória Virtual 4. Algoritmos de substituição de páginas 5. Modelação de algoritmos de substituição de páginas 6. Questões no desenho de sistemas de

Leia mais

Caching. Caches do Sistema de Ficheiros

Caching. Caches do Sistema de Ficheiros Caching Caches do Sistema de Ficheiros Acessos aos dispositivos de memória de massa: 4 a 5 ordens de grandeza mais lentos que os acessos a memória, Como usar caches para reduzir peso das escritas e leituras

Leia mais

Gerenciamento de memória

Gerenciamento de memória Gerenciamento de memória O que faz? Controla o uso dos espaços em memória Controla os modos de endereçamento dos processos Como funciona a memória? Hierarquia de memória A falta de desempenho A velocidade

Leia mais

Sistemas Operacionais. - Gerência de Memória -

Sistemas Operacionais. - Gerência de Memória - Sistemas Operacionais - Gerência de Memória - Gerenciamento de Memória A organização e a gerência de memória são fatores importantes no projeto de sistemas operacionais Um dos objetivos é desenvolver um

Leia mais

Modelação de algoritmos de substituição de páginas Anomalia Belady

Modelação de algoritmos de substituição de páginas Anomalia Belady Gestão de Memória 1. Conceitos Básicos 2. Swapping 3. Memória Virtual 4. Algoritmos de substituição de páginas 5. Modelação de algoritmos de substituição de páginas 6. Questões no desenho de sistemas de

Leia mais

Fundamentos de Sistemas Operacionais

Fundamentos de Sistemas Operacionais Fundamentos de Sistemas Operacionais Aula 6 Gerenciamento de Memória Prof. Galvez Considerações Gerais Multiprogramação implica em manter-se vários processos em memória Memória necessita ser alocada de

Leia mais

Capítulo 8: Memória Principal. Operating System Concepts 8 th Edition

Capítulo 8: Memória Principal. Operating System Concepts 8 th Edition Capítulo 8: Memória Principal Silberschatz, Galvin and Gagne 2009 Objetivos Fornecer uma descrição detalhada das várias formas de organizar a memória do computador Discutir várias técnicas de gerenciamento

Leia mais

Gerência da Memória. Adão de Melo Neto

Gerência da Memória. Adão de Melo Neto Gerência da Memória Adão de Melo Neto 1 Memória Principal Antigamente Recurso escasso Desenvolvimento de um sistema operacional (SO) que não ocupassem muito espaço de memória principal (MP) Atualmente

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais GERÊNCIA da MEMÓRIA MACHADO/MAIA: CAPÍTULO 09 Prof. Pedro Luís Antonelli Anhanguera Educacional Gerenciamento da Memória Programas precisam ser trazidos para a memória para serem

Leia mais

Memoria. UNIVERSIDADE DA BEIRA INTERIOR Faculdade de Engenharia Departamento de Informática

Memoria. UNIVERSIDADE DA BEIRA INTERIOR Faculdade de Engenharia Departamento de Informática Arquitectura de Computadores II Engenharia Informática (11545) Tecnologias e Sistemas de Informação (6621) Memoria Fonte: Arquitectura de Computadores, José Delgado, IST, 2004 Nuno Pombo / Paulo Fazendeiro

Leia mais

Gerência de Memória. Endereçamento Virtual (1) Paginação. Endereçamento Virtual (2) Endereçamento Virtual (3)

Gerência de Memória. Endereçamento Virtual (1) Paginação. Endereçamento Virtual (2) Endereçamento Virtual (3) Endereçamento Virtual (1) Gerência de Memória Paginação Espaço de endereçamento dos processos não linearmente relacionado com a física Cada vez que são usados, os endereços virtuais são convertidos pela

Leia mais

Sistemas Operacionais

Sistemas Operacionais Introdução Memória virtual Trabalho sob a Licença Atribuição-SemDerivações-SemDerivados 3.0 Brasil Creative Commons. Para visualizar uma cópia desta licença, visite http://creativecommons.org/licenses/by-nc-nd/3.0/br/

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Slide 1 Memória Virtual os primeiros computadores (início dos anos 60) tinham memória principal muito reduzida O PDP-1 funcionava com uma memória de 4096 palavras

Leia mais

SISTEMAS OPERACIONAIS

SISTEMAS OPERACIONAIS SISTEMAS OPERACIONAIS Gerência de Memória Andreza Leite andreza.leite@univasf.edu.br Plano da Aula 2 Introdução Necessidade gerenciador de memória Sistemas gerenciais de memória Alocação contínua n Máquina

Leia mais

7 Mecanismos de gestão de memória. Prof. Ricardo Silva

7 Mecanismos de gestão de memória. Prof. Ricardo Silva 7 Mecanismos de gestão de memória Prof. Ricardo Silva Introdução Um programa reside no disco sob a forma de ficheiro executável Para ser executado, o programa tem de ser colocado em memória e associado

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Gerência de Memória Memória virtual Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Slides baseados nas apresentações dos prof. Tiago Ferreto e Alexandra Aguiar

Leia mais

Sistemas Operacionais Gerenciamento de Memória. Carlos Ferraz Jorge Cavalcanti Fonsêca

Sistemas Operacionais Gerenciamento de Memória. Carlos Ferraz Jorge Cavalcanti Fonsêca Sistemas Operacionais Gerenciamento de Memória Carlos Ferraz (cagf@cin.ufpe.br) Jorge Cavalcanti Fonsêca (jcbf@cin.ufpe.br) Memória Física vs. Memória do Programa Memória P Física Tamanho dos softwares

Leia mais

Gestão de Memória algoritmos e políticas

Gestão de Memória algoritmos e políticas Gestão de Memória algoritmos e políticas Criação de espaços de endereçamento virtual com gestão eficiente (gasto mínimo) da memória física disponível O que carregar(colocar em memória física) e quando?

Leia mais

Divisão da lacuna em espaços na base 2: Eficiente quanto à velocidade e Ineficiente quanto à fragmentação.

Divisão da lacuna em espaços na base 2: Eficiente quanto à velocidade e Ineficiente quanto à fragmentação. % % & & Sistema Buddy Divisão da lacuna em espaços na base 2:! 1, 2, 4, 8,, até o limite da memória Até encontrar uma lacuna suficiente! Eficiente quanto à velocidade e Ineficiente quanto à fragmentação

Leia mais

SSC0640 Sistemas Operacionais I

SSC0640 Sistemas Operacionais I SSC0640 Sistemas Operacionais I 15ª Aula Gerenciamento de Memória Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br Slides adaptados de Marcos José Santana / Regina H. C. Santana / Luciana A. F. Martimiano

Leia mais

Gerência de Memória. Paginação

Gerência de Memória. Paginação Gerência de Memória Paginação Endereçamento Virtual (1) Espaço de endereçamento dos processos não linearmente relacionado com a memória física Cada vez que são usados, os endereços virtuais são convertidos

Leia mais

Organização e Arquitetura de Computadores

Organização e Arquitetura de Computadores Organização e Arquitetura de Computadores Gerência de Memória Alexandre Amory Edson Moreno Índice 1. Introdução e histórico de Gerência de Memória 2. Endereçamento da Memória Principal Introdução Sistema

Leia mais

Memória. Gestão do espaço lógico Paginação Segmentação com paginação

Memória. Gestão do espaço lógico Paginação Segmentação com paginação Memória Gestão do espaço lógico Paginação Segmentação com paginação Paginação Divide-se a memória física em pequenos blocos de tamanho fixo chamados de páginas físicas (ou frames) o tamanho é uma potência

Leia mais

Sistemas Operativos: Gestão de Memória

Sistemas Operativos: Gestão de Memória Sistemas Operativos: Gestão de Memória Pedro F. Souto (pfs@fe.up.pt) April 28, 2012 Sumário Conceitos e Técnicas Básicas Swapping Gestão da Memória Física Sumário Conceitos e Técnicas Básicas Swapping

Leia mais

ARQUITETURA DE COMPUTADORES

ARQUITETURA DE COMPUTADORES 01001111 01110010 01100111 01100001 01101110 01101001 01111010 01100001 11100111 11100011 01101111 00100000 01100100 01100101 00100000 01000011 01101111 01101101 01110000 01110101 01110100 01100001 01100100

Leia mais

William Stallings Arquitetura e Organização de Computadores 8 a Edição

William Stallings Arquitetura e Organização de Computadores 8 a Edição William Stallings Arquitetura e Organização de Computadores 8 a Edição Capítulo 8 Suporte do sistema operacional slide 1 Objetivos e funções Conveniência: Tornar o computador mais fácil de usar. Eficiência:

Leia mais

Gerenciamento de Memória

Gerenciamento de Memória Gerenciamento de Memória Prof. Alexandre Beletti Ferreira Gerência de Memória Sistemas Monoprogramáveis = gerenciamento simplificado Sistemas Multiprogramáveis = gerenciamento crítico (muitos usuários

Leia mais

Arquitectura de Computadores

Arquitectura de Computadores Arquitectura de Computadores Hierarquia de Memória; Memória Cache (13.2 e 13.3) José Monteiro Licenciatura em Engenharia Informática e de Computadores Departamento de Engenharia Informática (DEI) Instituto

Leia mais

UFRJ IM - DCC. Sistemas Operacionais I. Unidade III Memória Virtual. 26/05/2014 Prof. Valeria M. Bastos

UFRJ IM - DCC. Sistemas Operacionais I. Unidade III Memória Virtual. 26/05/2014 Prof. Valeria M. Bastos UFRJ IM - DCC Sistemas Operacionais I Unidade III Memória Virtual 26/05/2014 Prof. Valeria M. Bastos 1 Processador Memória Primária Memória Virtual Fundamentos Organização Lógica Gerenciamento de Recursos

Leia mais

Sistemas Operacionais

Sistemas Operacionais Introdução Memória virtual Trabalho sob a Licença Atribuição-SemDerivações-SemDerivados 3.0 Brasil Creative Commons. Para visualizar uma cópia desta licença, visite http://creativecommons.org/licenses/by-nc-nd/3.0/br/

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Organização e Arquitetura de Computadores I Nível do Sistema Operacional (Parte

Leia mais

AULA Nº 11 SISTEMAS OPERACIONAIS. Técnicas de Memória Virtual

AULA Nº 11 SISTEMAS OPERACIONAIS. Técnicas de Memória Virtual AULA Nº 11 SISTEMAS OPERACIONAIS Técnicas de Memória Virtual 1 Contextualizando Vimos Introdução ao Gerenciamento de Memória Agora Técnicas de Memória Virtual 2 O que é Memória Virtual (MV)? É uma técnica

Leia mais

Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado em Ciência da Computação.

Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado em Ciência da Computação. Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Organização e Arquitetura de Computadores I Organização e Arquitetura Básicas

Leia mais

Arquitectura de Computadores

Arquitectura de Computadores Arquitectura de Computadores Memória Secundária (13.4) José Monteiro Licenciatura em Engenharia Informática e de Computadores Departamento de Engenharia Informática (DEI) Instituto Superior Técnico 18

Leia mais

Prof. Adriano Maranhão

Prof. Adriano Maranhão Prof. Adriano Maranhão Memória Considerações: Recurso caro e escasso; Programas só executam se estiverem na memória principal; Quanto mais processos residentes na memória principal, melhor será o compartilhamento

Leia mais

Arquitectura de Computadores

Arquitectura de Computadores Arquitectura de Computadores Memória Secundária (13.4) José Monteiro Licenciatura em Engenharia Informática e de Computadores Departamento de Engenharia Informática (DEI) Instituto Superior Técnico 29

Leia mais

Sistemas Operacionais. - Gerência de Memória -

Sistemas Operacionais. - Gerência de Memória - Sistemas Operacionais - Gerência de Memória - Memória Virtual É uma técnica sofisticada de gerência de memória As memórias principal e secundária são combinadas, dando ao usuário a impressão de existir

Leia mais

Fundamentos de Sistemas Operacionais

Fundamentos de Sistemas Operacionais Fundamentos de Sistemas Operacionais Aula 19: Memória Virtual: Introdução Diego Passos Última Aula Paginação Método de gerenciamento de memória mais usado hoje. Espaço de endereçamento de um processo é

Leia mais

Arquitectura de Computadores (ACom)

Arquitectura de Computadores (ACom) Arquitectura de Computadores (ACom) MEAer Acetatos das Aulas Teóricas Versão 4.0 - Português Aula N o 22: Título: Sumário: cache; cache por blocos; Política de substituição; Tratamento das operações de

Leia mais

UFRJ IM - DCC. Sistemas Operacionais I. Unidade III Memória Virtual. Prof. Antonio Carlos Gay Thomé Prof. Aux. Simone Markenson Pech 1

UFRJ IM - DCC. Sistemas Operacionais I. Unidade III Memória Virtual. Prof. Antonio Carlos Gay Thomé Prof. Aux. Simone Markenson Pech 1 18/9/009 UFRJ IM - DCC Sistemas Operacionais I Unidade III Memória Virtual 18/9/009 Prof. Antonio Carlos Gay Thomé Prof. Aux. Simone Markenson Pech 1 ORGANIZAÇÃO DA UNIDADE Processador Memória Primária

Leia mais

Substituição de Páginas

Substituição de Páginas Substituição de Páginas Pedro Cruz EEL770 Sistemas Operacionais Lembranças sobre memória Tempo virtual Segmentação de memória Realocação Estática Dinâmica Sobreposições MMU Memory Management Unit Página

Leia mais

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar - Aula 6-1. Memória Virtual Conceitos Importantes: Princípio da Localidade: Quando um programa que acessa uma porção relativamente pequena do espaço endereçável em um instante qualquer. Por este princípio,

Leia mais

Sistemas de Informação. Sistemas Operacionais

Sistemas de Informação. Sistemas Operacionais Sistemas de Informação Sistemas Operacionais GERÊNCIA DE MEMÓRIA SUMÁRIO 5. GERÊNCIA DE MEMÓRIA: 5.1 Introdução; 5.2 Funções Básicas; 5.3 Alocação Contígua Simples; 5.4 Técnica de Overlay; ; 5.6 Swapping.

Leia mais

GERENCIAMENTO DE MEMÓRIA

GERENCIAMENTO DE MEMÓRIA GERENCIAMENTO DE MEMÓRIA Sistemas Operacionais Gerenciamento de memória O que vem em sua cabeça quando pensa em memória? Cache RAM Velocidade Custo Memória Secundária Capacidade 2 Hierarquias de Memórias

Leia mais

13 de Maio de Aula 17

13 de Maio de Aula 17 13 de Maio de 2005 1 Memória Virtual I Aula 17 Estrutura desta aula Conceitos fundamentais em Memória Virtual (MV) Paginação e segmentação Terminologia Vantagens da MV Mecanismos de tradução dos endereços

Leia mais

SSC0611 Arquitetura de Computadores

SSC0611 Arquitetura de Computadores SSC0611 Arquitetura de Computadores 5ª e 6ª Aulas Revisão de Hierarquia de Memória Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br 1 Memória Memória Todo componente capaz de armazenar bits de informação

Leia mais

CURSO TÉCNICO EM INFORMÁTICA SISTEMAS OPERACIONAIS II MEMÓRIA VIRTUAL

CURSO TÉCNICO EM INFORMÁTICA SISTEMAS OPERACIONAIS II MEMÓRIA VIRTUAL CURSO TÉCNICO EM INFORMÁTICA SISTEMAS OPERACIONAIS II MEMÓRIA VIRTUAL O Processo passa a possuir um espaço de endereçamento virtual. Este espaço de endereçamento pode ser maior que a memória física. S.O.

Leia mais

Sistemas Operacionais Memória Virtual

Sistemas Operacionais Memória Virtual Universidade Estadual de Mato Grosso do Sul UEMS Curso de Licenciatura em Computação Sistemas Operacionais Memória Virtual Prof. José Gonçalves Dias Neto profneto_ti@hotmail.com Introdução Memória virtual

Leia mais

Sistemas Operativos Cap. VII Gestão Memória

Sistemas Operativos Cap. VII Gestão Memória Sistemas Operativos Cap. VII Gestão Memória Prof. José Rogado jose.rogado@ulusofona.pt Universidade Lusófona 7.1 Gestão de Memória Introdução Carregamento de Código Relocação Unidade de Gestão Memória

Leia mais

Memória virtual. Sistemas Segmentados

Memória virtual. Sistemas Segmentados Memória virtual Sistema de memória virtual - aquele onde os endereços usados pelos programas podem ser distintos dos endereços físicos da memória central Os endereços que os programas usam são endereços

Leia mais

Segmentação com paginação Intel 386. Esquema de tradução de endereço Intel 386

Segmentação com paginação Intel 386. Esquema de tradução de endereço Intel 386 Segmentação com paginação Intel 386 O processador Intel 386 usava segmentação com paginação para gerenciamento de memória com um esquema de paginação em dois níveis. Esquema de tradução de endereço Intel

Leia mais

Sistemas de Informação. Sistemas Operacionais

Sistemas de Informação. Sistemas Operacionais Sistemas de Informação Sistemas Operacionais GERÊNCIA DE MEMÓRIA VIRTUAL SUMÁRIO 6 GERÊNCIA DE MEMÓRIA VIRTUAL: 61 Introdução; 62 Espaço de Endereçamento Virtual; 63 Mapeamento; 64 Memória Virtual por

Leia mais

Memória Virtual. Paulo Sérgio Almeida. Grupo de Sistemas Distribuídos Departamento de Informática Universidade do Minho

Memória Virtual. Paulo Sérgio Almeida. Grupo de Sistemas Distribuídos Departamento de Informática Universidade do Minho Paulo Sérgio Almeida Grupo de Sistemas Distribuídos Departamento de Informática Universidade do Minho Memória virtual Introdução Separar o conceito de memória lógica/virtual que os processos manipulam

Leia mais

Sistemas Operacionais. Prof. André Y. Kusumoto

Sistemas Operacionais. Prof. André Y. Kusumoto Sistemas Operacionais Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Fundamentos Gerência de memória Memória Virtual Todo o espaço lógico mapeado no espaço físico O tamanho do programa é limitado

Leia mais

Administração de Memória

Administração de Memória Administração de Memória 4.1 Administração básica de memória 4.2 Swapping 4.3 Memória Virtual 4.4 Algoritmos de substituição de páginas 4.5 Modelando algoritmos de substituição de páginas 4.6 Tópicos de

Leia mais

Aula 10 Gerenciamento de Memória

Aula 10 Gerenciamento de Memória Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Aula 10 Gerenciamento de Memória Capítulo9 PLT página159 2 1 Gerenciamento de

Leia mais

Sistemas Operativos. Gestão de memória. Rui Maranhão (rma@fe.up.pt)

Sistemas Operativos. Gestão de memória. Rui Maranhão (rma@fe.up.pt) Sistemas Operativos Gestão de memória Rui Maranhão (rma@fe.up.pt) Gestão de memória idealmente a memória seria grande rápida não volátil contudo, na realidade existem limitações físicas! Portanto... hierarquia

Leia mais

Gerência de Memória. Execução de um Programa (1) Introdução. Introdução

Gerência de Memória. Execução de um Programa (1) Introdução. Introdução Introdução Gerência de Memória (Aula 18) Considerações: Recurso caro e escasso; Programas só executam se estiverem na memória principal; Quanto mais processos residentes na memória principal, melhor será

Leia mais

Arquitetura de Sistemas Operativos

Arquitetura de Sistemas Operativos Arquitetura de Sistemas Operativos Sistemas Operativos 2011/2012 1 Threads Conceito Um processo é um programa em execução. A execução de um processo é sequencial: pode-se caracterizar um processo pelo

Leia mais

AULA 14 - Memória Virtual

AULA 14 - Memória Virtual AULA 14 - Memória Virtual A idéia básica da memória virtual é permitir que programas muito maiores que a memória disponível possam ser executados. Para isso, em 1961 Fotheringham criou o método conhecido

Leia mais

SSC0640 Sistemas Operacionais I

SSC0640 Sistemas Operacionais I SSC0640 Sistemas Operacionais I 13ª Aula Gerenciamento de Memória Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br Slides adaptados de Marcos José Santana / Regina H. C. Santana / Luciana A. F. Martimiano

Leia mais

Gerência de Memória. Aspectos de Projeto

Gerência de Memória. Aspectos de Projeto Gerência de Memória Aspectos de rojeto olíticas de Busca de áginas de um rocesso Determina em que instante uma página deve ser trazida para memória principal O objetivo é minimizar o número de faltas de

Leia mais

Infra-Estrutura de Software IF677

Infra-Estrutura de Software IF677 Infra-Estrutura de Software IF677 Gerenciamento de Memória Tópicos Gerenciamento básico de memória Troca de processos Memória virtual Paginação Gerenciamento de Memória Idealmente, o que todo programador

Leia mais

Memória virtual. Sistemas de Computação

Memória virtual. Sistemas de Computação Memória virtual Fundamentos Memória virtual separação da memória lógica do usuário da memória física somente uma parte do programa precisa estar na memória para execução espaço de endereçamento lógico

Leia mais

Sistemas Operacionais. Prof. MSc. André Yoshimi Kusumoto

Sistemas Operacionais. Prof. MSc. André Yoshimi Kusumoto Sistemas Operacionais Prof. MSc. André Yoshimi Kusumoto andrekusumoto.unip@gmail.com Fundamentos Gerência de memória Memória Virtual Todo o espaço lógico mapeado no espaço físico O tamanho do programa

Leia mais

Gerenciamento de Memória

Gerenciamento de Memória Gerenciamento de Memória Conceitos básicos Swapping Alocação contígua Paginação Segmentação Segmentação com paginação Atribuição de endereços (ligação) de código e dados na memória A atribuição de endereços

Leia mais

Gerência de memória III

Gerência de memória III Gerência de memória III Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Maio, 2016 1 / 45 Sumário 1 Memória Virtual Segmentação Paginação 2 Alocação de páginas

Leia mais

Sistemas Operacionais. Gerência de Memória

Sistemas Operacionais. Gerência de Memória Sistemas Operacionais Gerência de Memória Sumário 1. Introdução 2. Funções Básicas 3. Alocação Contígua Simples 4. Técnica de Overlay 5. Alocação Particionada 1. Estática 2. Dinâmica 6. Estratégias de

Leia mais

Gerência de Memória. Gerência de Memória Introdução e Particionamento. Novo capítulo. Aulas anteriores. Plano da aula. Memória lógica & física

Gerência de Memória. Gerência de Memória Introdução e Particionamento. Novo capítulo. Aulas anteriores. Plano da aula. Memória lógica & física Aulas anteriores Gerência de Memória Introdução e Particionamento Marcelo Johann Ciclo de Compilação, ligação e carga INF - Sistemas Operacionais I N - Marcelo Johann - 9/ Aula : Slide INF - Sistemas Operacionais

Leia mais

Arquitetura e Organização de Computadores

Arquitetura e Organização de Computadores UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO DEPARTAMENTO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIA DA COMPUTAÇÃO Arquitetura e Organização de Computadores Suporte ao Sistema Operacional Prof. Helcio

Leia mais

Arquitectura de Computadores (ACom)

Arquitectura de Computadores (ACom) Arquitectura de Computadores (ACom) MEAer Acetatos das Aulas Teóricas Versão 5.0 - Português Aula N o 23: Título: Sumário: - II ; memória virtual - caches. 2015/2016 Nuno.Roma@tecnico.ulisboa.pt Arquitectura

Leia mais

Gerenciamento de Memória

Gerenciamento de Memória Gerenciamento de Memória Walter Fetter Lages w.fetter@ieee.org Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Engenharia Elétrica ENG04008 Sistemas de Tempo Real Copyright

Leia mais

Gerenciamento de Memória

Gerenciamento de Memória Gerenciamento de Memória Prof. Clodoaldo A. Moraes Lima 1 int a; p1 ( ) { int b; int *c; a = b +1; c = malloc (sizeof(int));... } int main ( ) {... } Pilha O que é memória? Pilha Dados Texto Endereço Max

Leia mais

Segmentação de Memória

Segmentação de Memória Segmentação de Memória Pedro Cruz EEL770 Sistemas Operacionais Memória volátil Algoritmos de substituição Substituição de páginas não usadas recentemente Substituição de páginas primeiro a entrar, primeiro

Leia mais

Sistemas de Memória III

Sistemas de Memória III Sistemas de Memória III José Costa Introdução à Arquitetura de Computadores Departamento de Engenharia Informática (DEI) Instituto Superior Técnico 2013-11-29 José Costa (DEI/IST) Sistemas de Memória III

Leia mais

Reserva de memória não-contígua significa que a memória atribuída a um objecto pode ser composta de bocados espalhados pela memória física.

Reserva de memória não-contígua significa que a memória atribuída a um objecto pode ser composta de bocados espalhados pela memória física. Gestão de Memória Não-Contígua Reserva de memória não-contígua significa que a memória atribuída a um objecto pode ser composta de bocados espalhados pela memória física. Embora os endereços virtuais sejam

Leia mais

Introdução. Considerações:

Introdução. Considerações: Gerência de Memória Introdução Considerações: Recurso caro e escasso; Programas só executam se estiverem na memória principal; Quanto mais processos residentes na memória principal, melhor será o compartilhamento

Leia mais

Gerência de memória II

Gerência de memória II Gerência de memória II Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Maio, 2017 1 / 48 Sumário 1 Memória Virtual Segmentação Paginação 2 Alocação de páginas

Leia mais

Sistemas Operacionais Gerenciamento de Memória. Carlos Ferraz Jorge Cavalcanti Fonsêca

Sistemas Operacionais Gerenciamento de Memória. Carlos Ferraz Jorge Cavalcanti Fonsêca Sistemas Operacionais Gerenciamento de Memória Carlos Ferraz (cagf@cin.ufpe.br) Jorge Cavalcanti Fonsêca (jcbf@cin.ufpe.br) Gerenciamento de Memória Idealmente, o que todo programador deseja é dispor de

Leia mais

Sistemas de Operação / Fernando Silva / Departamento 1 de Ciência de Computadores 6.1

Sistemas de Operação / Fernando Silva / Departamento 1 de Ciência de Computadores 6.1 Umprogramaparaserexecutadotemdesercarregado para memória e colocado no âmbito de um processo. Por questões de eficiência, um SO permite a coexistência em memória de mais de um processo multiprogramação.

Leia mais