Sistemas Operacionais

Slides:



Advertisements
Apresentações semelhantes
1998 Morgan Kaufmann Publishers Mario Côrtes - MO401 - IC/Unicamp- 2004s2 Ch5A-1 Chapter Five The Processor: Datapath and Control.
Advertisements

ADT – Arvore Binária de Pesquisa
Profa. Ana Cristina Benso da Silva Disciplina: Redes de Computadores
Sequences Marilde Santos. O que são Sequences? Valores sequenciais podem ser gerados automaticamente pelo Oracle com o uso de sequences. A sequence gera.
1998 Morgan Kaufmann Publishers Mario Côrtes - MO401 - IC/Unicamp- 2004s2 Ch7a-1 Chapter Seven Sistemas de Memória.
1998 Morgan Kaufmann Publishers Mario Côrtes - MO401 - IC/Unicamp- 2002s1 Ch7-1 Chapter Seven Sistemas de Memória.
Estruturas Fundamentais
Listas Ordenadas e Listas Classificadas. 2 Sumário Fundamentos Listas Ordenadas Listas Classificadas.
Listas Encadeadas Circulares Listas Duplamente Encadeadas
Listas Encadeadas Circulares Listas Duplamente Encadeadas
Espalhamento.
Dúvidas surgidas na aula prática de BCB. 2 Alocação de espaços int m = 3; // THE NUMBER OF ROWS. int n = 5; // THE NUMBER OF COLUMNS. data = new long.
2008 LCG/UFRJ. All rights reserved. 1 Standard Template Library STL Claudio Esperança Paulo Roma Cavalcanti.
1 A Linguagem SQL Todo Banco de Dados apresenta uma Linguagem para definição e uma para manipulação de dados. Com relação aos Bancos de Dados Relacionais,
Char Drivers Alexandre Madeira Taciano Rodolfo Programação de Periféricos Eduardo Augusto Bezerra 30/06/2005.
A.4. Trabalhando com elementos de biblioteca STL – Standard Template Libraby Disponibiliza um conjunto de classes templates, provendo algoritmos eficientes.
Ronaldo Celso Messias Correia
Gerenciamento de Memória
Linux Kernel Capítulo 3 – Escalonamento de Processos.
Modelo planetário: errado Elétrons são descritos por meio de funções de onda Mecânica Quântica : probabilidades.
FORTRAN 90 Denise Yumi Takamura.
Objeto de BD: visão Há 2 tipos de tabelas Tabela base
Concepção de Circuitos e Sistemas Integrados João Paulo Cunha Bolsa Voluntária/PIBIC Prof. André Augusto Mariano, Ph.D. / Bernardo R. B. A. Leite, Ph.D.
Sistemas Operacionais
Prof. Dr. Helder Anibal Hermini
Arquiteturas de 4, 3, 2, 1 e 0 endereços.
Compressão por Hardware
Curso Grid Globus Monitoring and Discovery Service (MDS)
Gerência de Dados em Grades Motivação: – 1a geração de suporte a dados em Grades: ferramentas para transferência e catalogação de réplicas: Globus: GridFTP,
Objetivo Receber propriedades rurais georreferenciadas e analisar a situação da Reserva Legal - RL, das áreas de Preservação Permanente - APP e das áreas.
Snap Together Visualization. Introdução - Exploração Visual de Dados Aplicada em conjuntos de dados abstratos. Facilitar a percepção de padrões, tendências,
Ch7a-1 Capítulo 7 Sistemas de Memória. Ch7a-2 SRAM (Static RAM): –Valor é armazenado por meio da interligação de um par de inversores –Rápido, mas consome.
Arquitetura da informação Por Luiz Siqueira. O nome é imponente e a técnica está na moda. Contudo, o importante é o seguinte: a Arquitetura de Informação.
Funções de um computador
Técnicas de Amostragem
Capitulo 3 Técnicas de Diagnóstico CT-282 Tutores Inteligentes Diego Ajukas.
CES-11 LAB 03 Bitmap Quadtree
Capítulo VII – Tipos Enumerativos e Estruturas 7.1 – Tipos enumerativos 7.2 – A necessidade de estruturas 7.3 – Manipulação dos campos de uma estrutura.
1.3 – Interpretadores – Compiladores versus Interpretadores
CES-10 INTRODUÇÃO À COMPUTAÇÃO Capítulo XI Noções de Estruturas de Dados.
Capítulo IX – Ponteiros 9.1 – Introdução 9.2 – Relação entre ponteiros e variáveis indexadas 9.3 – Alocação dinâmica de memória 9.4 – Variáveis indexadas,
TA 733 A – Operações Unitárias II
Formação de Administradores de Redes Linux LPI – level 1 SENAC TI Fernando Costa.
FUNDAÇÃO CARLOS CHAGAS
Arquitetura de ComputadoresProf a Luiza Mourelle Apesar da evolução tecnológica, as CPUs continuam mais rápidas que a memória. O problema não é tecnológico,
Desempenho A rápida taxa de melhoria na tecnologia de computadores veio em decorrência de dois fatores: avanços na tecnologia utilizada na construção.
Hierarquia de Memória No projeto de um sistema digital, deve-se ter em mente que hardware menor geralmente é mais rápido do que hardware maior. A propagação.
C/C++.
Laboratório de Programação Prof. Oscar Luiz Monteiro de Farias
Capítulo 1 Introdução 1.1 O que é um sistema operacional
Tecnologia para Web JavaScript Enrique Pimentel Leite de Oliveira
Recursividade Estrutura de Dados.
Marco Antonio Montebello Júnior
Curso de Programação em C++ Universidade Federal do Ceará Departamento de Engenharia Estrutural e Construção Civil Prof: Evandro Parente Junior Monitor:
Curso de Programação em C++ Universidade Federal do Ceará Departamento de Engenharia Estrutural e Construção Civil Prof: Evandro Parente Junior Monitor:
LINGUAGENS DE PROGRAMAÇÃO
Sistemas Operacionais e Windows XP Aula 04 – DCA0302.
04:27 Introdução Tipos de Fluxo de Dados e de Arquivos Manipulação de Arquivos em Java Classes FileReader e FileWriter Classes FileInputStream e FileOutputStream.
Introdução Ciência da Computação estudo de algoritmos –ÊNFASE ao estudo de DADOS armazenamento manipulação refinamento (a partir de dados cru) estrutura.
Sistemas Operacionais
Um Tour pela Arquitetura do OpenEdge™ RDBMS
Tópicos Especiais em Aprendizagem Reinaldo Bianchi Centro Universitário da FEI 2012.
Sincronização com Locks. Locks É um mecanismo de sincronização de processos/threads em que estas devem ser programadas de modo que seus efeitos sobre.
WEKA. Roteiro Introdução Conceitos Exemplos práticos Chamada ao aplicativo.
INPE / CAP-315 Airam J. Preto, Celso L. Mendes Aula 30 (1) Empacotamento de Dados em MPI Tópicos: Buffer de Mensagem Empacotamento/Desempacotamento.
1 Semântica de Ações Ações Básicas, Ações Funcionais e Notação de Dados.
Infra-estrutura de Hardware
ArrayList e Genéricos Profs. PROG2 - UNISINOS.
Capítulo 17: Sistemas de Arquivos Distribuídos Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Apr 4, 2005 Capítulo.
Gerência de Memória no Linux
Transcrição da apresentação:

Sistemas Operacionais Page Cache e Page Writeback Vinicius Faria Culmant Ramos Prof.: Vitor Santos Costa

Introdução Page Cache é, fisicamente, uma página na RAM; Cada página corresponde a vários blocos no disco; O kernel busca informações primeiro no cache para depois buscar no disco.

Características Minimizar disk I/O -> Armazenar dados em memória que pode vir a ser utilizado; Acesso ao disco é muito mais lento do que acesso à memória; Páginas acessadas são muito prováveis de serem acessadas em um curto espaço de tempo. Page Cache x86 -> tamanho 4Kb

address_space SVR4 utilizava o Page Cache apenas para dados do filesystem; SVR4 Page Cache utilizado é equivalente ao file object (struct vnode); Linux armazena qualquer page-based object, incluindo diferentes tipos de arquivos e mapeamento de memória; Utiliza a estrutura address_space que identifica as páginas no Page Cache;

address_space linux/fs.h struct address_space { }; struct inode *host; /* owning inode */ struct radix_tree_root page_tree; /* radix tree of all pages */ spinlock_t tree_lock; /* page_tree lock */ unsigned int i_mmap_writable; /* VM_SHARED ma count */ struct prio_tree_root i_mmap; /* list of all mappings */ struct list_head i_mmap_nonlinear; /* VM_NONLINEAR ma list */ spinlock_t i_mmap_lock; /* i_mmap lock */ atomic_t truncate_count; /* truncate re count */ unsigned long nrpages; /* total number of pages */ pgoff_t writeback_index; /* writeback start offset */ struct address_space_operations *a_ops; /* operations table */ unsigned long flags; /* gfp_mask and error flags */ struct backing_dev_info *backing_dev_info; /* read-ahead information */ spinlock_t private_lock; /* private lock */ struct list_head private_list; /* private list */ struct address_space *assoc_mapping; /* associated buffers */ };

address_space i_nmap -> Árvore de prioridades de todos as mapas de memória, tanto compartilhado quanto privados; address_space está associado a algum objeto do kernel, geralmente é um inode; *host pode ser NULL se o objeto associado não for um inode, por exemplo uma área de swap; a_ops aponta para a tabela de operações do address_space; Esta tabela está descrita na estrutura address_space_operations;

address_space struct address_space_operations { }; int (*writepage)(struct page *, struct writeback_control *); int (*readpage) (struct file *, struct page *); int (*sync_page) (struct page *); int (*writepages) (struct address_space *, struct writeback_control *); int (*set_page_dirty) (struct page *); int (*readpages) (struct file *, struct address_space *, struct list_head *, unsigned); int (*prepare_write) (struct file *, struct page *, unsigned, unsigned); int (*commit_write) (struct file *, struct page *, unsigned, unsigned); sector_t (*bmap)(struct address_space *, sector_t); int (*invalidatepage) (struct page *, unsigned long); int (*releasepage) (struct page *, int); int (*direct_IO) (int, struct kiocb *, const struct iovec *, loff_t, unsigned long); };

read_page() Um dos métodos mais importantes; Page = find_get_page(mapping, index); // Busca a página no page cache Se a página não estiver no cache: struct page *cached_page; int error; cached_page = page_cache_alloc_cold(mapping); if (!cached_page) /* error allocating memory */ error = add_to_page_cache_lru(cached_page, mapping, index, GFP_KERNEL); if (error) /* error adding page to page cache */ error = mapping->a_ops->readpage(file, page);

write_page() Um dos métodos mais importantes; Quando uma página é modificada sempre é chamada a função SetPageDirty(page); Para escrever, faz-se uma busca no cache pela página; Se não estiver, uma página é alocada e adicionada; prepare_write() é invocada para setar a requisição de escrita; Os dados são copiados da área do usuário para o Kernel buffer; Os dados são copiados para o disco com a função commit_write();

Obrigado!