Memória Virtual
Transcrição
Memória Virtual
Laboratório de Sistema de Distribuídos – LaSiD Departamento de Ciência da Computação – DCC UFBA Gerenciamento de Memória Prof. Raimundo Macêdo Tópicos ) Introdução ) Particionamento P ti i t de d memória ói ) Swapping ) Memória virtual/Paginação ) Segmentação ) Exercícios LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br 1 Tópicos ) Introdução ) Particionamento P ti i t de d memória ói ) Swapping ) Memória virtual/Paginação ) Segmentação ) Exercícios LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br Motivação para gerenciamento )Em geral a memória principal não comporta todos os processos ativos num determinado momento 9 O S.O. deve manter os processos que estejam fazendo uso efetivo da memória ou que sejam prioritários 9 Em geral apenas parte do processo (espaço lógico) é carregado 9 Requisitos de memória, memória freqüência de uso e prioridades variam dinamicamente Tempo de resposta 9Objetivos finais Throughput (número de tarefas executadas) LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br 2 O Problema )alocar espaço de memória para processos 9Monoprogramação: duas partes ÊSO + um processo p 9Multiprogramação: várias partes ÊSO + vários processos 9Alguns problemas... ÊComo organizar os espaços de memória? ÊQuando mapear (bind) endereço de programa em end. de memória? ÊEm que posição da memória? ÊComo proteger um processo da invasão de sua área ou permitir um compartilhamento controlado de sua área? LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br 3 Background 1. Program must be brought into memory and placed within a process for it to be run. 2. Input queue – collection of processes on the disk that are waiting to be brought into memory to run the pprogram. g 3. User programs go through several steps before being run. LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br Multistep Processing of a User Program LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br 4 Logical vs. Physical Address Space ) The concept of a logical address space that is bound to a separate p pphysical y address space p is central to proper memory management. 9 Logical address – generated by the CPU; also referred to as virtual address. 9 Physical address – address seen by the memory unit. ) Logical and physical addresses are the same in compile-time and load-time address-binding schemes; logical (virtual) and physical addresses differ in execution-time address-binding scheme. LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br Binding of Instructions and Data to Memory Address binding of instructions and data to memory addresses can happen at three different stages: 1. Compile time: If memory location known a priori, absolute code can be generated; must recompile code if starting location changes. 2. Load time: Must generate relocatable code if memory location is not known at compile time. 3. Execution time: Binding delayed until run time if the process can be moved during its execution from one memory segment to another. Need hardware support for address maps (e.g., base and limit registers). LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br 5 Memory-Management Unit (MMU) ) Hardware device that maps virtual to physical address. ) In MMU scheme, the value in the relocation register is added to every address generated by a user process at the time it is sent to memory. ) The user program deals with logical addresses; it never sees the real physical addresses. addresses LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br Dynamic relocation using a relocation register LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br 6 Dynamic Loading )Routine is not loaded until it is called )Better memory-space utilization; unused routine is never loaded. )Useful when large amounts of code are needed to handle infrequently occurring cases. )No special support from the operating system is required implemented through program design. LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br Tópicos Introdução P ti i Particionamento t de d memória ói Swapping Memória virtual/Paginação Segmentação Exercícios LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br 7 Partições Iguais de Tamanho Fixo (como gerenciar a mem. entre os processos?) Memória Principal )Problema 9Dificilmente os processos têm o tamanho da partição Êfragmentação interna SO LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br Partições Diferentes de Tamanho Fixo )Filas Múltiplas X Fila Única Memória Principal Novos Processos Memória Principal Novos Processos SO SO LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br 8 Partições Diferentes de Tamanho Fixo )Filas Múltiplas 9 um processo pode esperar muito para começar a execução, mesmo se existe espaço disponível )Fila Única 9 pode-se percorrer a fila para achar o processo com tamanho mais adequado para a partição disponível Ê discriminação de processos pequenos (p.e., processos interativos) 9 outras estratégias de escolha Ê um processo não pode deixar de usar a memória mais que k vezes Ê reservar partições pequenas LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br Partições de Tamanho Variável )pontos fracos das partições fixas 9pequenos processos desperdiçam memória 9pouca flexibilidade )solução 9criar partições dinamicamente: Êdar ao processo o que for necessário LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br 9 Partições de Tamanho Variável SO SO SO SO SO SO SO SO )aspectos: 9fragmentação externa: Ê necessidade de compactação (desfragmentação) da memória 9tamanho dos processos: Ê alocação de espaço extra para alocação dinâmica (heap e pilha) LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br Gerenciando a Alocação da Memória )Mapa de Bits 9 Dividir a memória em unidades de alocação 9 Cada unidade está relacionada com um bit Ê Tamanho da unidade X Tamanho do mapa de bits 9 Na alocação de memória (n unidades de alocação) Ê busca-se por n bits consecutivos indicando memória livre Ê Ponto fraco: algoritmo de busca seqüencial Memória Principal Mapa de Bits Processo 1 Espaços Processo 2 ... Processo n 111110000111111...111 LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br 10 Gerenciando a Alocação de Memória )Lista Ligada 9Ordenada por endereço: facilita a atualização da lista ÊDois espaços consecutivos se transformam em apenas um Memória Principal Lista Ligada Processo 1 P|0|5 Espaços E|5|4 Processo 2 P|9|6 ... ... Processo n P|x|y LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br Algoritmos de Alocação ) first fit: 9 busca o primeiro espaço no qual o processo cabe ) next fit: 9 semelhante a first fit, mas a busca não começa do início ) best fit: 9 busca espaço com tamanho mais próximo do tamanho do processo ) worst fit: 9 busca o espaço com a pior aproximação de tamanho ) first fit: algoritmo com melhor desempenho e melhor uso de memória LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br 11 Sistema Buddy de Alocação )Características 9 Rápida alocação 9 Listas de espaços com tamanhos potências de 2 9 Fragmentação interna 0 P1: 140 K P2: 70 K P3: 130 K P3: 35 K 256 K 256 K 256 K 256 K 256 K 128K 128K 128K 64K tempo 1 Mb 512 K 256 K 256 K OBS: o SO mantém listas de alocação por potência de 2 LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br 12 LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br RELOCAÇÃO )Quando um programa é carregado na memória o enrereço real (atual) é determinado memória, )Um processo pode ocupar diferentes posiçoes de memória durante a execução (causado por swapping) LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br 13 Endereços )Logico 9 Referente a uma localização de memória independente de associações atuais 9 É necessário tradução para end. físico )Relativo 9 Expressado como um enrereço relativo a algum ponto conhecido )Físico 9 Enrereço absoluto ou atual na memória principal LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br Relocação e Proteção )Endereçamento relativo End. Relativo (X) Início do Processo Reg. Base Somador Comparador LDA X X Reg Limite Reg. Interrupção LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br 14 Tópicos Introdução P ti i Particionamento t de d memória ói Swapping Memória virtual/Paginação Segmentação Exercícios LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br Swapping ) ação de mover processos entre a memória e o disco p a limitação do tamanho de memória ) mecanismo ppara superar ) swap space: área para armazenar processos no disco durante swapping ) algoritmos de alocação do processo no disco semelhantes aos de alocação na memória LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br 15 Tópicos Introdução P ti i Particionamento t de d memória ói Swapping Memória virtual/Paginação Segmentação Exercícios LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br Memória Virtual ) o tamanho total da área de código, dados e pilha pode exceder o tamanho da memória física ) o sistema operacional mantém as partes do programa em uso na memória e as outras partes em disco ) os endereços gerados nos programas são chamados endereços virtuais ) os endereços virtuais formam o espaço de endereçamento virtual LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br 16 Suporte de hardware necessário Para memória virtual )Suporte de HW para paginação e segmentação )O SO tem que gerenciar o deslocamento d páginas de á i e segmentos t entre t a memória ói e o disco LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br Paginação )Cada processo possui uma tabela de páginas )Cada entrada na tabela de página contêm o número de um frame para a memória principal )Um bit é necessário para indicar se a página está na memória LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br 17 Bit de modifiação )Outro bit é necessário para indicar se a pagina foi modificada desde sua última carga na memória )Caso não tenha ocorrido alterações, a página não necessita ser “swapped swapped out out” LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br Entradas da tabela de página LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br 18 LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br Two-Level Scheme for 32-bit Address LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br 19 Tabelas de Páginas )A tabela de páginas pode ocupar espaço demais da memória )Tabelas de páginas são também colocadas em memória virtual )Quando o processo está rodando, parte da tabela de página está na memória LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br Translation Lookaside Buffer )Each virtual memory reference can cause two physical memory accesses 9one to fetch the page table entry 9one to fetch the data )To overcome this problem a high-speed cache is set upp for page p g table entries 9called the TLB - Translation Lookaside Buffer LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br 20 Translation Lookaside Buffer )Contains page table entries that have been most recently used )Functions same way as a memory cache LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br Translation Lookaside Buffer )Given a virtual address, processor examines the TLB )If page table entry is present (a hit), the frame number is retrieved and the real address is formed )If If page table entry is not found in the TLB (a miss), the page number is used to index the process page table LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br 21 Translation Lookaside Buffer )First checks if page is already in main memory 9if not in main memory a page fault is issued )The TLB is updated to include the new page entry LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br 22 Page Size )Smaller page size, less amount of internal fragmentation g )Smaller page size, more pages required per process )More pages per process means larger page tables )Larger page tables means large portion of page tables bl in i virtual i l memory )Secondary memory is designed to efficiently transfer large blocks of data so a large page size is better LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br Page Size )Small page size, large number of pages will be found in main memory )As time goes on during execution, the pages in memory will all contain portions of the process near recent references. Page faults low. )Increased page size causes pages to contain locations further from any recent reference. Page faults rise. LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br 23 Page Size )Small page size, large number of pages will be found in main memory )As time goes on during execution, the pages in memory will all contain portions of the process near recent references. Page faults low. )Increased page size causes pages to contain locations further from any recent reference. Page faults rise. LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br 24 Memória Virtual (cont.) a CPU envia endereços virtuais para a UGM Placa com CPU CPU Memória Unidade de Gerenciamento de Memória (UGM) Controlador de disco a UGM envia endereços físicos para a memória Barramento LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br Paginação )Idéia Básica 9Dividir a memória (p (page g fframes)) e o pprocesso em pedaços pequenos (páginas virtuais) )Semelhante às partições de tamanho fixo 9Páginas são menores 9Um processo pode ocupar mais que uma página 9A páginas 9As á i não ã precisam i ser alocadas l d continuamente i LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br 25 Tabela de Páginas espaço de end. virtual 0-4K 4K-8K 8K-12K 12K-16K 16K-20K 20K-24K 24K-28K 28K-32K 32K-36K 36K-40K 40K-44K 44K-48K 48K-52K 52K-56K 56K-60K 60K-64K 2 1 6 0 4 3 X X X 5 X 7 X X X X 0-4K 4K-8K 8K-12K 12K-16K 16K-20K 20K-24K 24K-28K 28K-32K endereços d de memória física page frame página virtual LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br Paginação: Tabelas de Páginas 0 0 0 0 2 0 3 1 1 1 9 1 4 2 6 2 10 2 5 3 7 3 11 Memória Principal 1 2 3 4 5 Tabelas de Páginas 6 7 8 9 10 11 LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br 26 Operação Interna da UGM 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 endereço virtual: 8196 0010 000000000100 010 001 110 000 100 011 000 000 000 101 000 111 000 000 000 000 1 1 1 1 1 1 0 0 0 1 0 1 0 0 0 0 110 000000000100 endereço físico de saída: 24580 LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br Paginação: Endereçamento ) Ilustração do Procedimento de Endereçamento 9 Exemplo l Ê Tamanho da Página: 2K Ê Tamanho do Processo: 4,5 K Ê Endereço Relativo: 05DE Número de Página Deslocamento 0 0 1 1 Processo 2 7 5DE 00000 10111011110 05DE Tabela de Página LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br 27 Exemplo de Entrada da Tabela de Páginas ppresente/ausente modificada número do page frame referenciada proteção LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br Exemplos de tamanho de páginas LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br 28 Objetivos da Substituição de Páginas )Objetivo Principal 9 Minimizar o número de faltas de páginas )Conseqüentemente... 9 Minimizar a sobrecarga do sistema operacional 9 Minimizar o número de I/O 9 etc LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br Substituição de Páginas Páginas virtuais referenciadas são colocadas na memória até que todas as molduras (frames) estejam preenchidas Quando não há mais molduras vazias, escolhe-se uma das que estão ocupadas. Qual ???? Fatores que influenciam: 1) A seqüência üê i de d referências f ê i (endereços ( d das d páginas) á i ) 2) O número de molduras disponíveis 3) O algoritmo de substituição LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br 29 Algoritmos de Substituição de Páginas 1. Algoritmo ótimo 2. Página g não usada recentemente: NRU ((Not-Recently-Used y ppage) g ) 3. First-In, First Out (FIFO) 4. Segunda Chance 5. Algoritmo do Relógio 6. Substituição da página menos recentemente usada: LRU (Least Recently Used) LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br Anomalia de Balady : nem sempre é verdadeiro que quanto mais molduras,, menos faltas de p página g ocorrerão. Quando uma página referenciada não está na memória Exemplo : Seqüência : 0 1 2 3 0 1 4 0 1 2 3 4 3 e 4 molduras Algoritmo FIFO LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br 30 Algoritmo Ótimo ) o frame a ser substituído é o que será referenciado por último ) impossível i í l de d ser implementado i l t d ) útil para análises comparativas de comportamento de algoritmos LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br Página não Usada Recentemente (NRU) ) os seguintes bits são mantidos para cada página: 9 R- página referenciada (lida ou escrita) 9 M -página á i modificada difi d ) classes 9 9 9 9 Classe 0: R=0 e M=0 Classe 1: R=0 e M=1 Classe 2: R=1 e M=0 Classe 3: R=1 e M=1 Algoritmo: remover aleatoriamente uma página procurando da classe 0 à classe 3 ) fácil de programar, bom desempenho e simples LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br 31 Algoritmo FIFO ) mantém-se uma lista de páginas ordenada por tempo de carga ) algoritmo: 9 primeira página carregada, primeira página a sair ) simplicidade ) ponto fraco: o critério não é bom 9 páginas antigas podem estar sendo muito referenciadas LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br Algoritmo da Segunda Chance ) baseado no algoritmo FIFO ) usa o bit R R. Se R=1 R=1, faz R=0 e coloca a página no final da fila Lista de Páginas R=1 R=0 R=0 R=1 R=1 Lista de Páginas Lista de Páginas R=0 R=0 R=0 R=1 R=0 R=0 R=0 R=1 R=0 R=0 LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br 32 Algoritmo do Relógio ) forma alternativa de implementação do algoritmo de segunda chance ) mantém uma lista circular de páginas com um apontador para a página mais antiga ) se R=0, substitui a página e atualiza o apontador ) se R=1, atualiza o apontador Lista de Páginas Lista de Pá i Páginas R=1 R 1 R=1 R=0 R=0 R=0 R=0 R=0 Lista de Páginas R=1 R=0 R=0 R=0 R=0 R=1 R=0 R=0 LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br Algoritmo da Página Menos Recentemente Usada (LRU) ) baseia-se no princípio da localidade de referência ) remove a página á i usada d há mais i tempo t ) algumas implementações: 9 em hardware 9 em software LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br 33 Implementação de LRU em hardware (1) ) equipar o hardware com um contador C que automaticamente tem seu valor incrementado a cada instrução ç ) cada entrada na tabela de páginas tem um campo para um valor do contador ) depois de cada acesso à memória, o valor de C é armazenado na entrada da página acessada ) quando uma página tiver que sair, escolhe-se a página com menor valor do contador LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br Implementação de LRU em hardware (2) ) mantém-se uma matriz M(n x n), onde n é o número de páginas ) algoritmo 9 M←0 9 se página k for referenciada Ê M[k,*] ← 1 Ê M[*,k] ← 0 9 a linha com menor número de bits será a página referenciada há mais tempo Problema: SO dependente do Hardware LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br 34 Implementação de LRU por software ) pequena variação de LRU (aging) ) manter um contador associado a cada página e periodicamente: 9 ddeslocar l os bits bi do d contador d para a direita di i 9 somar o bit R à parte mais significativa ) escolhe a página com menor valor do contador Obs.: dentro de um intervalo pode haver várias referências P1 P2 P3 P4 P5 R: 1 0 1 1 0 R: 0 1 0 1 0 C1: 1000 C2: 0000 C3: 1000 C4: 1000 C5: 0000 C1: 0100 C2: 1000 C3: 0100 C4: 1100 C5: 0000 LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br Questões de Projeto de Sistemas de Paginação ) ) ) ) políticas de carregamento de páginas políticas líti dde alocação l ã ((global/local) l b l/l l) de d páginas á i tamanho das páginas aspectos de implementação LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br 35 Políticas de Carregamento de Páginas ) por demanda 9 uma página é carregada apenas quando uma referência a ela é feita (falta de página) 9 pode haver muitas faltas de página no início do processo, depois há uma estabilização ) pré-paginação 9 antecipa-se às faltas de páginas, trazendo para a memória um conjunto de páginas 9 pode ser usada no início do processo ou quando o processo é rere escalonado para executar (trazido do disco para memória) 9 baseia-se no working set do processo (conjunto de páginas sendo acessadas pelo processo) LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br Políticas de Alocação (global/local) de páginas ) alocação local: considera-se somente um processo ) alocação l ã global: l b l consideram-se id t d os processos na memória todos ói 9 em geral funciona melhor, principalmente quando o working set pode variar ) quantas páginas alocar por processo 9 a cada processo um número fixo de frames Ê se for menor que o conjunto de trabalho do processo? 9 a cada processo um número variável de frames Ê se o número de faltas for alto, mantém mais páginas na memória Ê custo de gerenciamento: mais um ponto para ser controlado LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br 36 Tamanho das Páginas )páginas pequenas x páginas grandes: 9 páginas pequenas: Ê tendem a uma menor fragmentação interna Ê tendem a um melhor uso da memória 9 páginas grandes: Ê tendem a melhor eficiência (menos páginas sendo movidas para/de o disco (swapped)) LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br Aspectos de Implementação ) trancas (locks) em molduras 9 algumas molduras podem ser trancadas (locked) e não podem ser retiradas da memória (suporte a operação de I/O) ) quando uma página modificada será escrita em memória secundária 9 por demanda Ê somente quando a página é selecionada para ser substituída Ê minimiza o número de escritas Ê aumenta o tempo de substituição de páginas 9 pré-atualização Ê antes de ser substituída (periodicamente, várias páginas que sofreram atualização são escritas no disco) Ê manutenção de um conjunto de frames livres LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br 37 Aspectos de Implementação (cont.) ) buffer de informação sobre a tabela de páginas em cache interno à UGM (translation lookaside buffer) 9 reduzir o número de acessos à memória LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br Tópicos Introdução P ti i Particionamento t de d memória ói Swapping Memória virtual/Paginação Segmentação Exercícios LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br 38 Segmentação ) Idéia Básica 9 Dividir o processo em segmentos não necessariamente de tamanhos iguais ) Características 9 Esquema de endereçamento Ê tabelas de segmentos para indicar o tamanho do segmento e o endereço base 9 Podem ser de tamanhos diferentes 9 Visível para o programador ou para o compilador Ê geralmente definem-se segmentos de dados, código, pilha etc 9 partes de um programa podem mudar de tamanho independentemente de outras 9 auxilia na implementação de bibliotecas compartilhadas LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br Exemplo de Segmentação: Tabelas de um Compilador segmento 0 segmento 1 segmento 2 segmento 3 segmento 4 árvore de parsing pilha de chamadas constantes texto fonte tabela de símbolos Array ... LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br 39 Segmentação Pura segm.0 4K g segm.7 5K segm.0 4K segm.7 g 5K segm.0 4K segm.7 g 5K 3K 3K 3K segm.2 5K segm.2 5K segm.2 5K segm.3 8K segm.3 8K segm.3 8K segm.2 5K segm.6 4K 4K segm.4 7K segm.4 7K segm.5 4K 3K segm.0 4K segm.1 8K segm.0 4K segm.7 g 5K segm.2 5K segm.6 4K segm.5 4K segm.5 4K 3K 10K LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br Segmentação com Paginação tabela de descritores de segmentos segm. 0 segm. 1 tabela de páginas para segmento 0 pág. 0 pág. 1 ponteiros para páginas á i pág. 2 segm. 2 segm. 3 tabela de páginas para segmento 1 segm. 4 segm 5 segm. pág. 0 pág. 1 ponteiros i para páginas pág. 2 LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br 40 Obtenção de Endereço Físico com Segmentação Endereco virtual : {#seg, deslocamento) seletor de segmento deslocamento descritor endereço base + limite outros campos endereço linear endereço físico LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br tradução de endereço em segmentação pura #seg Deslocmento d base + d Tam | Base | bit P tam Tabela de Segmento por processo LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br 41 tradução de endereço em segmentação com paginação num página #p, desl. página d #seg Deslocmento #p’ #P #p’ end físico #p’ + d #tab Página Tabela de Segmento por processo tab de páginas, uma por seg. LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br Entrada da tabela de segmentos LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br 42 P t ã Proteção E Compartilhamento LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br Exercícios Extraídos de Modern Operating Systems, A.S.Tanenbaum, Prentice Hall, Inc. 1992 1. Considere um sistema de swapping em que a memória consiste dos seguintes tamanhos de espaços (em ordem de memória): 10K, 4K, 20K, 18K, 7K, 9K, 12K e 15K. Qual espaço é usado para pedidos sucessivos de segmentos de (a) 12K (b) 10K (c) 9K usando-se first fit? Repita a questão para best fit, worst fit e next fit. LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br 43 Exercícios (cont.) 2. Um minicomputador usa o sistema buddy para gerenciamento de memória. Inicialmente ele tem um bloco de 256K no endereço ç 0. Depois de pedidos sucessivos de 5K, 25K, 35K e 20K, quantos blocos existirão no sistema e quais serão seus tamanhos e endereços? 3. Qual a diferença entre um endereço físico e um endereço virtual? 4. Usando a tabela de página da Fig. 3-11, dê o endereço físico correspondente co espo de te a cada um u dos endereços e de eços virtuais v tua s seguintes: segu tes: (a) 20 (b) 4100 (c) 8300 LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br Exercícios (cont.) 5. Um computador tem 4 page frames. O tempo de carregamento, tempo de último acesso e os bits M e R para cada página estão mostrados abaixo (tempos em clock ticks): Page frame Carregado Últ.referência R M 0 126 279 0 0 1 230 260 1 0 2 120 272 1 1 3 160 280 1 1 (a) que página seria substituída por NRU? (b) que página seria substituída por FIFO? (c) que página seria substituída por LRU? (d) que página seria substituída por Segunda Chance? LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br 44 Exercícios (cont.) 6. Se o algoritmo FIFO de substituição de páginas é usado com quatro page frames e oito páginas virtuais, quantas faltas de páginas ocorrerão para a cadeia de referências 0172327103 se os quatro page frames estão inicialmente vazios? Repita o problema para LRU. 7. Um pequeno computador tem quatro page frames. No primeiro clock tick os bits R são 0111 (página 0 à esquerda). Em clock ticks subseqüentes os valores são 1011, 1010, 1101, 0010, 1010, 1100 e 0001. Se o algoritmo de aging for usado com um contador de 8 bits, dê os valores dos quatro contadores depois do último tick. LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br 45