No 6º laboratório, o plano é:

  • Correção de um bug no código base (TecnicoFS v1)
  • Apresentação da bateria de testes para os requisitos 1 e 2 do projeto
  • Realização ou esclarecimento de dúvidas do Tutorial 5
  • Esclarecimento de dúvidas relativas ao projeto

Bug

https://fenix.tecnico.ulisboa.pt/disciplinas/SO/2021-2022/1-semestre/ver-post/correcao-de-bug-no-codigo-base-do-projeto

Correção de bug no código base do projeto

15 Dezembro 2021, 07:08 • João Pedro Faria Mendonça Barreto

Foi detetado um bug na versão que foi originalmente publicada do código base do projeto (TecnicoFS v1).

Mais precisamente, o bloco “if” das linhas 162-165 do operations.c deve ser removido:

if (file->of_offset + to_read >= BLOCK_SIZE) {...}

Todos os grupos de projeto devem corrigir este bug (removendo o bloco “if” indicado acima). Também publicámos uma v2 do código base (secção “Laboratórios > Projeto”) que já incorpora esta correção.

Outras modificações (opcionais):

Além do bug reportado acima, a v2 também incorpora duas outras modificações menores que não têm qualquer impacto na correção do programa e, por isso, são meramente opcionais:

  1. O ciclo de “insert_delay” na linha 93 da função inode_create deve ser retificado para passar a ter um número de iterações mais realista. O original (v1) era

     `if ((inumber * (int) sizeof(allocation_state_t)) == 0)`
    
     Este deve ser modificado para
    
     `if ((inumber * (int) sizeof(allocation_state_t) % BLOCK_SIZE) == 0)`
    
  2. O comentário obsoleto nas linhas 159-160 do state.c deve ser removido.

O nosso muito obrigado aos alunos que nos ajudaram a detetar o bug atempadamente e, dessa forma, preveniram que o mesmo tivesse impacto nos trabalhos em curso.

Projeto

Bateria de testes para os requisitos 1 e 2 do projeto

Tutorial 5