Anúncios

Resultados do 1º Teste

5 dezembro 2019, 10:38 José Manuel da Costa Alves Marques

Na pasta  Pautas podem encontrar  os resultados do 1º teste
Na secção Teóricas na pasta  exame e testes  está o enunciado com uma resolução resumida da prova 

A revisão de provas será no dia 11 as 11.30 na  sala 0.9, no piso 0 do Informática III




Aulas teóricas esta semana

3 dezembro 2019, 11:42 João Pedro Faria Mendonça Barreto

Na próxima quarta-feira (amanhã) não haverá aula teórica, pois participarei em júri de prova de doutoramento que coincide com a hora das teóricas.

As aulas teóricas retomam na sexta-feira, como habitualmente.

João Barreto


Não há aulas laboratoriais esta semana

2 dezembro 2019, 23:56 João Pedro Faria Mendonça Barreto

Uma vez que o apoio ao projeto já terminou, não haverá aulas laboratoriais nos restantes dias desta semana.
Notamos que, nos turnos taboratoriais da próxima semana, será realizado o teste prático sobre o projeto. Mais informação detalhada será publicada ainda durante esta semana.


Pauta do Exercício 2 do Projeto

27 novembro 2019, 23:37 Renato Jorge Caleira Nunes

A pauta do Exercício 2 do Projeto está disponível na secção "Pautas".


Comportamento das funções 'delete' e 'rename' sobre ficheiro aberto

25 novembro 2019, 00:45 João Pedro Faria Mendonça Barreto

Anúncio atualizado a 27/11: alterações destacadas a bold.

O enunciado do 3º projeto deixa em aberto qual a resposta à seguinte pergunta: se a função 'delete' ou 'rename' for chamada num momento em que ficheiro com o nome a remover está aberto (por um ou mais clientes), qual deve ser o comportamento do 'delete'? 
Este é um dos aspetos avançados do projeto, que deverá ser abordado pelos alunos nesta última semana de trabalho.
Esta omissão do enunciado é intencional, pois pretende-se que cada grupo considere diferentes alternativas e escolha a que lhe parece mais interessante/realista.

***

Entre as alternativas possíveis, há pelo menos as seguintes:

Alternativa 1:
Quando chamada sobre ficheiro aberto, a função 'delete'/'rename' não tem efeito e devolve erro (usando o código TECNICOFS_ERROR_FILE_IS_OPEN).

Alternativa 2: 
Quando chamada sobre ficheiro aberto, a função 'delete'/'rename' elimina a associação nome<->i-node que está armazenada na diretoria e retorna o código de sucesso, mesmo que o ficheiro esteja aberto por um ou mais clientes. No caso da função ‘delete', o i-node do ficheiro mantém-se na tabela de i-nodes enquanto o ficheiro estiver aberto por, pelo menos, um cliente; assim que essa condição se deixe de verificar, o i-node é finalmente libertado.

Alternativa 3:
Quando chamada sobre ficheiro aberto, a função 'delete'/'rename’ é executada completamente (ou seja, no caso do ‘delete’ é apagada a entrada na diretoria e também o i-node) mesmo que o ficheiro esteja aberto por um ou mais clientes. No caso do ‘delete’, caso os clientes que tenham o ficheiro aberto tentem posteriormente ler ou escrever sobre o mesmo, as funções ‘read’ e ‘write’ devem devolver erro. 

Entre as alternativas acima, a 3ª alternativa é a de mais simples implementação, logo é aquela que recomendamos aos grupos mais atrasados no trabalho.

Podem existir outras alternativas não mencionadas acima

***

Juntamente com o código fornecido para o 3º projeto, foram também fornecidos programas cliente para testes. Em alguns desses programas, acontece a situação descrita acima.
Por lapso, um desses programas assume a alternativa 1, e outro assume a alternativa 2.
Como isto pode induzir os alunos em erro, foi publicada uma versão atualizada dos programas cliente em causa, os quais foram alterados para não levarem à situação descrita neste anúncio.
Aconselhamos todos os grupos a obterem esta nova versão dos programas cliente.