Sistemas Operativos I



Documentos relacionados
Capítulo 8: Gerenciamento de Memória

Arquitetura de Computadores. Sistemas Operacionais IV

Gerenciamento Básico B de Memória Aula 07

Notas da Aula 17 - Fundamentos de Sistemas Operacionais

Disciplina: Sistemas Operacionais - CAFW-UFSM Professor: Roberto Franciscatto

Sistemas Operacionais

Sistemas Operacionais

Organização e Arquitetura de Computadores

Programação de Sistemas

Gestão de Memória. DCC/FCUP Fernando Silva Sistemas de Operação 1

Memória. Espaço de endereçamento de um programa Endereços reais e virtuais Recolocação dinâmica Segmentação

AULA 13 - Gerência de Memória

A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande

Sistemas Operativos I

AULA 5 Sistemas Operacionais

Infraestrutura de Hardware. Memória Virtual

Sistemas Operacionais

Memória Virtual. Prof. Dr. José Luís Zem Prof. Dr. Renato Kraide Soffner Prof. Ms. Rossano Pablo Pinto

Introdução aos Computadores

Gerenciamento de memória

Sistemas Operativos. Sumário. Estruturas de sistemas de computação. ! Operação de um sistema de computação. ! Estruturas de E/S

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

Sistema Operacional. Prof. Leonardo Barreto Campos 1

Gerenciamento de Memória

Prof.: Roberto Franciscatto. Capítulo 1.2 Aspectos Gerais

Sistemas Operativos. Gestão de memória. Rui Maranhão

Introdução aos Sistemas Operativos

Exercícios Gerência de Memória

Fundamentos de Sistemas Operacionais

Componentes básicos de um sistema computacional. Cap. 1 (Stallings)

Fundamentos de Sistemas Operacionais

28/9/2010. Paralelismo no nível de instruções Processadores superescalares

Componentes de um Sistema de Operação

Capacidade = 512 x 300 x x 2 x 5 = ,72 GB

Organização de Computadores 1

Arquitetura de Computadores. Tipos de Instruções

Estruturas do Sistema de Computação

Entrada e Saída. Interface entre periféricos, processador e memória. Fonte: Minho - Portugal 1

Sistemas Operacionais

Arquitetura e Organização de Computadores

Gerenciamento de memória. Carlos Eduardo de Carvalho Dantas

Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre

Servidores Virtuais. Um servidor à medida da sua empresa, sem investimento nem custos de manutenção.

Funções de um SO. Gerência de processos Gerência de memória Gerência de Arquivos Gerência de I/O Sistema de Proteção

Análises Geração RI (representação intermediária) Código Intermediário

Multiplexador. Permitem que vários equipamentos compartilhem um único canal de comunicação

Figura 1 - O computador

Sistemas Operacionais. Prof. André Y. Kusumoto

Gerenciamento de memória

Gerência de processos Estudos de caso - BSD Unix

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM

Memória Cache. Prof. Leonardo Barreto Campos 1

Exercícios Gerência de Memória

LABORATÓRIO DE SISTEMAS OPERACIONAIS. PROFª. M.Sc. JULIANA HOFFMANN QUINONEZ BENACCHIO

Exercícios de revisão V2. FAT: 300 GB / 2KB = 150MB X 8 bytes (64 bits / 8) = 1.2GB

Referencial do Módulo B

FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES

implementação Nuno Ferreira Neves Faculdade de Ciências de Universidade de Lisboa Fernando Ramos, Nuno Neves, Sistemas Operativos,

Memória - Gerenciamento. Sistemas Operacionais - Professor Machado

Estruturas de Armazenamento e Indexação. Rafael Lage Moreira Barbosa

ROM-BIOS Inicialização Sistemas de Arquivos Formatação

Capítulo 8: Gestão de Memória

Periféricos e Interfaces Ano lectivo 2003/2004 Docente: Ana Paula Costa. Aula Teórica 11

Componentes de um Sistema de Operação

Introdução a Informática. Prof.: Roberto Franciscatto

Gestor de Processos Núcleo do Sistema Operativo. Sistemas Operativos 2011 / Gestor de Processos

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Programador/a de Informática

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO

Sistemas Operacionais

Prof. Antonio Fundamentos de Sistemas Operacionais UNIP/2015

Armazenamento Secundário. SCE-183 Algoritmos e Estruturas de Dados II

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

ANHANGUERA EDUCACIONAL. Capítulo 2. Conceitos de Hardware e Software

Acronis Servidor de Licença. Manual do Utilizador

Prof. Rafael Gross.

Sistemas Operacionais: Sistema de Arquivos


Máquina de estados UNIX O

Máquina de estados UNIX O. Sistemas Operacionais 2008/1Profa. Patricia S.O. computação: recursos D. S.O S.O. controla eventos no sistema de

PLANEAMENTO DA INSTALAÇÃO DO WINDOWS SERVER 2003

Everson Scherrer Borges João Paulo de Brito Gonçalves

Gerenciamento de memória virtual no Kernel Linux conceitos básicos

O processador é composto por: Unidade de controlo - Interpreta as instruções armazenadas; - Dá comandos a todos os elementos do sistema.

Unidade Central de Processamento (CPU) Processador. Renan Manola Introdução ao Computador 2010/01

Arquiteturas RISC. (Reduced Instructions Set Computers)

Sistemas Operacionais Arquivos. Carlos Ferraz Jorge Cavalcanti Fonsêca

Sistemas Operacionais. Roteiro. Hardware. Marcos Laureano

Programação 2008/2009 MEEC Guia de instalação do PC de programação

Sistemas Operacionais

Computação Paralela. Desenvolvimento de Aplicações Paralelas João Luís Ferreira Sobral Departamento do Informática Universidade do Minho.

Notas da Aula 15 - Fundamentos de Sistemas Operacionais

Transcrição:

Gestão da Memória Luis Lino Ferreira / Maria João Viamonte Fevereiro de 2006 Gestão da Memória Gestão de memória? Porquê? Atribuição de instruções e dados à memória Endereços lógicos e físicos Overlays Swapping Alocação contígua Paginação Segmentação Segmentação com paginação Maria João Viamonte / Luis Lino Ferreira 2 1

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 a um processo Em função da política de gestão de memória, o processo poderá transitar entre o disco e a memória durante o seu tempo de execução À medida que o processo é executado, este pode aceder ao subsistema de gestão de memória para: aceder ao seu código aceder a dados requisitar espaço de memória Ao terminar, a memória por ele utilizada é libertada Maria João Viamonte / Luis Lino Ferreira 3 Atribuição de instruções e dados à memória (Binding) A maior parte dos SO permite que um programa possa ser colocado em qualquer posição de memória. No entanto esta atribuição pode ser feita em: Tempo de compilação se a localização do programa poder ser conhecida à priori é gerado código com endereços absolutos. Alterações à localização do programa obrigam à sua recompilação Tempo de carga obriga o compilador a gerar código relocatável, a atribuição do programa a um determinado conjunto de endereços é feita na sua carga para memória Em run-time se durante a execução do programa este poder ser recolocado noutra localização de memória. O que implica a utilização de hardware específico Maria João Viamonte / Luis Lino Ferreira 4 2

Atribuição de instruções e dados à memória (Binding) Maria João Viamonte / Luis Lino Ferreira 5 Endereços Lógicos vs Endereços Físicos Endereço lógico: Endereço gerado pela programa em execução, também chamado de Endereço Virtual Endereço Físico: Endereço real de memória Maria João Viamonte / Luis Lino Ferreira 6 3

Endereços Lógicos vs Endereços Físicos Memory Management Unit (MMU) O endereço lógico é convertido pela MMU num endereço físico A MMU adiciona ao endereço lógico o valor do registo de relocação Maria João Viamonte / Luis Lino Ferreira 7 Endereços Lógicos vs Endereços Físicos Maria João Viamonte / Luis Lino Ferreira 8 4

Carga Dinâmica Uma rotina, utilizada por um programa, apenas é carregada em memória quando é necessária Permite melhorar a utilização da memória Rotinas utilizadas com pouca frequência apenas são carregadas quando necessário Exemplo: rotinas de detecção e tratamento de erros O processo de carga dinâmica é controlado pelo utilizador, não necessita do SO Maria João Viamonte / Luis Lino Ferreira 9 Linkagem Dinâmica A linkagem dinâmica apenas é feita quando um programa é carregado em memória Particularmente útil para as livrarias do sistema: No Windows as DinamicLinkLibraries(DLL) No Linux as livrarias partilhadas xxx.a Vantagens: Programas mais pequenos as livrarias são adicionadas em run-time permite partilhar as livrarias entre vários programas As livrarias podem ser actualizadas sem implicações para os programas Caso necessário o programa pode utilizar a versão mais adequada da livraria Maria João Viamonte / Luis Lino Ferreira 10 5

Linkagem Dinâmica Como: Uma pequena parte do código (stub) é utilizada para localizar a livraria Caso a livraria ainda não se encontre em memória é carregada Ao executar o código do stub, o programa está realmente a executar o código da livraria O SO é responsável por permitir o acesso de múltiplos programas às livrarias Maria João Viamonte / Luis Lino Ferreira 11 Overlays Permite que a execução de um programa com tamanho superior ao total de memória disponível Apenas ficam em memória as instruções necessárias no momento O programador é responsável pelo controlo dos overlays, o SO não tem qualquer papel no seu controlo Fora de uso!!! Maria João Viamonte / Luis Lino Ferreira 12 6

Swapping Mecanismo que permite retirar um processo da memória principal e para memória secundária (disco) Pode ser utilizado em conjunto com o critério de escalonamento Round-Robin o processo é retirado para disco assim que terminar o seu time quantum Prioridade os processo menos prioritários são retirados para disco até poderem ser executados Pode reduzir fortemente a performance do sistema, por ex., o tempo necessário para retirar um processo com 1MB da memória e colocá-lo em disco é aproximadamente de 208ms. Maria João Viamonte / Luis Lino Ferreira 13 Swapping Maria João Viamonte / Luis Lino Ferreira 14 7

Swapping Um processo não pode ser retirado quando: Estiver à espera de operações de I/O Por ex., as operações de DMA são configuradas para serem feitas para determinado endereço de memória física, se entretanto o processo for swaped out a zona de memória anteriormente configurada já não será válida Maria João Viamonte / Luis Lino Ferreira 15 Alocação de Memória Contígua A memória é dividida em duas partes: Sistema Operativo Programas do utilizador Como alocar a memória para os processos Maria João Viamonte / Luis Lino Ferreira 16 8

Alocação de Memória Contígua Protecção de memória O programa é compilado como se utiliza-se a memória a partir do endereço 0 Quando o escalonador selecciona um processo para entrar em execução: Carrega o registo limit com o valor máximo da memória a aceder Carrega o registo de realocação com a primeira posição de memória física utilizável pelo programa Maria João Viamonte / Luis Lino Ferreira 17 Alocação de Memória Contígua Maria João Viamonte / Luis Lino Ferreira 18 9

Alocação de Memória Contígua Alocação de memória Multiple-partition allocation (fixed size) Partição da memória em pedaços de tamanho fixo, a cada processo é atribuída uma partição de memória Sempre que um processo entra em funcionamento é- lhe atribuído um pedaço Problemas: Fragmentação da memória devido a um programa não ocupar todo o espaço disponível dentro de cada partição Maria João Viamonte / Luis Lino Ferreira 19 Alocação de Memória Contígua Alocação de memória Multiple-partition allocation (variable size) O SO mantêm uma tabela com as partições livres e ocupadas Quando um processo chega é-lhe atribuído um pedaço de memória livre Maria João Viamonte / Luis Lino Ferreira 20 10

Alocação de Memória Contígua Exemplo: OS OS OS OS process 5 process 5 process 5 process 5 process 7 process 7 process 6 process 8 process 2 process 2 process 2 process 2 Maria João Viamonte / Luis Lino Ferreira 21 Alocação de Memória Contígua Outras soluções: First-fit É atribuído ao processo o primeiro pedaço livre com tamanho suficiente. A procura começa no princípio do conjunto de pedaços livres ou no ponto em que a busca anterior tinha terminado Best-fit É atribuído ao processo parte do pedaço livre mais pequeno e com tamanho suficiente para carregar o programa. Permite utilizar de forma eficiente a memória, mas pode ser lento Worst-fit É atribuído ao processo parte do pedaço livre maior. Permite a existência de pedaços livres de maiores dimensões, mais facilmente utilizáveis do que pedaços de pequenas dimensões Maria João Viamonte / Luis Lino Ferreira 22 11

Alocação de Memória Contígua Fragmentação Externa À medida que os processo são retirados e carregados em memória a memória pode ficar com espaços livres contínuos, de pequenas dimensão Quando um programa requerer a sua carga em memória, embora a memória total disponível seja maior que os requisitos do programa, tal pode não ser possível dado não existir nenhum pedaço de memória com dimensão suficiente Analise estatística de vários casos permitiu determinar que cerca de 1/3 da memória de um computador é desperdiçada devido à fragmentação Maria João Viamonte / Luis Lino Ferreira 23 Alocação de Memória Contígua Fragmentação Interna Normalmente a memória é alocada utilizando pedaços de memória de tamanho fixo. Por ex., 4096 Bytes Logo, se um programa não for um múltiplo da unidade fixa, vai existir sempre um pedaço de memória desperdiçado Maria João Viamonte / Luis Lino Ferreira 24 12

Alocação de Memória Contígua Fragmentação Solução Compactação Processo através do qual os pedaços de memória ocupados são agrupados, ficando apenas um grande pedaço livre Apenas é possível se o SO permitir realocação dinâmica em tempo de execução Permitir a um processo a alocação de espaços de memória não contíguos Maria João Viamonte / Luis Lino Ferreira 25 Paginação de Memória Método de gestão de memória que permite que o espaço de armazenamento seja não contíguo A paginação é suportada por hardware ou por uma combinação do hardware com o software Maria João Viamonte / Luis Lino Ferreira 26 13

Paginação de Memória Divide-se a memória física em blocos de tamanho fixo, chamados frames, cujo tamanho é uma potência de 2, normalmente entre 512 e 16MB Divide-se a memória lógica em blocos do mesmo tamanho, chamados páginas (pages) Há que registar todas as frames livres Para correr um programa com um tamanho de n páginas, é necessário encontrar n frames livres e carregar o programa Activar uma tabela de páginas para converter endereços lógicos em endereços físicos Nota: A fragmentação externa é eliminada, mas não a fragmentação interna Maria João Viamonte / Luis Lino Ferreira 27 Paginação de Memória O endereço gerado pela UCP é dividido em 2 partes: Page number: usado como índice na tabela de páginas que contém o endereço base de cada página em memória física Page offset: combinado com o endereço de base para definir o endereço físico que é enviado para a unidade de memória Maria João Viamonte / Luis Lino Ferreira 28 14

Paginação de Memória Maria João Viamonte / Luis Lino Ferreira 29 Paginação de Memória Maria João Viamonte / Luis Lino Ferreira 30 15

Paginação de Memória Page size: 4Bytes Memória Física: 32Bytes Maria João Viamonte / Luis Lino Ferreira 31 Paginação de Memória Implementação: A tabela de páginas é guardada na memória principal Page-table base register (PTBR) aponta para a tabela de páginas Page-table length register (PRLR) indica o tamanho da tabela de páginas Qualquer acesso a dados/instruções requer 2 acessos à memória: um para a tabela de páginas outro para os dados/instruções O problema dos dois acessos à memória pode ser resolvido através duma cache de pesquisa rápida, designada por memória associativa ou Translation Look-aside Buffers (TLBs) Maria João Viamonte / Luis Lino Ferreira 32 16

Paginação de Memória Memória associativa (TBL) Permite armazenar a tabela das páginas em memória de alta performance Contêm, tipicamente, entre 64 e 1024 entradas As entradas restantes ficam armazenadas na memória principal Quando uma determinada entrada não está presente o SO trata de consultar a tabela de páginas na memória principal, carregar a TBL com novos dados e apagar os antigos se necessário Algumas páginas (rotinas do kernel) podem ser configuradas de modo a ficarem permanentemente em memória Maria João Viamonte / Luis Lino Ferreira 33 Paginação de Memória Maria João Viamonte / Luis Lino Ferreira 34 17

Paginação de Memória Protecção A protecção de memória é feita através da associação de um bit de protecção a cada frame, na tabela das páginas O bit valid-invalid está associado a cada entrada na tabela de páginas: valid indica que a página associada está no espaço de endereçamento lógico do processo, sendo por isso uma página legal invalid indica que a página não está no espaço de endereçamento lógico do processo Maria João Viamonte / Luis Lino Ferreira 35 Paginação de Memória Maria João Viamonte / Luis Lino Ferreira 36 18

Paginação de Memória Estrutura da tabela Hierárquica Hashed Invertida Maria João Viamonte / Luis Lino Ferreira 37 Paginação de Memória Estrutura hierárquica Permite gerir máquinas com grandes capacidades de endereçamento físico Exemplo: Sistema com endereçamento de 32bits Tamanho de página 4kBytes Número de entradas da tabela de páginas ~1 Milhão com 4bytes 4MB Maria João Viamonte / Luis Lino Ferreira 38 19

Paginação de Memória Estrutura hierárquica Solução: Paginação em dois níveis page number page offset p i p 2 d 10 10 12 Maria João Viamonte / Luis Lino Ferreira 39 Paginação de Memória Maria João Viamonte / Luis Lino Ferreira 40 20

Paginação de Memória Hashed pages Para processadores superiores a 32bits O apontador para a página é calculado através de uma função hash, obtendo o primeiro elemento de uma lista ligada Cada entrada na lista é constituída por três elementos: Endereço lógico Endereço da página Apontador para a próxima entrada Vantagens: A busca é limitada aos elementos da lista ligada Maria João Viamonte / Luis Lino Ferreira 41 Paginação de Memória Maria João Viamonte / Luis Lino Ferreira 42 21

Paginação de Memória Inverted Page Table Uma entrada para cada página de memória Cada entrada contém: o endereço lógico da página; o endereço físico; o processo que é dono da página. Vantagens: Diminui a memória necessária para armazenar a tabela, mas pode aumentar o tempo necessário para procurar na tabela Maria João Viamonte / Luis Lino Ferreira 43 Paginação de Memória Maria João Viamonte / Luis Lino Ferreira 44 22

Paginação de Memória Páginas partilhadas O código referente a algumas bibliotecas ou programas, desde que seja reentrante, pode ser partilhado entre vários processos Normalmente páginas do tipo read-only Maria João Viamonte / Luis Lino Ferreira 45 Paginação de Memória Maria João Viamonte / Luis Lino Ferreira 46 23

Segmentação de Memória A Segmentação da Memória permite que um utilizador veja o espaço de memória como se estivesse dividido em várias partes (segmentos) diferentes Um endereço lógico passa a ser referenciado pelo número do segmento e pelo offset dentro do segmento: <nº do Segmento, offset> Maria João Viamonte / Luis Lino Ferreira 47 Segmentação de Memória Maria João Viamonte / Luis Lino Ferreira 48 24

Segmentação de Memória Tabela de segmentos traduz endereços lógicos bidimensionais em endereços físicos unidimensionais; cada entrada da tabela tem: base contém o endereço físico do início do segmento em memória limit especifica o comprimento do segmento Segment-Table Base Register (STBR) aponta para a localização da tabela de segmentos em memória É gravada pelo SO no PCB sempre que existe uma mudança de contexto Segment-Table Length Register (STLR) indica o número de segmentos usados pelo programa; o identificador segmento s, é legal se s < STLR Maria João Viamonte / Luis Lino Ferreira 49 Segmentação de Memória Maria João Viamonte / Luis Lino Ferreira 50 25

Segmentação de Memória Maria João Viamonte / Luis Lino Ferreira 51 Segmentação de Memória Principal vantagem Protecção no acesso aos segmentos de memória Exemplo: a tentativa de acesso para além dos limites de um determinado segmento de memória causa uma interrupção de software e não permite o acesso caso o processo não tenha direito de acesso ao segmento A segmentação permite também a partilha de segmentos de memória entre processo diferentes de acordo com as protecções de acesso definidas Maria João Viamonte / Luis Lino Ferreira 52 26

Segmentação de Memória Maria João Viamonte / Luis Lino Ferreira 53 Gestão da Memória Luis Lino Ferreira / Maria João Viamonte Fevereiro de 2006 27