Anúncios
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
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
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.
27 novembro 2019, 23:37
•
Renato Jorge Caleira Nunes
A pauta do Exercício 2 do Projeto está disponível na secção "Pautas".
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.