Skip to content

Trabalho realizado para disciplina de Arquitetura de Sistemas Operacionais

Notifications You must be signed in to change notification settings

MRossettiPQ/Trab_OSO

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Trab_OSO

############################### Equipe ##########################################

Matheus Rossetti
Rian Turibio

####################### Descrição do Trabalho ###################################

DEC7556-07655 (20191) - Arquitetura de Sistemas Operacionais Enunciado dos trabalho Desenvolver um sistema de arquivos distribuídos que simula padrão EXT3. O sistema deve ser desenvolvido em C ou C++ utilizando o compilador GNU GCC e chamadas de sistemas do padrão POSIX.

O sistema deve permitir que arquivos locais sejam acessados por usuários remotos simultaneamente. As operações permitidas pelo sistema devem incluir:

criar (sub)diretório remover (sub)diretório entrar em (sub)diretório mostrar conteúdo do diretório criar arquivo remover arquivo escrever um sequência de caracteres em um arquivo mostrar conteúdo do arquivo Etapa 1

Desenvolver a estrutura de acesso do servidor de arquivos. Ele deverá será acessado via socket TCP. Cada conexão deverá ser gerida por uma thread. Condições de corrida deverão ser tratadas por meio de semáforos ou mutexes. Nesta etapa você não precisa implementar as operações sobre arquivos listadas acima. Ao invés disso, use as operações diretamente do sistema de arquivos do seu sistema operacional. Recomenda-se que o servidor imprima mensagens na tela para demonstrar o funcionamento ao professor.

Observações:

Não é necessário autenticação dos usuários. Não é necessário criar um aplicativo cliente. Você pode usar o aplicativo netcat disponível para Linux e Windows. Etapa 2

Estenda o trabalho desenvolvendo a estrutura de alocação e organização de arquivos do servidor de arquivos. Mais precisamente, agora a aplicação servidor utilizará um arquivo em disco que simulará o sistema de arquivos EXT3. Dentro deste arquivo haverá no mínimo três regiões: uma região para o controle de espaço livre, uma região para armazenar inodes e uma região para armazenar dados de arquivos e diretórios. As operações devem ser implementadas usando o arquivo que simula o sistema de arquivos. Por exemplo, assuma que o arquivo que simula o sistema de arquivos se chama sa.bin e que um usuário quer criar um arquivo chamado teste.txt no servidor contendo os caracteres "abcd" (4 bytes). Então, dentro de sa.bin o servidor deve encontrar um inode livre, atribuir o nome teste.txt ao inode e associar um bloco livre de 4 bytes para conter "abcd". Ainda dentro de sa.bin, grava-se "abcd" no bloco livre associado e se deduz espaço utilizado para guardar "abcd" do espaço livre.

A thread no servidor deve receber uma solicitação do cliente e então repassá-la a um novo processo via pipe nomeado e este deverá executar a ação solicitada e devolver ao servidor uma mensagem de status, informando se a solicitação foi realizada com sucesso ou com erro.

Informações

O trabalho deverá ser feito em dupla ou individualmente. No dia da apresentação, data que deverá ser marcada com antecedência com o professor, o aluno ou alunos irão apresentar o programa em execução mostrando as funcionalidades do mesmo, bem como apresentar o código fonte. As notas serão atribuídas de maneira individual, ou seja, caso o trabalho tenha sido feito em dupla cada um dos autores receberá uma nota. Esta nota dependerá do desempenho durante apresentação do trabalho onde o professor arguirá o aluno. O trabalho deverá ser desenvolvido na linguagem de programação C usando as bibliotecas de semáforos, threads e comunicação entre processos (socket local ou pipe nomeado).

Ponto extra em cada etapa (nota máxima é 10)

  • 0.5 se usar controle de versão durante todo o desenvolvimento (ex. Github ou Bitbucket)

  • 0.5 se disponibilizar makefile para compilar o projeto

About

Trabalho realizado para disciplina de Arquitetura de Sistemas Operacionais

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published