HUGO HENRIQUE CASSETTARI ANÁLISE DA LOCALIDADE DE PROGRAMAS E DESENVOLVIMENTO DE ALGORITMOS ADAPTATIVOS PARA SUBSTITUIÇÃO DE PÁGINAS

Tamanho: px
Começar a partir da página:

Download "HUGO HENRIQUE CASSETTARI ANÁLISE DA LOCALIDADE DE PROGRAMAS E DESENVOLVIMENTO DE ALGORITMOS ADAPTATIVOS PARA SUBSTITUIÇÃO DE PÁGINAS"

Transcrição

1 HUGO HENRIQUE CASSETTARI ANÁLISE DA LOCALIDADE DE PROGRAMAS E DESENVOLVIMENTO DE ALGORITMOS ADAPTATIVOS PARA SUBSTITUIÇÃO DE PÁGINAS Dissertação apresentada à Escola Politécnica da Universidade de São Paulo para obtenção do Título de Mestre em Engenharia Elétrica. São Paulo 2004

2 HUGO HENRIQUE CASSETTARI ANÁLISE DA LOCALIDADE DE PROGRAMAS E DESENVOLVIMENTO DE ALGORITMOS ADAPTATIVOS PARA SUBSTITUIÇÃO DE PÁGINAS Dissertação apresentada à Escola Politécnica da Universidade de São Paulo para obtenção do Título de Mestre em Engenharia Elétrica. Área de Concentração: Sistemas Digitais Orientador: Prof. Dr. Edson Toshimi Midorikawa São Paulo 2004

3 Este exemplar foi revisado e alterado em relação à versão original, sob responsabilidade única do autor e com a anuência de seu orientador. São Paulo, 20 de fevereiro de 2004 Hugo Henrique Cassettari Prof. Dr. Edson Toshimi Midorikawa FICHA CATALOGRÁFICA Cassettari, Hugo Henrique Análise da localidade de programas e desenvolvimento de algoritmos adaptativos para substituição de páginas / Hugo Henrique Cassettari São Paulo, Edição Revisada. 118p. Dissertação (Mestrado) Escola Politécnica da Universidade de São Paulo. Departamento de Engenharia de Computação e Sistemas Digitais. 1. Gerência de memória 2. Sistemas operacionais 3. Engenharia de computação I. Universidade de São Paulo. Escola Politécnica. Departamento de Engenharia de Computação e Sistemas Digitais II. t

4 Aos meus pais, Domingos Cassettari e Marlene Pereira, cuja colaboração para a realização deste trabalho foi fundamental e inestimável.

5 AGRADECIMENTOS Ao meu orientador, Prof. Edson Toshimi Midorikawa, pela amizade, pelos incentivos constantes, pela dedicação permanentemente ativa e pelo muito que me ensinou em quase cinco anos de convivência. À minha família pela atenção, paciência, carinho, apoio participativo e financeiro, e pela força emocional que me deram nesses dois anos de mestrado. Aos Prof s. João José Neto e Hélio Crestana Guardia pelas críticas sempre construtivas e pelas valiosas sugestões. À Prof a. Líria Matsumoto Sato e a todos os colegas do Laboratório de Arquitetura e Software Básico (LASB) pela solidariedade e pelo ambiente de trabalho acolhedor, produtivo e humano. Ao meu irmão, Denis Cassettari, pela revisão engajada do texto e pela colaboração crítica. À Coordenação de Aperfeiçoamento de Pessoal de Nível Superior (CAPES / MEC) pelo auxílio financeiro na forma de bolsa de fomento. Aos ex-professores e colegas do Colégio Comercial Nossa Senhora Aparecida, Escola Técnica Federal de São Paulo, Universidade Presbiteriana Mackenzie e Escola Politécnica da USP, responsáveis pela minha formação pessoal e acadêmica. Em especial, por tudo o que fez por mim, meu eterno obrigado ao Prof. Valdim Santos Alves.

6 RESUMO Algoritmos de substituição de páginas influenciam diretamente o desempenho de sistemas computacionais que utilizam memória virtual paginada. O algoritmo de substituição mais conhecido e implementado nos sistemas operacionais modernos através de versões aproximadas é o LRU (Least Recently Used). Este algoritmo, embora seja eficiente na maioria dos casos, demonstra algumas deficiências quando ocorrem determinados padrões de acesso à memória inerentes aos programas. Tais padrões estão intrinsecamente ligados à propriedade de localidade de referências que os processos podem exibir com maior ou menor intensidade. Algoritmos adaptativos têm a capacidade de modificar o seu comportamento ao longo do tempo, de acordo com as características de processamento observadas. Este trabalho apresenta um novo algoritmo adaptativo para substituição de páginas, cujo objetivo é minimizar falhas detectadas no algoritmo LRU sem perder a sua simplicidade computacional: o LRU-WAR (LRU with Working Area Restriction / LRU com Confinamento da Área de Trabalho). Os experimentos realizados indicam que a nova proposta, além de ser confiável, pode melhorar significativamente o desempenho do algoritmo LRU. A redução no número de faltas de página em uma simulação chegou a 75%. Análises comparativas em relação a outros algoritmos recentemente publicados na literatura científica e um detalhamento minucioso das características dos programas simulados justificam as conclusões favoráveis a respeito da política de substituição LRU-WAR.

7 ABSTRACT Page replacement algorithms have direct influence on the performance of computing systems which use paged virtual memory. Least Recently Used (LRU) is the best known replacement algorithm and is widely implemented in modern operating systems through approximated approaches. Despite being efficient in most cases, it shows some deficiencies when certain memory access patterns, inherent in specific programs, occurs. Those patterns are related to the locality property that applications are able to exhibit more or less intensely. Adaptive algorithms are capable of modifying their own behavior through time, depending on the execution characteristics. This work presents a new adaptive algorithm for page replacement: LRU with Working Area Restriction (LRU-WAR), whose target is to minimize failures detected in LRU algorithm, preserving its low overhead. Simulation experiments pointed out that besides being reliable, this new proposal can improve significantly the performance of LRU. It was achieved a top reduction of 75% in the number of page faults. Favorable conclusions were justified, concerning the replacement policy LRU-WAR, both by comparing it to other recently proposed algorithms and detailing all simulated programs characteristics.

8 SUMÁRIO LISTA DE FIGURAS LISTA DE TABELAS LISTA DE ABREVIATURAS E SIGLAS 1. INTRODUÇÃO Contexto Motivação Objetivos e Contribuições Esperadas Metodologia Estrutura do Texto GERÊNCIA DE MEMÓRIA E ALGORITMOS DE SUBSTITUIÇÃO DE PÁGINAS Gerência de Memória Alocação Contígua Memória Virtual Paginação Segmentação Algoritmos de Substituição de Páginas Avaliação de Desempenho Propostas Adaptativas Algoritmo SEQ Algoritmo EELRU ANÁLISE DA LOCALIDADE DE PROGRAMAS Ferramentas Desenvolvidas Recursos Oferecidos para Análise de Localidade Estudos Realizados Caracterização dos Programas Estudados UMA NOVA PROPOSTA PARA SUBSTITUIÇÃO DE PÁGINAS: O ALGORITMO ADAPTATIVO LRU-WAR Motivação da Proposta... 66

9 4.2. Conceitos Básicos Idéia Geral Aspectos Operacionais Descrição Prática do Algoritmo Versão Online EXPERIÊNCIAS REALIZADAS Descrição das Simulações Resultados Obtidos Análise dos Resultados CONCLUSÃO Contribuições Trabalhos Futuros LISTA DE REFERÊNCIAS

10 LISTA DE FIGURAS Figura 1: Metodologia utilizada para a realização de simulações neste trabalho... 4 Figura 2: Alocação Contígua Simples... 8 Figura 3: Exemplo de Alocação Contígua Particionada Estática... 8 Figura 4: Exemplo de Alocação Contígua Particionada Dinâmica e fragmentação posterior Figura 5: Espaços de endereçamento virtual e real Figura 6: Mapeamento de endereços com o mecanismo de paginação Figura 7: Mapeamento de endereços com o mecanismo de segmentação Figura 8: Exemplo gráfico hipotético com seqüências identificadas pelo algoritmo SEQ, destacando aquela que teria uma página substituída nesse instante Figura 9: Eixo LRU com os pontos importantes para os algoritmos GLRU e EELRU Figura 10: Interface gráfica da ferramenta TelaTrace (janelas principal e de aproximação) Figura 11: Exemplo de gráficos de acesso bidimensional e tridimensional (GhostScript) Figura 12: Exemplo de visão lateral em gráfico de acessos tridimensional (GhostScript) Figura 13: Exemplo de mapas criados pela ferramenta Trace Explorer (P2C) Figura 14: Exemplo de mapas com dados específicos de uma única página (P2C, pág. AB) Figura 15: Mapas de recência bidimensional e tridimensional com visão lateral (Netscape) Figura 16: Mapa de acessos (Netscape) Figura 17: Recência dos acessos à página 12F com tempo virtual absoluto (Netscape) Figura 18: Mapa de acessos tridimensional (Go) Figura 19: Mapas de recência bidimensional e tridimensional (Compress) Figura 20: Mapa de acessos tridimensional (Glimpse)... 62

11 Figura 21: Mapa tridimensional de recência dos acessos (2_Pools) Figura 22: Mapas de acesso bidimensional e tridimensional (Lindsay) Figura 23: Visão lateral tridimensional do mapa de recência dos acessos (Grobner) Figura 24: Exemplos de programas com padrões de acesso seqüenciais (Gnuplot e Cscope) Figura 25: Exemplo de área de trabalho, identificando-se o limite W entre faltas de página Figura 26: Divisão lógica da fila LRU utilizada pelo algoritmo LRU-WAR Figura 27: Exemplo de utilização do critério de substituição MRU-(W+1) Figura 28: Exemplo de utilização do critério de substituição LRU Figura 29: Exemplo, em operação seqüencial, de páginas poupadas pelo tempo de carência Figura 30: Gráficos de desempenho referentes aos programas Cscope, Postgres e Gnuplot Figura 31: Gráficos de desempenho referentes aos programas Perl, Photoshop e Sprite Figura 32: Gráficos de desempenho referentes aos programas Acrobat Reader, Power Point e Espresso Figura 33: Gráficos de desempenho referentes aos programas Compress, Multi1 e Grobner Figura 34: Pontos ótimos de substituição identificados em simulações LRU e LRU-WAR Figura 35: Histogramas de otimalidade das substituições realizadas (LRU e LRU-WAR)

12 LISTA DE TABELAS Tabela I Histograma da recência dos acessos na forma tabular (Netscape) Tabela II Estatísticas gerais dos arquivos de trace utilizados em nossos estudos Tabela III Características dos estados de execução definidos pelo algoritmo LRU-WAR Tabela IV Programas e contextos de memória considerados nas simulações realizadas Tabela V Desempenho dos algoritmos analisados em relação ao caso ótimo Tabela VI Desempenho do algoritmo LRU-WAR em relação ao algoritmo LRU Tabela VII Desempenho da versão online do LRU-WAR em relação à versão offline... 97

13 LISTA DE ABREVIATURAS E SIGLAS 3D Tridimensional ACROREAD Adobe Acrobat Reader (programa) AFC Application/File-level Characterization (algoritmo) ARC Adaptive Replacement Cache (algoritmo) CPP Compiler Preprocessor (programa) CPU Central Processing Unit CS Cscope (programa) DEAR Detection-based Adaptive Replacement (algoritmo) EELRU Early Eviction LRU (algoritmo) FBR Frequency-Based Replacement (algoritmo) FIFO First In, First Out (algoritmo) GCC GNU Compiler Collection (programa) GLI Glimpse (programa) GLRU Generalized LRU (algoritmo) GNU GNU s Not Unix (sigla recursiva) GS GhostScript (programa) IRG Inter-Reference Gap IRR Inter-Reference Recency LFU Least Frequently Used (algoritmo) LIRS Low Inter-reference Recency Set (algoritmo) LRFU Least Recently/Frequently Used (algoritmo) LRU Least Recently Used (algoritmo) LRU-WAR LRU with Working Area Restriction (algoritmo) MAX Valor máximo MFU Most Frequently Used (algoritmo) MIN Valor mínimo MMU Memory Management Unit MRU Most Recently Used (algoritmo) NPV Número da Página Virtual NRU Not Recently Used (algoritmo)

14 OPT Optimum (algoritmo) PDF Portable Document Format PFF Page Fault Frequency (algoritmo) PHOTOSHP Adobe Photoshop (programa) POWERPNT Microsoft Power Point (programa) PS Postgres (programa) RAM Random Access Memory SMP Symmetric MultiProcessor SPEC Standard Performance Evaluation Corporation UBM Unified Buffer Management (algoritmo) USP Universidade de São Paulo WINWORD Microsoft Word (programa) WS Working Set (algoritmo)

15 1 1. INTRODUÇÃO 1.1. Contexto O número cada vez maior de usuários conectados à internet onera gradativamente a rede mundial, causando sérios problemas de desempenho. O desenvolvimento de caches para web passou a ser, naturalmente, uma área de pesquisa muito importante e valorizada no cenário tecnológico atual. Estudos nesta área trouxeram consigo uma preocupação crescente com as chamadas políticas de substituição de objetos, fundamentais não apenas no gerenciamento de web caches, mas também no gerenciamento da memória principal e de outros dispositivos de cache (memória e disco). A implementação operacional de uma política é feita por meio de um algoritmo de substituição, cujo grau de eficiência afeta significativamente o desempenho global do sistema em que atua. Pinheiro (2001), em sua dissertação de mestrado, discute e avalia políticas de substituição voltadas ao gerenciamento de caches para web. Diversos outros autores desenvolveram estudos similares recentemente e continuam trabalhando no assunto. Contudo, tal enfoque não é o único que ainda desperta interesse da comunidade científica no que tange ao aperfeiçoamento de políticas de substituição. Este trabalho visa estudar e discutir especificamente algoritmos de substituição de páginas de memória. Importante sobretudo no contexto de sistemas que exigem alto desempenho, o tema se insere no gerenciamento da memória principal, dentro do escopo de sistemas operacionais. O desenvolvimento do trabalho inclui uma análise das principais propostas de substituição encontradas na literatura, o levantamento de aspectos inerentes aos programas que influenciam o desempenho de sistemas de memória e, por fim, a apresentação de uma nova estratégia adaptativa para substituição de páginas: o algoritmo LRU-WAR LRU with Working Area Restriction. Além de relatar uma análise do que já foi criado em termos de algoritmos adaptativos, o trabalho pretende contribuir para o aperfeiçoamento dos sistemas de memória vigentes. No campo teórico, através da discussão crítica acerca de fatores que afetam o desempenho das políticas de substituição e alguns meios em potencial

16 2 para tratá-los. No campo prático, por meio de uma política nova, eficiente e factível, criada como alternativa ao tradicional algoritmo LRU e suas variações atuais. A simplicidade computacional da proposta LRU-WAR sugere a sua viabilidade prática, isto é, incentiva a implementação futura do algoritmo em um sistema operacional com código aberto, como o Linux por exemplo Motivação Uma série de estudos, posteriormente detalhados, comprova que a aplicação do conceito de adaptatividade em algoritmos de substituição de páginas pode trazer benefícios bastante satisfatórios. Estes benefícios incluem a correção de algumas deficiências presentes nas políticas tradicionais ou triviais e a possibilidade de otimização nos critérios de substituição empregados. Por conseqüência, algoritmos adaptativos podem diminuir muito o tempo global de processamento requerido por um sistema de alto desempenho, uma vez que tornam o gerenciamento da memória virtual paginada potencialmente mais eficiente. No entanto, algoritmos adaptativos tendem a onerar o sistema de memória, seja em termos de processamento complexo ou em termos de estruturas de dados complexas e expansivas. Muitas propostas relatadas constituem excelentes alternativas teóricas, porém impraticáveis em um sistema real devido à sobrecarga que acarretam. Em outras propostas, o aspecto de implementação é muito bem elaborado e, com isso, consegue-se uma versão online (factível) por meio de alguns ajustes e aproximações. Mas, ainda assim, perde-se muito da idéia teórica original. Nossos esforços estão concentrados em projetos adaptativos de substituição de páginas que, essencialmente, sejam simples e práticos. Ou seja, algoritmos que tenham uma base teórica fundamentada e engenhosa, mas que sejam viáveis e eficientes em situações reais de computação. Em 2000, iniciamos estudos que especulavam a possibilidade de melhorar o desempenho de algoritmos com espaço de memória variável especificamente WS e PFF através de um controle simples e dinâmico sobre alguns parâmetros de execução adaptativos (MIDORIKAWA et al., 2000). Os resultados obtidos foram apenas razoáveis. E, em última instância, algoritmos de substituição com espaço variável possuem uma alta complexidade de

17 3 implementação inerente à sua filosofia. Por mais que os estudos alcançassem progressos, eles provavelmente se limitariam a aspectos teóricos. Em 2002, um novo enfoque foi adotado: a utilização do algoritmo LRU e seu respectivo modelo teórico como base para o desenvolvimento de um novo projeto adaptativo, caminho explorado pela comunidade científica com alguns resultados muito positivos. Após um amplo estudo teórico nas propriedades do modelo LRU, chegou-se à proposta do algoritmo LRU-WAR Objetivos e Contribuições Esperadas O objetivo deste trabalho é buscar novos meios para melhorar o desempenho de sistemas de gerenciamento de memória, através do estudo e caracterização de localidade de referências e a pesquisa de algoritmos adaptativos para substituição de páginas. Pretende-se contribuir, assim, com as seguintes realizações: - Estudo sobre o contexto atual de desenvolvimento científico na área de algoritmos de substituição de páginas e, enfaticamente, algoritmos adaptativos; - Associação mais precisa entre localidade de programas e desempenho de execução dos mesmos, levando-se em consideração diversas políticas de substituição de páginas; - Apresentação de novas ferramentas desenvolvidas para facilitar a análise da localidade de programas em conjunto com outras importantes características neles encontradas; - Identificação de formas para reconhecimento de padrões regulares de acesso e, por decorrência, de critérios dinâmicos para o gerenciamento da memória virtual paginada; - Proposta e avaliação de desempenho de uma alternativa adaptativa original: o algoritmo LRU-WAR de substituição de páginas, quase tão simples quanto o LRU em termos computacionais, porém mais eficiente em termos de acerto de previsões.

18 Metodologia O estudo de algoritmos de substituição de páginas desenvolvido no Laboratório de Arquitetura e Software Básico Departamento de Engenharia de Computação e Sistemas Digitais da Escola Politécnica da USP incluiu três etapas: - Obtenção de traces (arquivos de traços); - Desenvolvimento de simuladores de sistemas de memória; - Realização de experimentos, em especial simulações com os traces obtidos, e análises sobre os resultados. Um arquivo de traces consiste basicamente na listagem cronológica dos diversos acessos à memória realizados por um software. Em outras palavras, descreve passo a passo o comportamento de um dado programa em termos de utilização da memória. Estes arquivos são obtidos através de um gerador de traces, que executa o programa alvo e coleta os acessos à memória realizados ao longo de seu processamento (UHLIG; MUDGE, 1997). A partir dos dados coletados e armazenados nos arquivos de traces, uma série de simulações podem ser efetuadas para se avaliar o desempenho de algoritmos de substituição, no contexto de todos os possíveis tamanhos de memória que se queira considerar. A figura 1 esquematiza o procedimento adotado nessas avaliações. Programa executável Gerador de traces Simulador resultados arquivo de traces Fig. 1: Metodologia utilizada para a realização de simulações neste trabalho Os dados de desempenho obtidos são então analisados em conjunto com as características de localidade de referências, entre outras, presentes em cada programa. Ou seja, a eficiência ou não das políticas de substituição de páginas procura ser explicada de acordo com os padrões de acesso à memória observados nos programas. Tal análise é feita com o apoio de ferramentas estatísticas e de visualização desenvolvidas especificamente para este estudo.

19 5 As simulações são executadas em equipamentos disponíveis no laboratório, que incluem duas máquinas multiprocessadoras (com 4 processadores cada) e um cluster de computadores com 8 nós duais (2 processadores em cada nó). Aproveitando a estrutura de hardware, foram construídas versões paralelas de algoritmos de simulação para duas políticas de substituição de páginas: Ótimo e LRU. O simulador StackPar (CASSETTARI; MIDORIKAWA, 2002b), baseado nas versões de pilha de ambos os algoritmos (MATTSON et al., 1970), simula a execução de um único programa, porém divide o processamento do arquivo de traces correspondente entre os diversos processadores disponíveis na máquina. O tempo de simulação diminui consideravelmente, mas o simulador implementa apenas estes dois algoritmos de substituição. Os demais algoritmos são avaliados através de simuladores simples, em ambientes com monoprocessamento. Cada algoritmo trivial possui pelo menos um simulador desenvolvido e implementado por nós. Os simuladores dos algoritmos adaptativos EELRU (SMARAGDAKIS; KAPLAN; WILSON, 1999) e LIRS (JIANG; ZHANG, 2002), que complementam nossos estudos, foram cedidos gentilmente por seus autores. Com os resultados obtidos através das simulações, procura-se determinar o melhor algoritmo de substituição de páginas no contexto específico de cada programa, assim como o porquê de um algoritmo ser mais eficiente que outro na situação analisada. As características de localidade de um programa explicam a variação de desempenho observada entre os algoritmos em condições idênticas de simulação. Mediante a identificação de padrões que representam genericamente algumas destas características, formas adequadas de tratamento em termos de substituição de páginas procuram ser discutidas e desenvolvidas neste trabalho Estrutura do Texto O Capítulo 2 da dissertação revisa aspectos básicos sobre gerência de memória, comentando os diversos tipos de alocação (contígua simples, particionada, paginada e segmentada) e o conceito de memória virtual. Enfocando a alocação paginada, base do tema explorado, o Capítulo 2 também relata os principais

20 6 algoritmos de substituição de páginas existentes, estáticos ou adaptativos, descrevendo detalhadamente dois importantes algoritmos desta segunda categoria: SEQ e EELRU. Os dois algoritmos destacados tiveram papel fundamental no processo de elaboração da proposta LRU-WAR. No Capítulo 3 é discutida a importância da análise de localidade dos programas como forma de identificar características de acesso à memória e sua influência no desempenho das políticas de substituição de páginas, principalmente aquelas baseadas no modelo LRU. Os programas estudados são descritos e caracterizados por meio de três ferramentas desenvolvidas para esta finalidade. As discussões apresentadas no Capítulo 3 motivaram definitivamente o desenvolvimento do novo algoritmo adaptativo LRU-WAR, cuja concepção é minuciosamente relatada no Capítulo 4. Os aspectos operacionais do algoritmo são comentados de forma analítica, justificando-se cada decisão de projeto. A implementação de suas duas versões offline (completa, mas teórica) e online (aproximada, mas factível) é demonstrada através de pseudo-códigos. O Capítulo 5 ilustra, por meio de gráficos de desempenho, os resultados obtidos nas simulações realizadas. A proposta LRU-WAR é comparada com os algoritmos LRU, EELRU, LIRS e Ótimo, tanto em sua versão offline como em sua versão online. Uma associação entre as características de localidade dos programas analisadas no Capítulo 3 e o desempenho obtido pelos algoritmos procura ser sempre traçada. A conclusão do trabalho é exposta no Capítulo 6, enfatizando suas principais contribuições e sugerindo trabalhos futuros que o complementem. A bibliografia utilizada, por fim, é registrada na Lista de Referências.

21 7 2. GERÊNCIA DE MEMÓRIA E ALGORITMOS DE SUBSTITUIÇÃO DE PÁGINAS 2.1. Gerência de Memória O sistema de gerenciamento da memória é um dos componentes mais críticos e importantes do sistema operacional. Na execução de programas que exigem grande quantidade de processamento e que, conseqüentemente, requerem alto desempenho a gerência de memória tem um papel fundamental. A memória principal é o local onde ficam armazenados os dados necessários à execução dos programas, incluindo o seu código de máquina. É nela em que o processador procura os dados e instruções imprescindíveis à realização de qualquer tipo de tarefa. O advento da multiprogramação tornou seu gerenciamento uma atividade complexa e crucial do ponto de vista da eficiência. Um bom gerenciamento de memória é característica indispensável para um sistema operacional executar satisfatoriamente tarefas que exigem alto desempenho (MIDORIKAWA, 1991); (MIDORIKAWA, 1997). Basicamente, o sistema de gerenciamento da memória deve decidir e controlar quais dados, quando e por quanto tempo permanecerão residentes na memória principal do computador. Esta decisão leva em conta uma série de fatores, como a quantidade e o tamanho dos processos a serem executados, a área de memória disponível, o ambiente operacional, o tipo de alocação implementada, etc. A definição e manipulação de mecanismos de blocagem (paginação e segmentação), o carregamento e alocação física na memória principal dos dados provenientes da memória secundária e o gerenciamento da memória virtual são atribuições importantes do sistema. As informações apresentadas nesta seção são detalhadas de forma didática em um grande número de publicações. Alguns exemplos em língua portuguesa podem ser citados: Machado; Maia (1997), Tanenbaum (1999), Oliveira; Carissimi; Toscani (2001) e Silberschatz; Galvin; Gagne (2001).

22 Alocação Contígua Os primeiros sistemas operacionais utilizavam uma forma de alocação de dados na memória denominada alocação contígua simples. Este tipo de sistema divide a memória principal em dois blocos: em um deles permanece residente o sistema operacional e no outro é carregado um único programa a ser executado (figura 2). MEMÓRIA PRINCIPAL Sistema Operacional Área para o programa Fig. 2: Alocação Contígua Simples O conceito de multiprogramação trouxe consigo a necessidade de um novo paradigma de alocação, que vislumbrasse a possibilidade de vários programas estarem alocados na memória principal ao mesmo tempo. O primeiro modelo proposto foi a alocação contígua particionada, uma evolução incremental no modelo de alocação contígua simples. Nas implementações iniciais da técnica, a memória era dividida em partições de tamanho fixo, a chamada alocação particionada estática (figura 3). MEMÓRIA PRINCIPAL Sistema Operacional Partição 1 Partição 2 Partição 3 Fig. 3: Exemplo de Alocação Contígua Particionada Estática

23 9 Neste esquema de alocação, o sistema trabalhava apenas com código absoluto e cada programa podia ser executado somente em uma única partição préespecificada, concorrendo com outros programas que também usavam a mesma partição, mesmo que as demais estivessem livres. O tamanho e a quantidade de partições eram flexíveis e variáveis, porém uma mudança de configuração somente poderia ocorrer na iniciação do sistema operacional. Uma vez configuradas as partições, permaneciam assim inalteradas durante toda a operação do sistema. Com o passar do tempo, o sistema evoluiu e os compiladores deixaram de gerar os limitantes códigos absolutos, passando a gerar códigos relocáveis; este fato permitiu que os programas fossem alocados, ainda no mesmo modelo estático, em qualquer partição disponível, não se atendo a apenas uma partição como até então. A fragmentação interna das partições e a sua baixa flexibilidade eram os dois principais problemas ainda apresentados pela alocação particionada estática, mesmo com o advento do código relocável. A alocação particionada dinâmica foi idealizada com o objetivo de sanar essas pendências. A estratégia dinâmica inovou ao criar uma forma de gerenciamento na qual a necessidade de uso é o critério para o particionamento gradativo da memória disponível, metodologia eficiente que naturalmente se manteve nos sistemas de memória posteriores. Porém, tratando-se aqui de um sistema de alocação contígua, os programas ainda precisam ser totalmente carregados em uma única partição para poderem ser processados. Assim, na alocação particionada dinâmica, os programas alocam a área livre de memória conforme são disparados. Um programa não ocupa uma partição fixa pré-definida, e sim aloca o tamanho necessário à sua execução, nem mais nem menos. Desta forma, programas de qualquer tamanho podem ser executados, desde que não ultrapassem a área do maior trecho contíguo de memória livre disponível. Por outro lado, programas pequenos não mais desperdiçam áreas superestimadas, uma vez que só ocupam o espaço de que efetivamente necessitam. Contudo, o problema da fragmentação persiste: trechos de memória são liberados desordenadamente, conforme os programas deixam de rodar (figura 4). Como a alocação continua sendo contígua, um programa precisa encontrar uma área livre (partição) maior ou igual ao tamanho de memória do qual necessita para ser carregado. Mas se os programas possuem tempos distintos de execução o que

24 10 praticamente sempre ocorre, partições limitadas surgem aleatoriamente durante a operação do sistema, resultando em uma memória possivelmente bastante fragmentada. MEMÓRIA PRINCIPAL (antes) Sistema Operacional Programa 1 MEMÓRIA PRINCIPAL (depois) Sistema Operacional Partição Livre Programa 2 (programas 1 e 3 deixam de executar) Programa 2 Programa 3 Partição Livre Programa 4 Partição Livre Programa 4 Partição Livre Fig. 4: Exemplo de Alocação Contígua Particionada Dinâmica e fragmentação posterior Dentre as partições livres num sistema de alocação dinâmica, a escolha daquela que será utilizada para carregar um novo programa na memória é feita basicamente por meio de um dos três seguintes algoritmos: - Best Fit: Esta estratégia procura pela partição mais adequada ao programa, em termos de tamanho. Ou seja, escolhe a menor partição dentre aquelas que comportam o programa e seus dados. Como dificilmente haverá uma partição com o tamanho exato requerido pelo processo, uma área livre provavelmente pequena o trecho da partição original não ocupado pelo programa será gerada. Com isso, um conjunto de partições livres muito pequenas pode infestar a memória no decorrer da operação do sistema, ocasionando um sério problema de fragmentação, geralmente crescente. Esta é a principal desvantagem do Best Fit. - Worst Fit: O método que escolhe a pior partição (inversamente proporcional ao tamanho do programa) tem como objetivo diminuir a fragmentação de memória gerada no decorrer do tempo. Seu critério é escolher sempre a maior partição disponível quando um novo programa precisa ser carregado. Assim, é maximizada a área da partição original

Arquitetura de Computadores. Sistemas Operacionais IV

Arquitetura de Computadores. Sistemas Operacionais IV Arquitetura de Computadores Sistemas Operacionais IV Introdução Multiprogramação implica em manter-se vários processos na memória. Memória necessita ser alocada de forma eficiente para permitir o máximo

Leia mais

Notas da Aula 17 - Fundamentos de Sistemas Operacionais

Notas da Aula 17 - Fundamentos de Sistemas Operacionais Notas da Aula 17 - Fundamentos de Sistemas Operacionais 1. Gerenciamento de Memória: Introdução O gerenciamento de memória é provavelmente a tarefa mais complexa de um sistema operacional multiprogramado.

Leia mais

Gerenciamento de memória

Gerenciamento de memória Na memória principal ficam todos os programas e os dados que serão executados pelo processador. Possui menor capacidade e custo maior. S.O buscam minimizar a ocupação da memória e otimizar sua utilização.

Leia mais

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

Memória Virtual. Prof. Dr. José Luís Zem Prof. Dr. Renato Kraide Soffner Prof. Ms. Rossano Pablo Pinto Memória Virtual Prof Dr José Luís Zem Prof Dr Renato Kraide Soffner Prof Ms Rossano Pablo Pinto Faculdade de Tecnologia de Americana Centro Paula Souza Tópicos Introdução Espaço de Endereçamento Virtual

Leia mais

AULA 13 - Gerência de Memória

AULA 13 - Gerência de Memória AULA 13 - Gerência de Memória omo sabemos, os computadores utilizam uma hierarquia de memória em sua organização, combinando memórias voláteis e não-voláteis, tais como: memória cache, memória principal

Leia mais

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

Disciplina: Sistemas Operacionais - CAFW-UFSM Professor: Roberto Franciscatto Disciplina: Sistemas Operacionais - CAFW-UFSM Professor: Roberto Franciscatto Introdução Considerações: Recurso caro e escasso; Programas só executam se estiverem na memória principal; Quanto mais processos

Leia mais

ROTEIRO. Gerência de Memória. Gerência de Memória. Fundamentos. Sistemas Operacionais 2014 Gerência de Memória FUNDAMENTOS 03/09/2014

ROTEIRO. Gerência de Memória. Gerência de Memória. Fundamentos. Sistemas Operacionais 2014 Gerência de Memória FUNDAMENTOS 03/09/2014 Sistemas Operacionais 0 Gerência de Memória Alexandre Augusto Giron ROTEIRO Fundamentos Endereçamento Lógico x Físico Swapping Alocação de Memória Contígua Paginação Segmentação Memória Virtual Algoritmos

Leia mais

Infraestrutura de Hardware. Memória Virtual

Infraestrutura de Hardware. Memória Virtual Infraestrutura de Hardware Memória Virtual Perguntas que Devem ser Respondidas ao Final do Curso Como um programa escrito em uma linguagem de alto nível é entendido e executado pelo HW? Qual é a interface

Leia mais

BC1518-Sistemas Operacionais Memória Virtual (aula 9)

BC1518-Sistemas Operacionais Memória Virtual (aula 9) BC1518-Sistemas Operacionais Memória Virtual (aula 9) Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br Roteiro Memória Virtual Paginação sob demanda Cópia na escrita Algoritmos de Substituição

Leia mais

Simulação do Processo de Substituição de Páginas em Gerência de Memória Virtual

Simulação do Processo de Substituição de Páginas em Gerência de Memória Virtual Simulação do Processo de Substituição de Páginas em Gerência de Memória Virtual Fagner do Nascimento Fonseca a, Orientador(a): Flávia Maristela S. Nascimento b a Instituto Federal da Bahia b Instituto

Leia mais

Ajustando o LRU-WAR para uma Política de Gerência de Memória Global

Ajustando o LRU-WAR para uma Política de Gerência de Memória Global Ajustando o LRU-WAR para uma Política de Gerência de Memória Global Ricardo L. Piantola, Edson T. Midorikawa Departamento de Engenharia de Computação e Sistemas Digitais Escola Politécnica da Universidade

Leia mais

Nível 3 Sistema Operacional

Nível 3 Sistema Operacional Nível 3 Sistema Operacional Universidade Tuiuti do Paraná UTP Faculdade de Ciências Exatas - FACET Tecnologia de Análise e Desenvolvimento de Sistemas Organização de Computadores Prof. André Luiz 1 Nível

Leia mais

Cap. 10 Gerência de Memória Virtual 1

Cap. 10 Gerência de Memória Virtual 1 Arquitetura de Sistemas Operacionais Francis Berenger Machado Luiz Paulo Maia Capítulo 10 Gerência de Memória Virtual Cap 10 Gerência de Memória Virtual 1 Introdução Espaço de Endereçamento Virtual Mapeamento

Leia mais

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

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 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 região de armazenamento formada por bytes ou palavras, cada

Leia mais

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

Prof.: Roberto Franciscatto. Capítulo 1.2 Aspectos Gerais Sistemas Operacionais Prof.: Roberto Franciscatto Capítulo 1.2 Aspectos Gerais Estrutura do Sistema Operacional Principais Funções do Sistema Operacional Tratamento de interrupções e exceções Criação e

Leia mais

Organização e Arquitetura de Computadores

Organização e Arquitetura de Computadores Organização e Arquitetura de Computadores MemóriaVirtual Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Gerência de memória convencional Divide um programa em unidades menores Partes

Leia mais

Memória Cache. Prof. Leonardo Barreto Campos 1

Memória Cache. Prof. Leonardo Barreto Campos 1 Memória Cache Prof. Leonardo Barreto Campos 1 Sumário Introdução; Projeto de Memórias Cache; Tamanho; Função de Mapeamento; Política de Escrita; Tamanho da Linha; Número de Memórias Cache; Bibliografia.

Leia mais

Capítulo 8: Gerenciamento de Memória

Capítulo 8: Gerenciamento de Memória Capítulo 8: Gerenciamento de Memória Sobre a apresentação (About( the slides) Os slides e figuras dessa apresentação foram criados por Silberschatz, Galvin e Gagne em 2005. Esse apresentação foi modificada

Leia mais

Capítulo 3 Gerenciamento de memória

Capítulo 3 Gerenciamento de memória Sistemas operacionais modernos Terceira edição ANDREW S. TANENBAUM Capítulo 3 Gerenciamento de memória Introdução Programas tendem a se expandir a fim de ocupar toda a memória disponível Programador deseja

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais SISTEMAS DE ARQUIVOS MACHADO/MAIA: CAPÍTULO 11 Prof. Pedro Luís Antonelli Anhanguera Educacional SISTEMAS DE ARQUIVOS - INTRODUÇÃO O armazenamento e a recuperação de informações é

Leia mais

Sistemas de Informação. Sistemas Operacionais 4º Período

Sistemas de Informação. Sistemas Operacionais 4º Período Sistemas de Informação Sistemas Operacionais 4º Período SISTEMA DE ARQUIVOS SUMÁRIO 7. SISTEMA DE ARQUIVOS: 7.1 Introdução; 7.2 s; 7.3 Diretórios; 7.4 Gerência de Espaço Livre em Disco; 7.5 Gerência de

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Aula 13 Gerência de Memória Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: SO - Prof. Edilberto Silva Prof. José Juan Espantoso Sumário

Leia mais

Memória cache. Prof. Francisco Adelton

Memória cache. Prof. Francisco Adelton Memória cache Prof. Francisco Adelton Memória Cache Seu uso visa obter uma velocidade de acesso à memória próxima da velocidade das memórias mais rápidas e, ao mesmo tempo, disponibilizar no sistema uma

Leia mais

Gerenciamento Básico B de Memória Aula 07

Gerenciamento Básico B de Memória Aula 07 BC1518-Sistemas Operacionais Gerenciamento Básico B de Memória Aula 07 Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br Roteiro Introdução Espaço de Endereçamento Lógico vs. Físico Estratégias

Leia mais

SisOS - SIMULADOR DE ALGORITMOS DE SUBSTITUIÇÃO DE PÁGINAS EM GERENCIAMENTO DE MEMÓRIA

SisOS - SIMULADOR DE ALGORITMOS DE SUBSTITUIÇÃO DE PÁGINAS EM GERENCIAMENTO DE MEMÓRIA SisOS - SIMULADOR DE ALGORITMOS DE SUBSTITUIÇÃO DE PÁGINAS EM GERENCIAMENTO DE MEMÓRIA Renan Rabelo Soeiro renan.ifce@gmail.com Jones Monteiro Jacinto jonesmonteirojacinto@gmail.com Maurício Barros de

Leia mais

Os textos nestas caixas foram adicionados pelo Prof. Joubert

Os textos nestas caixas foram adicionados pelo Prof. Joubert William Stallings Arquitetura e Organização de Computadores 8 a Edição Capítulo 4 Memória cache Os textos nestas caixas foram adicionados pelo Prof. Joubert slide 1 Características Localização. Capacidade.

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Gerenciamento de Memória Norton Trevisan Roman Marcelo Morandini Jó Ueyama Apostila baseada nos trabalhos de Kalinka Castelo Branco, Antônio Carlos Sementille, Paula Prata e nas transparências

Leia mais

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

Gestão de Memória. DCC/FCUP Fernando Silva Sistemas de Operação 1 Gestão de Memória Como organizar a memória de forma a saber-se qual o espaço livre para carregar novos processos e qual o espaço ocupado por processos já em memória? Como associar endereços de variáveis

Leia mais

Gerenciamento de Memória

Gerenciamento de Memória Gerenciamento de Memória Prof. Dr. José Luís Zem Prof. Dr. Renato Kraide Soffner Prof. Ms. Rossano Pablo Pinto Faculdade de Tecnologia de Americana Centro Paula Souza Tópicos Introdução Alocação Contígua

Leia mais

Organização de Computadores 1

Organização de Computadores 1 Organização de Computadores 1 4 SUPORTE AO SISTEMA OPERACIONAL Prof. Luiz Gustavo A. Martins Sistema Operacional (S.O.) Programa responsável por: Gerenciar os recursos do computador. Controlar a execução

Leia mais

Exercícios Gerência de Memória

Exercícios Gerência de Memória Exercícios Gerência de Memória 1) Considerando o uso de particionamento Buddy em um sistema com 4 GB de memória principal, responda as seguintes perguntas: a) Esboce o gráfico que representa o uso da memória

Leia mais

Sistemas Processadores e Periféricos Aula 9 - Revisão

Sistemas Processadores e Periféricos Aula 9 - Revisão Sistemas Processadores e Periféricos Aula 9 - Revisão Prof. Frank Sill Torres DELT Escola de Engenharia UFMG Adaptado a partir dos Slides de Organização de Computadores 2006/02 do professor Leandro Galvão

Leia mais

Exercícios Gerência de Memória

Exercícios Gerência de Memória Exercícios Gerência de Memória 1) Considerando o uso de particionamento Buddy em um sistema com 4 GB de memória principal, responda as seguintes perguntas: a) Esboce o gráfico que representa o uso da memória

Leia mais

Capítulo 4 Gerenciamento de Memória

Capítulo 4 Gerenciamento de Memória Capítulo 4 Gerenciamento de Memória 4.1 Gerenciamento básico de memória 4.2 Troca de processos 4.3 Memória virtual 4.4 Algoritmos de substituição de páginas 4.5 Modelagem de algoritmos de substituição

Leia mais

Arquitetura de Computadores. Arquitetura de Computadores 1

Arquitetura de Computadores. Arquitetura de Computadores 1 Computadores Computadores 1 Introdução Componentes: Processador; UC; Registradores; ALU s, FPU s, etc. Memória (Sistema de armazenamento de informações; Dispositivo de entrada e saída. Computadores 2 Introdução

Leia mais

Memória - Gerenciamento. Sistemas Operacionais - Professor Machado

Memória - Gerenciamento. Sistemas Operacionais - Professor Machado Memória - Gerenciamento Sistemas Operacionais - Professor Machado 1 Partes físicas associadas à memória Memória RAM Memória ROM Cache MMU (Memory Management Unit) Processador Tabela de Páginas TLB 2 Conceitos

Leia mais

Sistemas Operacionais 2014 Introdução. Alexandre Augusto Giron alexandre.a.giron@gmail.com

Sistemas Operacionais 2014 Introdução. Alexandre Augusto Giron alexandre.a.giron@gmail.com Sistemas Operacionais 2014 Introdução Alexandre Augusto Giron alexandre.a.giron@gmail.com Roteiro Sistemas Operacionais Histórico Estrutura de SO Principais Funções do SO Interrupções Chamadas de Sistema

Leia mais

Pós-Graduação, Maio de 2006 Introdução aos Sistemas Operacionais. Prof. Dr. Ruy de Oliveira CEFET-MT

Pós-Graduação, Maio de 2006 Introdução aos Sistemas Operacionais. Prof. Dr. Ruy de Oliveira CEFET-MT Pós-Graduação, Maio de 2006 Introdução aos Sistemas Operacionais Prof. Dr. Ruy de Oliveira CEFET-MT O que é um Sistema Operacional? Um software que abstrai as complexidades do hardware de um usuário/programador

Leia mais

CAPÍTULO 6 NÍVEL DE SISTEMA OPERACIONAL. Nível de Sistema Operacional. Nível de Máquina Convencional. Nível de Microprogramação

CAPÍTULO 6 NÍVEL DE SISTEMA OPERACIONAL. Nível de Sistema Operacional. Nível de Máquina Convencional. Nível de Microprogramação CAPÍTULO 6 NÍVEL DE SISTEMA OPERACIONAL 6.1 Introdução Nível que automatiza as funções do operador do sistema. Nível 3 Nível de Sistema Operacional Sistema Operacional Nível 2 Nível de Máquina Convencional

Leia mais

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

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 Sistemas de Arquivos 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 2 Sistemas Operacionais Necessidade de Armazenamento Grandes quantidades

Leia mais

BC 1518 - Sistemas Operacionais Sistema de Arquivos (aula 10 Parte 2) Prof. Marcelo Z. do Nascimento

BC 1518 - Sistemas Operacionais Sistema de Arquivos (aula 10 Parte 2) Prof. Marcelo Z. do Nascimento BC 1518 - Sistemas Operacionais Sistema de Arquivos (aula 10 Parte 2) Prof. Marcelo Z. do Nascimento 1 Gerência de espaço em disco Cópia de segurança do sistema de arquivo Roteiro Confiabilidade Desempenho

Leia mais

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

Fundamentos de Sistemas Operacionais. Sistema de Arquivos. Prof. Edwar Saliba Júnior Março de 2007. Unidade 03-002 Sistemas de Arquivos Sistema de Arquivos Prof. Edwar Saliba Júnior Março de 2007 1 Objetivos Facilitar o acesso dos usuários ao conteúdo dos arquivos; Prover uma forma uniforme de manipulação de arquivos, independente dos

Leia mais

Notas da Aula 15 - Fundamentos de Sistemas Operacionais

Notas da Aula 15 - Fundamentos de Sistemas Operacionais Notas da Aula 15 - Fundamentos de Sistemas Operacionais 1. Software de Entrada e Saída: Visão Geral Uma das tarefas do Sistema Operacional é simplificar o acesso aos dispositivos de hardware pelos processos

Leia mais

Um sistema é constituído de um conjunto de processos que executam seus respectivos códigos do sistema operacional e processos e códigos de usuários.

Um sistema é constituído de um conjunto de processos que executam seus respectivos códigos do sistema operacional e processos e códigos de usuários. Os sistemas computacionais atuais permitem que diversos programas sejam carregados na memória e executados simultaneamente. Essa evolução tornou necessário um controle maior na divisão de tarefas entre

Leia mais

Programação de Sistemas

Programação de Sistemas Programação de Sistemas Introdução à gestão de memória Programação de Sistemas Gestão de memória : 1/16 Introdução (1) A memória central de um computador é escassa. [1981] IBM PC lançado com 64KB na motherboard,

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Professores autores Vicente Pires Lustosa Neto Roberta De Souza Coelho Aula 11 - Gerenciamento de memória Apresentação Na última aula, aprendemos mais sobre os processos e como gerenciá-los.

Leia mais

Introdução. Nível do Sistema Operacional. Introdução. Um Sistema Operacional... Introdução a Sistemas Operacionais

Introdução. Nível do Sistema Operacional. Introdução. Um Sistema Operacional... Introdução a Sistemas Operacionais Introdução Nível do Sistema Operacional (Aula 14) Introdução a Sistemas Operacionais Hardware Provê os recursos básicos de computação (CPU, memória, E/S,etc.) Programas (aplicações) Definem as maneiras

Leia mais

Sistemas Operacionais Arquivos. Carlos Ferraz (cagf@cin.ufpe.br) Jorge Cavalcanti Fonsêca (jcbf@cin.ufpe.br)

Sistemas Operacionais Arquivos. Carlos Ferraz (cagf@cin.ufpe.br) Jorge Cavalcanti Fonsêca (jcbf@cin.ufpe.br) Sistemas Operacionais Arquivos Carlos Ferraz (cagf@cin.ufpe.br) Jorge Cavalcanti Fonsêca (jcbf@cin.ufpe.br) Copyright Carlos Ferraz Cin/UFPE Implementação do Sistema de Arquivos Sistemas de arquivos são

Leia mais

Gerenciamento de memória. Carlos Eduardo de Carvalho Dantas

Gerenciamento de memória. Carlos Eduardo de Carvalho Dantas Carlos Eduardo de Carvalho Dantas Motivos: 1 Manter a CPU ocupada o máximo de tempo para não existir gargalos na busca de dados na memória; 2 Gerenciar os espaços de endereçamento para que processos executem

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Sistemas de Entrada/Saída Princípios de Hardware Sistema de Entrada/Saída Visão Geral Princípios de Hardware Dispositivos de E/S Estrutura Típica do Barramento de um PC Interrupções

Leia mais

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

Gerência de Memória. Paginação Gerência de Memória Paginação Endereçamento Virtual (1) O programa usa endereços virtuais É necessário HW para traduzir cada endereço virtual em endereço físico MMU: Memory Management Unit Normalmente

Leia mais

Visão geral do sistema de armazenamento e hierarquia de memória

Visão geral do sistema de armazenamento e hierarquia de memória Visão geral do sistema de armazenamento e hierarquia de memória Conhecer os dispositivos de armazenamento por meio do conceito e dos tipos de memórias utilizadas no computador. Subsistemas de memória Memória

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Evolução Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Sumário Introdução Componentes de um sistema computacional Conceituação Características desejáveis Organização

Leia mais

SISTEMAS OPERACIONAIS

SISTEMAS OPERACIONAIS SISTEMAS OPERACIONAIS Sistema de Arquivos Andreza Leite andreza.leite@univasf.edu.br Plano de Aula Arquivos Organização de arquivos Diretórios Métodos de acesso Métodos de alocação em disco Fragmentação

Leia mais

Sistemas Operativos I

Sistemas Operativos I 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

Leia mais

SISTEMAS OPERACIONAIS. Sistemas de Arquivos Apostila 09

SISTEMAS OPERACIONAIS. Sistemas de Arquivos Apostila 09 SISTEMAS OPERACIONAIS Sistemas de Arquivos Apostila 09 1.0 INTRODUÇÃO Sistema de Arquivos: conceito de arquivo, métodos de acesso, estrutura de diretório, estrutura do sistema de arquivos, métodos de alocação

Leia mais

Introdução à Computação: Sistemas de Computação

Introdução à Computação: Sistemas de Computação Introdução à Computação: Sistemas de Computação Beatriz F. M. Souza (bfmartins@inf.ufes.br) http://inf.ufes.br/~bfmartins/ Computer Science Department Federal University of Espírito Santo (Ufes), Vitória,

Leia mais

CENTRO UNIVERSITÁRIO INTERNACIONAL UNINTER CST EM ANALISE E DESENVOLVIMENTO DE SISTEMAS

CENTRO UNIVERSITÁRIO INTERNACIONAL UNINTER CST EM ANALISE E DESENVOLVIMENTO DE SISTEMAS CENTRO UNIVERSITÁRIO INTERNACIONAL UNINTER CST EM ANALISE E DESENVOLVIMENTO DE SISTEMAS MATERIAL DE APOIO SISTEMAS OPERACIONAIS CURITIBA 2015 SUMÁRIO 1 CONCEITOS... 3 1.1 PROCESSAMENTO DE DADOS... 3 1.2

Leia mais

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

LABORATÓRIO DE SISTEMAS OPERACIONAIS. PROFª. M.Sc. JULIANA HOFFMANN QUINONEZ BENACCHIO LABORATÓRIO DE SISTEMAS OPERACIONAIS PROFª. M.Sc. JULIANA HOFFMANN QUINONEZ BENACCHIO Gerenciamento de Memória no Linux O Linux é um sistema operacional com memória virtual paginada, isto quer dizer que

Leia mais

Fundamentos de Sistemas Operacionais

Fundamentos de Sistemas Operacionais Fundamentos de Sistemas Operacionais Sistema de Arquivos - II Prof. Galvez Implementação de Arquivos Arquivos são implementados através da criação, para cada arquivo no sistema, de uma estrutura de dados

Leia mais

Capítulo 4 Gerenciamento de Memória

Capítulo 4 Gerenciamento de Memória Capítulo 4 Gerenciamento de Memória 4.1 Gerenciamento básico de memória 4.2 Troca de processos 4.3 Memória virtual 4.4 Algoritmos de substituição de páginas 4.5 Modelagem de algoritmos de substituição

Leia mais

Arquitetura e Organização de Computadores

Arquitetura e Organização de Computadores UNIVERSIDADE FEDERAL RURAL DO DO SEMI-ÁRIDO DEPARTAMENTO DEPARTAMENTO DE DE CIÊNCIAS CIÊNCIAS EXATAS EXATAS E E NATURAIS NATURAIS CURSO DE CIÊNCIA DA COMPUTAÇÃO CURSO DE CIÊNCIA DA COMPUTAÇÃO Arquitetura

Leia mais

Sistema Operacional. Processo e Threads. Prof. Dr. Márcio Andrey Teixeira Sistemas Operacionais

Sistema Operacional. Processo e Threads. Prof. Dr. Márcio Andrey Teixeira Sistemas Operacionais Sistema Operacional Processo e Threads Introdução a Processos Todos os computadores modernos são capazes de fazer várias coisas ao mesmo tempo. Enquanto executa um programa do usuário, um computador pode

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Gerência de Arquivos Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Sumário Conceituação de arquivos Implementação do sistemas de arquivo Introdução Sistema de

Leia mais

Capítulo 4 Gerenciamento de Memória

Capítulo 4 Gerenciamento de Memória Capítulo 4 Gerenciamento de Memória 4.1 Gerenciamento básico de memória 4.2 Troca de processos 4.3 Memória virtual 4.4 Algoritmos de substituição de páginas 4.5 Modelagem de algoritmos de substituição

Leia mais

6 Sistema de Gerenciamento de Memória

6 Sistema de Gerenciamento de Memória 6 Sistema de Gerenciamento de Memória Os sistemas de gerenciamento de memória baseiam-se no princípio de que a quantidade de dados necessária para realizar uma operação pode ser completamente armazenada

Leia mais

Apresentação da disciplina. Sistemas Operacionais I N. A disciplina. O Professor. Áreas de atuação na pesquisa. Referências bibliográficas básicas

Apresentação da disciplina. Sistemas Operacionais I N. A disciplina. O Professor. Áreas de atuação na pesquisa. Referências bibliográficas básicas 1 Apresentação da disciplina Sistemas Operacionais I N Prof. Marcelo Johann 2009/2 O professor A disciplina Bibliografia Cronograma Avaliação Trabalhos Regras do jogo Introdução: Sistemas Operacionais

Leia mais

Capacidade = 512 x 300 x 20000 x 2 x 5 = 30.720.000.000 30,72 GB

Capacidade = 512 x 300 x 20000 x 2 x 5 = 30.720.000.000 30,72 GB Calculando a capacidade de disco: Capacidade = (# bytes/setor) x (méd. # setores/trilha) x (# trilhas/superfície) x (# superfícies/prato) x (# pratos/disco) Exemplo 01: 512 bytes/setor 300 setores/trilha

Leia mais

O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware

O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware 1 2 Revisão de Hardware 2.1 Hardware O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware 2.1.1 Processador O Processador

Leia mais

Gerenciamento de memória

Gerenciamento de memória Sistemas Operacionais Gerenciamento de memória Capítulos 7 Operating Systems: Internals and Design Principles W. Stallings O problema Em um ambiente multiprogramado, é necessário: subdividir a memória

Leia mais

Sistemas Operacionais Carlos Eduardo Portela Serra de Castro

Sistemas Operacionais Carlos Eduardo Portela Serra de Castro Introdução Sistemas Operacionais 1 Sistema Operacional: Um conjunto de programas, executado pelo computador como os outros programas. Função: Controlar o funcionamento do computador, disponibilizando seus

Leia mais

Introdução. Principio de Localidade. Localidade temporal: Localidade Espacial:

Introdução. Principio de Localidade. Localidade temporal: Localidade Espacial: Memória Cache Introdução Devido a grande diferença de velocidade existente entre o processador e a memória principal, foi desenvolvido um elemento intermediário que tem o propósito de minimizar o impacto

Leia mais

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

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Conceitos básicos e serviços do Sistema Operacional Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Tipos de serviço do S.O. O S.O.

Leia mais

ARQUITETURA DE COMPUTADORES - 1866

ARQUITETURA DE COMPUTADORES - 1866 6.7 Operações com as Memórias: Já sabemos, conforme anteriormente citado, que é possível realizar duas operações em uma memória: Escrita (write) armazenar informações na memória; Leitura (read) recuperar

Leia mais

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

Componentes básicos de um sistema computacional. Cap. 1 (Stallings) Componentes básicos de um sistema computacional Cap. 1 (Stallings) 1 Sistema de Operação Explora recursos de hardware de um ou mais processadores Provê um conjunto de serviços aos utilizadores Gerencia

Leia mais

Organização e Arquitetura de Computadores

Organização e Arquitetura de Computadores Organização e Arquitetura de Computadores Entrada e saída Alexandre Amory Edson Moreno Nas Aulas Anteriores Foco na Arquitetura e Organização internas da Cleo Modelo Von Neuman Circuito combinacional Circuito

Leia mais

1.2 Tipos de Sistemas Operacionais

1.2 Tipos de Sistemas Operacionais 1.2 Tipos de Operacionais Tipos de Operacionais Monoprogramáveis/ Monotarefa Multiprogramáveis/ Multitarefa Com Múltiplos Processadores 1.2.1 Monoprogramáveis/Monotarefa Os primeiros sistemas operacionais

Leia mais

Sistemas Operacionais Cap 3 Estruturas de Sistemas Operacionais. Podemos analisar um sistema operacional sob diversos aspectos:

Sistemas Operacionais Cap 3 Estruturas de Sistemas Operacionais. Podemos analisar um sistema operacional sob diversos aspectos: Estruturas de Sistemas Operacionais Podemos analisar um sistema operacional sob diversos aspectos: Os serviços que o sistema operacional oferece. A interface que o sistema operacional torna disponível

Leia mais

Arquitetura de Computadores. Introdução aos Sistemas Operacionais

Arquitetura de Computadores. Introdução aos Sistemas Operacionais Arquitetura de Computadores Introdução aos Sistemas Operacionais O que é um Sistema Operacional? Programa que atua como um intermediário entre um usuário do computador ou um programa e o hardware. Os 4

Leia mais

Sistemas Operativos. Gestão de memória. Rui Maranhão (rma@fe.up.pt)

Sistemas Operativos. Gestão de memória. Rui Maranhão (rma@fe.up.pt) Sistemas Operativos Gestão de memória Rui Maranhão (rma@fe.up.pt) Gestão de memória idealmente a memória seria grande rápida não volátil contudo, na realidade existem limitações físicas! Portanto... hierarquia

Leia mais

Sistemas Operacionais Cap 2 Estruturas de Sistemas Computacionais

Sistemas Operacionais Cap 2 Estruturas de Sistemas Computacionais Estruturas de Sistemas Computacionais Por que estudar a arquitetura de sistemas computacionais? Talvez porque o comportamento de um sistema operacional está ligado aos mecanismos de E/S de um computador.

Leia mais

EXEMPLO: Processo para atualização da hora Processo para monitoramento da necessidade de proteção de tela. Figura 4-1 - Exemplo

EXEMPLO: Processo para atualização da hora Processo para monitoramento da necessidade de proteção de tela. Figura 4-1 - Exemplo 4 PROCESSOS Os primeiros sistemas operacionais permitiam que apenas um processo fosse executado por vez. Dessa maneira, este processo tinha todo o sistema computacional a sua disposição. Os atuais sistemas

Leia mais

Sistemas Operacionais

Sistemas Operacionais 7 Sistemas Operacionais 7.1 Fundamentos da ciência da computação Cengage Learning Objetivos 7.2 Compreender o papel do sistema operacional. Compreender o processo de inicialização para carregar o sistema

Leia mais

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

ANHANGUERA EDUCACIONAL. Capítulo 2. Conceitos de Hardware e Software ANHANGUERA EDUCACIONAL Capítulo 2 Conceitos de Hardware e Software Hardware Um sistema computacional é um conjunto de de circuitos eletronicos. Unidade funcionais: processador, memória principal, dispositivo

Leia mais

Desenvolvimento de um Simulador de Gerenciamento de Memória

Desenvolvimento de um Simulador de Gerenciamento de Memória 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

Leia mais

Sistemas Operacionais. Roteiro. Introdução. Marcos Laureano

Sistemas Operacionais. Roteiro. Introdução. Marcos Laureano Sistemas Operacionais Marcos Laureano 1/68 Roteiro Arquivos Organização de arquivos Diretórios Métodos de acesso Métodos de alocação em disco Fragmentação Tamanho de bloco Proteção de acesso 2/68 Introdução

Leia mais

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

William Stallings Arquitetura e Organização de Computadores 8 a Edição William Stallings Arquitetura e Organização de Computadores 8 a Edição Capítulo 7 Entrada/saída Os textos nestas caixas foram adicionados pelo Prof. Joubert slide 1 Problemas de entrada/saída Grande variedade

Leia mais

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

ROM-BIOS Inicialização Sistemas de Arquivos Formatação ROM-BIOS Inicialização Sistemas de Arquivos Formatação 1 ROM-BIOS ROM-BIOS Basic Input/Output System (Sistema Básico de Entrada/Saída). O termo é incorretamente conhecido como: Basic Integrated Operating

Leia mais

Admistração de Redes de Computadores (ARC)

Admistração de Redes de Computadores (ARC) Admistração de Redes de Computadores (ARC) Instituto Federal de Educação, Ciência e Tecnologia de Santa Catarina - Campus São José Prof. Glauco Cardozo glauco.cardozo@ifsc.edu.br RAID é a sigla para Redundant

Leia mais

Dispositivos de Armazenamento. Prof. Flávio Humberto Cabral Nunes

Dispositivos de Armazenamento. Prof. Flávio Humberto Cabral Nunes Dispositivos de Armazenamento Prof. Flávio Humberto Cabral Nunes Conteúdo 1. Discos 2. Fitas magnéticas 3. CD-ROM Capítulo: 2 (APOSTILA). Dispositivos de Armazenamento Armazenamento permanente Custo menor

Leia mais

SIMULADOR DE MECANISMOS DE GERÊNCIA DE

SIMULADOR DE MECANISMOS DE GERÊNCIA DE UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIAS DA COMPUTAÇÃO BACHARELADO SIMULADOR DE MECANISMOS DE GERÊNCIA DE MEMÓRIA REAL E VIRTUAL GUSTAVO MORITZ BLUMENAU

Leia mais

Usuários. Aplicativos e programas dos usuários. Kernel gerenciamento de processos, memória, sistema de arquivos, I/O, etc.

Usuários. Aplicativos e programas dos usuários. Kernel gerenciamento de processos, memória, sistema de arquivos, I/O, etc. 1 1.0 Kernel O kernel (núcleo) representa o coração do Sistema Operacional. Atribuições do kernel: - gerenciamento dos arquivos em disco; - inicializar programas e executá-los; - alocar e gerenciar memória

Leia mais

Sistemas Operacionais

Sistemas Operacionais UNIVERSIDADE BANDEIRANTE DE SÃO PAULO INSTITUTO POLITÉCNICO CURSO DE SISTEMAS DE INFORMAÇÃO Sistemas Operacionais Notas de Aulas: Tópicos 7 e 8 Estrutura do Sistema Operacional São Paulo 2009 1 Sumário

Leia mais

Conceitos de Sistemas Operacionais

Conceitos de Sistemas Operacionais Conceitos de Sistemas Operacionais Romildo Martins Bezerra IFBA/DTEE Computação e Processamento de Dados Conceitos de Sistemas Operacionais... 1 Arquitetura Conceitual de um Computador... 2 Processadores...

Leia mais

1.1. Organização de um Sistema Computacional

1.1. Organização de um Sistema Computacional 1. INTRODUÇÃO 1.1. Organização de um Sistema Computacional Desde a antiguidade, o homem vem desenvolvendo dispositivos elétricoeletrônicos (hardware) que funciona com base em instruções e que são capazes

Leia mais

Gerência de Processador

Gerência de Processador Gerência de Processador Prof. Edwar Saliba Júnior Junho de 2009 Unidade 03-003 Gerência de Processador 1 Introdução Com o surgimento dos sistemas multiprogramáveis, onde múltiplos processos poderiam permanecer

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Gerência de Memória Paginação e Segmentação Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Slides baseados nas apresentações dos prof. Tiago Ferreto e Alexandra

Leia mais

AULA 5 Sistemas Operacionais

AULA 5 Sistemas Operacionais AULA 5 Sistemas Operacionais Disciplina: Introdução à Informática Professora: Gustavo Leitão Email: gustavo.leitao@ifrn.edu.br Sistemas Operacionais Conteúdo: Partições Formatação Fragmentação Gerenciamento

Leia mais

ARQUITETURA DE COMPUTADORES II

ARQUITETURA DE COMPUTADORES II ARQUITETURA DE COMPUTADORES II UNIDADE 2: GERÊNCIA DE MEMÓRIA Conteúdo: INTRODUÇÃO 2 Exemplo da Biblioteca 2 2 HIERARQUIA DE MEMÓRIA 4 3 GERÊNCIA DE MEMÓRIAS CACHE 6 3 Mapeamento de endereços em memória

Leia mais

Arquiteturas RISC. (Reduced Instructions Set Computers)

Arquiteturas RISC. (Reduced Instructions Set Computers) Arquiteturas RISC (Reduced Instructions Set Computers) 1 INOVAÇÕES DESDE O SURGIMENTO DO COMPU- TADOR DE PROGRAMA ARMAZENADO (1950)! O conceito de família: desacoplamento da arquitetura de uma máquina

Leia mais