A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Apresentações semelhantes


Apresentação em tema: "Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:"— Transcrição da apresentação:

1 Gerência de Memória Sistemas Operacionais

2 Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes: Processador, Dispositivos I/O e a Memória Programa deveria ser armazenado na memória junto com os dados. Capaz de lembrar sequências de comandos previamente fornecidos executando-as fielmente.

3

4 Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Arquitetura Princeton e Arquitetura Harward

5

6 Princeton Princeton Único barramento para transferência de dados e instruções entre memória e processador Predominou pela simplicidade

7 Harward Harward Dispositivos de memória distintos para armazenamento de dados e programas; Dois barramentos ligando o processador aos dispositivos de memória de dados e programas; Mais eficiente

8 Ambos foram conceitos revolucionários ; Não existia tecnologia suficiente para construção de dispositivos que funcionassem como memória; Processadores evoluíram primeiro.

9 1ª Memória primária foi construída com pequenos núcleos magnetizáveis de ferrite interligados matricialmente por uma delicada fiação de cobre, onde cada núcleo armazenava um único bit. processadores são capazes de ler e escrever mais rápido do que os circuitos de memória do mesmo nível tecnológico. Wait States: é o tempo de espera por parte do processador até que a memória esteja preparada para ler ou gravar os dados.

10 Quando se fala em memória, estamos nos referindo aos circuitos que trocam dados diretamente com o processador durante o ciclo de execução de seus comandos mais básicos, ou seja, a memória primária ou armazenamento primário. (RAM, ROM, REGISTRADORES E CACHE) Os dispositivos de armazenamento secundário, isto é, dispositivos de memória de massa que não devem ser confundidos com a memória básica do computador. (Discos rígidos, CDs, DVds, PenDrive)

11 Memória Memória Memória é um termo genérico usado para designar as partes do computador ou dos dispositivos periféricos onde os dados e programas são armazenados. Sem uma memória de onde os processadores podem ler e escrever informações, não haveria nenhum computador digital de programa armazenado.

12 Memória A memória pode ser vista como um array (vetor) de células de armazenamento (palavras ou bytes), cada célula com seu endereço

13 Memória A CPU e os controladores dos dispositivos periféricos podem ler e escrever em posições de memória.

14 Memória Considerações: caroescasso –Recurso caro e escasso; era ou é? –Preocupação do projetista: SO que não ocupassem muito espaço de memória; –Programas só executam se estiverem na memória principal; –Necessidade de uso otimizado; –É um dos fatores mais importantes em um projeto de S.O..

15 Memória O objetivo principal de um Sistema Computacional é executar programas; Estes programas devem estar localizados na memória principal; Memória principal não possui tamanho suficiente; SO modernos utilizam principalmente dos discos rígidos como dispositivos secundários de apoio à memória. Por isso existe a necessidade do Gerente de Memória.

16

17

18 Gerência de Memória Algumas funções do Gerente de Memória –Controlar –Controlar quais as unidades de memória estão ou não estão em uso, para que sejam alocadas quando necessário; –Liberar –Liberar as unidades de memória que foram desocupadas por um processo que finalizou; –alocação da memória de acordo com as necessidades dos processos Swapping –Tratar do Swapping entre memória principal e memória secundária. –Transferência temporária de processos residentes na memória principal para memória secundária

19 Mecanismos para Gerência de Memória máquina pura monitor residente swapping partições múltiplas paginação segmentação sistemas combinados

20 Máquina Pura É o esquema mais simples, pois não existe gerência de memória; O usuário lida diretamente com o hardware e possui total controle sobre toda a memória; Não exige nenhum software ou hardware especiais; Viável apenas em sistemas dedicados, onde o computador controla um equipamento específico.

21 Máquina Pura Problemas: –não existe a infra-estrutura do SO (rotinas de E/S, por exemplo) –não há monitor residente para controlar chamadas de sistema ou erros

22 Sistemas Monoprogramados Alocação Contígua Simples Com monoprogramação a gerência de memória fica simples; O espaço é dividido entre o SO e o processo do usuário que está sendo executado;

23 Monoprogramação Vantagens: –simplicidade –custo baixo de implementação e uso –flexibilidade

24 Monitor Residente Normalmente, este esquema é usado em sistemas monoprogramados; Memória dividida em duas partes: –área do SO –área do usuário Registrador limite: contém o primeiro endereço do programa usuário

25 Monitor Residente Sistema Operacional Área para o programa usuário Área livre Registrador Limite

26 E se o tamanho do programa for maior do que a memória disponível? Neste caso utiliza-se a técnica conhecida como overlay, o programa é dividido em módulos que são executados independentemente na mesma área de memória

27 Overlay Sistema Operacional Módulo principal Área livre Área de Overlay 1 kb 4 kb 3 kb 2 kb Cadastramento Impressão 4 kb Área não utilizada 2 kb

28 Multiprogramação através de Swapping É implementada por um SO do tipo monitor residente O esquema de gerenciamento de memória é estendido para implementar swapping O programa que perde a CPU é copiado p/ disco, enquanto o programa que ganha a CPU é transferido do disco p/ a memória principal

29 Swapping Monitor Espaço do Usuário reg. limite U1 U2 Swap-in Swap-out

30 Exercício 1)O que é Memória 2)Cite exemplos de memória primária: 3)Cite exemplos de memória secundária: 4)Para a sua execução, em qual memória o programa precisa estar? 5)Quais as funções do Gerente de Memória 6)O que é Swapping?

31 Gerência de Memória Memória Lógica - é aquela que o processo enxerga, o processo é capaz de acessar. Memória Física - é aquela implementada pelos circuitos integrados de memória, pela eletrônica do computador CPU Gerenciador de Memória Memória Endereço lógico Endereço físico

32 Partições Múltiplas Com multiprogramação, é conveniente ter vários programas na memória ao mesmo tempo para que a CPU seja rapidamente alternada entre eles Solução: dividir a memória em partições que podem ser: –Partições Fixas (regiões estáticas) –Partições variáveis (regiões dinâmicas)

33 Partições Fixas A memória é dividida em partições que não são alteradas durante a execução do sistema. Quando um processo é criado, ele é colocado em uma fila à espera que uma partição de tamanho suficiente se torne disponível

34 Partições Fixas Para definir a partição onde o programa vai ser colocado, existem duas opções: –Montar uma fila individual para cada partição –Montar uma fila única para todas as partições

35 Partições Fixas

36 Fragmentação São perdas (desperdício) de memória: –fragmentação interna: memória é perdida dentro da partição alocada (é um desperdício de espaço dentro da partição usada pelo processo) –fragmentação externa: ocorre quando existe espaço disponível mas este é pequeno demais para os processos que estão à espera (perda de espaço fora das partições alocadas)

37 Fragmentação

38 Partições Fixas O controle de partições fixas é conceitualmente simples. Necessita levar em conta: tamanhos das partições de memória algoritmo para gerenciar a lista de processos em espera

39 Partições Fixas Exemplo: memória de 256K –espaço do SO: 64K –espaço para processos pequenos: 16K –espaço para processos médios: 48K –espaço para processos grandes: 128K

40 Partições Fixas O maior problema das partições fixas é determinar a melhor divisão da memória; A solução é permitir que o tamanho das partições varie ao longo do tempo. Partições Variáveis

41 Os tamanhos das partições variam de acordo com a necessidade Tanto o tamanho quanto o número de partições variam dinamicamente Elimina a fragmentação interna Mais difícil de implementar

42 Partições Variáveis O SO mantém uma lista indicando quais partes da memória estão disponíveis e quais estão ocupadas. As áreas disponíveis são denominadas lacunas (holes) Quando um processo chega para ser executado, a lista de lacunas é consultada e é escolhida uma lacuna de tamanho suficiente

43 Partições Variáveis JOB Memória60K100K30K70K50K Tempo

44 Partições Variáveis - Características Vai existir um conjunto de áreas livres (lacunas) espalhadas pela memória; Para executar um programa, o conjunto é pesquisado à procura de uma área maior ou igual à necessidade ; Se a área é maior, a parte restante vai continuar livre; Quando um processo termina, a área é liberada. Se a área é adjacente a outra área livre, as duas áreas são aglutinadas em uma única lacuna;

45 Partições Variáveis Existem algoritmos para a escolha de uma área livre.

46 Partições Variáveis - Algoritmos de Alocação para partições variáveis Algoritmos para escolha da área livre (alocação dinâmica da memória): –first-fit: aloca o primeiro espaço livre de tamanho suficiente –best-fit: aloca o menor espaço livre que seja suficiente. Produz a menor sobra de espaço –worst-fit: aloca o maior espaço livre. Produz a maior sobra de espaço livre (a sobra é mais útil que a gerada por best- fit)

47 Partições Variáveis - Algoritmos de Alocação

48 Aula Passada vimos: –O que é memória; –Programas precisam estar na MP para serem executados; –Mecanismos para Gerenciar Memória: Máquina Pura: Para sistemas dedicados Monoprogramação: Espaço da MP dividido apenas entre o SO e o programa de usuário. (Overlay e Swapping)

49 Multiprogramação: –Partições Fixas (uma fila para cada partição ou uma fila pra todas as partições) –Partições Variáveis (Algorítimos First-fit, Best- fit, Worst-fit)

50 Partições Variáveis - Compactação Para resolver o problema da fragmentação externa, a solução é a compactação da memória: –os programas são deslocados na memória de forma que todo os espaço livre fique reunido em uma única lacuna –necessidade de relocação dinâmica (pois a relocação estática impossibilita a compactação) –No Windows: Aplicativos free disponíveis (Memory Improve Master Free) –No Linux: Algoritmo de Compressão

51 Partições Variáveis - Compactação

52 Mas ainda há problemas

53 Introdução à Paginação e Segmentação Problemas com alocação particionada: Fixa: Fragmentação Interna e Externa Variável : Fragmentação externa, quando a memória livre está fragmentada em diversos blocos espalhados; –A compactação resolve a situação mas possui um custo de CPU associado.

54 O mecanismo de Paginação poderá resolver estes problemas A Paginação permite que o espaço físico ocupado por um processo seja não contíguo.

55 Introdução à Paginação e Segmentação Nova abordagem é considerar a existência de um espaço de endereçamento lógico e de um espaço de endereçamento físico O espaço de endereçamento físico não precisa ser contíguo Necessita mapear o espaço lógico no espaço físico Dois métodos básicos: –Paginação –Segmentação

56 Introdução à Paginação e Segmentação Suposição: para ser executado o processo necessita estar completamente carregado em memória Solução: –Processo é dividido em páginas (blocos de processos); –MP é dividida em quadros de mesmo tamanho

57 Paginação A memória física é dividida em um número de partições de mesmo tamanho, denominadas páginas físicas, quadros ou frames A memória lógica é dividida em partições do mesmo tamanho, denominadas páginas lógicas (ou, simplesmente, páginas) Cada página lógica é carregada em um frame quando o processo é carregado na memória principal Nessa ocasião, uma tabela de páginas é criada Permite que o espaço físico ocupado por um processo seja não contíguo

58 IC - UFF Paginação Exemplo: número de páginas/processo 5D 4C 3B 4A Processos A, B, C estão prontos C4 C3 C2 C1 B3 B2 B1 A4 A3 A2 A1 Páginas Lógicas Páginas Físicas ou Frames

59 Paginação

60 IC - UFF Paginação C4 C3 C2 C1 A4 A3 A2 A1 B terminaD é submetido D4 D5 C1 C2 C3 C4 A1 A2 A3 A4 D3 D2 D1

61 Paginação

62 Esquema de Tradução de Endereços Endereços gerados pela CPU são divididos em: Nr de páginas(p): usado como um índice em uma tabela de páginas, a qual contém o endereço base de cada página na memória física Deslocamento de página(d): combinado com o endereço base para definir o endereço na memória física que será enviado para a memória.

63 Paginação SO mantém cópia (apontador) das tabelas de páginas de cada processo Cada descritor de processo contém o endereço de sua respectiva tabela de páginas. A UCP possui um registrador que aponta para a tabela de páginas atual Para acessar um dado na memória são necessários dois acessos: um de mapeamento (acesso à tabela) e outro para acessar o dado

64 Exercício 1)O que é Memória lógica e Memória Física: 2)Explique as vantagens e desvantagens da alocação Fixa e Variável 3)Explique: Fragmentação Interna e Externa 4)Qual seria uma solução para resolver a fragmentação externa?

65 Paginação não existe fragmentação externa existe fragmentação interna (Ex: um programa que ocupe 201kb, o tamanho de página é de 4 kb, serão alocadas 51 páginas resultando uma fragmentação interna) A fragmentação ocorre apenas na última página usada pelo programa. A fragmentação é consequência do tamanho da página páginas pequenas evitam o problema de fragmentação a literatura indica o uso de páginas pequenas

66 Segmentação A segmentação é uma forma de gerência de memória que suporta a visão do usuário. Com segmentação, o espaço de endereçamento lógico é uma coleção de segmentos. Cada posição da memória lógica é especificada por um segmento e um deslocamento.

67 Segmentação Para facilitar a implementação, os segmentos não recebem nomes, mas sim números. Os compiladores automaticamente criam segmentos para refletir a organização do programa. No momento que o programa é carregado, cada um recebe um número de segmento específico.

68 Segmentação Simplificando Um programa é dividido logicamente em subrotinas e estruturas de dados, que são alocadas em segmentos.

69 Segmentação

70 Segmentação

71 Segmentação Mapeamento é muito semelhante ao de paginação. Os segmentos são mapeados através de tabelas de mapeamento de segmentos (TMS) Endereços são compostos pelo número do segmento virtual (NSV) e por deslocamento Endereço físico é obtido, então, combinando-se o endereço do segmento, localizado na TMS, com o deslocamento, contido no endereço virtual.

72

73 Segmentação Uma vantagem da segmentação em relação à paginação e a sua facilidade em lidar com estruturas de dados Técnica de segmentação, apenas os segmentos referenciados são transferidos da memória secundária para a memória principal

74 Segmentação A política de alocação de páginas pode ser a mesma usada na alocação particionada dinâmica (best-fit, worst-fit ou first-fit) Problemas de fragmentação externa Proteções de memória é mais simples de ser implementada do que sistemas de paginação, Cada segmento tem um conteúdo bem definido

75 Segmentação e Paginação Qual o melhor? –Discussão antiga, sem vencedores Fragmentação –Paginação : apresenta fragmentação interna –Segmentação : apresenta fragmentação externa Administração –Paginação é mais simples Proteção (segurança) e compartilhamento –Segmentação é melhor, pois: –segmentos são unidades lógicas –páginas são mais misturadas (dados, código)

76 Sistemas Combinados Existem sistemas onde a paginação e a segmentação são usadas em conjunto, procurando tirar proveito de ambos os esquemas. –Segmentação paginada (mais comum) –Paginação segmentada (menos comum)

77 Segmentação com Páginas Técnica de gerenciamento na qual o espaço de endereçamento é dividido em segmentos e, por sua vez, cada segmento é dividido em páginas Objetivos de oferecer as vantagens da técnica de paginação e segmentação

78 Segmentação com Páginas Endereço virtual é formado pelo número do segmento virtual (NSV) Um número de página virtual (NPV) e um deslocamento O deslocamento indica a posição do endereço virtual em relação ao inicio da página na qual se encontra. O endereço físico é obtido, então, combinando-se o endereçamento do frame, localizado na tabela de páginas com o deslocamento contido no endereço virtual

79 Segmentação

80

81

82 Sistemas Combinados Segmentação com Páginas Técnica de gerenciamento na qual o espaço de endereçamento é dividido em segmentos e, por sua vez, cada segmento é dividido em Páginas. Objetivos de oferecer as vantagens da técnica de paginação e segmentação.

83 Sistemas Combinados Endereço virtual é formado: – pelo número do segmento virtual (NSV). –Um número de página virtual (NPV) e um deslocamento. O deslocamento indica a posição do endereço virtual em relação ao inicio da página na qual se encontra.

84 Sistemas Combinados O endereço físico é obtido, então, combinando-se o endereçamento do frame, localizado na tabela de páginas com o deslocamento contido no endereço virtual.

85 Segmentação com Paginação


Carregar ppt "Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:"

Apresentações semelhantes


Anúncios Google