Sistemas Operativos - 2007/20082º Ano, 1º SemestreLEIC - Campus AlamedaLEIC - Campus Tagus Park LERC - Campus Tagus Park |
Projecto - Adenda
- Implementação do projecto em arquitecturas de 64 bits
A distribuição inicial do projecto foi concebida para ser implementada e testada em Linux arquitecturas i386 de 32 bits. Para que seja suportada em arquitecturas de 64 bits basta:
- Adicionar a flag
-m32
nas macroCFLAGS
eCCASFLAGS
das Makefile dos directórios sthread_lib e test-sthreads.- Certificar-se que existem as bibliotecas de 32 bits instaladas na máquina.
Estas alterações permitem, por exemplo, compilar e executar o projecto no Sigma. Mais se informa que o pacote sthreads+snfs-chk1-skel.tgz foi actualizado com estas alterações.
Chama-se a atenção que os projectos serão avaliados em arquitecturas de 32 bits, pelo que os alunos devem certificar-se que os projectos funcionam nas máquinas dos laboratórios.
- Parte III - Servidor Multi-Tarefa
Como juntar o código da Parte I com a Parte II:
Copiar os directórios de ambas as partes para a raiz do projecto (directório sthreads+snfs). Substituir a Makefile deste directório por esta.
Colocar os ficheiros do directório include de ambos as partes no mesmo directório include.
Actualizar o servidor:
- Copiar módulo io_delay.c para directório snfs_server. Contém funções que são chamadas pelas funções
block_read
eblock_write
do módulo blocks.c e que permite simular atrasos na leitura/escrita de blocos (ver ficheiro blocks.c e io_delay.c)- Substituir a Makefile do directório snfs_server por esta. Permite: 1) utilizar as funções da biblioteca sthreads, 2) activar a simulação dos tempos de atraso no acesso aos blocos (macros SIMULATE_IO_DELAY).
- Corrigir o bug encontrado no servidor substituindo o ficheiro fs.c por este (alterações efectuadas).
- Garantir que os testes sthreads+snfs-test-parte-2.2.tgz continuam a funcionar (agora com os atrasos induzidos pela simulação). Inclui ficheiro test-mylistdir.c corrigido com as seguintes alterações.
Sugestões para implementação da Parte III:
- Ler a secção do enunciado que especifica a Parte III.
- Compreender o funcionamento do módulo server.c.
- Estruturar o módulo server.c em várias tarefas de acordo com o especificado.
- Sincronizar as tarefas (ver FAQ).
- Parte IV - Funcionalidades do Sistema de Ficheiros
De modo a facilitar a utilização do sistema de ficheiros com sub-directórios, os alunos podem usar a função find_path. Esta função deverá ser incluída no ficheiro myfs.c.
Sugestões para implementação da Parte IV:
- Utilizar o comando disk_usage na depuração das funcionalidades do sistema de ficheiros.