Gerência de Memória. Gerência de memória. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos. Memória: UCP. Unidade de controle

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

Sistemas Opera r cionais Gerência de Memória

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

Fundamentos de Sistemas Operacionais

Gerenciamento de Memória

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

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

Infra-Estrutura de Software IF677

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

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

Arquitetura de Sistemas Operacionais

Capítulo 4 Gerenciamento de Memória

Administração de Memória

Sistemas Operacionais. Prof. MSc. André Yoshimi Kusumoto

SSC0640 Sistemas Operacionais I

Sistemas Operacionais

Fundamentos de Sistemas Operacionais. Gerência de Memória. Prof. Edwar Saliba Júnior Março de Unidade Gerência de Memória

Sistemas Operacionais. Prof. André Y. Kusumoto

ARQUITETURA DE COMPUTADORES

Gerenciamento de Memória

Gerenciamento de memória

Gerenciamento de Memória

Sistemas Operacionais I Memória Virtual

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

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

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I

GERENCIAMENTO DE MEMÓRIA

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

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

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

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

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

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

Fundamentos de Sistemas Operacionais

SSC0640 Sistemas Operacionais I

Gerenciamento de Memória

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

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

Sistemas Operacionais Aula 12: Gerência de Memória. Ezequiel R. Zorzal

SISTEMAS OPERACIONAIS

Organização e Arquitetura de Computadores

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

AULA 14 - Memória Virtual

Sistemas Operacionais. Rômulo Silva de Oliveira Alexandre da Silva Carissimi Simão Sirineo Toscani

Infra-Estrutura de Software

Gerenciamento de Memória

Infra-Estrutura de Software

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

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

Sistemas Operacionais

Sistemas Operacionais: Memória Virtual

Capítulo 6 Nível do Sistema Operacional

Gerência de memória III

Sistemas Operacionais

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

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

Infra-Estrutura de Software

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

Sistemas de Informação. Sistemas Operacionais

Gerência de memória II

Arquitetura e Organização de Computadores

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

Segmentação de Memória

Sistemas Operacionais

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

Sistemas Operacionais. Gerenciamento de Memória

Sistemas Operacionais

Sistemas Operacionais

Capítulo 7 Gerência de Memória

SISTEMAS OPERACIONAIS


Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Instituto de Ciência e Tecnologia - ICT

Sistemas de Informação. Sistemas Operacionais

Sistemas Operacionais Memória Virtual

Memória Virtual. Ciclo 4 AT2. Prof. Hermes Senger

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

SSC0640 Sistemas Operacionais I

Memória virtual. Sistemas de Computação

Gerenciamento de Memória

Gerenciamento de Memória

Gerenciamento de Memória

Prof. Adriano Maranhão

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

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

Algoritmos de Gestão de Memória

Memória Virtual. MAC Arquitetura de Computadores Prof. Siang Wun Song. Baseado em W. Stallings Computer Organization and Architecture

Aula 03 - Concorrência. por Sediane Carmem Lunardi Hernandes

Introdução. Considerações:

Hardware e Software. Prof. Paulo Cesar F. de Oliveira, BSc, PhD

Sistemas Operacionais

GERÊNCIA DE MEMÓRIA. INF009 Laboratório de Sistemas Operacionais

SISTEMAS OPERACIONAIS. 2ª. Lista de Exercícios Parte 2

Tecnólogo em Análise e Desenvolvimento de Sistemas. Sistemas Operacionais (SOP A2)

SISTEMAS OPERACIONAIS. Gerência de Memória Apostila 7

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

Redes de Computadores. Fundamentos de Sistemas Operacionais - 2º Período

Sistemas Operacionais

Transcrição:

Gerência de Gerência de Memória Memória:» central em sistemas de computador» CPU e sistema de I/O interagem com a» é um conjunto (array) de bytes ou palavras, cada um com seu próprio endereço» CPU faz busca e armazenamento na» um programa deve ser carregado na para ser executado CPU sistema I/O UCP unidade de controle Unidade aritmética e lógica UCP é composta de circuitos eletrônicos coordena e controla todas as operações do sistema é formada por processador e» processador: unidade de controle (UC) unidade lógica-aritmética (ULA)» unidade de armazenamento de instruções e dados 0 1 2 4 5... N Memória Registradores especiais Representação esquemática da UCP Unidade de controle controla todas as operações do computador é formada por:» registrador de controle» registrador de instrução» decodificador» relógio» seqüenciador Registrador de controle (contador de programa - PC) contém o endereço de da próxima instrução a executar Registrador de instrução (RI) contém a instrução que está sendo executada a cada momento cada instrução contém:» código da operação» operandos ou endereços de dos mesmos 1

Decodificador extrai e analisa o código de operação da instrução que está em execução (que está no RI) emite os sinais necessários para a sua execução Relógio proporciona uma sucessão de impulsos elétricos a intervalos constantes que sinalizam os instantes de inicio de execução dos passos que constituem cada instrução Seqüenciador gera ordens sincronizadas pelos impulsos do relógio que fazem com que a instrução carregada no RI seja executada passo a passo Memória Principal é a parte da UCP que armazena instruções e dados necessários para que um programa seja executado é constituída por células ou posições de numeradas de forma consecutiva é volátil permite acesso direto Memória Principal (cont.) palavra de : conjunto de células de que podem ser lidas ou escritas de uma só vez em geral é endereçada por byte possui dois registradores para as operações de leitura e gravação: Registrador de endereço de e Registrador intermediário (buffer) Registrador de endereço de Registrador intermediário (buffer) Memória Principal (cont.) Registrador de endereço de» contém o endereço de onde se encontra ou onde vai ser gravada a informação (instrução ou dado) Registrador Intermediário (buffer)» leitura: recebe a informação da» escrita: contém a informação a ser gravada Seletor: seleciona a célula de cujo endereço se encontra no registrador de endereços para a transferência (leitura/escrita) Seletor 1 2...... 2... N Memória principal Visão esquemática da principal de um computador 2

Execução de um programa o programa deve estar na as instruções são executadas uma a uma Fases do processamento de uma instrução Busca» a instrução é levada da para a unidade de controle Execução» realização das ações internas contidas na instrução Ex. Instrução de três operandos possui o código da operação e três operandos: os dois primeiros contém os operandos, e o terceiro o lugar onde será armazenado o resultado da operação. EX. ADD a, b, c operador operando1 operando2 operando Gerência de Memória física e Memória virtual: Física:» é a do hardware» começa geralmente no endereço físico 0 e continua até um endereço qualquer» certas posições são reservadas pelo hardware para objetivos especiais (ex. vetor de interrupções) Gerência de Memória física e Memória virtual (cont.) Virtual:» é a que o processo enxerga» é o espaço virtual de um processo» o maior endereço virtual é limitado pela arquitetura da máquina (No. de bits usados para endereçar). EX. PDP-10 (18 bits)==>256 k PDP-11 (16 bits)==> 64 k» o espaço virtual pode ser maior que o espaço físico, especialmente se é usada paginação/segmentação» um processo pode acessar qualquer parte de seu espaço virtual Gerência de Gerência de física e virtual (cont.) Virtual:» um processo pode acessar qualquer parte de seu espaço virtual 0 código dados Tradução de endereço: processo trata com endereços virtuais em todo acesso deve haver uma tradução de endereços n pilha

Gerência de Tradução de endereço (cont.) 0 1 k proc a física kernel 0 19 k 0 10 k proc b tradução de endereço tradução de endereço Gerência de Monoprogramação existe um único processo na em execução e ao mesmo é permitido usar toda a existem vários processos na aptos a executar e um em execução Gerência de Gerência de Monoprogramação: esquema mais simples possível um processo por vez na o processo pode usar toda a a é dividida entre o sistema operacional e o processo do usuário Monoprogramação (cont.) user program operating system in RAM operating system in RAM user program device drivers in ROM user program operating system in RAM Formas de organizar a com o sistema operacional e um programa de usuário Proteção de hardware: A. registradores limite 0 monitor usuário 1 usuário 2 usuário usuário 4 128 k limite inferior limite superior limite inferior limite superior end sim sim CPU > < mem. não não trap para o sistema operacional Proteção de hardware: (cont.) b: registradores base e limite CPU end base limite sim + <= mem. não trap para o sistema operacional 4

Proteção de hardware: com registradores limite muitos processos podem residir na simultaneamente divisão da entre os processos (partições fixas, partições variáveis) Partições Fixas tamanho fixo das partições, ex.: de 2K, dividida em: 10K - monitor residente 04K - processos pequenos 06K - processos médios 12K - processos grandes quando o processo entra no sistema, é colocado em uma fila de processos Partições Fixas (cont.) o scheduler verifica a necessidade de, identifica partições disponíveis e carrega o processo em uma das partições o grau de multiprogramação é determinado pelo número de partições Multiprogração Partições Fixas: (cont.) alocação de para os processos» a) classificá-los de acordo com suas necessidades de (especificada pelo usuário ou pelo sistema)» b) cada partição tem sua própria fila... 2K 1K 2K f 2... K 4K... 7K 11K 8K f 6 f 12 Partições Fixas (cont.) alocação de para os processos» c) uma única fila 5K 2K K 7K 7K... 2K monitor Fragmentação interna: tamanho da partição maior que o tamanho do processo externa: partição não usada é menor que o tamanho do processo esperando 6K 12K 5

Partições variáveis o sistema operacional mantém uma tabela indicando que partes da estão disponíveis e quais estão ocupadas inicialmente toda a esta disponível, considerada como um bloco único quando um processo chega e necessita é pesquisado um bloco com tamanho suficiente para contê-lo Partições variáveis (cont.) quando um processo termina libera sua, que é reincorporada ao conjunto disponível características:» existem blocos livres de diferentes tamanhos» se um bloco é muito grande para um processo, é dividido em dois, um alocado para o processo e o outro retorna para os blocos livres Partições variáveis (cont.) características:» quando um processo termina libera a, sendo esta colocada no conjunto de blocos livres» se o bloco liberado é adjacente à outro livre, podem ser agrupados formando um único Exercício: escreva um algoritmo para situações de desalocação de (há/não há blocos contíguos livres) Partições variáveis (cont.) Que bloco alocar?» first-fit: o primeiro com tamanho suficiente» best-fit: o menor com tamanho suficiente (fragmentação)» worst-fit: o maior (gera fragmentos grandes) O software determina a diferença entre Partições Fixas e Partições Variáveis dois registradores contém os limites (superior e inferior)» quando um processo é selecionado, o dispatcher carrega os valores nos registradores a utilização de é geralmente melhor em sistemas de partições variáveis que nos de partições fixas Compactação: unir os blocos de s disponíveis em um único bloco somente possível se o sistema suporta relocação dinâmica, em tempo de execução (registradores base e limite) 6

Sistemas que movimentam processos entre a principal e o disco Swapping O esquema de gerência de de sistemas monousuário foi usado por dois dos primeiros sistemas timesharing: CTSS e Q-2 dividida em duas partes:» 1. monitor residente» 2. processo do usuário sendo executado correntemente Swapping Swapping (cont.) quando o processo executando perde o processador:» conteúdo da do usuário é gravado no disco» novo processo é lido para a Swapping Swapping Swapping limite Swapping: (cont.) monitor área do usuário swap out swap in swapping Disco usuário 1 usuário 2 auxiliar: swapping requer auxiliar normalmente um disco deve ser grande o bastante para acomodar cópia de todas as imagens de dos processos dos usuários lista ready contém processos que estão em disco e que estão aptos para rodar Swapping Swapping auxiliar: (cont.) uma variável indica o processo que está em execução quando o scheduler decide executar um processo chama o dispatcher Dispatcher: (cont.) verifica se o processo selecionado está na se não estiver, faz swap out de um processo na faz swap in do processo selecionado restaura os registradores transfere o controle para o processo selecionado 7

Swapping Swapping Tempo de swap maior parte do tempo de swap é o tempo de transferência proporcional ao tamanho de a ser transferida Tempo de swap: (cont.) o S.O deve ser informado com exatidão do tamanho da do usuário o tempo de transferência diminui com o aumento da velocidade de transferência dos dispositivo endereço lógico endereço físico Endereço gerado pela CPU contém duas partes: No. da página: (p)» endereça uma tabela de páginas deslocamento: (d)» combinado com o endereço base da página define o endereço físico de CPU p d f f d física Tradução de endereço tradução de endereço: física: dividida em frames lógica: páginas (pages) um programa para ser executado tem suas páginas carregadas em quaisquer frames disponíveis o tamanho da página é definido pelo hardware Ideal: tam. página = tam frame = tam bloco scheduler: quando o processo chega, o scheduler verifica a quantidade de páginas de que ele precisa verifica na lista de frames disponíveis se existe um número suficiente existindo, aloca para o processo a quantidade necessária 8

0 lógica 0 a 1 b 2 c d 4 e 5 f 6 g 7 h 8 i 9 j 10 l 11 m 12 n 1 o 14 p 15 q o 5 1 6 2 1 2 tabela de páginas física 4 ijlm 8 nopq 12 16 20 abcd 24 efgh 28 implementação da tabela de páginas: conjunto de registradores:» recarregados como qualquer outro» carregados/modificados por instruções especiais» somente se a tabela de páginas é pequena na principal (um registrador-page table base register-(ptbr) aponta para a tabela de páginas)» o tempo de acesso a uma posição de é o problema implementação da tabela de página: (cont.) acessar end. i» acessar tabela de páginas (uso do ptbr+ No.page desloc.) (1o. acesso à )» produz um No. de frame, combinado com deslocamento produz end i» acessar a posição i na física (2o. acesso)» dois acessos para acessar uma palavra implementação da tabela de página: (cont.) hardware especial: ( associativa, endereçável pelo conteúdo)» mais rápida que a» contém poucas entradas da tabela de páginas» um endereço lógico gerado pela CPU é comparado com todas as entradas da tabela de páginas simultaneamente, a qual contém número de página/número de frame (na associativa) implementação da tabela de páginas: (cont.) hardware especial: ( associativa, endereçável pelo conteúdo)» se o número da página é encontrado, o No. da frame é usado imediatamente para acessar a» se o número da página não é encontrado, é feito um acesso a tabela de páginas, na principal, para obter o No. da frame que é usado para acessar a» o No. da página e o No. da frame são colocados na associativa, de modo a ser encontrado rapidamente na próxima referência compartilhamento de páginas: particularmente importante em sistemas multiprogramados permite compartilhamento de código proteção:» um bit de proteção em cada página» o bit define se a página é read-only ou readwrite 9

por demanda ED1 ED2 ED D1 P1 ED1 ED2 ED D P 4 6 1 4 6 8 ED1 ED2 ED D2 P2 4 6 7 compartilhamento de código 0 1 2 4 5 6 7 8 9 10 D1 D ED1 ED2 ED D2 páginas são carregadas à medida que se tornam necessárias Pressupostos: nem todas as páginas de um pgm são executadas sempre. Ex: tratamento de erros do usuário, help on line opções selecionadas via menu: muitas são raramente executadas por demanda Características: menos limitações ao tamanho dos programas chave para a paginação por demanda: dispositivos de secundária com altas taxas de transferência mapa de páginas para os programas: três novos campos por demanda mapa de páginas: novos campos Status: indica se a página está ou não está na (S/N) MOD: indica se a página foi modificada (se sim, ao ser retirada da principal ela deve ser regravada no disco) REF: indica se houve atividade recente (usado na escolha de páginas a retirar quando há falta de espaço) Pgm1 pg0 pg1 pg2 pg Pgm2 pg0 pg1 Pgm pg0 pg1 pg2 Pgm4 pg0 pg1 pg2 pg pg4 pg5 por demanda Mapa de Páginas Pgm1 pg0 S 5 pg1 S 9 pg2 S 7 pg S 12 Mapa de Páginas Pgm2 PG Status Mod Ref # FR pg1 S 10 pg0 S 14 Mapa de Páginas Pgm pg0 S 4 pg1 S 8 pg2 S 11 Mapa de Páginas Pgm4 pg0 S 6 pg1 S 1 pg2 S 15 pg N pg4 N pg5 N 0 1 2 4 5 6 7 8 9 10 11 12 1 14 15 Sistema Operacional Pgm - P0 Pgm1 - P0 Pgm4 - P0 Pgm1 - P2 Pgm P1 Pgm1 - P1 Pgm2 - P0 Pgm - P2 Pgm1 - P Pgm4 - P1 Pgm2 - P1 Pgm4 - P2 por demanda Na figura anterior, se Pgm4 pede carga da página S.O. escolhe uma página ara ser retirada da verifica se a página escolhida foi modificada (MOD=1); se sim, regrava carrega página atualiza mapa de páginas dos dois progtramas envolvidos e o mapa da 10

por demanda por demanda paginação maximiza uso da se há troca excessiva de pgms entre principal e secundária sistema entra em thrashing se núm páginas programas/#frames >>1, então a probabilidade do sistema entrar em thrashing éalta substituição de paginas: segue basicamente um dos critérios FIFO ou LRU FIFO: supõe que as páginas mais antigas na já foram utilizadas e não serão mais necessárias LRU (least recently used): retira da as páginas que não mostram uso recente. Este algoritmo consulta o campo REF da tabela de páginas dos programas por demanda conjunto de trabalho: conjunto de páginas residentes na, para cada programa No Windows: veja campos memory usage: conjunto de trabalho, em Kb page faults: quantidade de faltas de página virtual memory size: espaço de endereçamento (ou tamanho da virtual) permitido a um processo PAGINAÇÃO: TAMANHO DE PÁGINA Tamanho de página pequeno Vantagens menos fragmentação interna menos programa não usado na Desvantagens programas precisam de mais páginas, tabelas de página maiores Segmentação Segmentação (cont.) um programa é um conjunto de: subrotinas funções estruturas de dados (tabelas, etc.) referidos pelo nome cada um é um segmento de tamanho variável segmentação é um esquema de gerência de que suporta esta visão cada segmento tem um nome e um tamanho (end. é especificado pelo nome do segmento e pelo deslocamento) compilador cria segmentos para:» variáveis globais» código de cada procedure» código de cada function» variáveis locais de procedures» variáveis locais de functions 11

Segmentação Segmentação segment table CPU (s d) s d limite < base yes + memory Hardware tabela de segmentos na» uso de dois registradores: STBR: segment table base register STLR: segment table length register» endereço: (s,d) trap; addressing error segmentation hardware deslocamento segmento Segmentação Segmentação Hardware: (cont.) tabela de segmentos na (cont.)» para um endereço lógico (s,d) a. s < STLR? não => erro b. s + STBR c. endereço = (end. base do segmento) + d» requer dois acessos à (como na paginação) Hardware: (cont.) uso de associativa para manter as entradas da tabela de segmentos mais recentemente usadas» proteção: bits de proteção para cada entrada na tabela de segmentos existência de segmentos na tabela read only (código), tentativa de escrita verificada pelo hardware limites de um array (se for um segmento) verificados pelo hardware Comparação entre paginação e segmentação Memória Virtual originada na idéia de segmentação programas divididos em segmentos (pelo programador) próximo ao término do primeiro segmento, o programa instruía o sisop para carregar (sobrepondo) o segundo segmento nas posições de ocupadas pelo primeiro, e assim por diante 12

Memória Virtual com Fragmentação interna nos frames de Não há fragmentação externa Memória Virtual com Segmentação Não há fragmentação interna Existe fragmentação externa Segmentação com : MULTICS (1) Programas divididos em páginas de mesmo tamanho Endereços absolutos calculados através de número da página e deslocamento Requer mapa de páginas Programas divididos em segmentos de tamanho variável Endereços absolutos calculados através de número de segmento e deslocamento Requer mapa de segmentos a) Descritores de segmentos apontam para tabelas de páginas b) Descritor de segmento números indicam tamanhos dos campos Segmentação com : MULTICS (2) Segmentação com : MULTICS () Um endereço virtual de 4 bits no MULTICS Conversão de um endereço MULTICS de duas partes em um endereço da principal Segmentação com : MULTICS (4) Segmentação com : Pentium (1) Versão simplificada da TLB do MULTICS Existência de dois tamanhos de páginas torna a TLB real mais complicada Um seletor do Pentium 1

Segmentação com : Pentium (2) Segmentação com : Pentium () Descritor de segmento de código do Pentium Segmentos de dados diferem ligeiramente Conversão de um par (seletor, deslocamento) para um endereço linear Segmentação com : Pentium (4) Segmentação com : Pentium (5) Mapeamento de um endereço linear sobre um endereço físico Proteção no Pentium Referências Sistemas Operacionais prof Celso Costa Sistemas Operacionais Ida Flynn e Ann McHoes Sistemas Operacionais Modernos Tanembaum (slides Multics e Pentium) 14