Skip to content

2010年 408 操作系统 第 24 题

操作系统2010年选择题2分

题目

下列选项中,导致创建新进程的操作是( )。

I. 用户登录成功 II. 设备分配 III. 启动程序执行

错因

A

承认 Ⅰ 登录创建进程,又把 Ⅱ 设备分配也算进去——但设备分配只是 OS 把某个设备资源分配给已经存在的进程使用,不会因此创建新进程。把"分配资源"误以为是"创建进程"是把资源管理和进程管理混了。

B

承认 Ⅲ 启动程序,但漏 Ⅰ 登录、把 Ⅱ 设备分配错算进去——双错。登录成功必创建一个 shell 进程让用户用,是最经典的"事件触发进程创建"场景。

D

把 Ⅱ 设备分配也算上——同 A 的错。OS 给某进程分配磁盘 / 打印机等设备只是修改资源表,跟进程创建无关。

总解析

进程创建的典型时机

事件是否创建新进程说明
Ⅰ 用户登录成功系统为该用户启动一个 shell 进程(命令解释器),用户的所有命令都在这个 shell 下 fork 出新进程
Ⅱ 设备分配只是修改设备分配表,把某设备的使用权给某进程;进程已经存在,不创建新的
Ⅲ 启动程序执行双击程序 / shell 里输 ./a.out → fork + exec → 新进程诞生

区分钥匙:是不是有"新的可执行实体被装入内存并被调度"——有就是创建进程;只是把已有资源(设备、文件、信号量)分给某进程的,不是创建。

Ⅱ 为什么不算创建进程

设备分配的工作流(典型场景):

进程 P 申请打印机 → OS 检查设备表 → 设备空闲 → 标记为 P 占用 → 把设备号给 P

整个过程进程 P 是发起者,没有"新进程"产生。如果设备被占,P 进入设备等待队列阻塞——同样不是创建新进程,是改变 P 自己的状态。

正确的是 Ⅰ Ⅲ。

最终答案是 C

最后更新:

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