Skip to content

2013年 408 操作系统 第 23 题

操作系统2013年选择题2分

题目

用户在删除某文件的过程中,操作系统不可能执行的操作是( )。

错因

B

把"删除目录项"当成不该做的——其实这是删除文件的核心动作之一。目录项是父目录里"这文件叫什么、它的 FCB 在哪"的那条记录,删文件就要把这条记录划掉,否则父目录还能列出这个文件名。把"目录项"当成"目录本身"是混了两个概念。

C

FCB(文件控制块 / inode)是文件的元数据容器,删文件后这条 FCB 也应该被释放——内存里的 FCB 表项要清掉,磁盘上的 inode 也要回收。把这条当作不该做的是没把"文件 = FCB + 数据"的两件套删干净。

D

如果文件在删除前曾被打开过,内存缓冲区里可能还缓存着它的数据。删除时这部分缓冲也要释放回缓冲池——是清理工作的一部分。把"释放缓冲"当成不该做的是没把删文件的善后流程想全。

总解析

删一个文件,OS 要做的事情围绕"把这个文件相关的所有痕迹清理掉"展开,但不会动它所在的父目录本身——父目录还有别的文件,删一个文件不可能波及整个目录。

操作是否在删文件流程内?说明
A 删除文件所在的目录✗ 不可能父目录里还有别的文件,删一个文件不能殃及父目录;除非显式 rmdir,那是另一个操作
B 删除目录项✓ 必做父目录里"文件名→FCB"的那条记录划掉
C 删除 FCB✓ 必做释放文件的元数据容器(内存 FCB 表项 + 磁盘 inode)
D 释放内存缓冲区✓ 可能做文件曾被打开 → 缓冲区里缓存的脏页要清理(写回或丢弃)

关键区分:删文件 vs 删目录——删文件只动它自己的相关信息(目录项是父目录里指向它的那一项,不是父目录本身);删目录是另一种操作(rmdir),且通常要求目录为空。

最终答案是 A

最后更新:

⚠️ 这道题暂未配可视化,欢迎在 CodeBrick 反馈区告诉我们你想看哪道题