Engenharia de Controle e Automação Computação Para Engenharia Semana 5 18/02/2013 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 1 Agenda Sistema de Arquivos 18/02/2013 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 2 Problemas quanto ao armazenamento de informações • Capacidade de memória está restrita ao tamanho do espaço de endereçamento virtual; • Manter a informação mesmo quando processo termina; • Múltiplos processos tenham acesso à informação (ou parte dela) ao mesmo tempo. Armazenamento da Informação a Longo Prazo • Deve ser possível armazenar uma quantidade muito grande de informação • A informação deve sobreviver ao término do processo que a usa • Múltiplos processos devem ser capazes de acessar a informação concorrentemente. Solução • Armazenar a informação em discos e em outros meios externos : em unidades chamadas arquivos; • A informação deve ser persistente: não pode ser afetada com criação ou término de processo; • Um arquivo só será apagado pelo seu proprietário. Sistema Operacional • Arquivos são gerenciados pelo sistema operacional; • Sistema de Arquivos de um SO: estruturar, nomear, acessar, usar, proteger e implementar. Arquivos • Arquivo é um mecanismo de abstração; Isola o usuário dos detalhes sobre: – Como e onde a informação está armazenada – Como os discos funcionam. • Quando um processo cria um arquivo, ele dá um nome; • Quando o processo termina o arquivo continua existindo; • Outros processos têm acesso a esse arquivo; Arquivos • Cada arquivo é identificado por um nome, o qual permite que o usuário faça referências a ele. Além do nome, cada arquivo possui uma série de outros atributos que são mantidos pelo SO. Entre os mais usuais: • Tipo de Conteúdo; • Tamanho; • Data e horário do último acesso; • Data e hora da última alteração; • Identificação do usuário que criou o arquivo; • Lista de usuários que podem acessar o arquivo. Operações Básicas • O SO suporta diversas operações sobre arquivos. As operações básicas são: • Criação do arquivo; • Destruição do arquivo; • Leitura do conteúdo; • Alteração do conteúdo; • Escrita de novos dados ao final do arquivo; • Execução do programa contido no arquivo; • Troca do nome do arquivo; • Alteração na lista de usuários que podem acessar o arquivo. Em geral, essas operações básicas correspondem a chamadas de sistema que os programas de usuário podem usar para manipular arquivos. A partir das operações básicas muitas outras podem ser implementadas. Controle de Acesso • Em sistemas multiusuários (Linux, Windows), é importante controlar o acesso aos arquivos.O controle de acesso inicia com a identificação dos usuários. Isso normalmente é feito com um código de usuário e uma senha. O SO então verifica a senha e confirma que o usuário naquele terminal é mesmo quem ele afirma ser. A partir do momento em que a identificação do usuário é feita, todos os processos disparados a partir do terminal em questão passam a ter os direitos de acesso associados àquele usuário. É possível associar a cada arquivo uma lista de usuários e direitos de acesso. Controle de Acesso - Grupos de Usuários • Para facilitar o controle de acesso aos arquivos, a solução é criar grupos de usuários. O administrador do sistema cria diversos grupos de usuários, conforme suas afinidades. Estrutura Interna dos arquivos • Cada tipo de arquivo possui uma estrutura interna apropriada para a sua finalidade. Existe, na prática, uma enorme quantidade de diferentes tipos de arquivos, e, não é viável para o SO conhecer todos os tipos de arquivos existentes. • Em geral, os SO ignoram a estrutura interna dos arquivos. Para o SO cada arquivo corresponde a uma sequência de bytes, cujo significado é conhecido pelo usuário que criou o arquivo. A única exceção são os arquivos que contêm programas executáveis. Nesse caso, a estrutura interna é definida pelo próprio SO, responsável pela carga do programa para a memória quando esse deve ser executado. Métodos de acesso • Método de acesso diz respeito à forma como o conteúdo de um arquivo é acessado. O método de acesso mais simples é o sequencial. Método de acesso Sequencial • • Nesse caso, o conteúdo do arquivo pode ser lido sequencialmente, pedaço a pedaço. A figura abaixo ilustra a leitura sequencial de um arquivo. Os valores “A”, “B”, etc., podem representar bytes, linhas ou registros. Cada chamada de sistema retorna para o processo os dados seguintes àqueles que foram lidos na chamada anterior. O acesso sequencial é muito em compiladores, impressão de arquivo, copiar o conteúdo de um arquivo para outro. Arquivo A B C D E F Ler arquivo A Ler arquivo B Ler arquivo C Método de acesso Relativo Nesse método de acesso, o programa inclui na chamada de sistema qual a posição do arquivo a ser lida. As posições do arquivo são numeradas a partir de 0 (ou 1 em alguns sistemas), sendo que cada posição corresponde a um byte. Arquivo Ler arquivo, posicionar em 2 A B C D E F C Ler arquivo, posicionar em 4 E Ler arquivo, posicionar em 0 A Método de acesso Relativo usando posição corrente no arquivo Em muitos SO, existe o conceito de posição corrente no arquivo. Nesse caso, a chamada de sistema para leitura ou escrita não informa uma posição. Essa sempre acontece a partir da posição corrente. A posição corrente é então avançada para imediatamente após o último byte lido ou escrito. Dessa forma, as leituras e escritas são, a princípio, sequenciais. Entretanto, o SO também permite que o programa altere a posição corrente no arquivo usando uma chamada de sistema do tipo “Posicionar”. Dessa forma, acesso relativo pode ser obtido por intermédio de uma chamada de sistema “Posicionar” seguida de uma chamada de sistema “Ler” ou “Escrever”. Arquivo A B C D E F Posicionar em 2 Ler C Posicionar em 4 Ler E Posicionar em 0 Ler A Implementação de arquivos A forma básica de implementar arquivos é criar, para cada arquivo no sistema, um descritor de arquivo. O descritor de arquivo é um registro no qual são mantidas as informações a respeito do arquivo. Essas informações incluem os seus atributos, além de outros dados que não são visíveis aos usuários mas que são necessários para que o SO implemente as operações sobre arquivos. Um descritor de arquivo típico contém as seguintes informações: • Nome do Arquivo; • Extensão do nome do arquivo; • Tamanho em bytes; • Data e horário do último acesso; • Data e hora da última alteração; • Identificação do usuário que criou o arquivo; • Lista de usuários que podem acessar o arquivo e respectivos direitos de acesso; • Local no disco onde o conteúdo do arquivo foi colocado. Muitas vezes, o SO sofre paradas propositais ou acidentais, mas o conteúdo dos discos permanece intacto. Logo, assim como o conteúdo do arquivo, o descritor deve ficar em disco. A forma usual é manter o descritor de um arquivo ée na mesma partição onde está seu conteúdo. Diretórios Sistemas de Diretório em Nível Único • Um sistema de diretório de nível único • Contém 4 arquivos • Propriedades de 3 pessoas diferentes, A, B, e C Sistemas de Diretórios em Dois Níveis • As letras indicam os donos dos diretórios e arquivos Sistemas de Diretórios Hierárquicos Sistemas de Diretórios - Operações • • • • • Criar Apagar Abrir / Acessar Listar conteúdo Renomear Bibliografia BIBLIOGRAFIA BÁSICA 1 2 3 TANENBAUM, Andrew S. Redes de computadores. Rio de Janeiro: Campus, 1994. MACHADO, Francis Berenger. Arquitetura de sistemas operacionais. Rio de Janeiro: Livros Técnicos e Científicos, 2002. 3. ed. SOUZA, Marco Antônio de Furlan. Algoritmos e lógica de programação. 2ª ed. São Paulo, Cengage Learning, 2011. BIBLIOGRIA COMPLEMENTAR 1 2 3 4 5 CANTU, Marco. Dominando o Delphi 5 "a Bíblia". São Paulo: Makron Books, 2000 LOURENÇO, Antônio Carlos de. Circuitos digitais. São Paulo: Érica, 2005 NORTON, P., Introdução à Informática, 5ª edição, São Paulo, Printice Hall, 2004. 1997 MANZANO, José Augusto. Algoritmos. São Paulo: Érica, 2011. COMER, Douglas E. Interligação em rede com TCP/IP: projeto, implementação e detalhes internos. Tradução de Ana Maria Netto GUZ. 3. ed. Rio de Janeiro: Campus, 1999. v. 2. 02/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 22