🏷️ 知识点:Inode

共 9 道相关题目

2026 年第 27 题 操作系统 选择题

假设进程P的读、写进程集合分别是R(P)和W(P),进程Q的读、写进程集合分别为R(Q)和W(Q),则进程P和Q并发执行中,不会发生错误的并发执行充要条件是( ) I.R(Q)∩W(P)=∅II.R(P)∩R(Q)=∅III.W(P)∩W(Q)=∅IV.R(P)∩W(Q)=∅

A. I、II B. I、II、III C. I、III、IV D. II、III

[tag_link]

正确答案:C

**【解析】**在进程并发执行中,不发生错误(即避免数据竞争和冲突)的充要条件基于 Bernstein 条件。Bernstein 条件指出,两个进程P和Q可安全并发执行当且仅当满足以下三个条件:

  • W(P)∩R(Q)=∅(避免写后读冲突);
  • R(P)∩W(Q)=∅(避免读后写冲突);
  • W(P)∩W(Q)=∅(避免写后写冲突)。读 - 读冲突(即R(P)∩R(Q))不会导致数据不一致,因此不是必要条件。对比题目中的条件:I 对应W(P)∩R(Q)=∅,III 对应W(P)∩W(Q)=∅,IV 对应R(P)∩W(Q)=∅,而 II 是R(P)∩R(Q)=∅,无需满足。因此,充要条件是 I、III 和 IV,对应选项 C。

2014 年第 29 题 操作系统 选择题

在一个文件被用户进程首次打开的过程中,操作系统需要做的是()。

A. 将文件内容读到内存中

B. 将文件控制块读到内存中

C. 修改文件控制块中的读写权限

D. 将文件的数据缓冲区首指针返回给用户进程

[tag_link]

正确答案:B

一个文件被用户进程首次打开即被执行了 open 操作,会把文件的 FCB 调入内存,而不会把文件内容读到内存中,只有进程希望获取文件内容的时候才会读入文件内容;C、D 明显错误,选 B。


2019 年第 29 题 操作系统 选择题

某系统采用 LRU 页置换算法和局部置换策略,若系统为进程 P 预分配了 4 个页框,进程 P 访问页号的序列为 0, 1, 2, 7, 0, 5, 3, 5, 0, 2, 7, 6,则进程访问上述页的过程中,产生页置换的总次数是( )。

A. 3 B. 4 C. 5 D. 6

[tag_link]

正确答案:C

LRU 每次执行页面置换时会换出最近最久没有使用过的页面。第一次访问 5 页面时,会把最久未被使用的 1 页面换出,第一次访问 3 页面时,会把最久未访问的 2 页面换出。具体的页面置换情况如下图所示:

访问页面012705350276
物理块100000000000
物理块11115555556
物理块2222333377
物理块777777222
缺页否

需要注意的是:题中问的是页置换算法,而不是缺页次数,所以前 4 次缺页未还也的操作不考虑在内,答案为 5 次,故选 C。


2017 年第 30 题 操作系统 选择题

某文件系统中,针对每个文件,用户类别分为 4 类:安全管理员、文件主、文件主的伙伴、其他用户;访问权限分为 5 种:完全控制、执行、修改、读取、写入。若文件控制块中用二进制位串表示文件权限,为表示不同类别用户对一个文件的访问权限,则描述文件权限的位数至少应为( )。

inode

A. 5 B. 9 C. 12 D. 20

[tag_link]

正确答案:D

可以把用户访问权限抽象为一个矩阵,行代表用户,列代表访问权限。这个矩阵有 4 行 5 列,1 代表 true,0 代表 false,所以需要 20 位,选 D。


2016 年第 31 题 操作系统 选择题

下列关于 SPOOLing 技术的叙述中,错误的是( )。

SPOOLing

A. 需要外存的支持 B. 需要多道程序设计技术的支持 C. 可以让多个作业共享一台独占设备 D. 由用户作业控制设备与输入/输出井之间的数据传送

[tag_link]

正确答案:D

SPOOLing 是利用专门的外围控制机,将低速 I/O 设备上的数据传送到高速磁盘上,或者相反。SPOOLing 的意思是外部设备同时联机操作,又称为假脱机输入/输出操作,是操作系统中采用的一项将独占设备改造成共享设备的技术。高速磁盘即外存,A 正确。SPOOLing 技术需要进行输入/输出操作,单道批处理系统无法满足,B 正确。SPOOLing 技术实现了将独占设备改造成共享设备的技术,C 正确。设备与输入/输出井之间数据的传送是由系统实现的,D 错误。


2023 年第 31 题 操作系统 选择题

若文件 F 仅被进程 P 打开并访问,则当进程 P 关闭 F 时,下列操作中,文件系统需要完成的是( )。

inode

A. 删除目录中文件 F 的目录项 B. 释放 F 的索引节点所占的内存空间 C. 释放 F 的索引节点所占的外存空间 D. 将文件磁盘索引节点中的链接计数减 1

[tag_link]

正确答案:B

索引节点是指文件系统中的一种数据结构,每个索引节点保存了文件系统中的一个文 件系统对象的元信息数据,但不包括数据内容或者文件名。内存索引节点是存放在内存中的索 引节点,文件被打开时,需要将磁盘索引节点复制到内存索引节点中。因此本题进程 P 关闭 F 时,需释放 F 的索引节点所占的内存空间。所以该题的[tag_link]正确答案为 B 选项。


2017 年第 32 题 操作系统 选择题

系统将数据从磁盘读到内存的过程包括以下操作:

① DMA 控制器发出中断请求

② 初始化 DMA 控制器并启动磁盘

③ 从磁盘传输一块数据到内存缓冲区

④ 执行“DMA 结束”中断服务程序

正确的执行顺序是( )。

DMA

A. ③→①→②→④ B. ②→③→①→④ C. ②→①→③→④ D. ①→②→④→③

[tag_link]

正确答案:B

在开始 DMA 传输时,主机向内存写入 DMA 命令块,向 DMA 控制器写入该命令块的地址,启动 I/O 设备。然后,CPU 继续其他工作,DMA 控制器则继续下去直接操作内存总线,将地址放到总线上开始传输。当整个传输完成后,DMA 控制器中断 CPU。因此执行顺序是 ②→③→①→④ 选 B。


2022 年第 45 题 操作系统 综合题

(7分)某文件系统的磁盘块大小为4KB, 目录项由文件名和索引节点号构成,每个索引节点占256 字节,其中包含直接地址项10个,一级、二级和三级间接地址项各1个,每个地址项占4字节。该文件 系统中子目录stu 的结构如题45(a)图所示,stu 包含子目录course 和文件doc,course 子目录包含文件 course1和 course2。各文件的文件名、索引节点号、占用磁盘块的块号如题45(b)图所示。

45- (a) 图 请回答下列问题。

[tag_link]

[tag_link]

1)在该文件系统中,目录项由文件名和索引结点号构成。由图 a 可知,stu 目录下有两个文 件,分别是 course 和 doc。由图 b 可知,这两个文件分别对应索引结点号 2 和 10。因此, 目录文件 stu 中两个目录项的内容是 2)由图 b 可知,文件 doc 和文件 course1 对应的索引结点号都是 10。说明 doc 和 course1 两 个目录项共享同一个索引结点,本质上对应同一个文件。而文件 course1 存储在 30 号磁盘 块,因此文件 doc 占用的磁盘块的块号 x 为 30。 3)需要读 2 个磁盘块。先读 course1 的索引结点所在的磁盘块,再读 course1 的内容所在的 磁盘块。目录文件 course 的内容已在内存中,即 coursel、course2 对应的目录项己在内存 中,根据 coursel 对应的目录项可以知道其索引结点号,即可读入 course1 的索引结点所 在的磁盘块:根据 course1 的索引结点可知该文件存储在 30 号磁盘块,因此可再读入 coursel 的内容所在的磁盘块。 4)存取 course2 需要使用索引结点的一级和二级间接地址项。6MB 大小的文件需要占用 6MB/4KB=1536 个磁盘块。直接地址项可以记录 10 个磁盘块号,一级间接地址块可以记 录 4KB/4B=1024 个磁盘块号,二级间接地址块可以记录 1024×1024 个磁盘块号,而 10 + 1024 < 1536 < 10 + 1024 + 1024 × 1024 。因此,6MB 大小的文件,需要使用一级间接地址 项和二级间接地址项(拓展:若文件的总大小超出 10 + 1024 + 1024 × 1024 块,则还需使 用三级间接地址项)。 46 某进程的两个线程 T1 和 T2 并发执行 A. B. C. D. E 和 F 共 6 个操作,其中 T1 执行 A. E 和 F,T2 执行 B. C 和 D。题 46 图表示上述 6 个操作的执行顺序所必须满足的约束:C 在 A 和 B 完成后执行,D 和 E 在 C 完成后执行,F 在 E 完成后执行。请使用信号量的 wait()、signal() 操作描述 T1 和 T2 之间的同步关系,并说明所用信号量的作用及其初值。 A


2009 年第 45 题 操作系统 综合题

(7分)三个进程 P1、P2、P3 互斥使用一个包含 N( N>0)个单元的缓冲区。P1 每次用 produce( 生 成一个正整数并用 put() 送入缓冲区某一空单元中;P2 每次用getodd0 从该缓冲区中取出一个奇数并用 countodd( 统计奇数个数;P3 每次用geteven( 从该缓冲区中取出一个偶数并用 counteven( 统计偶数个数。请用信号量机制实现这三个进程的同步与互斥活动,并说明所定义信号量的含义。要求用伪代码描 述。

[tag_link]

[tag_link]

互斥资源:缓冲区只能互斥访问,因此设置互斥信号量 mutex。

同步问题: P 1 、 P 2 因为奇数的放置与取用而同步,设同步信号量 odd; P 1 、 P 3 因为偶数的放置与取用而同步,设置同步信号量 even; P 1 、 P 2 、 P 3 因为共享缓冲区,设同步信号量 empty, 初值为 N。程序如下:

semaphore mutex = 1;
semaphore odd = 0, even = 0;
semaphore empty = N;

//生产者:产生数字放入缓冲区
P1()
{
    while (true)
    {
        x = produce();        
        P(empty);        //申请空闲位置
        P(mutex);        //互斥访问缓冲区
        put();
        V(mutex);

        if (x % 2 == 0)
            V(even);
        else
            V(odd);
    }
}

//奇数消费者
P2()
{
    while (true)
    {
        P(odd);
        P(mutex);
        getodd();
        V(mutex);
        V(empty);
        countodd();
    }
}

//偶数消费者
P3()
{
    while (true)
    {
        P(even);
        P(mutex);
        geteven();
        V(mutex);
        V(empty);
        counteven();
    }
}