Infra-Estrutura de Software

Documentos relacionados
Sistemas Operacionais Entrada / Saída. Carlos Ferraz (cagf@cin.ufpe.br) Jorge Cavalcanti Fonsêca (jcbf@cin.ufpe.br)

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

Sistemas Operacionais Arquivos. Carlos Ferraz Jorge Cavalcanti Fonsêca

SISTEMAS OPERACIONAIS

Sistemas Operacionais

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

UFRJ IM - DCC. Sistemas Operacionais I. Unidade IV Sistema de arquivos. Prof. Valeria M. Bastos Prof. Antonio Carlos Gay Thomé 13/06/2012 1

Sistemas de Arquivos. Arquivos Diretórios Implementação do sistema de arquivos Gerenciamento de espaço em disco

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

ARQUITETURA DE COMPUTADORES

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

Arquitetura de Sistemas Operacionais

Prof. Bruno Calegaro

Sistemas Operacionais Gerência de Dispositivos

Sistemas Operacionais

SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA

Sistemas Operacionais

Estrutura Interna do KernelUNIX Sistema O. Estrutura Interna de Arquivos (1) Estrutura Seqüência. User application. Standard Unix libraries

SISTEMAS OPERACIONAIS. Sistemas de Arquivos Apostila 09

Gerência do Sistema de Arquivos. Adão de Melo Neto

Sistemas Operacionais Arquivos

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

6 - Gerência de Dispositivos

Notas da Aula 15 - Fundamentos de Sistemas Operacionais

Gerência de Entrada/Saída

Sistema de arquivos. Dispositivos com tecnologias variadas. CD-ROM, DAT, HD, Floppy, ZIP SCSI, IDE, ATAPI,... sistemas de arquivos em rede

Capítulo 6 Sistemas de Arquivos

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

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

Sistemas de Arquivos. Sistemas Operacionais - Professor Machado

Sistemas Operacionais 3º bimestre. Dierone C.Foltran Jr.

Arquitetura de Computadores. Tipos de Instruções

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

Fundamentos de Sistemas Operacionais

Gerenciamento de Entrada e Saída Hélio Crestana Guardia e Hermes Senger

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

E/S PROGRAMADA E/S PROGRAMADA E/S USANDO INTERRUPÇÃO

Sistemas Operacionais. Roteiro. Hardware. Marcos Laureano

Dispositivos de Entrada e Saída

Estruturas do Sistema de Computação

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

5 Entrada e Saída de Dados:

Fundamentos de Arquivos e Armazenamento Secundário

Visão Geral de Sistemas Operacionais

Memória Cache. Prof. Leonardo Barreto Campos 1

Entrada e Saída. Prof. Leonardo Barreto Campos 1

Entrada e Saída. Interface entre periféricos, processador e memória. Fonte: Minho - Portugal 1

Organização de Computadores 1

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

FACENS Engenharia Mecatrônica Sistemas de Computação Professor Machado. Memória Armazenamento Sistema de Arquivos

Sistemas Operacionais: Sistema de Arquivos

3. Arquitetura Básica do Computador

Sistemas Operacionais

Sistemas Operacionais

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

SOP - TADS Sistemas de Arquivos Cap 4 Tanenmbaum

Tipos de sistemas operacionais

Organização e Arquitetura de Computadores

Sistema de Arquivos. Sistemas de Arquivos

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

Arquitetura e Organização de Computadores I

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

Aula 3. Sistemas Operacionais. Prof: Carlos Eduardo de Carvalho Dantas

Sistemas Operacionais

Organização de Computadores 1

Introdução aos Computadores

discos impressora CPU memória AULA 04 - Estruturas de Sistemas Computacionais Operação dos sistemas de computação Controlador de disco

SISTEMAS OPERACIONAIS 2007

SO - Conceitos Básicos. Introdução ao Computador 2010/01 Renan Manola

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

SW DE E/S INDEPENDENTE DE DISPOSITIVO

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 04 - Concorrência. Cursos de Computação

Sistemas Operacionais. Prof. André Y. Kusumoto

Recursos. Um recurso é ou um dispositivo físico (dedicado) do hardware, ou Solicitar o recurso: esperar pelo recurso, até obtê-lo.

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

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

Processos e Threads (partes I e II)

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

Figura 01 Kernel de um Sistema Operacional

GERENCIAMENTO DE DISPOSITIVOS

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

Sistema Operacional Correção - Exercício de Revisão

Notas da Aula 17 - Fundamentos de Sistemas Operacionais

Sistemas Operacionais. Andrique Amorim Gerência de Arquivos

SIMULADO Windows 7 Parte V

Introdução aos Sistemas

Sistemas Operacionais. Prof. André Y. Kusumoto

Arquitetura de Computadores para. Sistemas Operacionais. Sistemas Operacionais. Sumário

Organização e Arquitetura de Computadores

SISTEMAS OPERACIONAIS

Arquitetura de Computadores. Sistemas Operacionais IV

Arquitetura dos Sistemas Operacionais

Prof. Sandrina Correia

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

7 Processos. 7.1 Introdução

Arquitetura de Sistemas Operacionais

Transcrição:

Infra-Estrutura de Software Sistemas de Arquivos

Tópicos 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

Armazenamento da Informação a Longo Prazo 1. Deve ser possível armazenar uma quantidade muito grande de informação 2. A informação deve sobreviver ao término do processo que a usa persistência 3. Múltiplos processos devem ser capazes de acessar a informação concorrentemente compartilhamento

Orientada a computação/processamento processo Escalonamento e concorrência processador Memória virtual Paginação Segmentação memória Captura de dados entrada periféricos Armazenamento persistente sistema de arquivos disco Apresentação saída periféricos Processamento distribuído rede

Orientada a computação/processamento processo Escalonamento e concorrência processador Memória virtual Paginação Segmentação memória Captura de dados entrada periféricos Armazenamento persistente sistema de arquivos disco Apresentação saída periféricos Processamento distribuído rede E/S

Orientada a computação/processamento processo Escalonamento e concorrência processador Memória virtual Paginação Segmentação memória Captura de dados entrada periféricos Armazenamento persistente sistema de arquivos disco Apresentação saída periféricos Processamento distribuído rede

Introdução Os arquivos são gerenciados pelo sistema operacional e é mediante a implementação de arquivos que o sistema operacional estrutura e organiza as informações A parte do sistema responsável pela gerência é denominada sistema de arquivo que é a parte mais visível do sistema operacional pois é uma atividade freqüentemente realizada pelos usuários Deve ocorrer de maneira uniforme, independente dos diferentes dispositivos de armazenamento

Arquivo É um conjunto de registros definidos pelo sistema de arquivos e podem ser armazenados em diferentes dispositivos físicos É constituído de informações logicamente relacionadas, podendo representar programas ou dados

Idéias Básicas A representação da informação dentro de um computador é feita na forma de números No Linux ou no Windows, arquivos são concebidos e tratados como STREAMS de BYTES

Decifrando os números: o código A : 65 B : 66... Z : 90 a : 97 b : 98... z : 122 0 : 48 1 : 49... 9 : 57 Caracteres especiais: 0 : NULO 8 : BACKSPACE 9 : TAB 10 : mudança de linha 12 : mudança de página 13 : ENTER

Representação de um arquivo Representação interna do conteúdo de um arquivo 65 66 67 10 49 50 51 10 68 69 10 97 98 10 Convertendo a representação interna de um arquivo em um arquivo texto: A B C 10 1 2 3 10 D E 10 a b 10 mudança de linha mudança de linha mudança de linha mudança de linha

Representação de um arquivo Visualizando o arquivo no Terminal de Vídeo: A B C 10 1 2 3 10 D E 10 a b 10 $ cat arquivo ABC 123 DE ab $

Arquivo É identificado por meio de um nome, formado por uma seqüência de caracteres Em alguns sistemas operacionais, a identificação de um arquivo é composta por duas partes separadas por um ponto a parte após o ponto é chamada extensão do arquivo e serve para identificar o conteúdo Ex. <nome_arquivo>.<extensão>

Extensão de Arquivos Extensão arquivo.c arquivo.cob arquivo.exe arquivo.obj arquivo.java arquivo.txt arquivo.mp3 arquivo.dll Descrição Arquivo fonte em C Arquivo fonte em Cobol Arquivo executável Arquivo objeto Arquivo fonte em Java Arquivo texto Arquivo de música Arquivo de biblioteca dinâmica

Organização de Arquivos Consiste no modo como seus dados estão internamente armazenados Quando o arquivo é criado, pode-se definir que organização será adotada, que pode ser uma estrutura suportada pelo sistema operacional ou definida pela própria aplicação A forma mais simples de organização de arquivos é através de uma seqüência não-estruturada de bytes, onde o sistema de arquivos não impõe qualquer estrutura lógica para os dados a aplicação deve definir toda a organização

Organização de Arquivos A grande vantagem deste modelo é a flexibilidade para criar estruturas de dados, porém todo o controle de dados é de responsabilidade da aplicação Alguns sistemas operacionais estabelecem diferentes organizações de arquivos e cada um deve seguir um modelo suportado pelo sistema de arquivos As organizações mais conhecidas e implementadas são: seqüencial, relativa e indexada

Organização de Arquivos Byte Ana Claudia Teresa Beatriz Camila Daniele Patricia Tina Vanessa Isabela Maria Organização nãoestruturada Registro Organização Indexada

Estrutura de Arquivos Ant Fox Pig Cat Cow Dog Goat Lion Owl Pony Rat Worm Hen Ibis Lamb Três tipos de arquivos a) seqüência de bytes b) seqüência de registros c) árvore

Tipos de Arquivos Identifica arquivo como executável Endereço no qual a execução deve iniciar A seguir... Para uso na memória Para depuração (a) Um arquivo executável (b) Um repositório (archive)

Métodos de Acesso Em função de como o arquivo está organizado, o sistema de arquivos pode recuperar registros de diferentes maneiras: Acesso seqüencial: arquivos armazenados em fitas magnéticas, o acesso era restrito à leitura na ordem em que eram gravados, sendo a gravação de arquivos possível apenas no final do arquivo Pode-se combinar o acesso seqüencial com o direto e com isso acessar diretamente um arquivo e os demais em forma seqüencial

Métodos de Acesso Acesso direto: permite a leitura/gravação de um registro diretamente na sua posição É realizado através do número de registro Não existe restrição à ordem em que os registros são lidos ou gravados Somente é possível quando é definido com registros de tamanho fixo Acesso indexado ou por chave: o arquivo deve possuir uma área de índice onde existam ponteiros para os diversos registros e a partir desta informação realiza-se um acesso direto

Acesso Direto Registro 0 Registro 1 Registro 2 Registro n

Operações de Entrada / Saída O sistema de arquivos oferece um conjunto de system calls que permite às aplicações realizar operações de E/S, como tradução de nomes em endereços, leitura e gravação de dados e criação/eliminação de arquivos As system calls de E/S têm como função oferecer uma interface simples e uniforme entre a aplicação e os diversos dispositivos

Operações de Entrada / Saída Aplicação System calls de E/S Dispositivos

Operações de Entrada/Saída Comando create open read write close rename erase Descrição Criação de um arquivo Abertura de um arquivo Leitura de dados de um arquivo Gravação de dados de um arquivo Fechamento de um arquivo Alteração de nome de um arquivo Eliminação de um arquivo

Atributos Informações de controle variam dependendo do sistema de arquivos alguns como tamanho, criador, proteção e data estão presentes em quase todos Alguns atributos especificados na criação do arquivo não podem ser mudados e outros são modificados pelo próprio sistema operacional E ainda existem alguns que podem ser alterados pelo usuário tais como proteção, tamanho e senha.

Atributos de Arquivos Atributos Tamanho Proteção Dono Criação Backup Organização Senha Descrição Especifica o tamanho do arquivo Código de proteção de acesso Identifica o criador do arquivo Data e hora da criação do arquivo Data e hora do último backup realizado Indica a organização lógica dos registros Senha necessária para acessar o arquivo

Diretórios Modo como o sistema organiza os diferentes arquivos contidos num disco É a estrutura de dados que contém entradas associadas aos arquivos onde estão informações como localização física, nome, organização e demais atributos Quando um arquivo é aberto, o sistema operacional procura a sua entrada na estrutura de diretórios, armazenando as informações do arquivo em uma tabela mantida na memória principal Esta tabela contém todos os arquivo abertos, sendo fundamental para aumentar o desempenho das operações com arquivos

Diretórios Nível Único (single-level directory): implementação mais simples existe apenas um único diretório contendo todos os arquivos do disco bastante limitado já que não permite que usuários criem arquivos com o mesmo nome, o que ocasionaria um conflito no acesso aos arquivos

Estrutura de diretórios de nível único Identificação Proteção Organização Localização física Atributos Diretório Arquivos

Diretórios User File Directory (UFD): para cada usuário existe um diretório particular e assim poderia criar arquivos com qualquer nome Deve haver um nível de diretório adicional para controle chamado de Master File Directory (MFD) que é indexado pelo nome do usuário e cada entrada aponta para o diretório pessoal É análoga a uma estrutura de dados em árvore onde o MFD é a raiz, os galhos são a UFD e os arquivos são as folhas Quando se referencia a um arquivo é necessário especificar seu nome e seu diretório path (caminho)

Estrutura de diretórios com dois níveis Usuário 1 Usuário 2 Usuário 3 Arquivo 1 Arquivo 2 Arquivo 3 Arquivo 1 Usuário n Master File Directory (MFD) Arquivo 1 Arquivo 2 Arquivo 3 User File Directory (UFD) Arquivos

Diretórios Estrutura de diretórios em Árvore (Tree Structured Directory) Adotado pela maioria dos sistemas operacionais e é logicamente melhor organizado É possível criar quantos diretórios quiser, podendo um diretório conter arquivos e outros diretórios (chamados subdiretórios) Cada arquivo possui um path único que descreve todos os diretórios da raiz (MFD) até o diretório onde o arquivo está ligado na maioria dos sistemas os diretórios são tratados como arquivos tendo atributos e identificação

Estrutura de diretórios em árvore Diretório Raiz

Path de um Arquivo Disco C:/ Carlos Ivan Paulo Teste Pessoal Pessoal Programas Soma.exe

Implementação do Sistema de Arquivos Master Boot Record: Registro Principal do Boot, usado para iniciar o computador Principais parâmetros do sistema de arquivo ex. tipo do sistema de arquivos, número de blocos do sistema Estrutura de dados com informações sobre um arquivo, sendo um i-node por arquivo Um possível layout de sistema de arquivo

Alocação de Espaço em Disco A criação de arquivos exige que o sistema operacional tenha controle de quais áreas ou blocos no disco estão livres e este controle é realizado através de uma estrutura (geralmente lista ou tabela) de dados que armazenam informações e possibilitam ao sistema de arquivos gerenciar o espaço livre

Alocação de Espaço em Disco A forma mais simples de implementar uma estrutura de espaços livres é através de uma tabela chamada mapa de bits (bit map) onde cada entrada da tabela é associada a um bloco e representado por um bit, que pode assumir valor igual a 0 (bloco livre) ou 1 (bloco alocado). Esta estrutura gera um gasto excessivo de memória já que para cada bloco deve existir uma entrada na tabela.

Alocação de Espaço em Disco Outra forma é realizar o controle por meio da ligação encadeada de todos os blocos livres e cada bloco deve possuir uma área reservada para armazenamento do endereço do próximo A partir do primeiro bloco pode-se ter acesso seqüencial aos demais de forma encadeada Apresenta restrições se considerarmos que o algoritmo de busca de espaço livre sempre deve realizar uma pesquisa seqüencial na lista

Alocação de Espaço em Disco Outra solução leva em conta que blocos contíguos são geralmente alocados ou liberados simultaneamente com base neste conceito é possível manter uma tabela com o endereço do primeiro bloco de cada segmento e o número de blocos livres contíguos que se seguem

Alocação de Espaço em Disco Ligação encadeada 01110001 11101101 01110100... 11100000 Início Mapa de bits Bloco Contador 1 1 5 3 12 1 15 1 17 1 Tabela de Blocos Livres

Alocação Contígua Consiste em armazenar um arquivo em blocos seqüencialmente dispostos o sistema localiza um arquivo através do endereço do primeiro bloco e da sua extensão em blocos O acesso é bastante simples tanto para a forma seqüencial tanto para a direta o principal problema é a alocação de novos arquivos nos espaços livres, pois para colocar n blocos é necessário que se tenha uma cadeia com n blocos dispostos seqüencialmente no disco

Alocação Contígua arquivo inicio #blocos readme.txt 010 003 prova.doc 002 008 Aula.pdf 017 005 0 1 2 3 4 5 6 7

Alocação Contígua 0 3 6 1 4 7 2 5 8 Arquivo Bloco Extensão A. TXT 4 3 B. TXT 10 1 9 10 11 C. TXT 13 2 12 13 14

Alocação Contígua Existem alguns problemas como determinar o espaço necessário a um arquivo quando é criado e depois pode existir a necessidade de extensão e esta é uma operação complexa a pré-alocação seria uma solução, mas pode levar a parte do espaço alocado permanecer ociosa por um longo período de tempo Quando o sistema operacional deseja alocar espaço para um novo arquivo, pode existir mais de um segmento livre disponível com o tamanho exigido e é necessário que alguma estratégia de alocação seja adotada para selecionar qual segmento deve ser escolhido

Alocação Contígua Analisaremos as três principais estratégias: First-fit: o primeiro segmento livre com tamanho suficiente para alocar o arquivo é selecionado. A busca na lista é seqüencial, sendo interrompida tão logo se encontre um segmento adequado. Best-fit: seleciona o menor segmento livre disponível com tamanho suficiente para armazenar o arquivo. A busca em toda a lista se faz necessária para a seleção do segmento, a não ser que a lista esteja ordenada por tamanho. Worst-fit: o maior segmento é alocado e a busca por toda a lista se faz necessária, a menos que exista uma ordenação por tamanho.

Alocando um arquivo c/ 2 blocos Situação inicial First-fit Best-fit Worst-fit

Alocação Contígua Independente da estratégia utilizada, a alocação apresenta um problema chamado fragmentação de espaços livres o problema pode se tornar crítico quando um disco possuir blocos livres disponíveis, porém sem um segmento contíguo onde o arquivo possa ser alocado Deve ser feito a defragmentação periodicamente (visando que este problema seja resolvido) para reorganizar os arquivos no disco, a fim de que exista um único segmento de blocos livres há um grande consumo de tempo neste processo e tem efeito temporário

Fragmentação externa Espaços vazios entre blocos de arquivos À medida que o sistema evolui: arquivos são criados e removidos mais espaços vazios aparecem os espaços vazios ficam menores Alocar novos arquivos torna-se difícil!

Evolução da fragmentação aloca aloca remove remove remove aloca aloca t Agora, como alocar um arquivo com 4 blocos?

Defragmentação Mover arquivos para reagrupar os fragmentos em espaços maiores Visa permitir alocar arquivos maiores Deve ser feita periodicamente Uso de algoritmos para minimizar movimentação de arquivos (rapidez)

Estratégias de defragmentação Situação inicial Moveu 6 blocos Moveu 4 blocos Moveu 2 blocos

Defragmentação

Alocação Encadeada O arquivo é organizado como um conjunto de blocos ligados no disco, independente de sua localização física e cada um deve possuir um ponteiro para o bloco seguinte O que ocorre neste método é a fragmentação de arquivos (quebra do arquivo em diversos pedaços denominados extents), o que aumenta o tempo de acesso ao arquivo, pois o (braço do) disco deve deslocar-se diversas vezes para acessar todas as extents É necessário que o disco seja desfragmentado periodicamente Esta alocação só permite acesso seqüencial e desperdiça espaço nos blocos com armazenamento de ponteiros

Alocação Encadeada Início 0 3 6 9 12 1 4 7 10 13 2 5 8 11 14

Alocação Encadeada Término de A Armazenamento de um arquivo como uma lista encadeada de blocos de disco Término de B

Alocação Indexada O princípio desta técnica é manter os ponteiros de todos os blocos de arquivos em uma única estrutura denominada bloco de índice Além de permitir o acesso direto aos blocos do arquivo, não utiliza informações de controle nos blocos de dados como existe na alocação encadeada

Alocação Indexada 0 1 2 3 10 11 7 Bloco de índice 3 4 5 6 7 8 9 10 11 12 13 14

Alocação Indexada arquivo inicio #blocos readme.txt 010 003 prova.doc 002 008 Aula.pdf 017 005 i-node index-node

i-node

Fragmentação interna Arquivos são alocados em blocos: Os blocos têm tamanho fixo Entre 512 bytes e 8 Kbytes Um bloco não pode ser alocado parcialmente Se usarmos blocos de 4096 bytes um arquivo de 5700 bytes ocupará 2 blocos 2492 bytes serão perdidos no último bloco Em média, perde-se 1/2 bloco por arquivo Fragmentação externa: espaços vazios entre blocos de arquivos

Fragmentação externa: espaços vazios entre blocos de arquivos arquivos: A B C D um arquivo de 5700 bytes ocupando 2 blocos de 4096 bytes 2492 bytes são perdidos no último bloco Fragmentação interna: uso incompleto do espaço do último bloco de um arquivo

Tamanho dos blocos A escolha do tamanho dos blocos é importante para a eficiência do sistema Blocos pequenos: menor perda por fragmentação interna mais blocos por arquivo: maior custo de gerência Blocos grandes: maior perda por fragmentação interna menos blocos por arquivo: menor custo de gerência

Arquivos Compartilhados (1)

Arquivos Compartilhados (2) (a) Situação antes da ligação (b) Depois de a ligação ser criada (c) Depois de o proprietário (C) remover o arquivo (i-node deixado intacto para evitar erro, já que B não é o proprietário e continua na conta de alocação de C )

Gerenciamento do Espaço em Disco Considerações relevantes: Tamanho do bloco: eficiência Monitoramento de blocos livres (ex. mapas de bits) Cotas de usuários

Proteção de Acesso Considerando que os meios de armazenamento são compartilhados, é necessário ter mecanismos de proteção par garantir a proteção de arquivos e diretórios Qualquer sistema de arquivos deve possuir mecanismos próprios para proteger o acesso às informações gravadas O tipo de acesso é mediante concessão ou não de acessos que podem ser realizados como a leitura (read), gravação (write), execução (execute) e eliminação (delete)

Proteção de Acesso Há diferenças entre o controle de acesso a diretórios e arquivos O controle da criação/eliminação de arquivos nos diretórios, visualização do seu conteúdo e eliminação do próprio diretório são operações que também devem ser protegidas Existem diferentes mecanismos e níveis de proteção e para cada tipo de sistema um modelo é mais adequado do que o outro

Tipos de Acesso Acesso Leitura Gravação Descrição Qualquer tipo de operação em que o arquivo possa ser visualizado, como a exibição de seu conteúdo, edição ou cópia de um novo arquivo Alteração no conteúdo do arquivo, como inclusão ou alteração de registros. Execução Associado a arquivos executáveis ou arquivos de comandos, indicando o direito de execução do arquivo. Eliminação Permissão para se eliminar um arquivo.

Senha de Acesso É bastante simples e se resume ao usuário ter conhecimento da senha e a liberação do acesso ao arquivo concedida pelo sistema Cada arquivo possui apenas uma senha, o acesso é liberado ou não na sua totalidade Não é possível determinar quais tipos de operações podem ou não ser concedidas Outra desvantagem é a dificuldade de compartilhamento, já que todos os demais usuários deveriam ter conhecimento da senha

Grupos de Usuários Tem como princípio a associação de cada usuário do sistema a um grupo. Os usuários são organizados com o objetivo de compartilhar arquivos entre si Implementa três tipos de proteção: owner (dono), group (grupo) e all (todos) na criação do arquivo é especificado quem e o tipo de acesso aos três níveis de proteção Em geral, somente o dono ou usuários privilegiados é que podem modificar a proteção dos arquivos

Proteção por Grupo de Usuários dados.txt Nível de proteção Tipo de Acesso Owner Group All -- Leitura Escrita Execução Eliminação Leitura

Lista de Controle de Acesso Access Control List ACL consiste em uma lista associada a cada arquivo onde são especificados quais os usuários e os tipos de acesso permitidos O tamanho desta estrutura pode ser bastante extenso se um arquivo tiver seu acesso compartilhado por diversos usuários Existe um overhead adicional devido à pesquisa seqüencial que o sistema deverá realizar na lista sempre que solicitado É possível ter tanto a proteção por grupos de usuários quanto pela lista de acesso maior flexibilidade ao mecanismo de proteção

Lista de Controle de Acesso Usuário: cagf Acesso: leitura + escrita Usuário: ll3 Acesso: leitura Usuário: cagf Acesso: leitura + escrita + execução Usuário: ll3 Acesso: eliminação

Implementação de Caches O acesso a disco é bastante lento comparado à memória principal e este é o fator para que as operações de E/S sejam consideradas um problema ao desempenho do sistema Com o objetivo de minimizar este problema, a maioria dos sistemas operacionais implementa a técnica de buffer cache, onde o sistema reserva uma área na memória para que se tornem disponíveis caches utilizados em operações de acesso a disco Quando uma operação é realizada, o sistema procura na cache a informação e, caso não encontre, busca no disco e depois atualiza a buffer cache

Implementação de Caches Como existe limite para o tamanho da cache, o sistema adota políticas de substituição como o FIFO (First in First out) ou a LRU (Least Recently Used) No caso de dados (blocos) permanecerem por um longo tempo na memória, a ocorrência de problemas de energia pode resultar na perda de tarefas já executadas e consideradas salvas em disco Existem duas maneiras de tratar este problema: 1. o sistema pode possuir uma rotina que executa, em intervalos de tempo, atualizações em disco de todos os blocos modificados na cache

Implementação de Caches 2. Uma segunda alternativa é que toda vez que um bloco da cache for modificado, realizar uma atualização no disco (write-through caches) Dos Sistemas de Arquivos ao Gerenciamento de E/S

Entrada/Saída

Tópicos Princípios do hardware de E/S Princípios do software de E/S Camadas do software de E/S Gerenciamento de energia

Princípios do Hardware de E/S Diversidade de dispositivos Características de dispositivos Arquitetura de E/S

Diversidade de dispositivos Taxas de dados típicas de dispositivos, redes e barramentos

Características de dispositivos Caracter: transferem bytes um a um. Ex.terminal Bloco: transferem bytes em bloco. Ex. disco Sequencial: acesso em ordem fixa. Ex. modem Acesso randômico: ordem pode ser alterada. Ex CD-ROM Síncrono: tempo de resposta previsível. Ex. fita Assíncrono: tempo de resposta imprevisível. Ex. teclado Compartilhável: pode ser usado por vários processos ao mesmo tempo. Ex. teclado Dedicado: só pode ser usado por um processo por vez. Ex. Impressora Read-write, read only e write-only: disco, cdrom, vídeo

Características de dispositivos Caracter: transferem bytes um a um. Ex.terminal Bloco: transferem bytes em bloco. Ex. disco Sequencial: acesso em ordem fixa. Ex. modem Acesso randômico: ordem pode ser alterada. Ex CD-ROM Síncrono: tempo de resposta previsível. Ex. fita Assíncrono: tempo de resposta imprevisível. Ex. teclado Compartilhável: pode ser usado por vários processos ao mesmo tempo. Ex. teclado Dedicado: só pode ser usado por um processo por vez. Ex. Impressora Read-write, read only e write-only: disco, cdrom, vídeo

Características de dispositivos Caracter: transferem bytes um a um. Ex.terminal Bloco: transferem bytes em bloco. Ex. disco Sequencial: acesso em ordem fixa. Ex. modem Acesso randômico: ordem pode ser alterada. Ex CD-ROM Síncrono: tempo de resposta previsível. Ex. fita Assíncrono: tempo de resposta imprevisível. Ex. teclado Compartilhável: pode ser usado por vários processos ao mesmo tempo. Ex. teclado Dedicado: só pode ser usado por um processo por vez. Ex. Impressora Read-write, read only e write-only: disco, cdrom, vídeo

Características de dispositivos Caracter: transferem bytes um a um. Ex.terminal Bloco: transferem bytes em bloco. Ex. disco Sequencial: acesso em ordem fixa. Ex. modem Acesso randômico: ordem pode ser alterada. Ex CD-ROM Síncrono: tempo de resposta previsível. Ex. fita Assíncrono: tempo de resposta imprevisível. Ex. teclado Compartilhável: pode ser usado por vários processos ao mesmo tempo. Ex. teclado Dedicado: só pode ser usado por um processo por vez. Ex. Impressora Read-write, read only e write-only: disco, cdrom, vídeo

Características de dispositivos Caracter: transferem bytes um a um. Ex.terminal Bloco: transferem bytes em bloco. Ex. disco Sequencial: acesso em ordem fixa. Ex. modem Acesso randômico: ordem pode ser alterada. Ex CD-ROM Síncrono: tempo de resposta previsível. Ex. fita Assíncrono: tempo de resposta imprevisível. Ex. teclado Compartilhável: pode ser usado por vários processos ao mesmo tempo. Ex. teclado Dedicado: só pode ser usado por um processo por vez. Ex. Impressora Read-write, read only e write-only: disco, cdrom, vídeo

Princípios do Hardware de E/S Diversidade de dispositivos Características de dispositivos Arquitetura de E/S

Hardware: Arquitetura de E/S Portas (ports) Comunicação ponto a ponto Ex: Porta serial e paralela Barramentos (bus) Conjunto de condutores elétricos e com um protocolo rígido que define como mensagens trafegam sobre esses condutores Permite a comunicação entre vários componentes Protocolo é um conjunto de regras que definem como as comunicações (no barramento) serão efetuadas

Controladores Arquitetura de E/S Hw que controla uma porta, barramento ou dispositivo(s) Ex: Controlador da porta serial Controlador SCSI (Small Computer System Interface) Controlador de disco Device Drivers Partes do S.O. (software) que fornecem uma interface de acesso uniforme para cada dispositivo Traduz as chamadas de alto nível (usuário) para o dispositivo específico Conversão de dados Detecção e correção de erros

E/S: Como a CPU acessa a informação? Espaço de endereçamento: conjunto de endereços de memória que o processador consegue acessar diretamente A forma de acessar os registradores (das interfaces) dos periféricos é definida no projeto do processador: Espaço único Dois espaços, um deles dedicado à E/S (isolada) E/S isolada Através de instruções especiais de E/S Especifica a leitura/escrita de dados numa porta de E/S E/S mapeada em memória Através de instruções de leitura/escrita na memória Híbrido (ex. IBM-PC): E/S mapeada em memória: memória de vídeo E/S isolada: dispositivos em geral

Espaços de Memória e E/S a) Espaços de memória e E/S separados - E/S isolada b) E/S mapeada na memória c) Híbrido

E/S mapeada na memória (a) Arquitetura com barramento único (b) Arquitetura com barramento duplo (dual)

Como o processador enxerga a memória e os demais dispositivos ou como o processador se comunica com o seu exterior O processador realiza operações como: Ler um dado da memória Escrever um dado na memória Receber (ler) um dado de dispositivos de E/S Enviar (escrever) dados para dispositivos de E/S Nas operações de acesso à memória, o processador escreve e lê dados, praticamente sem intermediários Nos acessos a dispositivos de E/S, existem circuitos intermediários, que são as interfaces

Acesso Direto à Memória (DMA) Operação de uma transferência com DMA

Interfaces de E/S: Diversidade Dispositivo Monitor Teclado Alto falante Impressora Mouse Disco rígido IDE Disco rígido SCSI Joystick Scanner Câmera digital Interface Placa de vídeo Interface de teclado Interface de alto falante Interface paralela ou USB Interface serial, PS/2 ou USB Interface IDE Interface SCSI Interface para jogos ou USB Placa de interface de scanner, paralela ou USB Interface serial, paralela ou USB Para controlar um dispositivo de E/S, o processador precisa realizar acessos de leitura e escrita na sua interface

Como a CPU sabe que o dispositivo já executou o comando? E/S Programada CPU lê constantemente o status do controlador e verifica se já acabou (Polling ou Busy-waiting) Desvantagem: Espera até o fim da operação E/S por Interrupção CPU é interrompida pelo módulo de E/S e ocorre transferência de dados CPU continua a executar outras operações Desvantagem: toda palavra lida do (ou escrita no) periférico passa pela CPU E/S por DMA - Acesso Direto à Memória Quando necessário, o controlador de E/S solicita ao controlador de DMA a transferência de dados de/para a memória Nesta fase de transferência não há envolvimento da CPU Ao fim da transferência, a CPU é interrompida e informada da transação [figura anterior]

Comunicação S.O.(CPU) Controlador Exemplo de comunicação com dispositivo Pois não Sr., um momento Contrato pronto, estou enviando Programa sem interrupção Secretária, por favor escreva o contrato agora para que eu possa assiná-lo; estou esperando. Ok, Obrigado Pois não Sr. Contrato pronto, posso enviá-lo? Programa com interrupção Secretária, por favor escreva o contrato agora, quando estiver pronto me avise. Um momento, estou terminado de escrever um ofício.... agora pode enviar o contrato, obrigado. (Após receber o contrato, o chefe continua fazendo as outras atividades...) Preciso enviar os contratos que estáo sobre a mesa do chefe para o correio Boy, por favor apanhe os contratos que estão na pasta sobre a mesa do chefe para mim. Por favor não incomode o chefe. Obrigada Acesso Direto à Memória Ok, obrigado. Chefe, enviei os contratos que estavam sobre sua mesa. (Ao fim da transferência, a CPU é interrompida e informada da transação)

E/S programada O processador controla o transporte dos dados entre a memória e a interface

E/S por Acesso Direto a Memória O processador fica momentaneamente desabilitado enquanto o controlador de DMA assume o controle dos barramentos e faz as transferências A grande vantagem do DMA é que o processador não precisa se ocupar diretamente da operação de recepção e transmissão de cada byte, ficando livre para executar outros processamentos Normalmente as interfaces que utilizam DMA, utilizam também uma interrupção para avisar o processador sobre o término da transferência do número de bytes pré-programado

E/S: Orientada a Interrupção x Usando DMA Escrita de uma cadeia de caracteres para a impressora usando E/S orientada à interrupção a) Código executado quando é feita a chamada ao sistema para impressão b) Rotina de tratamento de interrupção Impressão de uma cadeia de caracteres usando DMA a) Código executado quando é feita a chamada ao sistema para impressão b) Rotina de tratamento de interrupção

Entrada/Saída Princípios do hardware de E/S Princípios do software de E/S Camadas do software de E/S Gerenciamento de energia

Objetivos da gerência de E/S Eficiência Uniformidade é desejável: Todos dispositivos enxergados da forma mais uniforme possível Esconder os detalhes (estes são tratados pelas camadas de mais baixo nível) Fornecer abstrações genéricas: read, write, open e close

Princípios básicos do software de E/S Subsistema de E/S é complexo dada a diversidade de periféricos Padronizar ao máximo para reduzir número de rotinas Novos dispositivos não alteram a visão do usuário em relação ao SO Organizado em camadas

Estrutura do subsistema E/S

Visão Geral do software de E/S Tratador de interrupção É acionado ao final da operação de transferência Aciona driver Driver de dispositivo Recebe requisições Configura (aciona) o controlador E/S independente de dispositivo Nomes e proteção bufferização E/S em nível de usuário Chamadas de E/S

Camadas do Software de E/S Camadas do sistema de software de E/S

Camadas do Software de E/S Processos HARDWARE SOFTWARE Operações de E/S Subsistema de E/S Device drivers Controladores Dispositivos Independente do dispositivo Dependente do dispositivo

Camadas do Software de E/S Processos Aplicação HARDWARE SOFTWARE Operações de E/S Subsistema de E/S Device drivers Controladores Dispositivos Comandos de E/S System Calls de E/S Dispositivos Linguagem de alto nível Sistema de arquivos

Camadas do Software de E/S Tratadores de Interrupção As interrupções devem ser escondidas (transparentes) o máximo possível uma forma de fazer isso é bloqueando o driver que iniciou uma operação de E/S até que uma interrupção notifique que a E/S foi completada rotina de tratamento de interrupção cumpre sua tarefa e então desbloqueia o driver que a chamou

Camadas: Drivers dos Dispositivos Posição lógica dos drivers dos dispositivos A comunicação entre os drivers e os controladores de dispositivos é feita por meio do barramento

Camadas: Software de E/S Independente de Dispositivo (1) Funções do software de E/S independente de dipositivo Interface uniforme para os drivers dos dispositivos Armazenamento em buffer Relatório de erros Alocação e liberação de dispositivos dedicados Fornecimento de tamanho de bloco independente de dispositivo

Camadas: Software de E/S Independente de Dispositivo (2) (a) Sem uma interface-padrão do driver (b) Com uma interface-padrão do driver

Camadas: Software de E/S no Espaço do Usuário Camadas do sistema de E/S e as principais funções de cada camada

Algoritmos de Escalonamento de Braço de Disco (1) Tempo necessário para ler ou escrever um bloco de disco é determinado por 3 fatores 1. tempo de posicionamento 2. atraso de rotação 3. tempo de transferência do dado Tempo de posicionamento domina Checagem de erro é feita por controladores

Algoritmos de Escalonamento de Braço de Disco (2) Algoritmo de escalonamento de disco Posicionamento Mais Curto Primeiro (SSF)

Algoritmos de Escalonamento de Braço de Disco (3) O algoritmo do elevador para o escalonamento das requisições do disco

Entrada/Saída Princípios do hardware de E/S Princípios do software de E/S Camadas do software de E/S Gerenciamento de energia

Gerenciamento de Energia (1) Tecnologia mais avançada Aumento do desempenho Consumo de energia de várias partes de um laptop

Gerenciamento de Energia (2): O uso de zonas para iluminação do monitor de vídeo (a) Janela 2 selecionada e não se move. (b) Janela 1 selecionada e se move para reduzir o número de zonas iluminadas.

Gerenciamento de Energia (3) a. Execução em velocidade máxima do relógio b. Cortando a voltagem pela metade corta a velocidade do relógio também pela metade, consumo de energia cai para 4 vezes menos

Gerenciamento de Energia (4): Impactos na Entrada/Saída Dizer aos programas para usar menos energia pode significar experiências mais pobres para o usuário Exemplos muda de saída colorida para preto e branco reconhecimento de fala com vocabulário reduzido menos resolução ou detalhe em uma imagem

Entrada/Saída Conclusões

Arquitetura de Entrada/Saída Portas (ports) Comunicação ponto a ponto Barramentos (bus) Permite a comunicação entre vários componentes Controladores Hw que controla uma porta, barramento ou dispositivo(s) Device Drivers Partes do S.O. que fornecem uma interface de acesso uniforme para cada dispositivo

Camadas do Software de E/S

Princípios básicos do software de E/S Subsistema de E/S é complexo dada a diversidade de periféricos Padronizar ao máximo para reduzir número de rotinas Novos dispositivos não alteram a visão do usuário em relação ao SO Organizado em camadas