Baixe o app para aproveitar ainda mais
Prévia do material em texto
Caio Silva - 101629150 Fernando Souza - 101629419 Larry Júnior - 101629397 Questões referente a Gerenciamento de Arquivo – Parte 1 1. Quais são os três requisitos fundamentais quando falamos do problema do armazenamento de informações a longo prazo. Explique cada um deles. Deve ser possível o armazenamento de grande quantidade de informação. A capacidade de memória de um processo está restrita ao tamanho do espaço de endereçamento virtual. Para algumas aplicações esse espaço não é o suficiente. A informação deve sobreviver ao término do processo que a estiver usando. É inaceitável que a informação em uso pelo processo desapareça quando ele é encerrado. Caso ocorra uma falha no computador e o processo seja eliminado a informação não deve desaparecer. Vários processos devem ser capazes de manipular a informação ao mesmo tempo. Informações dentro do espaço de um processo só podem ser acessadas por ele, sendo assim a informação deve se tornar independente de qualquer processo. 2. Explique quais são as Estruturas internas de Arquivos e quais são as formas de Acesso Interno a Arquivos, comentando as vantagens e desvantagens de cada uma. Há 3 tipos de estruturas internas de arquivos, que são: Sequência de Bytes: A aplicação fica responsável, não há nenhum tipo de estrutura lógica. Sendo assim há uma maior flexibilidade para colocar qualquer coisa no arquivo sem a interferência do SO. Isso é implementado tanto pelo Windows quando pelo Unix. Sequência de Registros de Tamanho Fixo: Cada arquivo com alguma estrutura interna, assim a leitura e gravação é de registros ao invés de bytes. Árvore de Registros: Esta é ordenada por um campo chave, nem todos os registros têm o mesmo tamanho e é amplamente utilizada em computadores de grande porte para o processamento de dados comerciais, por exemplo. Já o acesso interno a arquivos pode ser feito de 2 formas: Acesso Sequencial: A leitura é feita em bytes/registros a partir do início e não é possível salta-los. Normalmente é usada em fitas magnéticas. Essa forma foi utilizada pelos primeiros SOs. Acesso Aleatório: A leitura é feita em bytes/registros lidos em qualquer ordem, ou seja, o marcador do arquivo pode ser movido e então é feita a leitura. Essa forma é usada em disco, feita pelos SOs atuais e essencial para sistemas de base de dados. 3. Enumere os principais atributos de um arquivo. Protection: Quem pode acessar o arquivo e de que forma. Password: Senha necessária para acessar o arquivo. Creator: ID da pessoa que criou o arquivo. Owner: Proprietário atual. Read-only flag: 0 para leitura e gravação; 1 para somente leitura. Hidden flag: 0 normal; 1 para não exibir listagem. System flag: 0 para arquivos normais; 1 para arquivo do sistema. Archive flag: 0 foi recuperado; 1 para ter cópia de segurança. ASCII/binary flag: 0 para arquivo texto; 1 para arquivo binário. Random access flag: 0 para acesso sequencial; 1 para acesso aleatório. Temporary flag: 0 normal: 1 para excluir arquivo na saída do processo Look flags: 0 para desbloqueado; diferente de 0 para bloqueado. Record length: Numero de bytes em um registro. Key position: Deslocamento da chave dentro de cada registro. Key length: Número de bytes no campo chave. Creation time: Data e hora que o arquivo foi criado. Time of last access: Data e hora do último acesso ao arquivo. Time of last change: Data e hora da última alteração do arquivo. Current size: Número de bytes no arquivo. Maximum size: Número de bytes que o arquivo pode ter. 4. Enumere as principais operações sobre arquivos. Create: Cria arquivo sem dados, anuncia existem do arquivo e define seus atributos. Delete: Libera espaço em memória, faz chamada ao sistema para esse fim. Open: Permite que o SO busque o arquivo e coloque-o na memória principal os seus atributos e lista de endereços do disco para tornar os próximos acessos mais rápidos. Close: Libera espaço na tabela interna. Se os disco é escrito em blocos o fechamento força a escrita do último bloco do arquivo, mesmo que ele não esteja completo. Read: Ler dados do arquivo. Para isso quem faz a leitura deve, especificar a posição de onde será feita a leitura, a quantidade de dados a serem lidos e o buffer onde serão colocados os dados. Write: Escrita na posição determinada. Se a posição seja no fim do arquivo o seu tamanho é aumentado, senão os dados serão sobrescritos. Append: Adiciona dados ao final do arquivo, aumentado o seu tamanho. Seek: Reposiciona o ponteiro do arquivo para local específico. Get Attributes: Retorna atributos do arquivo. Set Attributes: Permite ao usuário a alteração dos atributos do arquivo. Rename: Renomeia o arquivo. 5. O que é um descritor de arquivo? Para que ele serve? O descritor de arquivos é um valor inteiro criado pelo SO no momento da criação ou abertura de um arquivo. As operações de E/S sobre o arquivo são realizadas por meio deste número. 6. Explique os 3 tipos de níveis de diretórios existentes. Diretório de nível simples: Existe apenas o diretório raiz e todos os arquivos ficam dentro dele, independente da quantidade de usuários. Essa forma simples faz com que a localização dos arquivos seja feita rapidamente pelo SO, entretanto a nomeação de arquivos acaba se tornando um problema. Diretório de dois níveis: Dentro do diretório raiz existe mais um diretório para cada usuário, dentro do diretório de cada usuário ficam todos os seus arquivos. Com essa mudança a uma melhoria em relação a nomeação de arquivos. Diretório de nível hierárquico: Dentro do diretório raiz há um diretório para cada usuário, dentro do diretório de cada usuário existem arquivos e subdiretórios. Com o nível hierárquico o usuário pode organizar de uma forma melhor seus arquivos, podendo criar vários diretórios um dentro do outro juntamente com arquivos, o que facilita muito a vida do usuário. No entanto o desempenho na localização dos arquivos por parte do SO diminui a cada diretório que é criado devido aos vários carregamentos e descarregamentos de diretórios que são feitos. 7. Explique as diferenças entre caminho absoluto e caminho relativo. Caminho Absoluto começa sempre a partir da raiz, é único para cada arquivo. Já no caminho relativo à relação com o diretório atual, já que é possível ter arquivos com nomes iguais em diretórios diferentes. 8. O que é fragmentação interna e externa referente a arquivos? Por que elas ocorrem? Os SOs tem definidos o tamanho de um bloco no disco, no Linux esse tamanho é de 4KB e no Windows é de 8KB. Devido a isso, o mínimo que um arquivo pode ocupar em disco é esse tamanho de um bloco, mesmo que o arquivo tenha apenas 1KB. Isso gera a fragmentação interna no disco. Fragmenta interna é a sobra de espaço dentro dos blocos de arquivos, ela ocorre porque o tamanho do arquivo não é o suficiente para ocupar todo o bloco, são raras as vezes que um arquivo tem exatamente o tamanho de um bloco ou o tamanho dos blocos alocados para ele. Já a fragmentação externa é a sobra de espaços entre os blocos de arquivos. Exemplo: Suponhamos um disco de 50 blocos que tem 4 arquivos de 12 blocos cada, sendo eles A, B, C e D, gravados nessa ordem, sobrando assim 2 blocos no disco. Caso o usuário exclua o arquivo B, tendo então no total 14 blocos livre, e tente gravar um arquivo que ocupe 14 blocos ele não conseguirá, pois não há 14 blocos livres em sequência, ocorreu então a fragmentação externa. Para a fragmentação externa há várias soluções, uma delas é a desfragmentação (remanejar os blocos dos arquivos), já para a fragmentação interna não há uma solução. 9. Explique o que é alocação contígua de arquivos, apresentando suas vantagens e desvantagens. Alocação contígua é a gravação e leitura sequencial dos arquivos. Vantagens: É simples de ser implementada, pois é preciso apenas guardar 2 valores, o endereço do primeiro bloco no disco e a quantidade de blocos a serem lidos. A leitura tem um desempenho excelente, pois todo o arquivo pode ser lido em apenas uma operação, bastafazer o seek inicial e realizar a leitura. Desvantagens: Fragmentação do disco, pois todos o conteúdo dos arquivos devem ser gravados sequencialmente. Quando um arquivo é deletado mas não deixa espaço suficiente para outros arquivos serem gravados naquela região ela fica inutilizável até que seja gerado um arquivo pequeno o suficiente para ser gravado nela. O custo para se fazer a realocação dos blocos do arquivo. 10. Explique a alocação de arquivos em listas ligadas no bloco, apresentando suas principais vantagens e desvantagens. A alocação de arquivos em listas ligadas no bloco é feita de forma que em cada bloco do arquivo a um ponteiro para o próximo. Vantagens: Não há fragmentação externa do disco; Mantém apenas uma entrada de diretório para o endereço do primeiro bloco. Desvantagens: Acesso aleatório extremamente lento, pois para chegar ao bloco n devem ser lidos n-1 blocos; A quantia de dados não é mais potência de 2, devido ao ponteiro para o próximo e os programas lêem em potência de 2. Devido a isso é necessário obter e concatenar dois blocos, gerando a sobrecarga extra. 11. Explique a estrutura do sistema de arquivos conhecido como FAT, comentando sobre suas qualidades e deficiências. O sistema de arquivos FAT é uma melhoria gerada para o caso da alocação de arquivos em listas ligadas no bloco, pois nele os ponteiros não ficam mais no bloco e sim na tabela FAT, fazendo com que a quantia de dados seja potência de 2. O acesso então é mais rápido se for utilizado um algoritmo para aproveitar a vantagem de conhecer todos os endereços dos blocos, o que também é uma desvantagem pois a tabela toda fica em memória e ocupa muito espaço. 12. Explique a estrutura do sistema de arquivos conhecido como I-Node, comentando sobre suas qualidades e deficiências. O I-Node é uma tabela de índices para arquivo, que tem cabeçalhos e ponteiros para os blocos do arquivo, mas a sua principal vantagem é que ele não precisa ficar totalmente em memória como a tabela FAT, ele fica apenas quando o arquivo está aberto, ele ocupa n bytes e no máximo k arquivos = kn bytes e leva em consideração o número máximo de arquivos abertos em um determinado tempo. Mas e se a estrutura do i-node tiver espaço para um número fixo de endereços de disco, o que acontece se o arquivo crescer? A solução para esse caso é reservar o último endereço para o endereço de um bloco contendo mais endereços de blocos de disco (outro I-Node). 13. Analise o impacto das fragmentações interna e externa nos sistemas de alocação contígua, lista encadeada e por lista encadeada na RAM. O impacto da fragmentação interna é o mesmo em todos os sistemas, pois não há uma solução para isso. Já o impacto da alocação externa é extremamente pior no sistema de alocação contígua, pois a única solução para esse tipo de sistema é a desfragmentação que tem um custo muito grande. No sistema de lista encadeada o problema é a sobrecarga extra e a quantidade de blocos a mais que são lidos para chegar ao bloco desejado. O menor impacto então é no sistema de lista encadeada na RAM, pois não há a sobrecarga e a leitura de blocos inutilizados pode ser minimizada utilizando um algoritmo para melhorar a leitura em disco.
Compartilhar