Skip to content

2010年 408 操作系统 第 23 题

操作系统2010年选择题2分

题目

下列选项中,操作系统提供给应用程序的接口是( )。

错因

B

中断是硬件触发的事件——CPU 收到中断信号自动陷入内核处理,不是 OS 给应用程序"用"的东西。应用程序也不能"调用中断"(INT n 那种是软中断,本质还是触发陷入指令进系统调用)。把中断当成接口是把"OS 内部机制"和"对外接口"混了。

C

库函数是用户态代码——printf、strlen 等是 C 标准库函数,跑在用户态,不是 OS 提供的。库函数内部可能调用系统调用(printf 调 write),但库本身是另一层(用户库),不是 OS 接口。把"调用就是接口"扩大到库函数就错了。

D

原语(primitive)是 OS 内部的不可分割操作——比如 wakeup、block 这些内核基本动作。它在内核态执行,不暴露给应用程序,也不直接被应用程序"调用"。把"OS 内部基本动作"当成"应用接口"是搞错了暴露层级。

总解析

应用程序与 OS 之间的接口 = 系统调用。这是用户态和内核态之间唯一的、官方的交互通道。

概念在哪一层谁能调用用途
系统调用OS 内核接口应用程序(用户态发起)OS 给应用的对外接口
中断硬件机制CPU 自动响应OS 内部事件分发
库函数用户态库(C 标准库等)应用程序封装常用功能(可能内部调 syscall)
原语OS 内部OS 内部代码内核基本不可分割动作(不对外)

判定钥匙

  • 应用程序通过 fork、open、read、write、execve 等让 OS 干活,这些就是系统调用——OS 内核暴露的接口
  • printf 调 write,write 是 syscall——printf 是用户态库函数,write 才是接口

速记:syscall 是 OS 的"对外大门"——应用程序敲门进去让 OS 干活;中断是 OS 的"急救通道"(硬件呼叫 OS);库函数是用户那边的便利工具;原语是 OS 内部的零件。

最终答案是 A

最后更新:

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