Ambientes Operacionais

Slides:



Advertisements
Apresentações semelhantes
ESTRUTURA DE DADOS Professor: Marcelo Mendes Turma: MBI-1
Advertisements

Arquitetura de Sistemas Operacionais
DESENVOLVIMENTO DE SISTEMAS PARA INTERNET
Sistemas operacionais
Sistemas operacionais
Sistemas operacionais
Processos no Unix e Linux
Arquitetura de Sistemas Operacionais Francis Berenger Machado
Arquitetura de Sistemas Operacionais Francis Berenger Machado
Sistemas Operacionais II - Sistemas de Arquivos -.
Indexação e Hashing Muitas consultas referenciam apenas uma pequena porção dos registros em uma tabela. Portanto necessitamos ser capaz de localizar estes.
Capítulo 6 Sistemas de Arquivos 6.1 Arquivos 6.2 Diretórios
Análise Léxica Supondo o trecho de programa abaixo:
Estruturas de Controle
Discos rígidos. Os discos tem uma superfície superior e uma inferior. A informação é, geralmente, armazenada em ambas as superfícies. O tamanho e o número.
Listas Encadeadas.
Sistemas Operacionais I
Sistemas Operacionais Adriana Vettorazzo
Gerência de Memória.
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.
Sistemas Operacionais Gerenciamento de Memória
Linguagem de Programação II Parte IX
Sistemas Operacionais
Sistemas Operacionais
Sistemas Operacionais
Sistemas Operacionais
SISTEMAS OPERACIONAIS
Gerência de Memória Virtual
Conteúdo Processos e threads Partes do processo
Agenda Modos de Endereçamento.
Algoritmos e Estruturas de Dados I – Ponteiros
Processos.
Sistemas Operacionais
SISTEMAS OPERACIONAIS I
Sistemas Operacionais
SISTEMAS OPERACIONAIS I Memória Virtual e Paginação
Educação Profissional Técnica de Nível Médio Curso Técnico de Informática Disciplina: Estrutura de Dados Professor: Cheli dos S. Mendes da Costa Listas.
SISTEMAS OPERACIONAIS I
Sistemas Operacionais
SISTEMAS OPERACIONAIS I Gerenciamento de Arquivos
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Capítulo 11: Implementação de Sistemas de Arquivos.
Capítulo V – Comandos de Entrada e Saída 5.1 – Equipamentos de entrada e saída 5.2 – Saída no vídeo-texto 5.3 – Entrada pelo teclado 5.4 – Entrada e saída.
Sistemas Operacionais Entrada e Saída – Aula II Prof. Galvez.
Sistemas Operacionais: Sistema de Arquivos
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Capítulo 10: Interface de Sistemas de Arquivos.
Sistemas Operacionais
Sistemas Operacionais Aula 15 Sistema de Arquivos
Subsistema de Entrada e Saída do Kernel
Professor Esp. Diego André Sant’Ana Disciplina: Sistemas Operacionais II Sistemas de Arquivos- Tipo de arquivos – Cap
Infra-Estrutura de Software
Gerenciamento de Memória
Engenharia de Controle e Automação Computação Para Engenharia Semana /02/2013 Professor Leomir J. Borba- –
1 Programação em C Aula Considere que um banco armazena em arquivo as seguintes informações de seus clientes: número da conta (int), nome do cliente.
Gerenciamento de Arquivos
Aula – Sistemas Operacionais
Sistemas de Arquivos- Cap4
Sistemas de Arquivos Sistemas Operacionais Profa. Priscila Facciolli
Sistemas Operacionais IV – Gerenciamento de E/S
Sistemas de Arquivos. Alocação em memória – Problemas Quantidade Limitada de Informações Perda de informações quando o processo é terminado Vários processos.
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.
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Gerenciamento de Memória Capítulo Gerenciamento básico de memória 3.2 Troca de processos.
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.
Alocação Dinâmica Dilvan Moreira. Objetivos  Entender o que são e como usar:  Gerenciamento de Memória  Alocação Dinâmica em C.
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
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais FATEC-PB Professor: Gustavo Wagner
Transcrição da apresentação:

Ambientes Operacionais Sistema de Arquivos Ambientes Operacionais Prof. Simão Sirineo Toscani stoscani@inf.pucrs.br www.inf.pucrs.br/~stoscani

Gerência de Arquivos É um dos serviços mais visíveis do SO. Arquivos são normalmente implementados a partir de discos magnéticos. Como um acesso a disco demora cerca de 10000 vezes mais que um acesso à memória, são necessárias estruturas de dados e algoritmos que otimizem os acessos ao disco.

Arquivo Coleção de dados relacionados entre si Referenciados através de nomes Possuem atributos como: tipo momento da criação tamanho nome do criador

Tipos de Arquivos Cada arquivo possui uma estrutura interna, conforme sua aplicação: Um arquivo texto (.doc) é composto por uma sequência de caracteres organizados em linhas e parágrafos um programa executável é uma seqüência de bytes representando instruções em código de máquina um programa fonte é uma seqüência de caracteres que representam comandos de uma linguagem de programação (arquivos tipo “somente texto”, que não admitem qualquer tipo de formatação especial)

Sistemas Baseados em Fita Inicialmente, cada arquivo era gravado em uma única fita. Haviam dois problemas: Arquivos muito grandes não cabiam em uma fita Arquivos pequenos geravam desperdício de espaço Criação de sistemas multi-volume, para suprir necessidades de arquivos grandes Utilização de diretórios permitiram armazenar diversos arquivos em uma única fita

Sistemas Baseados em Fitas Diretório: criado para localizar a partição em que se encontra cada arquivo na fita. Cada entrada do diretório contém um nome de arquivo e sua posição na fita.

Sistemas Baseados em Fita Leitura de arquivo: localizar e carregar a fita indicada pelo usuário localizar no diretório a entrada correspondente ao arquivo posicionar a fita no ponto correspondente ao início do arquivo iniciar a leitura terminar a leitura quando encontrar a marca de fim de arquivo

Sistemas Baseados em Disco Um disco é dividido em trilhas O número de trilhas é particular de cada dispositivo Cada trilha dividida em setores Setor a menor unidade de informação que pode ser lida ou escrita em um disco

Sistemas Baseados em Disco Acesso a um setor: informar face, trilha e setor desejado as cabeças de leitura e gravação são deslocadas até a trilha correta (tempo de seek), o cabeçote da face correta é selecionado eletronicamente esperar até o setor desejado passar por baixo do cabeçote (tempo de latência)

Sistemas Baseados em Disco Normalmente, uma unidade de disco rígido é formada por vários discos superpostos (no máximo 8 discos, com a tecnologia atual) Cilindro: é formado pelas trilhas que estão na mesma posição, porém em diferentes faces (no caso de 8 discos superpostos cada cilindro é formado por 16 trilhas). Não é necessário deslocar as cabeças para acessar trilhas de um mesmo cilindro

Sistemas Baseados em Disco Hoje em dia, o SO trata o disco como um vetor de blocos, cada bloco corresponde a um setor. Vantagem do disco sobre a fita: possibilidade de acessar facilmente qualquer setor a qualquer momento (a fita permite apenas o acesso seqüencial)

Sistemas Baseados em Discos Os discos possuem diretórios Os diretórios são armazenados no próprio disco, normalmente em um endereço fixo Isto possibilita a remoção do disco sem perda das informações correspondentes aos arquivos

Suporte a Arquivos Chamadas de sistema permitem as seguintes operações sobre arquivos: criar um arquivo escrever no arquivo ler o arquivo remover o arquivo reposicionar o ponto de acesso ao arquivo

Operações em Arquivos Criar um arquivo: necessita de dois passos: encontrar e alocar espaço suficiente no disco, adicionar uma entrada no diretório para conter as informações referentes ao arquivo (nome, localização, ...)

Operações em Arquivos Escrever no Arquivo: para escrever em uma arquivo o usuário deve fornecer o nome do arquivo e o bloco com a informação a ser escrita O SO procura a localização do final do arquivo no disco, escreve o bloco e atualiza o ponteiro de final de arquivo

Operações em Arquivos Ler o Arquivo: o usuário executa uma chamada de sistema fornecendo o nome do arquivo e a posição da memória principal para onde as informações do bloco serão copiadas

Operações em Arquivos Remover o Arquivo: pesquisa o diretório e remove a entrada correspondente ao arquivo. Libera o espaço em disco ocupado pelo arquivo

Operações em Arquivos Reposicionar o arquivo: consiste em localizar a entrada no diretório correspondente ao arquivo e modificar o valor do ponteiro que indica a posição corrente do arquivo

Operações em Arquivos Todas as operações sobre um arquivo envolvem uma pesquisa no diretório em busca da entrada correspondente ao arquivo desejado. Cada entrada do diretório corresponde a um descritor de arquivo O descritor contém todas as informações necessárias para a manipulação do arquivo

Tabela de Descritores de Arquivos Abertos (TDAA) O acesso a um arquivo é feito através do seu descritor Para evitar a pesquisa freqüente ao disco, o SO mantém na memória uma Tabela de Descritores de Arquivos Abertos O arquivo é aberto quando ele começa a ser utilizado (desse modo, todas as informações sobre os arquivos em uso são mantidas na memória principal)

TDAA e TAAP Um mesmo arquivo pode ser utilizado simultaneamente por vários processos (i.é, uma mesma entrada da TDAA pode ser utilizada por vários processos) Por isso, cada entrada da TDAA contém uma indicação de quantos processos estão utilizando o arquivo correntemente O mesmo arquivo pode estar sendo acessado por diferentes processos em pontos diferentes e com direitos de acesso diferentes Por isso, cada processo contém uma tabela extra com informações apenas sobre os arquivos abertos por esse processo. Essa tabela é denominada Tabela de Arquivos Abertos por Processo (TAAP)

Tabela de Arquivos Abertos por Processo (TAAP) No mínimo, a TAAP contém em cada entrada as seguintes informações: Posição corrente no arquivo; Tipo de acesso (apenas leitura ou leitura e escrita); Apontador para a entrada correspondente na TDAA.

TDAA e TAAP Tanto a TDAA como as TAAP devem ficar na memória do sistema operacional, fora do acesso dos processos de usuário.

Métodos de Acesso Acesso seqüencial Acesso direto Acesso indexado

Acesso Seqüencial Uma leitura sempre acessa o próximo registro e avança um ponteiro sobre o arquivo O ponteiro indica qual a próxima posição a ser lida ou escrita

Acesso Seqüencial

Acesso Direto O arquivo é uma seqüência numerada de registros (blocos) Qualquer registro pode ser diretamente lido ou escrito

Acesso Direto

Acesso indexado Envolve a construção de índices nos descritores de arquivos Usa como base o serviço de acesso direto

Gerência do Espaço Livre Espaço em disco é limitado, por isto é necessário reaproveitar todo o espaço disponível Lista de setores livres: mantida pelo SO para controlar os espaços livres no disco

Métodos de Alocação Contígua Encadeada Indexada

Alocação Contígua Cada arquivo ocupa um conjunto de blocos (setores) contíguos no disco Para localizar um arquivo basta saber o número do primeiro setor e o tamanho do arquivo em blocos Para acessar o arquivo de forma seqüencial, o SO mantém o número do último bloco acessado

Alocação Contígua Dificulta o processo de localizar espaço livre para novos arquivos Usa os algoritmos: first-fit: utiliza o primeiro espaço grande o suficiente que for encontrado best-fit: utiliza espaço livre que deixa a menor sobra worst-fit: maior sobra

Alocação Contígua No momento da criação, é difícil determinar o número de blocos a serem alocados para o arquivo É difícil aumentar o tamanho do arquivo

Alocação Encadeada Cada arquivo corresponde a uma lista encadeada de blocos, estando os mesmos em qualquer local do disco Diretório possui apenas o endereço do bloco inicial e o número de blocos (ou endereço do último bloco) Cada bloco possui o endereço do bloco seguinte (ponteiros associados a cada bloco)

Alocação Encadeada Os arquivos podem ser criados com tamanho zero Inserções em arquivos resultam na retirada de blocos da lista de livres e inserção dos mesmos na lista que forma o arquivo

Alocação Encadeada Não permite acesso direto a um bloco Eficiente na implementação de acesso seqüencial Não confiável: caso ocorra algum problema com um bloco, boa parte do arquivo é perdida, pois cada bloco possui um link para o setor seguinte

Alocação Indexada Cada arquivo possui um bloco de índices O diretório possui o endereço do bloco de índices de cada arquivo Para acessar um bloco específico do arquivo é necessário acessar o bloco de índices para determinar o seu endereço físico no disco Os arquivos podem ser criados com tamanho zero

Alocação Indexada

Alocação Indexada Permite acesso direto Ocupa-se um setor inteiro para índices Para arquivos grandes são necessários vários setores de índices

Tamanho da tabela de índices Uma questão importante é o tamanho da tabela de índices. O número de entradas na tabela define o tamanho máximo de um arquivo no sistema. Se cada bloco físico tem 4 Kbytes, para que o tamanho máximo de um arquivo seja 4 Gbytes, é necessário uma tabela de índices com “4 Gbytes ÷ 4 Kbytes” entradas, ou seja, 1.048.576 entradas (o que é um exagero) Por outro lado, uma tabela de índices com apenas 5 entradas seria suficiente para um arquivo de 20 Kbytes (este é o tamanho médio dos arquivos em sistemas de propósito geral)

Tamanho da tabela de índices A solução típica que compatibiliza eficiência na representação de arquivos pequenos e tamanho máximo satisfatório para arquivos grandes é empregar níveis de indireção na indexação. O slide a seguir mostra o uso de índices (apontadores diretos e indiretos) no sistema Unix

Sistema de Diretórios Diretório de nível único Diretório de dois níveis Diretórios em forma de árvore

Diretório de Nível Único Todos os arquivos fazem parte do mesmo diretório Problemas de organizaçãono caso de muitos arquivos. É necessário nome único para cada arquivo

Diretório de Dois Níveis Criam-se diretórios separados para cada usuário No diretório principal mantem-se apenas os endereços dos diretórios dos usuários Proteção contra acessos indevidos

Diretórios Estruturados em Árvore Os usuários podem criar seus próprios sub-diretórios para organizar seus arquivos A árvore possui um diretório raiz Cada arquivo possui um pathname (nome do arquivo composto pelos nomes de diretórios que formam o caminho da raiz até ele)

Formas de Implementar Diretórios Basicamente, um diretório contém um conjunto de descritores (que apontam para outros diretórios ou para arquivos de dados) A forma mais simples de implementar diretórios é considerá-los como arquivos especiais, cujo conteúdo é manipulado pelo próprio SO Diretórios passam a ser arquivos cujo conteúdo é definido pelo SO e cujo acesso, por parte de usuários, é controlado

Formas de Implementar Diretórios Um diretório pode ser organizado na forma de: um conjunto de descritores de arquivos um conjunto de endereços de descritores de arquivos

Diretório organizado como um conjunto de descritores de arquivos O diretório contém diretamente os registros descritores (de arquivos ou diretórios) Desvantagens: (1) os nomes ficam fortemente vinculados aos descritores de arquivos (impede, p.ex., que se use mais de um nome para um mesmo arquivo); (2) os diretórios tendem a ser maiores e estão mais sujeitos a inconsistências, pois estão espalhadas por todo o disco.

Diretório organizado como um conjunto de descritores de arquivos (retângulos de cantos agudos representam diretórios e retângulos de cantos arrendodados representam arquivos de dados)

Diretório organizado como um conjunto de endereços de descritores Cada entrada do diretório contém um par: um nome de arquivo (ou de diretório) e um ponteiro para o descritor correspondente Neste esquema, é comum reservar uma parte do disco para armazenar exclusivamente os descritores de arquivos Esses blocos reservados constituem um vetor de descritores, no qual cada descritor pode ser perfeitamente identificado pela posição nesse vetor.

Diretório organizado como um conjunto de endereços de descritores Supõe-se que o primeiro descritor do vetor de descritores (índice 0) descreve o diretório raiz da árvore

Proteção dos Arquivos Confiabilidade: é proteção física obtêm-se criando cópias dos arquivos Proteção: é precaução contra acessos indevidos obtêm-se impossibilitando o acesso por outros usuários tipos de acesso: leitura, gravação e execução (envolvem acesso a arquivo); criação e remoção (envolvem acesso a diretório)

Questões de Implementação Definição de como o sistema de arquivos vai ser visto pelo usuário (conjunto de arquivos lógicos): definição de arquivos e seus atributos operações permitidas estrutura de diretórios Definição dos algoritmos e estruturas de dados a serem usados para mapear o sistema de arquivos lógicos nos dispositivos físicos utilizados pelo sistema de arquivos

Questões de Implementação Conceitualmente, um sistema de arquivos é dividido em três níveis de serviço: serviço de disco serviço de arquivo básico serviço de de diretório

Níveis de Serviço Serviço de disco: responsável pela leitura e escrita de setores diretamente no disco, sem se preocupar com a organização dos arquivos Serviço de arquivo básico: lida com a abstração de arquivos, compostos por um conjunto de registros (blocos). Operações básicas do tipo leitura e escrita a partir de uma determinada posição do arquivo

Níveis de Serviço Serviço de diretório: preocupa-se com a identificação e proteção de arquivos descritos a partir de diretórios, de forma que eles sejam acessados de forma segura e conveniente. Os diretórios mapeiam nomes simbólicos em identificadores numéricos utilizados pelo serviço de arquivos (camada de baixo)

Níveis de Serviço Usuários Serviço de Diretório Serviço de Arquivo Serviço de Disco Serviço de Arquivo Básico Serviço de Diretório Usuários

FIM