我正在复习过去的考试试卷,但我的大学没有提供答案,所以我无法检查它们,请你告诉我我的理解是否正确,如果不正确,请你纠正它。
问题:在 Linux 系统上运行的程序 P 将磁盘上包含文本的文件的名称和路径作为参数;它打开该文件并从中读取第一个字符。假设该程序已在运行且该文件存在,列出可能发生的磁盘读取请求,描述:
• 每次磁盘访问的目的。
• 为什么磁盘读取请求可能不会总是发生。
试图:磁盘读取请求可能并不总是发生,因为可能会发生缓存命中,因此可以从缓存中读取文件而无需磁盘读取请求。如果没有发生这种情况,将发生磁盘访问。一个用于获取文件的名称,另一个用于获取文件路径,最后一个用于从文件中读取第一个字符
答案1
您至少忘记了一次磁盘访问:文件的目录条目有一个access time
,因此每次读取,即使文件本身在缓存中,也意味着必须更新目录。
但说实话,如果不了解很多先决条件,这个问题很难回答。“可能”的磁盘访问取决于许多因素,其中最重要的因素可能是文件的大小。