1. Os testes devem ser descompactados na directoria "snfs+sthreads" e, efectuado o comando "make", os respectivos ficheiros ficarão na directoria "test-2parte". 2. Estão disponíveis 6 testes. Os mesmos estão divididos em 2 grupos: - Iº Grupo (Comunicação Cliente-Multiservidores): client_SNFS01, client_SNFS02, client_SNFS03, client_SNFS04. - IIº Grupo (Caches de Blocos e de Directorias): server_cache01, server_cache02. TESTE DESCRIÇÃO OBJECTIVO ----------------------------------------------------------------------------------------------------------------------------------------------------- client_SNFS01 Pedido de criação de um ficheiro Criação do ficheiro nos N=3 servidores ------------------------------------------------------------------------------------------------------------------------------------------------- client_SNFS02 Pedido de leitura do ficheiro criado na alínea anterior O pedido é enviado apenas para M=2 servidores ------------------------------------------------------------------------------------------------------------------------------------------------- client_SNFS03 3 Pedidos consecutivos de leitura do mesmo ficheiro Os pedidos são enviados para M=2 servidores que são seleccionados com a disciplina Round-Robin ------------------------------------------------------------------------------------------------------------------------------------------------- client_SNFS04 Pedido de criação de um ficheiro quando um dos servidores Mostrar que a operação só tem sucesso se todos não se encontra activo os N=3 servidores responderem. ------------------------------------------------------------------------------------------------------------------------------------------------- server_cache01 i) Pedido de criação de um ficheiro que ocupa 10 blocos; Verificar a existência da cache de blocos comparando ii) Pedido de leitura do mesmo ficheiro para que o seu o tempo de leitura dum ficheiro em 2 situações conteúdo preencha as 10 entradas da cache de blocos; distintas:-Quando os blocos do ficheiro iii) Criação e leitura de 10 novos ficheiros de modo a se encontram na cache, e quando se encontram preencher os blocos da cache; apenas no sistema de ficheiros. iv) Pedido de leitura do primeiro ficheiro (cujos blocos já não se encontram na cache de blocos). ------------------------------------------------------------------------------------------------------------------------------------------------------- server_cache02 i) Pedidos de criação de 5 ficheiros. Os pathnames dos Verificar a existência da cache de directorias últimos 4 ficheiros ocupam a cache de directorias; comparando o tempo de leitura dum ficheiro em ii) Pedido de leitura do primeiro ficheiro, cujo pathname 2 situações distintas (quando o pathname se encontra na nãose encontra na cache de directorias; cache de directorias, e quando se encontra apenas no iii) Pedido de leitura do mesmo ficheiro, cujo pathname sistema de ficheiros). nesta altura já se encontra na cache de directorias. ----------------------------------------------------------------------------------------------------------------------------------------------------- 3. Procedimento para a execução dos testes do Iº Grupo (Comunicação Cliente-Multiservidores): a) Utilizar 4 terminais; b) No 1º terminal, executar na directoria snfs+sthreads/snfs_server/ a aplicação ./server 50000 1 (o valor 50000 é meramente exemplificativo); c) No 2º terminal, executar na directoria snfs+sthreads/snfs_server/ a aplicação ./server 40000 2 (o valor 40000 é meramente exemplificativo); d) No 3º terminal, executar na directoria snfs+sthreads/snfs_server/ a aplicação ./server 50000 3 (o valor 50000 é meramente exemplificativo); e) No 4º terminal, executar na directoria snfs+sthreads/test-2parte/ o teste ./client_SNFS01 ; Mantendo os servidores activos: f) No mesmo terminal, executar na directoria snfs+sthreads/test-2parte/ o teste ./client_SNFS02 ; g) No mesmo terminal, executar na directoria snfs+sthreads/test-2parte/ o teste ./client_SNFS03 ; Reiniciar os servidores nos respectivos terminais: h) No mesmo terminal, executar na directoria snfs+sthreads/test-2parte/ o teste ./client_SNFS04 (efectuar as instruções sugeridas pelo programa do teste). 4. Procedimento p/ a execução dos testes do IIº Grupo (Caches de Blocos e de Directorias): Utilizar 2 terminais: a) - No 1º terminal, executar na directoria snfs+sthreads/snfs_server/ a aplicação ./server 50000 1 ; - No 2º terminal, executar na directoria snfs+sthreads/test-2parte/ o teste ./server_cache01 ; b) - No 1º terminal, reiniciar o servidor - No 2º terminal, executar na directoria snfs+sthreads/test-2parte/ o teste ./server_cache02 . NOTA IMPORTANTE: Os testes a) e b) deste grupo devem ser repetidos várias vezes (>3). Os mesmos têm sucesso apenas se for obtido o resultado "SUCCESS" em todas as repetições. Este facto deve-se ao método aproximativo usado na avaliação da existência, ou não, de caches, e que se baseia no emprego da função "gettimeofday" definida em "sys/time.h". Por este motivo, na avaliação final, os resultados destes testes terão de ser confirmados pela análise cuidada do código.