1 COS 773- SISTEMAS OPERACIONAIS Prof: Vitor BLOCK I/O Cristiane Magalhães.

Slides:



Advertisements
Apresentações semelhantes
The Block I/O Layer Rafael Lopes Bezerra.
Advertisements

Arquitetura de Sistemas Operacionais
Sistemas Operacionais
DESENVOLVIMENTO DE SISTEMAS PARA INTERNET
INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Prof. Diogo Souza.
Sistemas operacionais
Sistemas operacionais
Entrada e Saída Introdução.
Técnicas para operações E/S
Arquitetura de Sistemas Operacionais
Arquitetura de Sistemas Operacionais Francis Berenger Machado
Introdução à Informática
Sumário 1 SQL Embutida 2 Processamento de Consultas
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação SSC541 - SISTEMAS OPERACIONAIS I Aula.
Introdução à Informática
Modificadores de tipos e Arquivos
Device Drivers no Windows e Linux Visão Geral e Boas Práticas
Capítulo 6 Sistemas de Arquivos 6.1 Arquivos 6.2 Diretórios
Sistemas Operacionais
Estruturas de Dados I Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Estruturas de Controle
Componentes do Computador e noções de Arquitetura de Computadores
Sistemas Operacionais Turmas MBI1 e NBI2. Prof: Marcelo Mendes.
Debian Gerência de Memória.
Threads.
FEUPDEECRedes de Computadores, 4º Ano de EEC, ramo de ACI Sockets Abril, 98Isidro Vila Verde 1 Formato das estruturas de dados Estrutura.
Sistemas Operacionais SISTEMA DE ENTRADA E SAÍDA
Listas Encadeadas.
Sistemas Operacionais I
30/03/2017 Aula 14 – Memórias Profª. : Élida Tavares.
Sistemas Operacionais I
Sistemas Operacionais
Proteção de Memória O sistema operacional deve impedir que um processo tenha acesso ou modifique uma página do sistema sem autorização. Proteção para páginas.
Tecnologias Especificas Informática
Fundamentos da Arquitetura de Computadores
Sistemas Operacionais
Sistemas Operacionais
Sistemas Operacionais
Sistemas Operacionais
Estrutura de dados II Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
SISTEMAS OPERACIONAIS
Sistemas Operacionais
Gerência de Memória Virtual
Sistemas Operacionais
Sistemas Operacionais
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Capítulo 11: Implementação de Sistemas de Arquivos.
2.5 Processos no Minix 1. gerenciamento de processos:
Capítulo 5 Entrada/Saída 5.1 Princípios do hardware de E/S
Sistemas Operacionais Entrada e Saída – Aula II Prof. Galvez.
Componentes básicos de um computador
Sistemas Operacionais
SISTEMAS OPERACIONAIS I
Sistemas Operacionais: Sistema de Arquivos
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Capítulo 10: Interface de Sistemas de Arquivos.
Subsistema de Entrada e Saída do Kernel
Ch7b-1 Capítulo Sistemas de Memória - Memória Virtual.
Infra-Estrutura de Software
Gerenciamento de Memória - Capítulo 7 - Sistemas Operacionais Prof. Dr. José Carlos Becceneri Luciana Sêda Cardoso.
Introdução à Computação Componentes Básicos dos Computadores
Sistemas de Arquivos- Cap4
Sistemas de Arquivos Sistemas Operacionais Profa. Priscila Facciolli
Sistemas Operacionais IV – Gerenciamento de E/S
Sistemas Operacionais Multimídia. Sistemas de Arquivos Multimídia Duas abordagens para tratar mídias contínuas em sistemas de arquivos: –1a.: organização.
Capítulo 5 Entrada/Saída 5.1 Princípios do hardware de E/S
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas de Arquivos Capítulo Arquivos 6.2 Diretórios 6.3 Implementação do sistema.
Sistemas Operacionais Sistemas de Arquivos Prof. José Queiroz - ZEQUE.
Estruturas de Sistemas Operacionais. Componentes Comuns do Sistema Administração de Processos Administração da Memória Principal Administração do Armazenamento.
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais FATEC-PB Professor: Gustavo Wagner
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais FATEC-PB Professor: Gustavo Wagner
Transcrição da apresentação:

1 COS 773- SISTEMAS OPERACIONAIS Prof: Vitor BLOCK I/O Cristiane Magalhães

2 Sumário n Objetivo n Definições n Anatomia de um dispositivo de bloco n Buffers e cabeçalhos do buffer n Estrutura bio n Diferenças entre cabeçalhos do buffer e estrutura bio n Filas de Solicitação n Schedulers de E/S

3 Objetivo n O Kernel gerencia os dispositivos de bloco e suas solicitações. Essa parte do Kernel é conhecida como camada de E/S de bloco. Objetivo do Kernel de desenvolvimento 2.5: Consertar a camada de E/S de bloco. Objetivo do Kernel de desenvolvimento 2.5: Consertar a camada de E/S de bloco.

4 Definições n Dispositivos de Bloco: São dispositivos de hardware diferenciados por seu acesso aleatório (isto é, não necessariamente sequencial); Exemplos de dispositivo de blocos: disco rígido, disquetes, drivers de CD-ROM e memória flash; Exemplos de dispositivo de blocos: disco rígido, disquetes, drivers de CD-ROM e memória flash; n Dispositivos de Caractere ou Dispositivo Char: São acessados como um fluxo de dados sequenciais, um byte depois do outro; Exemplos de dispositivos char: Portas seriais e teclados. Tem apenas uma posição (a atual), já os dispositivos de bloco tem que ser capazes de navegar entre qualquer local no meio

5 Definições Se o dispositivo de hardware for acessado como um fluxo de dados, será implementado como um dispositivo de caractere; Se o dispositivo de hardware for acessado como um fluxo de dados, será implementado como um dispositivo de caractere; Por outro lado, se o dispositivo de hardware for acessado aleatoriamente, será implementado como um dispositivo de bloco; Por outro lado, se o dispositivo de hardware for acessado aleatoriamente, será implementado como um dispositivo de bloco; A diferença: se você acessa o dispositivo aleatoriamente, ou seja, se o dispositivo pode buscar uma posição a partir da outra. A diferença: se você acessa o dispositivo aleatoriamente, ou seja, se o dispositivo pode buscar uma posição a partir da outra.

6 Anatomia de um dispositivo de bloco n Bloco: É a menor unidade endereçável para o sistema de arquivos (os sistemas de arquivos podem ser acessados somente em múltiplos de um bloco); São também chamados de blocos do sistema de arquivos ou blocos da E/S São também chamados de blocos do sistema de arquivos ou blocos da E/S É composto por um ou mais setores, mas não mais que o tamanho de uma página. Portanto, uma única página pode manter um ou mais blocos na memória; É composto por um ou mais setores, mas não mais que o tamanho de uma página. Portanto, uma única página pode manter um ou mais blocos na memória; O kernel executa todas as operações do disco em termos de blocos. O kernel executa todas as operações do disco em termos de blocos. O kernel precisa que o bloco seja uma potência de dois; O kernel precisa que o bloco seja uma potência de dois;

7 Anatomia de um dispositivo de bloco n Setor: É a unidade fundamental de todos os dispositivos de bloco; É a unidade fundamental de todos os dispositivos de bloco; Menor unidade endereçável em um dispositivo de bloco, logo, o tamanho do bloco não pode ser menor que o setor e tem que ser um múltiplo de um setor; Menor unidade endereçável em um dispositivo de bloco, logo, o tamanho do bloco não pode ser menor que o setor e tem que ser um múltiplo de um setor; O dispositivo não pode endereçar ou operar em uma unidade menor que o setor, embora muitos dispositivos possam transferir diversos setores de uma só vez; O dispositivo não pode endereçar ou operar em uma unidade menor que o setor, embora muitos dispositivos possam transferir diversos setores de uma só vez; O tamanho mais comum é de 512 bytes; O tamanho mais comum é de 512 bytes; São também chamados de setores permanentes ou blocos do dispositivo É importante para o kernel pq toda E/S do dispositivo tem que ser feita nas unidades dos setores. É importante para o kernel pq toda E/S do dispositivo tem que ser feita nas unidades dos setores.

8 Buffers e cabeçalhos do buffer n Quando um bloco é armazenado na memória, é armazenado em um buffer; n Cada buffer é associado exatamente a um bloco; n Como o kernel requer algumas informações de controle associadas para acompanhar os dados (como de qual dispositivo do bloco e de qual bloco específico o buffer é) cada buffer é associado a um descritor; n O descritor é chamado de cabeçalho do buffer e é do tipo struct buffer_head n A estrutura buffer_head mantém todas as informações que o kernel precisa para manipular os buffers e é definida em n A estrutura buffer_head mantém todas as informações que o kernel precisa para manipular os buffers e é definida em

9 Buffers e cabeçalhos do buffer Struct buffer_head { unsigned long b_state;/* buffer state flags */ atomic_tb_count ;/* buffer usage counter */ struct buffer_head*b_this_page;/* list of buffers on the page */ struct page*b_page;/* associated page */ sector_tb_blocknr;/* logic block number */ u32b_size;/* block size (int bytes) */ char*b_data;/* pointer to buffer in the page*/ struct block_device*b_bdev;/* associated block device */ bh_end_io_t*b_end_io;/* I/O completion method */ void*b_private;/* completion method data */ struct list_headb_assoc_buffers/* list of associated mappings */ } ;

10 Buffers e cabeçalhos do buffer n Antes do kernel 2.6, o cabeçalho do buffer era a estrutura de dados mais importante. Basicamente, era a unidade de E/S no kernel. n O cabeçalho do buffer não descrevia somente o mapeamento do bloco do disco para a página física, mas também agia como um contêiner usado para toda E/S do bloco. Isso tinha dois problemas básicos: 1º) O cabeçalho do buffer era uma estrutura de dados grande e difícil (O kernel prefere trabalhar em termos de páginas, que são simples e permitem um maior desempenho); 2º) O cabeçalho do buffer quando usado como um contêiner para todas as operações de E/S, faz com que o kernel divida as operações de E/S do bloco em diversas estruturas buffer_head, isso resulta em um overhead desnecessário e no consumo do espaço

11 Estrutura BIO n O objetivo do kernel de desenvolvimento 2.5 foi introduzir um novo contêiner flexível e leve para as operações de E/S do bloco: Estrutura bio. n Representa as operações de E/S do bloco que são feitas como uma lista de segmentos. n Segmento: É uma parte do buffer que é contínua na memória. Assim os buffers individuais não precisam ser contínuos na memória. Permitindo que os buffers sejam descritos em partes, a estrutura bio fornece a capacidade de executar as operações de E/S do bloco de até um único buffer a partir de vários locais na memória.

12 Estrutura BIO Struct bio { Sector _tbi_sector;/* associated sector on disk */ Struct bio *bi_next;/* list of requests */ struct block_device*bi_bdev ;/* associated block device*/ unsigned longbi_flags;/* status and commad flags*/ unsigned long bi_rw;/* read or write? */ unsigned shortbi_vcnt;/* number of bio_vec´s off bi_io_vec */ unsigned shortbi_idx;/* current index in bi_io_vec */ unsigned shortbi_phys_segments;/* number of segments after coalescing unsigned short bi_hw_segments;/* number of segments after remapping*/ unsigned int bi_size;/* I/O count */ unsigned short bi_max_vecs;_/* maximum bio_vecs possible */ struct bio_vec*bi_io_vec;/* bio_vec list */ bio_end_io_t*bi_end_io;/* I/O completion method */ atomic_t bi_cnt/* usage counter */ void *bi_private;/* owner-private method */ bio_destructor_t*bi_destructor;/* destructor method */ } ;

13 Diferenças entre os cabeçalhos do buffer e a estrutura bio n Cabeçalhos do Buffer: Representa um único buffer, que descreve um único bloco no disco, Representa um único buffer, que descreve um único bloco no disco, São ligados a um único bloco do disco em uma única página, resultando na divisão desnecessária das solicitações em partes do tamanho do bloco; São ligados a um único bloco do disco em uma única página, resultando na divisão desnecessária das solicitações em partes do tamanho do bloco; É requerido para funcionar como um descritor mapeando os blocos do disco para as páginas. É requerido para funcionar como um descritor mapeando os blocos do disco para as páginas. n Estrutura bio: Representa uma operação E/S, que pode incluir uma ou mais páginas na memória; Representa uma operação E/S, que pode incluir uma ou mais páginas na memória; É mais leve e pode descrever blocos descontínuos e não divide desnecessariamente as operações de E/S É mais leve e pode descrever blocos descontínuos e não divide desnecessariamente as operações de E/S Não contém nenhuma informação sobre o estado do buffer Não contém nenhuma informação sobre o estado do buffer

14 Filas de Solicitação n Os dispositivos de bloco mantêm filas de solicitação para armazenar suas solicitações de E/S do bloco pendente; n São representadas pela estrutura request_queue e é definida em n São representadas pela estrutura request_queue e é definida em n Contém uma lista de solicitações e informações de controle associadas (as solicitações são adicionadas á fila pelo código de nível mais alto no kernel como os sistemas de arquivos); n A fila de solicitação não estando vazia, o driver do dispositivo de bloco associado á fila obterá o cabeçalho da fila e irá envia-lo para seu dispositivo de bloco associado. n Cada item na lista de solicitação da fila é uma solicitação do tipo struct request

15 Schedulers de E/S n Funciona gerenciando a fila de solicitação de um dispositivo de bloco; n Gerencia a fila de solicitação, decidindo a ordem das solicitações e em qual hora cada solicitação é enviada para o dispositivo de bloco; n Executa duas ações para minimizar as buscas: Mescla: É a combinação de duas ou mais solicitações em uma Mescla: É a combinação de duas ou mais solicitações em uma Classificação Classificação n Não deve ser confundido com o scheduler do processo. O sheduler do processo divide o recurso do processador entre os processos no sistema. n Exemplo de schedulers de E/S: Elevador Linus (era o schedulers de E/S default no 2.4).