当前位置: 首页 > news >正文

操作系统期末复习笔记

第1章 引论

1. 单选题(5 分)

并发性是指若干时间在 () 发生。
A. 不同时刻
B. 同一时刻
C. 不同时间间隔
D. 同一时间间隔内

1. 单选题

答案:D

        解析:并发性指在同一时间间隔内,宏观上有多个程序在同时运行,但微观上这些程序是交替执行的。例如,在一个多任务操作系统中,一段时间内可能同时有文字处理软件、浏览器等多个程序在运行,它们在宏观上给人同时运行的感觉,实则是在 CPU 调度下交替执行 。而 “同一时刻” 强调的是瞬间多个事件同时发生,这是并行的概念;“不同时刻” 和 “不同时间间隔” 不符合并发性的定义。

2. 判断题(5 分)

用户程序有时也可以在内核态下运行。()

2. 判断题

答案:错误

        解析:内核态具有较高的权限,可访问系统的关键资源和执行敏感操作,如访问硬件设备、修改内存管理信息等。用户程序通常运行在用户态,其权限受限,是为了防止用户程序对系统造成破坏。用户程序只能通过系统调用等合法途径,在操作系统的控制下进入内核态执行特定操作,不能随意在内核态下运行。

3. 单选题(5 分)

分时操作系统通常采用 () 策略为用户服务。
A. 可靠性和灵活性
B. 时间片加权分配
C. 短作业优先
D. 时间片轮转
本题得分:5 分
正确答案:D

3. 单选题

答案:D

        解析:分时操作系统将 CPU 的时间划分成若干个时间片,多个用户的作业按照时间片轮流占用 CPU 运行。这样每个用户都能在较短的时间内得到响应,感觉自己独占计算机。例如,多个用户同时登录到一台分时系统主机上,系统会依次为每个用户分配时间片来执行任务。“可靠性和灵活性” 并非分时操作系统为用户服务的具体策略;“时间片加权分配” 不是分时系统常用的典型策略;“短作业优先” 是批处理系统等采用的调度策略,用于优先处理运行时间短的作业,不适用于分时系统。

4. 单选题(5 分)

操作系统是一种 ()。
A. 通用软件
B. 应用软件
C. 工具软件
D. 系统软件

4. 单选题

答案:D

        解析:操作系统是管理计算机硬件与软件资源的计算机程序,是最基本的系统软件。它负责为其他软件提供运行环境,管理系统资源,如 CPU、内存、存储设备等。通用软件是具有通用性,可在多种场景使用的软件,如办公软件;应用软件是为满足特定应用需求而开发的软件,如财务软件、游戏软件;工具软件是辅助用户完成特定任务的软件,如文件压缩软件。这些都与操作系统的功能和性质不同。

5. 单选题(5 分)

下面不属于基本操作系统的是 ()。
A. 网络操作系统
B. 批处理操作系统
C. 实时操作系统
D. 分时操作系统

5. 单选题

答案:A

        解析:基本操作系统主要包括批处理操作系统(用于批量处理作业,提高系统资源利用率)、实时操作系统(对外部事件及时响应,常用于工业控制、航空航天等领域)、分时操作系统(允许多个用户同时交互使用计算机) 。网络操作系统是在基本操作系统基础上,增加了网络管理功能,用于管理网络通信、共享资源等,不属于基本操作系统类型。

6. 单选题(5 分)

下列是分时系统的为 ()。
A. MS - DOS
B. Windows NT
C. Linux
D. CP/M

6. 单选题

答案:C

        解析:Linux 是一种典型的分时操作系统,它支持多用户、多任务,多个用户可以同时登录系统,各自的任务按时间片轮转方式执行。MS - DOS 是单用户单任务的操作系统,一次只能运行一个程序;Windows NT 是面向网络的操作系统,虽然也支持多用户多任务,但不是典型的以分时为主要特征的系统;CP/M 是早期的单用户单任务操作系统。

7. 判断题(5 分)

从资源管理的角度来说,操作系统是控制和管理计算机的软、硬件资源,合理地组织计算机的工作流程,以方便用户使用的程序的集合。()

7. 判断题

答案:正确

        解析:从资源管理角度,操作系统对计算机硬件资源(如 CPU、内存、I/O 设备等)和软件资源(如程序、数据等)进行控制和管理。通过合理的调度和分配策略,组织计算机工作流程,像进程调度管理 CPU 时间分配、内存管理规划内存空间使用等,最终目的是为用户提供方便、高效的使用环境,所以该表述正确。

8. 单选题(5 分)

() 操作系统允许一台主机上同时连接多台终端,多个用户可以通过各自的终端同时交互地使用计算机。
A. 分布式
B. 网络
C. 分时
D. 实时

8. 单选题

答案:C

        解析:分时操作系统将 CPU 时间划分为时间片,采用时间片轮转方式,让多个用户通过各自终端轮流使用计算机,实现同时交互操作。分布式操作系统主要强调多台计算机协同工作,共同完成任务;网络操作系统侧重于管理网络通信和共享资源;实时操作系统注重对外部事件的及时响应,多用于工业控制等场景,均不符合 “多个用户通过终端同时交互使用计算机” 这一特点。

9. 判断题(5 分)

操作系统提供用户与计算机的接口。()

9. 判断题

答案:正确

        解析:操作系统提供了用户与计算机硬件交互的接口。比如命令行界面(CLI)让用户通过输入指令操作计算机,图形用户界面(GUI)通过可视化的图标、窗口等方便用户操作,还有系统调用接口供程序开发者使用,所以操作系统是用户与计算机之间的桥梁,该说法正确。

10. 判断题(5 分)

在过去很长一段时间内,鉴于计算机系统非常昂贵,所以有效性曾一度是操作系统最为重要的设计目标。()

10. 判断题

答案:正确

        解析:早期计算机硬件昂贵,资源有限,如何高效利用这些资源成为关键。操作系统设计着重于提高资源利用率、系统吞吐量等有效性指标,比如采用批处理技术减少 CPU 空闲时间,所以在过去,有效性确实是重要设计目标。

11. 判断题(5 分)

并发是并行的不同表述,其原理相同。()

11. 判断题

答案:错误

        解析:并发指在同一时间间隔内,宏观上有多个程序在运行,但微观上是交替执行;并行是指在同一时刻,多个事件同时发生,需要多个处理器等硬件支持。二者原理不同,并发是通过 CPU 快速切换实现宏观同时运行效果,并行是真正的同时执行,所以该表述错误。

12. 单选题(5 分)

提高单机资源利用率的关键技术是 ()。
A. 交换技术
B. 虚拟技术
C. 脱机技术
D. 多道程序设计技术

12. 单选题

答案:D

        解析:多道程序设计技术允许计算机内存中同时存放多道程序,这些程序在 CPU 调度下交替执行,使 CPU 始终处于忙碌状态,减少空闲等待时间,极大提高了单机资源(如 CPU、内存等)利用率。交换技术主要用于内存管理,在内存空间不足时将部分程序或数据交换到外存;虚拟技术用于实现虚拟内存等,扩展系统资源;脱机技术指脱离主机直接控制的操作技术,它们虽对资源管理有作用,但不是提高单机资源利用率的关键技术。

13. 判断题(5 分)

操作系统内核能使用特权指令。()

13. 判断题

答案:正确

        解析:操作系统内核处于系统的核心地位,拥有较高特权。特权指令具有特殊功能,像设置时钟、清内存等,只能在内核态执行,内核利用这些特权指令实现对硬件的直接控制和系统关键功能的管理,所以操作系统内核能使用特权指令。

14. 判断题(5 分)

操作系统是计算机系统中的第一层软件。()

14. 判断题

答案:正确

        解析:计算机启动后,首先加载和运行操作系统,它直接与硬件交互,对硬件资源进行初始化和管理,为其他软件(如应用软件、工具软件等)提供运行环境和基础服务,所以操作系统是计算机系统中的第一层软件。

15. 判断题(5 分)

批处理系统不允许用户随时干预自己程序的执行。()

15. 判断题

答案:正确

        解析:批处理系统是将用户作业成批提交,系统按顺序依次处理,在处理过程中用户不能随时干预程序执行。因为批处理追求的是高效处理大量作业,减少人工干预带来的时间开销,提高系统吞吐量,所以用户无法实时干预程序执行。

16. 单选题(5 分)

单道批处理系统的主要缺点是 ()。
A. 失去了交互性
B. 不具备并行性
C. CPU 利用率不高
D. 以上都不是

16. 单选题

答案:C

        解析:单道批处理系统一次只允许一道程序进入内存执行,当程序进行 I/O 操作时,CPU 处于空闲等待状态,导致 CPU 利用率不高。“失去交互性” 虽是单道批处理系统特点,但不是主要缺点;“不具备并行性” 表述不准确,它本质是因只有一道程序运行导致资源利用不充分,核心还是 CPU 利用率问题,所以主要缺点是 CPU 利用率不高。

17. 判断题(5 分)

操作系统的基本类型主要有批处理系统、分时系统及多任务系统。()

17. 判断题

答案:错误

        解析:操作系统基本类型主要有批处理系统、分时系统、实时系统。多任务系统只是操作系统具备的一种特性,不是基本类型。批处理系统用于批量处理作业;分时系统支持多个用户同时交互使用;实时系统对外部事件及时响应,所以该表述错误。

18. 判断题(5 分)

操作系统是系统软件中的一种,在进行系统安装时可以先安装其它软件,然后再装操作系统。()

18. 判断题

答案:错误

        解析:操作系统是管理计算机硬件和软件资源的基础软件,其他软件依赖操作系统提供的运行环境。安装系统时需先安装操作系统,完成硬件驱动配置、系统环境搭建等,再安装其他软件,若先装其他软件再装操作系统,会导致软件无法正常运行或系统不稳定。

19. 单选题(5 分)

操作系统是一组 ()。
A. 设备管理程序
B. 文件管理程序
C. 中断处理程序
D. 资源管理程序

19. 单选题

答案:D

        解析:操作系统功能涵盖对计算机各种资源的管理,包括 CPU、内存、设备、文件等。它通过一组资源管理程序实现这些功能,如进程调度程序管理 CPU 资源,内存管理程序管理内存资源等。设备管理程序、文件管理程序、中断处理程序只是操作系统资源管理功能的一部分,不能全面概括操作系统,所以操作系统是一组资源管理程序。

20. 单选题(5 分)

引导多道程序的目的在于 ()。
A. 提高实时响应速度
B. 充分利用存储器
C. 有利于代码共享,减少主、辅存信息交换量
D. 充分利用 CPU,减少 CPU 等待时间

20. 单选题

答案:D

        解析:多道程序设计允许内存中同时存在多道程序,当一道程序因 I/O 操作等原因暂停时,CPU 可调度其他程序执行,避免 CPU 空闲等待,充分利用 CPU 资源,减少 CPU 等待时间。提高实时响应速度是实时操作系统的目标;充分利用存储器只是多道程序设计带来的部分效果;代码共享不是引导多道程序的主要目的,所以引导多道程序目的是充分利用 CPU,减少 CPU 等待时间。

第2章 进程管理

1. 判断题(4 分)

临界区是进程中访问临界资源的那段代码。()

1. 判断题

答案:正确

        解析:临界资源是一次仅允许一个进程访问的资源,而临界区就是进程中用于访问临界资源的那段代码。当一个进程进入临界区,就意味着它正在访问临界资源,此时其他进程不能再进入该临界区访问同一临界资源 。

2. 单选题(4 分)

进程和程序的本质区别是 ()。
A. 前者在一个文件中,后者在多个文件中
B. 前者存储在内存,后者存储在外存
C. 前者是动态的,后者是静态的
D. 前者分时使用 CPU,后者独占 CPU

2. 单选题

答案:C

        解析:程序是静态的,它是一组指令的集合,存放在外存(如硬盘)中,不具有执行能力。而进程是动态的,是程序的一次执行过程,它在执行过程中会申请资源、占用 CPU 等,具有生命周期,从创建到运行再到结束 。A 选项,进程和程序不一定在文件数量上有此区别;B 选项,进程运行时在内存,但程序不只是在外存,也可能被调入内存;D 选项,进程分时使用 CPU 是调度方式,不是本质区别,且程序不能独占 CPU。

3. 判断题(4 分)

进程的 3 种基本状态:就绪、运行和阻塞,任意两种状态之间都可以相互转换。()

3. 判断题

答案:错误

        解析:进程的三种基本状态为就绪、运行和阻塞。运行态可以转换为就绪态(如时间片用完)和阻塞态(如等待 I/O 操作完成);就绪态可以转换为运行态(被调度程序选中);阻塞态可以转换为就绪态(等待的事件完成,如 I/O 操作结束)。但是阻塞态不能直接转换为运行态,必须先转换为就绪态,再由就绪态转换为运行态 。

4. 单选题(4 分)

在操作系统中,对信号量 S 的 P 原语操作定义中,使进程互斥的使用临界资源,则 S 的初值应是 ()
A. S<1
B. S=1
C. S≠1
D. S>1

4. 单选题

答案:B

        解析:信号量 S 用于实现进程互斥时,初值通常设为 1。P 操作是申请资源,会使 S 的值减 1;V 操作是释放资源,会使 S 的值加 1。当 S = 1 时,一个进程执行 P 操作后 S 变为 0,其他进程再执行 P 操作时 S 变为负数,就会进入等待队列,实现进程互斥访问临界资源 。

5. 单选题(4 分)

一个进程被唤醒意味着 ()。
A. 进程状态变为就绪
B. 其 PCB 移至就绪队列的队首
C. 它的优先权变为最大
D. 该进程重新占有了 CPU

5. 单选题

答案:A

        解析:当一个进程被唤醒时,意味着它等待的事件已经发生,比如 I/O 操作完成,此时它的状态从阻塞态变为就绪态,进入就绪队列等待被调度执行 。B 选项,被唤醒后不一定移至就绪队列队首;C 选项,被唤醒并不意味着优先权变为最大;D 选项,被唤醒只是进入就绪态,不一定马上重新占有 CPU,需被调度程序选中才行。

6. 判断题(4 分)

处于后备状态的作业已经调入内存中。()

6. 判断题

答案:错误

        解析:处于后备状态的作业是存放在外存中,尚未调入内存。当作业被调度程序选中,才会被调入内存,进入运行等状态 。

7. 单选题(4 分)

进程在系统中存在的唯一标识是 ()。
A. FCB
B. PCB
C. JCB
D. FIFO

7. 单选题

答案:B

        解析:进程控制块(PCB)是进程在系统中存在的唯一标识,它记录了进程的各种信息,如进程状态、优先级、资源占用情况等。文件控制块(FCB)是用于管理文件的;作业控制块(JCB)用于管理作业;FIFO 是先进先出调度算法,不是进程的标识 。

8. 单选题(4 分)

在下列进程状态变化中,不可能发生的状态转换是 ()。
A. 执行→阻塞
B. 执行→就绪
C. 阻塞→就绪
D. 阻塞→执行

8. 单选题

答案:D

        解析:A 选项,执行态的进程因等待资源(如 I/O 操作)会转换为阻塞态;B 选项,执行态的进程时间片用完或被更高优先级进程抢占,会转换为就绪态;C 选项,阻塞态的进程等待的事件完成(如 I/O 操作结束),会转换为就绪态;而阻塞态的进程必须先转换为就绪态,才能在被调度后转换为执行态,不能直接从阻塞态转换为执行态 。

9. 判断题(4 分)

当条件满足时,进程可以由阻塞态直接转换为运行态。()

9. 判断题

答案:错误

        解析:阻塞态的进程是因为等待某个事件(如 I/O 操作完成、信号量等)而暂停执行,当等待的事件满足时,它会先转换为就绪态,进入就绪队列,然后由调度程序从就绪队列中选择它,才能转换为运行态,不能直接从阻塞态转换为运行态 。

10. 单选题(4 分)

若 P、V 操作的信号 S 初值为 2,当前值为 - 3,则表示有 () 个等待进程。
A. 0
B. 1
C. 3
D. 2

10. 单选题

答案:C

        解析:信号量 S 的值小于 0 时,其绝对值表示等待该信号量的进程数。已知信号量 S 初值为 2,当前值为 -3 ,|-3| = 3,所以表示有 3 个等待进程 。

11. 判断题(4 分)

临界资源是指在一段时间内,一次仅允许一个进程使用的资源。()

11. 判断题

答案:正确

        解析:临界资源的定义就是在一段时间内,一次仅允许一个进程使用的资源,例如打印机、共享变量等。多个进程如果同时访问临界资源,可能会导致数据不一致或错误,所以需要对临界资源的访问进行控制 。

12. 单选题(4 分)

P、V 操作是 ()。
A. 两条低级进程通信原语
B. 两组低级的机器指令
C. 两条系统调用命令
D. 两条高级进程通信原语

12. 单选题

答案:A

        解析:P、V 操作是操作系统中用于实现进程同步与互斥的低级进程通信原语。P 操作是申请资源,会使信号量的值减 1;V 操作是释放资源,会使信号量的值加 1。它们不是机器指令,也不是系统调用命令,相对高级通信原语(如消息传递等)来说,P、V 操作比较基础和底层 。

13. 判断题(4 分)

在 PCB 中可以直接或间接找到有关该进程的所有信息。()

13. 判断题

答案:正确

        解析:进程控制块(PCB)是进程的实体,它记录了进程的各种信息,如进程标识符、进程状态、优先级、资源分配情况、程序计数器、上下文信息等。通过 PCB 可以直接获取很多进程相关信息,对于一些间接关联的信息,也可以通过 PCB 中的指针或引用找到,所以在 PCB 中可以直接或间接找到有关该进程的所有信息 。

14. 单选题(4 分)

进程处于 () 时,它处于非阻塞态。
A. 等待协作进程的一个信号
B. 等待操作系统分配 CPU 时间
C. 等待网络数据进入内存
D. 等待从键盘输入数据

14. 单选题

答案:B

        解析:A 选项等待协作进程的一个信号、C 选项等待网络数据进入内存、D 选项等待从键盘输入数据,这些情况都表明进程在等待某个特定事件的发生,处于阻塞态。而 B 选项等待操作系统分配 CPU 时间,说明进程已经具备了运行条件,只是还没有得到 CPU 资源,此时进程处于就绪态,属于非阻塞态 。

15. 判断题(4 分)

作业一旦被作业调度选中,系统就给它分配 CPU。()

15. 判断题

答案:错误

        解析:作业被作业调度选中后,只是将作业从后备状态调入内存,进入了就绪状态,此时作业还需要经过进程调度程序的调度,才会被分配 CPU 进入运行状态,而不是作业调度选中就直接分配 CPU 。

16. 判断题(4 分)

进程由 PCB 和其执行的程序、数据所组成。()

16. 判断题

答案:正确

        解析:进程由三部分组成,即进程控制块(PCB)、程序段和数据段。PCB 用于记录进程的状态和属性等信息;程序段是进程执行的代码;数据段包含进程执行时所需要的数据,所以进程由 PCB 和其执行的程序、数据所组成 。

17. 判断题(4 分)

对临界资源应采取互斥访问的方式来实现共享。()

17. 判断题

答案:正确

        解析:由于临界资源一次只能被一个进程使用,为了保证临界资源的正确使用和系统的一致性,需要采取互斥访问的方式,即当一个进程在访问临界资源时,其他进程不能同时访问,通常可以通过信号量机制、互斥锁等方法来实现互斥访问 。

18. 单选题(4 分)

进程的基本状态 () 可以由其他两种基本状态转变而来。
A. 阻塞状态
B. 就绪状态
C. 执行状态
D. 新建状态

18. 单选题

答案:B

        解析:执行态的进程因时间片用完或等待资源等原因可转换为就绪态;阻塞态的进程在等待的事件完成后,可转换为就绪态。而阻塞态只能由执行态转换而来(如等待 I/O 操作);执行态只能由就绪态转换而来(被调度执行);新建状态不属于进程的基本状态(进程基本状态为就绪、运行、阻塞 ),所以就绪状态可以由其他两种基本状态转变而来 。

19. 单选题(4 分)

处于挂起就绪状态 (即静止就绪状态) 的进程,可转换为 ()。
A. 就绪状态 (即活动就绪状态)
B. 挂起阻塞状态 (即静止阻塞状态)
C. 运行状态
D. 阻塞状态 (即活动阻塞状态)

19. 单选题

答案:A

        解析:挂起就绪状态表示进程被对换到外存,但具备运行条件,当系统资源允许(如内存空间足够等)时,它可以被重新调回内存,转换为就绪状态(活动就绪状态),进入就绪队列等待调度执行 。挂起就绪状态不能直接转换为挂起阻塞状态、运行状态或阻塞状态 。

20. 单选题(4 分)

操作系统中有一组特殊的程序,它们不能被系统中断,在操作系统中称为 ()。
A. 原始
B. 初始化程序
C. 子程序
D. 控制模块

20. 单选题

答案:A

        解析:原语是操作系统中一组不可分割、不可中断的程序,它在执行过程中不允许被其他程序或事件打断,用于实现一些原子操作,如 P、V 操作等。初始化程序是在系统启动时用于初始化硬件和软件环境的;子程序是被其他程序调用执行特定功能的程序段;控制模块是操作系统中具有特定控制功能的模块,所以这里应选原语 。

21. 单选题(4 分)

进程的状态和优先级信息存放在 ()。
A. 页表
B. PCB
C. 快表
D. JCB

21. 单选题

答案:B

        解析:进程控制块(PCB)记录了进程的各种信息,包括进程的状态(如就绪、运行、阻塞等)和优先级等。页表主要用于地址映射,记录虚拟地址和物理地址的对应关系;快表是一种高速缓存,用于加速地址转换;JCB 是作业控制块,用于记录作业的相关信息,如作业名、资源需求等,所以进程的状态和优先级信息存放在 PCB 中 。

22. 单选题(4 分)

在进程管理中,当 () 时,进程从阻塞状态变为就绪状态。
A. 进程被进程调度程序选中
B. 时间片用完
C. 等待的事件发生
D. 等待某一事件

22. 单选题

答案:C

        解析:A 选项进程被进程调度程序选中,是从就绪状态变为运行状态;B 选项时间片用完,是从运行状态变为就绪状态;D 选项等待某一事件,是从运行状态变为阻塞状态;而 C 选项等待的事件发生,例如等待的 I/O 操作完成,会使进程从阻塞状态变为就绪状态 。

23. 判断题(4 分)

进程状态的转换是由操作系统完成的,对用户是透明的。()

23. 判断题

答案:正确

        解析:进程状态的转换是由操作系统内核中的调度模块和相关机制来完成的,用户无法直接感知和干预这些转换过程。用户只需要提交作业或运行程序,操作系统会自动管理进程的状态转换,所以对用户是透明的 。

24. 单选题(4 分)

一个运行的进程用完了分配给它的时间片后,它的状态变为 ()。
A. 由用户自己确定
B. 等待
C. 就绪
D. 运行

24. 单选题

答案:C

        解析:当一个运行的进程用完了分配给它的时间片后,它不再占用 CPU,但仍然具备运行条件,此时它的状态从运行态变为就绪态,进入就绪队列等待下一次被调度执行 。不是由用户自己确定,也不是等待(等待一般指等待某个事件,如 I/O 操作完成 ),更不会继续保持运行态 。

25. 单选题(4 分)

用信箱实现进程间互通信息的通信机制要有两个通信原语,它们是 ()。
A. 就绪原语和接收原语
B. 就绪原语和执行原语
C. 发送原语和接收原语
D. 发送原语和执行原语

25. 单选题

答案:C

        解析:用信箱实现进程间通信时,发送原语用于将消息发送到指定的信箱中,接收原语用于从信箱中取出消息。就绪原语和执行原语与信箱通信机制无关,所以信箱通信机制的两个通信原语是发送原语和接收原语 。

信号量习题

1.考研真题单项选择题)若记录型信号量S的初值为15,当前值为-15,则表示有(   )等待进程。

A. 15个      B. 30个      C. 16个     D. 31个

【参考答案】A

【解析】当S值小于0时,绝对值表示阻塞队列中进程的个数。

2.(考研真题,单项选择题)设与某资源相关联的信号量初值为3,当前值为1,若M表示该资源的可用个数,N表示等待资源的进程数,则M、N分别是(   )。

A. 0、1       B. 1、0        C. 1、2       D. 2、0

【参考答案】B

【解析】根据信号量的物理含义:S.value>0时表示有S.value个资源可用;S.value=0表示无资源可用;S.value<0则S.value的绝对值表示等待队列中的进程个数。信号量的当前值为1,则表示该资源的可用个数为1,没有等待该资源的进程。

3.(考研真题,单项选择题)如果3个进程共享一个互斥段,每次最多可以允许2个进程进入互斥段,则信号量的变化范围是(   )。

A. 2、1、0、-1           B. 3、2、1、0

C. 2,1、0、-1,-2       D. 1、0、-1,-2

【参考答案】A

【解析】最多允许2个进程进入互斥段,初始值则为2,因为每个进程进去时都先要行P操作,然后判断信号量的值是否大于0,不是则表示当前互斥段内已经有2个进程,当第3个进程再执行P操作时,信号量值为-1,该进程阻塞。

4.考研真题15个进程共享同一程序段,而每次最多允许4个进程进入该程序段,若用P、V操作同步机制,则记录型信号量S的取值范围为(   )。

【参考答案】-11≤S≤4

【解析】每次最多允许4个进程进入该程序段,则信号量S的初值设置为4,每一个进程执行P操作后,S的值会减1,最多15个进程,最多执行15次,S的值最小为4-15=-11。

5.(考研真题)对下面用类Pascal语言描述的读者写者问题,请填入正确的wait()、signal()操作。

【参考答案】

A:wait(wmutex);  //禁止写者写。

B:signal(rmutex);  //释放信号,让其他读者进来。

C:wait(rmutex);  //保证读者互斥使用readcount变量。

D:signal(wmutex);  //释放写互斥信号,可以让其他写者或读者进入。

E:wait(wmutex);  //禁止其他写者进来。

        这段代码实现了读者优先的读者 - 写者问题解决方案,关键在于通过信号量控制对共享资源的访问。以下是对各空的详细解析:

A: wait(wmutex)

        当第一个读者进入时(readcount=0),需要获取wmutex信号量。这一步的作用是阻止写者进入,确保在有读者活跃时,写者无法执行写操作。一旦有读者持有wmutex,后续写者必须等待所有读者退出后才能执行。

B: signal(rmutex)

        在增加readcount后,读者释放rmutex信号量。这允许其他读者同时进入,因为多个读者可以并行读取共享资源,无需互斥。rmutex的作用仅限于保护对readcount的修改,而非阻止其他读者。

C: wait(rmutex)

        在执行读操作后,读者需要再次获取rmutex,以互斥地修改readcount。这确保在减少readcount时不会发生竞态条件,保证计数器的正确性。

D: signal(wmutex)

        当最后一个读者退出时(readcount减为 0),释放wmutex信号量。这允许等待的写者进入,恢复写操作的可能性。只有当所有读者都退出后,写者才能获得wmutex并执行写操作。

E: wait(wmutex)

        写者在执行写操作前必须获取wmutex。这确保写操作的互斥性,即同一时间只能有一个写者访问共享资源。写者完成后通过signal(wmutex)释放信号量。

读者 - 写者问题的核心逻辑

1.读者优先策略:

        只要有读者在读,后续读者可以直接进入,无需等待。

        写者必须等待所有读者退出后才能执行。

2.信号量分工:

        rmutex:保护对readcount的互斥访问,确保计数器操作的原子性。

        wmutex:控制写操作的互斥性,同时在第一个读者进入时阻止写者。

3.执行流程:

        读者:获取rmutex → 修改readcount → 释放rmutex → 执行读操作 → 再次获取rmutex → 修改readcount → 释放rmutex(若为最后一个读者,还需释放wmutex)。

        写者:获取wmutex → 执行写操作 → 释放wmutex。

通过这种机制,代码实现了读者优先的同步策略,平衡了读者和写者的访问需求。

算法设计题

1.考研真题-前驱图有4个进程P1、P2、P3、P4。要求P1必须在P2、P3开始前完成,P2、P3必须在P4开始前完成,且P2和P3 不能并发执行。试写出这4个进程的同步互斥算法。

1.【参考答案】建立4个信号量a、b、c、d和1个供P2、P3互斥的信号量mutex,画出前趋图如图所示,两个进程之间的小箭头上的变量表示信号量。

semaphore a = 0, b = 0, c = 0, d = 0;
semaphore mutex = 1;cobegin// 进程 P1:执行后释放信号量 a 和 b{P1;signal(a);signal(b);}// 进程 P2:等待 a 并获取互斥锁后执行,然后释放 c{wait(a);wait(mutex);  // 修正拼写错误:wai → waitP2;signal(c);signal(mutex);}// 进程 P3:等待 b 并获取互斥锁后执行,然后释放 d{wait(b);wait(mutex);P3;signal(d);signal(mutex);}// 进程 P4:等待 c 和 d 都就绪后执行{wait(c);wait(d);P4;}
coend

2.考研真题-读者写者假设有一个路口,通行交通规则如下:只要没有机动车在通行,路口行人就可以通过,只有没有行人在通过路口且没有其他机动车在通过路口时该机动车才能通过。请用P、V操作描述行人和机动车通过路口的同步互斥过程。

2.【参考答案】设置信号量road用于行人和机动车、机动车和机动车之间的互斥,初值为1;设置变量count表示要通过路口行人的数目,初值为0;设置信号量rmutex用于对count临界资源的互斥访问,初值为1。

3.(考研真题-生产者消费者系统中有多个生产者进程和消费者进程,共享用一个可以存1000个产品的缓冲区(初始为空),当缓冲区未满时,生产者进程可以放入1件其生产的产品,否则等待;当缓冲区不空时,消费者进程可以取走1件产品,否则等待。要求1个消费者进程从缓冲区连续取出10件产品后,其他消费者进程才可以取产品,请用信号量P,V(或wait()、signal())操作实现进程间的互斥和同步,要求写出完整的过程;并指出所用信号量的含义和初值。

semaphore road = 1;    // 控制路口资源的信号量
semaphore rmutex = 1;  // 保护计数器的互斥信号量
int count = 0;         // 记录当前行人数量cobegin// 行人进程Pedestrian()beginrepeatP(rmutex);        // 进入临界区count := count + 1;  // 行人计数加1if count = 1 then P(road);  // 第一个行人占用路口V(rmutex);        // 离开临界区通过路口;         // 行人通过路口P(rmutex);        // 进入临界区count := count - 1;  // 行人计数减1if count = 0 then V(road);  // 最后一个行人释放路口V(rmutex);        // 离开临界区until FALSE;end;// 机动车进程Vehicle()beginrepeatP(road);          // 请求路口资源通过路口;         // 机动车通过路口V(road);          // 释放路口资源until FALSE;end;
coend;

1.信号量与计数器:

        road 信号量控制路口资源,确保行人或机动车互斥使用

        rmutex 信号量保护 count 变量,防止多行人并发修改导致竞态条件

        count 记录当前通过路口的行人数量

2.行人进程逻辑:

        第一个行人通过时会占用路口 (P(road))

        后续行人直接进入,无需再次申请路口资源

        最后一个行人离开时释放路口 (V(road))

3.机动车进程逻辑:

        每次通过前必须申请路口资源

        通过后立即释放路口资源

4.同步机制:

        当有行人正在通过时 (count > 0),机动车需等待

        当无行人时,机动车可直接通过

        行人之间可并发通过,提高路口利用率

这种实现方式体现了 "行人优先" 的设计原则,确保在行人存在时机动车需等待,而行人可以连续通过直至全部离开。

3.【参考答案】生产者与消费者之间设互斥信号量mutex,消费者之间设互斥信号量 consumermutex。上述进程的同步问题,要设置3个信号量。其中empty对应空闲的缓冲单元,初值为1000;full对应缓冲区中待取走的产品数,初值为0;另外,还须定义2个整型变量in、out,初值均为0,分别指示下一个可存放产品的缓冲单元、下一个取走的缓冲单元。过程如下:

buffer array [1000]; //存放产品的缓冲区 
buffer nextp; //用于临时存放生产者生产的产品 
buffer nextc [10]; //用于临时存放消费者取出的产品 
semaphore empty=1000; //空缓冲区的数目 
semaphore full=0; //满缓冲区的数目
semaphore mutex1=1; //用于生产者与消费者之间的互斥 
semaphore consumermutex =1; //用于消费者之间的互斥
int in=0; //指示生产者的存位置 
int out=0; //指示消费者的取位置 void consumer(){while(true){ //消费者之间互斥,所以用consumermutex来保护起来wait(consumermutex);  //进行取10个产品操作for(int i=0; i<10; i++){wait(full);wait(mutex);//取产品和放产品互斥,用mutexnextc[i]=array[out]; //将产品取出,存于临时缓冲区out = (out+1)%1000;//注意这里的模运算signal(mutex);signal(empty);      }signal(consumsermutex);}
}void producer(){while(true){wait(empty);wait(mutex);生产一个产品;buffer[in] = nextp;//把产品放入缓冲区in = (in+1)%1000;signal(mutex);signal(full);}
}
void main(){cobeginconsumer();producer();coend
}

4.考研真题两个进程 P1、P2并发执行,并用信号量M1,M2分别实现对两个互斥共享的资源R1和R2的互斥访问。这两个进程以什么次序执行会导致死锁?在不影响程序功能的情况下,请修改算法以防止死锁,同时尽可能保持较高的资源利用率。

4.【参考答案】本题分步解答如下。

(1)当进程P1执行了wait(M1),在执行wait(M2)未成功的情况下,若P2成功执行wait(M2)操作,会出现P1因等待M2阻塞,P2因等待M1阻塞,产生死锁。

(2)解除死锁方法之一是先让两个进程去争夺M1,抢到M1的进程才给它抢 M2。这样保证了P1、P2两个进程不论谁先抢到M1,都可以得到M2而顺利运行。

5.(考研真题-哲学家进餐问题有n(n≤3)位哲学家围坐在一张圆桌边,每位哲学家交替地就餐和思考。在圆桌中心有m(m≥1)个碗,每两位哲学家之间有1根筷子。每位哲学家必须取到一个碗和两侧的筷子之后,才能就餐,进餐完毕,将碗和筷子放回原位,继续思考。为使尽可能多的哲学家同时就餐,且防止出现死锁现象,请使用信号量的P、V(或 wait()、signal())操作描述上述过程中的互斥与同步,并说明所用信号量及初值的含义。

5. 解析:本题可以用碗这个限制资源来避免死锁:当碗的数量m小于哲学家的数量n时,可以直接让碗的资源量等于m,确保不会出现所有哲学家都拿一侧筷子而无限等待另一侧筷子进而造成死锁的情况;当碗的数量m大于等于哲学家数量n时,为了让碗起到同样的限制效果,我们让碗的资源量等于n-1,这样就能保证最多只有n-1名哲学家同时进餐,所以得到碗的资源量为min{n-1,m}。在进行P、V操作时,碗的资源量起限制哲学家取筷子的作用,所以需要先对碗的资源量进行P操作。

【参考答案】

处理机调度计算题

1.(考研真题,单项选择题)假设4个作业到达系统的时刻和运行时间如表所示。

作业

到达时刻t

运行时间

J1

0

3

J2

1

3

J3

1

2

J4

3

1

系统在t=2时开始作业调度。若分别采用先来先服务和短作业优先调度算法,则选中的作业分别是(   )

A.J2、J3             B.J1、J4            C.J2、J4               D.J1、J3

【参考答案】D

【解析】先来先服务调度算法是作业来得越早,优先级越高,因此会选择J1。短作业优先调度算法是作业运行时间越短,优先级越高,因此会选择J3

2.(考研真题)有以下的进程需要调度执行(见表3-1-1),若用非抢占式短进程优先调度算法,问这5个进程的平均周转时间是多少?

表3-1-1 进程运行时间表

进程名

到达时间

运行时间

P1

0.0

9

P2

0.4

4

P3

1.0

1

P4

5.5

4

P5

7

2

【参考答案】本题分步解答如下。

(1)采用非抢占式短进程优先调度算法,各进程执行次序如图所示。

在0时刻,进程P1到达,P1获得处理机。由于不可抢占,所以P1会一直运行到9时刻结束;在9时刻,所有进程到达,根据短进程优先调度,P3获得处理机,然后是P5;P2和P4的预计运行时间一样,P2和P4按照先来先服务原则调度,P2优先获得处理机,最后P4运行。

(2)周转时间=完成时间-作业到达时间。因此P1的周转时间是9-0=9,P2的周转时间是16-0.4=15.6,P3的周转时间是10-1=9,P4的周转时间是20-5.5=14.5,P5的周转时间是12-7=5。平均周转时间为(9+15.6+9+14.5+5)/5=10.62。

3.考研真题5个进程P1、P2、P3、P4、P5几乎同时到达,预期运行时间分别为10、6、2、4、8个时间单位。各进程的优先级分别为3、5、2、1、4(数值越大,优先级越高)。请按下列调度算法计算任务的平均周转时间(进程切换开销可忽略不计)。

(1)先来先服务(按P1、P2、P3、P4、P5顺序)算法。

(2)时间片轮转算法,假定时间片大小为2个时间单位。

(3)优先权调度算法。

【参考答案】根据算法思想,确定调度先后顺序

(1)FCFS调度顺序如图所示

(2)时间片轮转调度顺序如图所示

(3)优先权调度算法的调度顺序如图所示

    于是,可以得到如表所示的结果。

算法

时间类型

P1

P2

P3

P4

P5

平均

运行时间

10

6

2

4

8

FCFS

周转时间

10

16

18

22

30

19.2

带权周转时间

1

2.67

9

5.5

3.75

4.384

RR

周转时间

30

22

6

16

28

20.4

带权周转时间

3

3.67

3

4

3.5

3.434

优先权

周转时间

24

6

26

30

14

20

带权周转时间

2.4

1

13

7.5

1.75

5.13

4.在一个单道批处理系统中,一组作业的提交时刻和运行时间如下表所示:

作业

提交时间

运行时间

1

8:00

1.0

2

8:50

0.50

3

9:00

0.20

4

9:10

0.10

试计算以下3种作业调度算法的平均周转时间T和平均带权周转时间W:

  1. 先来先服务;(2)短作业优先;(3)响应比高者优先。

【参考答案】(1)采用先来先服务作业调度算法时,作业的运行情况如下表所示。

作业执行次序

提交时间

运行时间

开始时刻

完成时刻

周转时间

带权周转时间

1

8:00

1.0

8:00

9:00

1.0

1.0

2

8:50

0.05

9:00

9:50

1.0

2.0

3

9:00

0.20

9:50

9:70

0.7

3.5

4

9:10

0.10

9:70

9:80

0.7

7.0

平均周转时间为T=(1.0+1.0+0.7+0.7)/4=0.85。

平均带权周转时间为W=(1.0+2.0+3.5+7.0)/4=3.375。

(2)采用短作业优先调度算法时,作业的运行情况如下表所示。

作业执行次序

提交时间

运行时间

开始时刻

完成时刻

周转时间

带权周转时间

1

8:00

1.0

8:00

9:00

1.0

1.0

3

8:50

0.20

9:00

9:20

0.2

1.0

4

9:10

0.10

9:20

9:30

0.2

2.0

2

8:50

0.50

9:30

9:80

1.3

2.6

平均周转时间为T=(1.0+0.2+0.2+1.3)/4=0.675。

平均带权周转时间为W=(1.0+1.0+2.0+2.6)/4=1.65。

(3)采用响应比高者优先作业调度算法时,作业的运行情况如下表所示。

作业执行次序

提交时间

运行时间

开始时刻

完成时刻

周转时间

带权周转时间

1

8:00

1.0

8:00

9:00

1.0

1.0

3

9:00

0.20

9:00

9:20

0.2

1.0

2

8:50

0.50

9:20

9:70

1.2

2.4

4

9:10

0.10

9:70

9:80

0.7

7.0

平均周转时间为T=(1.0+0.2+1.2+0.7)/4=0.775。

平均带权周转时间为W=(1.0+1.0+2.4+7.0)/4=2.85。

5.单道批处理系统中有4个作业,其有关情况如下表所示。在采用响应比高者优先调度算法时分别计算其平均周转时间T和平均带权周转时间W。

作业

提交时间/h

运行时间/h

J1

8.0

2

J2

8.6

0.6

J3

8.8

0.2

J4

9.0

0.5

【参考答案】在8.0只有作业J1到达,系统先将作业J1投入运行。作业J1运行2个小时后完成。这时3个作业都已到达,要计算3个作业的响应比,然后使响应比最高的投入运行。3个作业的响应比为:

        作业J2的响应比=1+(10.0-86)/0.6=3.33

        作业J3的响应比=1+(10.0-8.8)/0.2=7

        作业J4的响应比=1+(10.0-9.0)/0.5=3

从计算的结果来看,作业J3的响应比最高,所以让作业J3先执行。作业J3执行0.2小时后完成。此时作业J2和作业J4的响应比为:

        作业J2的响应比=1+(10.2-8.6)/0.6=3.67

        作业J4的响应比=1+(10.2-9.0)/0.5=3.4

从计算的结果来看,作业J2的响应比最高,所以再让作业J2执行。

可见,4个作业的执行次序为:作业J1,作业J3,作业J2,作业J4。

计算结果如下表:

作业号

到达时间

运行时间

开始时间

完成时间

周转时间

带权周转时间

 1

8.0

2.0

8.0

10.0

2.0

1.0

2

8.6

0.6

10.2

10.8

2.2

3.67

3

8.8

0.2

10.0

10.2

1.4

7

4

9.0

0.5

10.8

11.3

2.3

4.6

平均周转时间为T=(2.0+2.2+1.4+2.3)/4=1.975

平均带权周转时间为W=(1.0+3.67+7+4.6)/4=3.98

http://www.xdnf.cn/news/446059.html

相关文章:

  • WHAT - 前端开发滚动场景API罗列
  • Web UI测试效率低?来试Parasoft Selenic的智能修复与分析!
  • 从 “学会学习” 到高效适应:元学习技术深度解析与应用实践
  • 常见 RPC 协议类别对比
  • 《Effective Python》第2章 字符串和切片操作——深入理解 Python 中 __repr__ 与 __str__
  • 行业趋势与技术创新:驾驭工业元宇宙与绿色智能制造
  • 【氮化镓】AlGaN合金中成分相关的辐射响应
  • 最短路和拓扑排序知识点
  • 各省网上零售额数据(2015-2022年)-社科数据
  • C++之fmt库介绍和使用(1)
  • TCP/IP-——C++编程详解
  • 【windows server脚本每天从网络盘复制到本地】
  • C 语言学习笔记(8)
  • 【3Ds Max】.ive格式文件的导出与加载
  • Oracle数据库中,WITH..AS 子句用法解析
  • 解读红黑树:揭晓高效数据结构的核心引擎
  • 精益数据分析(58/126):移情阶段的深度实践与客户访谈方法论
  • 全面解析 Server-Sent Events(SSE)协议:从大模型流式输出到实时通信场景
  • Spring MVC数据绑定和响应 你了解多少?
  • 如何下载和安装 Ghost Spectre Windows 11 24H2 PRO
  • 102. 二叉树的层序遍历递归法:深度优先搜索的巧妙应用
  • 软件设计师考试《综合知识》计算机编码考点分析
  • [Linux] vim及gcc工具
  • Spring中的循环引用
  • 一发入魂:极简解决 SwiftUI 复杂视图未能正确刷新的问题(上)
  • LabVIEW中样条插值实现及应用
  • Qwen集成clickhouse实现RAG
  • C# 调试技巧——日志记录,NuGet内断点
  • 【HCIA】BFD
  • 化工单元操作实训装置JGSX-205计算机过程控制流体输送操作实训装置