🏷️ 知识点:系统调用

共 16 道相关题目

模拟卷 年第 23 题 操作系统 选择题

在操作系统中,以下只能在核心态下处理执行的指令是( )。

A. 读时钟 B. 寄存器清零 C. 系统调用 D. 取数

用户态和内核态 系统调用

[tag_link]

正确答案:C

在操作系统中,核心态(也称为内核态或特权态)与用户态是处理器的两种运行模式。 核心态下可以执行所有指令,包括特权指令,而用户态下只能执行非特权指令,以防止用户程序直接访问系统资源或影响系统安全。

选项分析如下:

A. 读时钟:读取时钟值通常不是特权指令,用户程序可以通过非特权指令或系统调用来获取时间信息,因此可以在用户态下执行。 >

B. 寄存器清零:清零通用寄存器(如数据寄存器)是常见的非特权指令,用户程序可以自由操作自己的寄存器,无需切换到核心态。 >

C. 系统调用:系统调用是用户程序主动请求操作系统服务的机制。 > 当执行系统调用指令(如陷阱指令)时,会触发处理器从用户态切换到核心态,由操作系统内核在核心态下处理该请求。 > 因此,系统调用的处理过程只能在核心态下执行。 >

D. 取数:取数指令(如从内存加载数据)通常是非特权指令,用户程序在用户态下可以访问自己的内存空间。 > 只有访问受保护的系统内存或执行特权操作时才需核心态。 >

综上,只有系统调用的处理必须在核心态下完成,故正确答案为C。 >


模拟卷 年第 23 题 操作系统 选择题

用户在编写程序时计划读取某个数据文件中的 20 个数据记录,他使用操作系统提供的接口是( )。

A. 系统调用 B. 图形用户接口 C. 原语 D. 命令行输入控制

系统调用 操作系统概念

[tag_link]

正确答案:A

在编写程序时,用户需要通过代码与操作系统交互来读取文件中的数据记录。 操作系统提供的系统调用(System Call)是专门为应用程序设计的编程接口,它允许程序请求操作系统的服务,如文件操作、进程管理等。 例如,在 C 语言中使用 read() 函数读取文件时,底层会调用操作系统的 read 系统调用,从而实现对文件的访问。

其他选项中,图形用户接口(GUI)是面向最终用户的视觉交互界面,通过点击、拖拽等方式操作,不适用于编程时的文件读取; 原语(Primitive)通常指操作系统内核中不可中断的基本操作,是系统调用的底层实现,但不直接暴露给应用程序员; 命令行输入控制是通过命令行界面输入指令来操作系统的交互方式,属于用户级交互,而非编程接口。 因此,用户在编写程序时读取数据文件应使用系统调用接口。


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

执行系统调用的过程包括如下主要操作:

①返回用户态 ②执行陷入(trap)指令

③传递系统调用参数 ④执行相应的服务程序

正确的执行顺序是( )。

系统调用

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

[tag_link]

正确答案:C

执行 系统调用 的过程是这样的:正在运行的进程先传递系统调用参数,然后由 陷入指令 负责将用户态转化为内核态,并将返回地址压入堆栈以备后用,接下来 CPU 执行相应的内核态服务程序,最后返回用户态。所以 C 正确。


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

下列关于系统调用的叙述中,正确的是( )。

Ⅰ.在执行系统调用服务程序的过程中,CPU 处于内核态

Ⅱ.操作系统通过提供系统调用避免用户程序直接访问外设

Ⅲ.不同的操作系统为应用程序提供了统一的系统调用接口

Ⅳ.系统调用是操作系统内核为应用程序提供服务的接口

系统调用 用户态和内核态

A. 仅Ⅰ、Ⅳ B. 仅Ⅱ、Ⅲ C. 仅Ⅰ、Ⅱ、Ⅳ D. Ⅰ、Ⅲ、Ⅳ

[tag_link]

正确答案:C

用户可以在用户态调用操作系统的服务,但执行具体的系统调用服务程序是处于内核态的,Ⅰ正确:设备管理属于操作系统的职能之一,包括对输入/输出设备的分配、初始化、维护等,用户程序需要通过系统调用使用操作系统的设备管理服务,Ⅱ正确:操作系统不同,底层逻辑、实现方式均不相同,为应用程序提供的系统调用接口也不同,Ⅲ错误:系统调用是用户在程序中调用操作系统提供的子功能,Ⅳ正确。


2009 年第 25 题 操作系统 选择题

某计算机系统中有8台打印机,由K 个进程竞争使用,每个进程最多需要3台打印机。该系统可能会 发生死锁的 K的最小值是()。

A. 2

B. 3

C. 4

D. 5

[tag_link]

正确答案:C

这种题用到组合数学中鸽巢原理的思想。考虑最极端情况,因为每个进程最多需要 3 台打印机,如果每个进程已经占有了 2 台打印机,那么只要还有多的打印机,总能满足一个进程达到 3 台的条件,然后顺利执行,所以将 8 台打印机分给 K 个进程,每个进程有 2 台打印机,这 个情况就是极端情况,K 为 4。


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

下列操作完成时,导致 CPU 从内核态转为用户态的是( )。

用户态和内核态

A. 阻塞过程 B. 执行 CPU 调度 C. 唤醒进程 D. 执行系统调用

[tag_link]

正确答案:D

来看每个选项的含义和状态切换:对于 A 选项,阻塞过程属于进程状态切换,不直接涉及CPU模式转换。对于 B 选项,执行 CPU 调度属于内核调度器行为,通常保持在内核态。对于 C 选项,唤醒进程属于进程管理操作,不直接触发模式切换对于 D 选项,当用户程序需要访问特权指令或执行需要操作系统提供的服务时,它会通过 系统调用 请求进人内核态。在系统调用期间,CPU 会切换到内核态执行相应的内核代码来满足用户程序的需求。一旦系统调用执行完毕,CPU 会从内核态返回到用户态继续执行用户程序。所以,执行系统调用是导致 CPU 从内核态转为用户态的关键操作。所以该题的正确选项为 D 选项。


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

一个分段存储管理系统中,地址长度为32位,其中段号占8位,则最大段长是()。

A. 2⁸ 字节

B. 2¹⁶ 字节

C. 2 ²⁴ 字节

D. 2³² 字节

[tag_link]

正确答案:C

段式管理 的逻辑地址分为段号和位移量两部分,段内位移的最大值就是最大段长。地址长度为 32 位,段号占 8 位,则位移量占 32-8=24 位,故最大段长为 2 24 B。


2012 年第 28 题 操作系统 选择题

若一个用户进程通过 read 系统调用读取一个磁盘文件中的数据,则下列关于此过程的叙述中,正确的是( )。

Ⅰ. 若该文件的数据不在内存中,则该进程进入睡眠等待状态

Ⅱ. 请求 read 系统调用会导致 CPU 从用户态切换到核心态

Ⅲ. read 系统调用的参数应包含文件的名称

系统调用 缺页异常

A. 仅Ⅰ、Ⅱ

B. 仅Ⅰ、Ⅲ

C. 仅Ⅱ、Ⅲ

D. Ⅰ、Ⅱ和Ⅲ

[tag_link]

正确答案:A

对于 I,当所读文件的数据不在内存时,产生中断( 缺页中断 ),原进程进入阻塞状态,直到所需数据从外存调入内存后,才将该进程唤醒。对于 II,read 系统调用通过陷入将 CPU 从用户态切换到核心态,从而获取操作系统提供的服务。对于Ⅲ,要读一个文件首先要用 open 系统调用打开该文件。open 中的参数包含文件的路径名与文件名,而 read 只需要使用 open 返回的文件描述符,并不使用文件名作为参数。read 要求用户提供三个输入参数:①文件描述符 fd;②buf 缓冲区首址;③传送的字节数 n。read 的功能是试图从 fd 所指示的文件中读入 n 个字节的数据,并将它们送至由指针 buf 所指示的缓冲区中。


2013 年第 28 题 操作系统 选择题

下列选项中,会导致用户进程从用户态切换到内核态的操作是( )。

I. 整数除以零

II. sin() 函数调用

III. read 系统调用

用户态和内核态 系统调用

A.仅 I、II

B.仅 I、III

C.仅 II、III

D.I、II 和 III

[tag_link] 正确答案:B需要在系统 内核态 执行的操作是整数除零操作(需要中断处理)和 read 系统调用函数,sin() 函数调用是在用户态下进行的。


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

以下系统调用中,包含文件按名查找功能的系统调用是()。

系统调用 进程文件管理

A. open() B. read() C. write() D. close()

[tag_link]

正确答案:A

A. open() 系统调用用于打开一个文件。它需要一个文件名作为参数,因此它包含了按名查找文件的功能。如果文件存在并且进程有足够的权限,open() 会成功打开文件并返回一个文件描述符,否则,它会返回一个错误。 B. read() 系统调用用于从已打开的文件中读取数据。 C. write() 系统调用用于向已打开的文件中写入数据。 D. close() 系统调用用于关闭已打开的文件。


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

文件系统中,文件访问控制信息存储的合理位置是()。

A. 文件控制块

B. 文件分配表

C. 用户口令表

D. 系统注册表

[tag_link]

正确答案:A

为了实现“按名存取”,在文件系统中为每个文件设置用于描述和控制文件的数据结构,称之为文件控制块 (FCB )。在文件控制块中,通常包含以下三类信息,即基本信息、存取控制信息及使用信息。


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

下列关于驱动程序的描述中,错误的是()

A. 驱动程序是硬件与操作系统之间的接口程序 B. 驱动程序需根据硬件特性定制开发 C. 驱动程序需要设置统一的接口 D. 字符设备、块设备都是同一种 IO 方式

[tag_link]

正确答案:D

**【解析】**驱动程序是硬件与操作系统之间的接口程序,使操作系统能够控制和管理硬件,因此 A 正确;由于不同硬件具有不同的特性和操作方式,驱动程序需要针对具体硬件进行定制开发,因此 B 正确;为了便于操作系统统一管理和调用,驱动程序需要遵循操作系统提供的统一接口规范,因此 C 正确;字符设备和块设备是两种不同的 I/O 方式:字符设备以字符流为单位进行数据传输(例如键盘),而块设备以固定大小的数据块为单位(例如硬盘),因此 D 错误。


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

执行系统调用的过程涉及下列操作,其中由操作系统完成的是()。

I. 保存断点和程序状态字

Ⅱ.保存通用寄存器的内容

Ⅲ.执行系统调用服务程序

IV. 将CPU 模式改为内核态

A. 仅I 、Ⅲ B. 仅Ⅱ、Ⅲ C. 仅Ⅱ、 IV D. 仅Ⅱ、Ⅲ、 IV

[tag_link]

正确答案:B

对四个选项进行逐一分析: Ⅰ. 保存断点和程序状态字 ❌ 参考 中断处理过程 ,保存断点由中断隐指令完成,即由硬件完成。Ⅱ. 保存通用寄存器的内容 ✅ 为了防止系统调用覆盖用户程序中的数据,操作系统在进入系统调用处理程序时会保存用户程序的寄存器内容(这属于上下文切换的一部分)。Ⅲ. 执行系统调用服务程序 ✅ 系统调用就是要求操作系统执行某项服务,服务程序是操作系统的一部分,由操作系统调度执行。Ⅳ. 将 CPU 模式改为内核态 ❌ 这一点不是由操作系统主动完成,而是由硬件自动完成的: 当执行陷阱指令(如 int 0x80 )或发生中断时,CPU 自动将模式从用户态切换为内核态,然后跳转到操作系统提供的中断向量地址。所以,这属于硬件响应的一部分,不是由操作系统“显式”控制的。所以正确答案选择 B。


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

下列选项中,通过系统调用完成的操作是( )。

系统调用

A. 页置换 B. 进程调度 C. 创建新进程 D. 生成随机整数

[tag_link]

正确答案:C

系统调用是由用户进程发起的,请求操作系统的服务。对于 A,当内存中的空闲页框不够时,操作系统会将某些页面调出,并将要访问的页面调入,这个过程完全由操作系统完成不涉及系统调用。对于 B,进程调度完全由操作系统完成,无法通过系统调用完成。对于 C,创建新进程可以通过系统调用来完成,如 Linux 中通过 fork 系统调用来创建子进程。对于 D,生成随机数只需要普通的函数调用,不涉及请求操作系统的服务,如 C 语言中 random() 函数。


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

程序员利用系统调用打开I/O 设备时,通常使用的设备标识是()

A、逻辑设备名

B、物理设备名

C、主设备号

D、从设备号

[tag_link]

正确答案:A

设备管理具有设备独立性的特点,操作系统以系统调用方式来请求某类设备时,使用的是 逻辑设备名 。

而在程序实际执行时,将逻辑设备名 转换为对应的 物理设备名 。


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

(本题满分 7 分)系统采用优先级(优先级越大表示优先级越高)与时间片轮转调度算法,仅当发生时钟中断时才触发抢占 CPU 操作,时钟中断间隔为 10 ms。进程首次进入就绪队列时,其时间片为 50 ms。若进程因时间片用完而返回就绪队列,其优先级值减 1;若进程被更高优先级进程抢占而返回就绪队列,其优先级值保持不变。当多个进程优先级相同时,先进入就绪队列的进程优先被调度。四个进程的到达时刻、初始优先级与 CPU 运行时间如下表所示:

进程到达就绪队列时间(ms)优先级CPU 运行时间(ms)
P110395
P210420
P312240
P414560

(1)从 10 ms 开始进程调度,直至所有进程调度结束,此时中断次数与 CPU 调度次数分别为多少?P1、P2、P3、P4 各自的首次调度发生在哪个时刻?(5 分)

(2)若时间片由 50 ms 改为 100 ms,CPU 调度次数将增大、不变还是减少?若时钟中断间隔由 10 ms 改为 1 ms,系统开销将增大、不变还是减少?(2 分)

[tag_link]

【答案】

(1)中断次数、CPU 调度次数与各进程首次调度时刻模拟调度过程,考虑时钟中断每 10 ms 发生一次,进程到达、完成及调度事件如下:

  • 10 ms:P1、P2 到达,CPU 空闲,调度 P2 运行(首次调度)。
  • 20 ms:时钟中断,P2 运行 10 ms 后被更高优先级的 P4 抢占,调度 P4 运行(首次调度)。
  • 70 ms:时钟中断,P4 时间片用完,优先级减 1,调度 P2 运行。
  • 80 ms:时钟中断,P2 完成,调度 P4 运行。
  • 90 ms:时钟中断,P4 完成,调度 P1 运行(首次调度)。
  • 140 ms:时钟中断,P1 时间片用完,优先级减 1,调度 P3 运行(首次调度)。
  • 180 ms:时钟中断,P3 完成,调度 P1 运行。
  • 225 ms:P1 完成,所有进程结束。中断次数:从 10 ms 开始,时钟中断时刻为 10, 20, …, 220 ms,共 22 次。CPU 调度次数:共 7 次(10 ms、20 ms、70 ms、80 ms、90 ms、140 ms、180 ms)。首次调度时刻
  • P1:90 ms
  • P2:10 ms
  • P3:140 ms
  • P4:20 ms

(2)参数变化的影响

  • 时间片由 50 ms 改为 100 ms:时间片增大,进程因时间片用完而让出 CPU 的次数减少,更多进程可能一次运行完成,从而降低进程切换频率,CPU 调度次数减少。
  • 时钟中断间隔由 10 ms 改为 1 ms:中断更频繁,每次中断均需进行调度检查,可能增加上下文切换次数与中断处理时间,系统开销增大。