Buscar

Trabalho de Sistema de Arquivos (Diretórios) - SI

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 5 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Sistema de Arquivos - Diretórios
Trabalho II de Sistemas Operacionais
�
Guilherme de Souza Gomes
PUCRS – Pontificia Universidade Católica RS
Sistemas de Informação
Porto Alegre, RS, Brasil
guilherme.gomes.002@acad.pucrs.br
�
Este relatório busca explicar simplificadamente como foi feito, organizado e implementado o trabalho relativo a Sistema de Arquivos, fazendo leitura de diretórios e arquivos para a cadeira de Sistemas Operacionais ministrada pelo prof. Avelino Zorzo, no semestre II de 2014.
Palavras-chave — sistema de arquivos; arquivos; diretórios; atributos; sistemas operacionais; sisop;
 Introdução 
Elaborada utilizando como base as definições do professor para o trabalho, e utilizando os códigos fornecidos pelo professor em aula, este trabalho consiste na elaboração de um “simulador” de leitura de comandos para listagem de diretórios, arquivos e permissões, acessando o sistema de arquivos da máquina. Para implementação do código foi utlizado o NetBeans e a linguagem de programação JAVA. O Astah foi utilizando para geração do diagrama de classe, e os testes foram efetuados no Linux Mint.
Sistema de arquivos
Iniciando o programa
O programa implementado no NetBeans que acessa o sistema de arquivos da máquina Linux, consiste de uma única package. Dentro desta package, foi implementado apenas 1 classe chamada Main. Esta classe é a responsável por todo o funcionamento do trabalho.
Main Class
A classe Main é a única, e portanto principal, classe do trabalho. Dentro dela se encontra toda a implementação do simulador que acessa o sistema de arquivos. A idéia do trabalho consiste em simular os comandos do Linux “ls”, “ls –l”, “ls –R” e “ls –l –R”. Portanto é importante rever basicamente o que faz cada um dos comandos.
Comando LS
O comando LS executa simplesmente uma listagem de todos os arquivos dentro de um diretório, o qual pode ser informado ou não. Caso haja um diretório dentro do diretório que está sendo listado, não há recursão.
Comando LS –L
O comando LS -L executa uma listagem de todos os arquivos dentro de um diretório, o qual pode ser informado ou não. Caso haja um diretório dentro do diretório que está sendo listado, não há recursão. A diferença principal deste comando, é que ele retorna as informações dos arquivos referente a: Permissões, Grupo, Tamanho, Data de Criação e Nome.
Comando LS –R
O comando LS -R executa uma listagem de todos os arquivos dentro de um diretório, o qual pode ser informado ou não. Caso haja um diretório dentro do diretório que está sendo listado, neste caso existirá a recursão, listando todos os arquivos existentes dentro dos diretórios subsequentes.
Comando LS –L -R 
O comando LS -R é a união dos comandos anteriores. Retornará a listagem contendo todas as informações dos atributos dos arquivos de forma recursiva.
Sabendo previamente então o que devemos esperar dos resultados do trabalho, explicam-se os métodos utilizados e a forma da criação do trabalho.
Dentro da Classe Main portanto temos além do método main que executará o programa, os seguintes métodos.
LS(Path p)
Este método executará a leitura do dirétorio padrão, ou então o informado pelo usuário. O método recebe um caminho como parâmetro e o utiliza para a busca e elaboração da Strem do diretório. Então um laço For Each é usado para que hava a leitura do nome de todos os arquivos existentes dentro daquele diretório, adicionando-os dentro de uma String que será retornada ao final da execução do método.
Caso haja um erro na execução, há o tratamento para exceções de IO e Iterador do Diretório.
ImprimeBasics(Path file)
Este método executará a leitura dos dados básicos dos arquivos existentes dentro do caminho informado como parâmetro. Estes dados básicos são: Tamanho, Data de Criação (estes dois utilizados no comando –L), e verificações do tipo do arquivo (diretório, outro, arquivo regular ou link simbólico). Os dados utilizados serão guardados numa String retornada ao final da execução. 
Há tratamento de exceção de IO caso gere erro.
ImprimePosix(Path file)
Este método executará a leitura dos dados posix dos arquivos existentes dentro do caminho informado como parâmetro. Estes dados são: Permissões, Nome do Owner, Grupo (estes utilizados no comando –L), e faz uma verificação se o arquivo é diretório. Os dados utilizados serão guardados numa String retornada ao final da execução. 
Assim como os demais, há tratamento de exceção IO, caso gere erro.
LS -L(Path p)
Este método retornará uma String informando todos os dados dos arquivos existentes dentro do diretório passado como parâmetro. Basicamente ele se utiliza do mesmo método que o LS utiliza para percorrer os arquivos, só que além do nome, o método informa os demais dados pertinentes e já previamente explicados.
Caso haja um erro na execução, há o tratamento para exceções de IO e Iterador do Diretório.
LS -R(Path p)
Este método retornará uma String informando todos os arquivos existentes dentro do diretório passado como parâmetro recursivamente. Basicamente ele se utiliza do mesmo método que o LS utiliza para percorrer os arquivos de forma já previamente explicada sobre esse comando.
Caso haja um erro na execução, há o tratamento para exceções de IO e Iterador do Diretório.
LS –L -R(Path p)
Este método retornará uma String informando todos os dados dos arquivos existentes dentro do diretório passado como parâmetro. Basicamente ele é a união dos demais métodos todos. Percorre os arquivos, só que além do nome, o método informa os demais dados pertinentes de forma recursiva e já previamente explicado.
Caso haja um erro na execução, há o tratamento para exceções de IO e Iterador do Diretório.
Main
É o método que executará todos o programa. Dentro deste método existe além do Scanner para leitura dos comandos passados pelo usuário a divisão do comando e verificação do mesmo através de um Switch. Portanto temos 4 cases nesse switch e um default. O método verifica o comando e chama o método de referente a ele: LS, LS –L, LS –R ou LS –L –R e imprime os resultados para o usuário.
Caso o comando passado não seja nenhum dos existentes e definidos no trabalho, informa-se o usuário para utilizar os comandos corretos.
diagrama
Figura 1– Diagrama de Classe
resultados
Abaixo seguem resultados para os comandos requisitados para os 2 casos. Quando informado caminho, e quando não informado.
COMANDO LS:
�
				Figura 2.1 – LS sem caminho						
Figura 2.2 – LS com caminho�
COMANDO LS –L:
				Figura 3.1 – LS -L sem caminho
				Figura 3.2 – LS -L com caminho
COMANDO LS –R:
�
						 
		Figura 4.2 – LS -R com caminho
�
		Figura 4.1 – LS -R sem caminho
COMANDO LS –L –R:
					Figura 5.1 – LS -L -R sem caminho
	Figura 5.2 – LS -L -R com caminho
Referências
Código passado pelo professor em sala de aula.
Oracle Docs – API PATH. Disponivel em <https://docs.oracle.com/javase/7/docs/api/java/nio/file/Path.html> Acesso dia 17 de Novembro de 2014.
Viva o Linux – O Comando LS de A a Z. Disponível em: <http://www.vivaolinux.com.br/artigo/O-comando-LS-de-A-a-Z> Acesso dia 15 de Novembro de 2014.

Outros materiais