Desenvolvimento de um Simulador de Gerenciamento de Memória



Documentos relacionados
Sistemas Operacionais

Notas da Aula 17 - Fundamentos de Sistemas Operacionais

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

Arquitetura de Computadores. Sistemas Operacionais IV

Sistema de Arquivos. Ambientes Operacionais. Prof. Simão Sirineo Toscani

Fundamentos de Sistemas Operacionais

Gerenciamento de Clientes

Sistemas Operacionais

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

AULA 13 - Gerência de Memória

Orientação a Objetos

AULA 5 Sistemas Operacionais

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

Sistemas Operacionais. Prof. André Y. Kusumoto

Prof. Rafael Gross.

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br

Documento de Análise e Projeto VideoSystem

ULA Sinais de Controle enviados pela UC

Organização e Arquitetura de Computadores I. de Computadores

Gerenciamento de Memória

Sistema de Arquivos FAT

APLICATIVO WEB PARA O SETOR DE EXTENSÃO IFC VIDEIRA

Programação de Sistemas

Algoritmos e Estruturas de Dados II. Trabalho Prático 2

Prof.: Roberto Franciscatto. Capítulo 1.1 Introdução

Memórias Prof. Galvez Gonçalves

EMISSÃO DE CERTIFICADOS ELETRÔNICOS NOS EVENTOS DO INSTITUTO FEDERAL CATARINENSE CÂMPUS VIDEIRA

Processos. Adão de Melo Neto

Virtualização de Sistemas Operacionais

Sistemas Numéricos bit / Byte BIT BYTE. Prof. Celso Candido ADS / REDES / ENGENHARIA

Métodos Os métodos de uma classe podem ser classificados como construtores, destrutores, funções ou procedimentos.

Sistemas Operacionais

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc.

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

Organização e Arquitetura de Computadores

Gerenciamento de memória. Carlos Eduardo de Carvalho Dantas

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

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

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

Arquitetura de Computadores. Tipos de Instruções

Organização de Computadores 1

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

LÓGICA DE PROGRAMAÇÃO

Introdução aos Computadores

UNIVERSIDADE FEDERAL DE SANTA CATARINA DEPARTAMENTO DE INFORMÁTICA E ESTÁTISTICA GRADUAÇÃO EM CIÊNCIAS DA COMPUTAÇÃO DISCIPLINA: COMUNICAÇÃO DE DADOS

EMISSÃO DE CERTIFICADOS ELETRÔNICOS NOS EVENTOS DO INSTITUTO FEDERAL CATARINENSE CÂMPUS VIDEIRA

Arquitetura de Sistemas Operacionais

Sistemas Operacionais

1) MANUAL DO INTEGRADOR Este documento, destinado aos instaladores do sistema, com informações de configuração.

INDICE 1. INTRODUÇÃO CONFIGURAÇÃO MÍNIMA INSTALAÇÃO INTERLIGAÇÃO DO SISTEMA ALGUNS RECURSOS SERVIDOR BAM...

UFG - Instituto de Informática

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho

Roteiro 2 Conceitos Gerais

AULA Uma linguagem de programação orientada a objetos

Sistemas Operacionais

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS

Fundamentos de Sistemas Operacionais

Itinerários de Ônibus Relatório Final

Sistemas Operacionais

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

SISTEMAS OPERACIONAIS 2007

Tecnologia da Informação. Prof Odilon Zappe Jr

Introdução à Programação

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


Apostila de Fundamentos de Programação I. Prof.: André Luiz Montevecchi

Faculdade Integrada do Ceará FIC Graduação em Redes de Computadores

Manual do Sistema. SMARSA WEB Atendimento de Processos

Introdução a Java. Hélder Nunes

Notas da Aula 15 - Fundamentos de Sistemas Operacionais

CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM

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

O que veremos nesta aula? Principais Aspectos de Sistemas Operacionais. Visão geral de um sistema computacional

NetBeans. Conhecendo um pouco da IDE

1. Domínio dos Atributos

Estruturas do Sistema de Computação

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

Sistemas Operacionais

SISTEMAS OPERACIONAIS

Sistema Operacional. Prof. Leonardo Barreto Campos 1

Sistemas Operacionais

1

3. Arquitetura Básica do Computador

Especificação do 3º Trabalho

Sistema de Arquivos. Sistemas de Arquivos

Organização Básica do Computador

Conceitos e Gerenciamento de Memória

VIRTUALIZAÇÃO CONVENCIONAL

Levantamento de Requisitos

Profº. Enrique Pimentel Leite de Oliveira

CAPÍTULO 2 CARACTERÍSTICAS DE E/S E PORTA PARALELA

3. O NIVEL DA LINGUAGEM DE MONTAGEM

Prof. Yandre Maldonado - 1 PONTEIROS. Prof. Yandre Maldonado e Gomes da Costa

DIFERENÇAS ENTRE FUNÇÃO E BLOCO FUNCIONAL; CRIAÇÃO DE FUNÇÃO / BLOCO FUNCIONAL; UTILIZAÇÃO NO LADDER; EXEMPLO DE BLOCO FUNCIONAL;

Fundamentos de Sistemas Operacionais. Sistema de Arquivos. Prof. Edwar Saliba Júnior Março de Unidade Sistemas de Arquivos

Sistema de Memórias de Computadores

Transcrição:

Desenvolvimento de um Simulador de Gerenciamento de Memória Ricardo Mendes do Nascimento. Ciência da Computação Universidade Regional Integrada do Alto Uruguai e das Missões (URI) Santo Ângelo RS Brasil ricna.net@hotmail.com Resumo. Este artigo discute o projeto e implementação de simulador um gerente de memória na forma de trabalho para a disciplina de Sistemas Operacionais I. 1. Introdução Dentre as tarefas atribuídas aos sistemas operacionais (SO), o gerenciamento de memória pode ser visto como uma das mais importantes, uma vez que esta tarefa tem relação direta com o desempenho do sistema e a execução das demais tarefas do SO. Neste trabalho é realizado o desenvolvimento de um simulador de gerenciamento de memória, ele está organizado da maneira como segue; a seção 2 explica conceitos sobre a memória virtual, a seção 3 trata das exigências do trabalho, na seção 4 é descrita a implementação do simulador, conclusões são expostas na seção 5 e as referências são encontradas na seção 6. 2. Memória virtual A implementação de memória virtual oferece benefícios e facilidades para os usuários do sistema operacional, dentre elas destacam-se a disponibilidade aumentada de memória e facilitação no uso de memória por processos em tempo de execução e compilação. Pode-se dizer que a memória virtual é uma abstração dos dispositivos de memória concedida pelo SO para os processos através da aplicação de um conceito chamado paginação, a paginação (divisão do espaço de memória em páginas). Para atingir seus objetivos, a memória virtual faz uso de uma tabela de páginas de processos, estas tabelas são usadas para fornecer uma visão de que o processo tem toda a área de memória disponível somente para ele, estas tabelas são associadas a endereços ta tabela de memória virtual, que por sua vez mapeiam endereços na memória física da maquina. Esta associação entre os endereços mapeados pela tabela de páginas de processos e endereços da memória física se dá por meio de relocação (soma de endereços base + deslocamento).

Para aumentar o espaço de armazenamento da memória, foi desenvolvido um mecanismo conhecido como SWAP, ele consiste no uso de mais uma tabela de páginas, entretanto o endereço mapeado na área de SWAP faz referência a uma unidade de armazenamento de grande capacidade, onde são guardados os dados do processo (área de SWAP). Através do mapeamento de páginas, a memória virtual pode referenciar tanto dados armazenados na memória física (volátil) quanto nas unidades de armazenamento, isto possibilita que os dados dos processos que não estão sendo utilizados em um determinado momento sejam guardados em unidades de armazenamento, disponibilizando mais memória disponível para outros processos, otimizando o uso da memória pelo SO. 3. O trabalho O trabalho solicitado consistia em um simulador de gerenciamento de memória, este sistema deveria permitir a adição (inclusão), remoção (exclusão) e execução de processos em uma memória composta por tabela de páginas de processos, tabela de páginas de memória virtual e uma área de SWAP. O tamanho da memória virtual era de 16 páginas de 4 bytes cada totalizando 64 bytes, a memória física deveria ser de 32 bytes (8 páginas de 4 bytes). 4. Implementação O software foi implementado utilizando orientação a objeto e foi estruturado com as seguintes classes apresentadas no diagrama abaixo. Figura 1. Diagrama de classes.

4.1 Classe Página A classe Pagina simplesmente é o modelo para a criação de páginas dentro da memória física e swap. Possui um vetor de caracteres que simboliza cada byte da página. Figura 2. Classe Página 4.2. Classe Swap A área de swap é representada por um objeto da classe Swap. Esta possui um vetor de páginas do tamanho especificado na constante NR_PAGINAS. Figura 3. Classe Swap. 4.3. Classe Fisica Assim como a Swap, a classe Física possui simplesmente um vetor de páginas, que neste caso é a metade do tamanho do objeto swap. O método temespaco é consultado pelo gerenciador, quando for incluído um processo novo. Figura 4. Classe Fisica.

4.4. Classe Virtual Esta classe simboliza a tabela de páginas utilizada pelo gerente de memória. Possui um vetor endfisico que armazena o endereço da página para qual está apontando. Cada índice do vetor simboliza o endereço desta página virtual. Da mesma forma os vetores booleanos valido e ocupado, indicam o estado do endereço virtual. Figura 5. Classe Virtual. 4.5. Classe Processo Os processos são simbolizados por objetos desta classe. Cada objeto possui um tamanho em bytes, um identificador ( id ), um nome e um vetor (endvirtual)com o endereço das páginas que este esta utilizando na tabela de paginas. Também possui atributo info do tipo char, que simboliza a informação que este manipula e grava na memória. Figura 6. Classe Processo.

4.6. Classe Gerenciador Esta é a principal classe do software, nela estão contidos os objetos swap (simbolizando a área de swap), virtual (tabela de páginas), física (memória RAM) e um vetor dinâmico de objetos da classe Processo. O método incluirprocesso recebe como parâmetro um objeto do tipo Processo. Se o tamanho deste não for maior que o tamanho da memória física, se ainda existir espaço suficiente na tabela de páginas, não existir nenhum outro processo com o mesmo identificador, então este será cadastrado na tabela de páginas através dão método cadastrarprocesso. Neste método são alocadas as páginas necessárias na área de swap para este processo, e estas são mapeadas na tabela de páginas. As tabelas serão colocadas no estado ocupado no objeto virtual do gerenciador. O endereço destas páginas serão colocados no vetor endvirtual do objeto processo. Com isso o processo foi incluído com sucesso. Figura 7. Classe Gerenciador.

Para colocar o processo em execução, é utilizado o método rodarprocesso. Este método recebe o identificador do processo que se quer executar. O gerenciador irá verificar se este processo já possui algumas páginas validas, indicando que estas já estão na memória física. As páginas do processo, mapeadas na swap, que não estiverem na física, serão colocadas no primeiro endereço disponível (que não possui nenhum mapeamento válido). Se não existirem páginas disponíveis o suficiente, então o gerenciador irá retirar o mapeamento válido de algum outro processo para que este novo possa ser executado. Ao final do procedimento, todos os endereços virtuais estarão mapeando um endereço físico e as informações do processo serão copiadas da swap para o memória física. A exclusão do processo é simples também. O gerenciador recebe o identificador do processo a ser excluído, libera todas as páginas que estavam sendo referenciadas por este tanto na swap como na memória física, e libera espaço na tabela de páginas (virtual). Feito isso o processo é então excluído do vetor de processo do gerenciador. 4.7. Classe Interface Classe utilizada para interação com o usuário. Nesta é executada o método main que inicia o software, instanciando um objeto gerenciador e desencadeando a instância de todos os objetos necessários. O objeto interface somente mostra para o usuário os atributos de todos os objetos, a cada evento de inclusão, execução ou exclusão de processo. Figura 8. Classe Interface. 5. Conclusões O uso de paginação permite a redução de fragmentação interna e externa da memória, isto quer dizer que o desperdício de memória é reduzido a um nível aceitável. A combinação de uso de paginação e SWAP em ambientes multiprogramados possibilita o uso máximo dos recursos de memória disponíveis para a manipulação pelo SO, aumentando significativamente as possibilidades de uso de diversos processos ao mesmo tempo.

6. Referências Tanembaum, Andrew S. Sistemas operacionais modernos / Andrew S. Tanembaum; tradução Ronaldo A.L. Gonçalves, Lu s A. Consularo; revisão técnica Regina Borges de Araújo. 2 ed. São Paulo : Prentice Hall, 2003. Notas de aulas de Sistemas Operacionais I Prof. Dr. Bráulio Adriano Mello.