A disk read request might not always occur because a cache hit may occur and so the file can be read from cache without a disk read request.
Correto e completo.
If this does not happen disk accesses will occur. One to get the file's name, another to get the path of the file and the final one to read the first character from the file
Este está longe de ser completo e parcialmente incorreto. Na verdade, pode haver acessos para:
- O inode do diretório raiz no sistema de arquivos.
- Pelo menos um dos blocos que contém a lista de arquivos no diretório raiz.
- Repita para cada diretório no caminho para o arquivo. (Além da passagem simbólica de links, se aplicável.)
- O inode do arquivo.
- O primeiro bloco do conteúdo do arquivo.
Dependendo do sistema de arquivos, cada uma dessas entradas pode envolver uma ou mais leituras de disco, pois o conteúdo pode ser distribuído em vários blocos. Acessar um bloco de um arquivo pode exigir o acesso a um bloco onde a lista de blocos está contida, algumas vezes com vários níveis de profundidade.
Além desses acessos, pode haver acesso ao disco para carregar partes do código do programa e dados para a RAM a partir do swap. Não está claro a partir da formulação da questão se é assumido que o programa está rodando e os bits relevantes estão na RAM . Pode haver outras sutilezas que, com certeza, não foram planejadas pelo examinador, como um arquivo que já existe no disco, mas em um diretório montado automaticamente que não está montado no momento, o que requer que o driver seja carregado antes da montagem .