第三章单元测试答案

Author Avatar
小包
发表:2025-06-03 00:02:30
修改:2025-06-03 00:02:30
  1. 单选题 (2分)
    时间片RR调度算法是为了( A )而设计的。
    A. 多个用户能及时干预系统
    B. 使系统变得高效
    C. 优先级较高的进程得到及时响应
    D. 使所需CPU时间最少

    • 解释:RR(Round Robin)算法主要用于分时系统,确保每个用户或进程都能在较短时间内得到响应,从而实现交互性。

  2. 单选题 (2分)
    下列调度算法中,不会导致产生饥饿现象的是( A )。
    A. RR
    B. 抢占式SJF
    C. 静态优先数调度
    D. 非抢占式SJF

    • 解释:RR算法会公平地给每个进程分配时间片,因此不会有进程被无限期推迟。SJF和静态优先级都可能导致长作业或低优先级进程饥饿。

  3. 填空题 (1分)
    某系统中有3个并发进程,都需要4 个同类资源,则保证该系统不会发生死锁的最少资源数是 10

    • 解释:设进程数为P=3,每个进程最大需求为M=4。最少资源数 R >= P (M - 1) + 1 = 3 (4 - 1) + 1 = 3 * 3 + 1 = 9 + 1 = 10。

  4. 单选题 (2分)
    系统中有4个进程都要使用某类资源。若每个进程最多需要3个该类资源,为保证系统不发生死锁,系统至少应提供( C )该类资源。
    A. 4个
    B. 12个
    C. 9个
    D. 3个

    • 解释:P=4, M=3。R >= P (M - 1) + 1 = 4 (3 - 1) + 1 = 4 * 2 + 1 = 8 + 1 = 9。

  5. 单选题 (2分)
    采用资源剥夺法可以解除死锁,还可以采用( B )方法解除死锁。
    A. 修改信号量
    B. 撒销进程
    C. 拒绝分配新资源
    D. 执行并行操作

    • 解释:解除死锁的主要方法有:资源剥夺法、撤销进程法、进程回退法。

  6. 单选题 (2分)
    对于相同的进程序列,下列进程调度算法中平均周转时间最短的是( B )。
    A. 优先级调度算法
    B. SJF调度算法
    C. FCFS调度算法
    D. RR调度算法

    • 解释:短作业优先(SJF)算法被证明在平均周转时间和平均等待时间上是最优的。

  7. 单选题 (2分)
    下列进程调度算法中,综合考虑进程等待时间和执行时间的是( A )调度算法。
    A. 高响应比优先
    B. 短进程优先
    C. RR
    D. FCFS

    • 解释:高响应比优先算法的响应比 = (等待时间 + 要求服务时间) / 要求服务时间。

  8. 单选题 (2分)
    OS中调度算法是核心算法之一,下列关于调度算法的论述中,正确的是( C )。
    A. FCFS调度算法既对长作业有利,又对短作业有利
    B. 时间片RR调度算法只对长作业有利
    C. 高响应比优先调度算法既有利于短作业,又兼顾长作业,还实现了FCFS
    D. 实时调度算法也要考虑作业的长短问题

    • 解释:A错,FCFS对长作业有利,对短作业不利。B错,RR对短作业(交互式)有利。D错,实时调度主要考虑截止时间。C正确,HRRN通过响应比平衡了等待时间和执行时间。

  9. 填空题 (1分)
    某系统中有11台打印机,n个进程共享打印机资源,每个进程要求获得3台打印机,当n的取值不超过 5 时,系统不会发生死锁。

    • 解释:R=11, M=3。为保证不发生死锁,R >= n (M - 1) + 1 => 11 >= n (3 - 1) + 1 => 11 >= 2n + 1 => 10 >= 2n => n <= 5。

  10. 单选题 (2分)
    某系统采用基于优先权的非抢占式进程调度策略,完成一次进程调度和进程切换的系统时间开销为 1μs。在 T 时刻,就绪队列中有 3 个进程 P1、P2 和 P3,它们在就绪队列中的等待时间、需要的 CPU 时间和优先级如下表所示。
    (假设表格数据为:P1 等待0 CPU50 优先级3(高); P2 等待10 CPU30 优先级1(低); P3 等待20 CPU10 优先级2)
    若优先级高的进程优先获得 CPU,且从 T 时刻起系统开始进程调度,则系统的平均周转时间为( A )。
    A. 75 μs
    B. 73 μs
    C. 54 μs
    D. 74 μs

  11. 填空题 (1分)
    进程调度是指根据一定的调度算法,从 就绪 队列中挑选出一个进程,并分配给它CPU。

  12. 单选题 (2分)
    若某单处理机多进程系统中有多个处于就绪状态的进程,则下列关于处理机调度的叙述中,错误的是( C )。
    A. 在进程结束时能进行处理机调度
    B. 在系统调用完成并返回用户态时能进行处理机调度
    C. 在进程处于临界区时不能进行处理机调度
    D. 创建新进程后能进行处理机调度

    • 解释:A, B, D都是典型的调度时机。C的说法过于绝对。虽然在某些核心级临界区内会禁止抢占以保护数据一致性,但调度程序本身(例如时钟中断引发的)还是会被激活。调度程序可能会决定不切换当前在临界区的进程,但这不代表“不能进行处理机调度”。如果进程在临界区内主动放弃CPU(如等待I/O),则必须进行调度。

  13. 单选题 (2分)
    某系统正在执行3个进程 P1、 P2 和 P3, 各进程的计算时间和 I/O 时间占比如下表所示。
    (P1: 计算10ms, I/O 90ms; P2: 计算50ms, I/O 50ms; P3: 计算90ms, I/O 10ms)
    为了提高系统资源利用率,合理的进程优先级设置应为( A )。
    A. P3>P2>P1
    B. P1>P2>P3
    C. P2>P1=P3
    D. P1>P2=P3

    • 解释:I/O密集型进程(如P1,计算时间占比小,I/O时间占比大)应具有较高优先级,以便它们能尽快完成CPU部分并开始I/O,从而使CPU和I/O设备都能得到充分利用。P1是I/O最密集的,P3是CPU最密集的。所以优先级 P1 > P2 > P3。

  14. 单选题 (2分)
    某时刻进程的资源使用情况如下表所示。
    (Available: R1=1, R2=1, R3=2
    P1: Alloc(2,1,2), Max(4,3,3) => Need(2,2,1)
    P2: Alloc(3,1,1), Max(5,2,2) => Need(2,1,1)
    P3: Alloc(1,2,0), Max(3,3,2) => Need(2,1,2)
    P4: Alloc(2,0,1), Max(6,2,1) => Need(4,2,0) )
    此时的安全序列是( C )。
    A. P1,P3,P2,P4
    B. P1,P2,P3,P4
    C. 不存在
    D. P1,P4,P3,P2

  15. 填空题 (1分)
    为多道程序提供的可共享资源不足时,可能出现死锁;不适当的 进程推进顺序 (或 资源分配顺序/策略) 也可能产生死锁。

  16. 单选题 (2分)
    某计算机系统中有8台打印机,由K个进程竞争使用,每个进程最多需要3台打印机。该系统可能会发生死锁的K的最小值是( C )。
    A. 5
    B. 2
    C. 4
    D. 3

    • *解释:R=8, M=3。系统不发生死锁的条件是 K <= (R-1) / (M-1) + 1 (这是另一种形式) 或者 R >= K(M-1)+1。

    • 即 8 >= K(3-1)+1 => 8 >= 2K+1 => 7 >= 2K => K <= 3.5。所以当K<=3时,系统不会发生死锁。

    • 当K > 3.5,即K >= 4时,系统可能会发生死锁。所以最小的K是4。

    • 验证:若K=4,每个进程都持有2台(M-1),则共占用42=8台,此时若它们都再申请1台,则发生死锁。*

  17. 单选题 (2分)
    下列选项中,满足SJF且不会发生饥饿现象的是( A )调度算法。
    A. 高响应比优先
    B. 非抢占式SJF
    C. RR
    D. FCFS

    • 解释:高响应比优先算法结合了等待时间和执行时间,既照顾了短作业,也通过等待时间的增加提高了长作业的响应比,避免了饥饿。SJF本身可能导致长作业饥饿。

  18. 单选题 (2分)
    一个作业在8:00到达系统,估计运行时间为1小时。若在10:00开始执行该作业,其响应比是( C )。
    A. 2
    B. 1
    C. 3
    D. 0.5

    • 解释:等待时间 = 10:00 - 8:00 = 2小时。服务时间 = 1小时。响应比 = (等待时间 + 服务时间) / 服务时间 = (2 + 1) / 1 = 3。

  19. 单选题 (2分)
    假设4个作业到达系统的时刻和运行时间如表所示。
    (J1: 到达0, 运行4; J2: 到达1, 运行2; J3: 到达2, 运行1; J4: 到达3, 运行3)
    系统在t=2时开始调度作业。若分别采用FCFS和SJF调度算法,则选中的作业分别是( C )。
    A. J2、J3
    B. J2、J4
    C. J1、J3
    D. J1、J4

  20. 单选题 (2分)
    下列有关基于时间片的进程调度的叙述中,错误的是( A )。
    A. 当前进程的时间片用完后,该进程的状态由执行状态变为阻塞状态
    B. 影响时间片大小的主要因素包括响应时间、系统开销和进程数量等
    C. 时钟中断发生后,系统会修改当前进程在时间片内的剩余时间
    D. 时间片越短,进程切换的次数越多,系统开销越大

    • 解释:时间片用完后,若进程未完成,它会从执行状态变为就绪状态,等待下一轮调度。变为阻塞状态是因为等待I/O等事件。

  21. 单选题 (2分)
    假设系统中有 4 个同类资源,进程 P1、P2 和 P3需要的资源数分别为 4、3 和 1,P1、P2 和 P3 已申请到的资源数分别为 2、1 和 0,则执行安全性检测算法的结果是( D )。
    A. 存在多个安全序列,系统处于安全状态
    B. 存在唯一安全序列 P3、P1、P2,系统处于安全状态
    C. 存在唯一安全序列 P3、P2、P1,系统处于安全状态
    D. 不存在安全序列,系统处于不安全状态

    • 解释:

      • 总资源 = 4。

      • P1: Max=4, Alloc=2, Need=2。

      • P2: Max=3, Alloc=1, Need=2。

      • P3: Max=1, Alloc=0, Need=1。

      • Available = Total - (AllocP1 + AllocP2 + AllocP3) = 4 - (2+1+0) = 1。

      • Work = Available = 1。

      • 尝试P3:NeedP3=1 <= Work=1。可以。Work = Work + AllocP3 = 1 + 0 = 1。序列 <P3>

      • 此时Work=1。

      • 尝试P1:NeedP1=2 > Work=1。不行。

      • 尝试P2:NeedP2=2 > Work=1。不行。

      • 无法找到能完成的下一个进程,因此系统处于不安全状态,不存在安全序列。

  22. 单选题 (2分)
    假设5 个进程 P0、 P1、 P2、 P3、 P4 共享3类资源 R1、 R2、 R3,这些资源总数分别为18、 6、 22。 T0 时刻的资源分配情况如下表所示,
    (P0: Alloc(2,1,3) Max(4,3,8) => Need(2,2,5)
    P1: Alloc(4,0,2) Max(5,2,4) => Need(1,2,2)
    P2: Alloc(3,1,4) Max(7,3,4) => Need(4,2,0)
    P3: Alloc(0,2,1) Max(2,2,2) => Need(2,0,1)
    P4: Alloc(5,0,5) Max(8,1,7) => Need(3,1,2) )
    此时存在的一个安全序列是( A )。
    A. P3, P4, P2, P1, P0
    B. P0, P2, P4, P1, P3
    C. P2, P1, P0, P3, P4
    D. P1, P0, P3, P4, P2

  23. 单选题 (2分)
    下列选项中,降低进程优先级的合理时机是( D )。
    A. 进程长期处于就绪列队
    B. 进程从就绪状态转为运行状态
    C. 进程刚完成I/O,进入就绪列队
    D. 进程的时间片用完

    • 解释:A通常是提高优先级的时机(老化)。C通常是提高优先级的时机(I/O完成的进程应尽快响应)。D在多级反馈队列等算法中,时间片用完常表示进程可能是CPU消耗型,会降低其优先级。

  24. 单选题 (2分)
    某系统中有 n 台互斥使用的同类设备,3 个并发进程分别需要 3、4、5 台该设备,可确保系统不发生死锁的设备数 n 最小为( C )。
    A. 11
    B. 12
    C. 10
    D. 9

    • 解释:为保证不发生死锁,最坏情况下,P1持有2台,P2持有3台,P3持有4台,此时它们都差一台就能完成。总共持有2+3+4=9台。此时再多一台资源,就能满足其中一个进程,打破僵局。所以 n_min = (3-1) + (4-1) + (5-1) + 1 = 2 + 3 + 4 + 1 = 10。

  25. 单选题 (2分)
    D )优先级是在创建进程时确定的,确定之后在进程的整个运行期间不再改变。
    A. 短作业
    B. FCFS
    C. 动态
    D. 静态

    • 解释:静态优先级定义如此。动态优先级会在运行时改变。

  26. 填空题 (1分)
    作业调度程序从处于 后备 状态的队列中先取适当的作业调入内存运行。

    • 解释:后备队列(或称输入井、作业池)存放已提交但尚未调入内存的作业。

  27. 单选题 (2分)
    下面的情况中,进程调度可能发生的时机有( C )。 Ⅰ.正在执行的进程时间片用完 Ⅱ.正在执行的进程提出I/O请求后进入等待状态 Ⅲ.有新的用户登录进入系统 Ⅳ.等待硬盘读取数据的进程获得了所需的数据
    A. Ⅰ、Ⅱ、Ⅳ
    B. Ⅰ、Ⅲ、Ⅳ
    C. Ⅰ、Ⅱ、Ⅲ、Ⅳ
    D. Ⅰ

    • 解释:I (时间片用完)、II (进程阻塞)、IV (I/O完成,进程唤醒) 都是典型的调度时机。III (新用户登录通常意味着创建新进程) 也可能触发调度,以决定新进程是否立即运行。

  28. 单选题 (2分)
    系统中有3个不同的临界资源R1,R2和R3,被4个进程P1,P2,P3,P4共享。各进程对资源的需求为:P1申请R1和R2,P2申请R2和R3,P3申请R1和R3,P4申请R2。若系统出现死锁,则处于死锁状态的进程数至少是( D )。
    A. 1
    B. 4
    C. 2
    D. 3

    • 解释:考虑一个循环等待:P1持有R1等待R2,P2持有R2等待R3,P3持有R3等待R1。这是一个由3个进程(P1, P2, P3)构成的死锁。P4只申请R2,如果R2被P1或P2持有且它们处于死锁环中,P4会等待但不是构成环的必要条件。最小的死锁环需要至少2个进程,但根据给定的资源需求,最容易形成的死锁环是3个进程。例如:P1占有R1申请R2,P2占有R2申请R3,P3占有R3申请R1。

  29. 单选题 (2分)
    下列关于银行家算法的叙述中,正确的是( B )。
    A. 银行家算法可以预防死锁
    B. 当系统处于安全状态时,系统中一定无死锁进程
    C. 当系统处于不安全状态时,系统中一定会出现死锁进程
    D. 银行家算法破坏了死锁必要条件中的“请求和保持”条件

    • 解释:A错,银行家算法是死锁避免。C错,不安全状态不一定会导致死锁,只是有风险。D错,银行家算法不破坏任何死锁条件,而是通过检查每次分配是否会导致不安全状态来避免进入可能死锁的状态。B正确,安全状态的定义就是存在一个能让所有进程完成的序列。

评论