【考研复习】《操作系统原理》孟庆昌等编著课后习题+答案——第二章

article/2025/10/14 19:23:00

前言 

此书在最后的附录B中,有给出部分重难点部分的参考答案。会在最后放上图片。如果想要此书习题答案,可点以下链接:为一个压缩包,以图片形式,习题图片按章节排序,答案图片按书页排序。

《操作系统原理》孟庆昌等编著之课后部分习题+答案(图片版)-其它文档类资源-CSDN下载

但是其余习题,需此书读者在书中找到相应章节处得到答案。

所以,博主此系列文章,只是像做题一般,把未给出答案的部分题目(博主认为有需要写的)做出来,以当作复习,加深理解。

尽量保证正确(可能会把不是题目要求的但觉得重点的会考的也写上去),如果不同意见,可留言讨论。
 

其他章节内容链接:

【考研复习】《操作系统原理》孟庆昌等编著课后习题+答案——第一章

【考研复习】《操作系统原理》孟庆昌等编著课后习题+答案——第二章

【考研复习】《操作系统原理》孟庆昌等编著课后习题+答案——第三章

【考研复习】《操作系统原理》孟庆昌等编著课后习题+答案——第四章

【考研复习】《操作系统原理》孟庆昌等编著课后习题+答案——第五章

【考研复习】《操作系统原理》孟庆昌等编著课后习题+答案——第六章 

【考研复习】《操作系统原理》孟庆昌等编著课后习题+答案——第七章

一、第二章 习题

1、解释以下术语:进程、进程控制块、进程映像、线程、进程的互斥和同步、临界区和临界资源、竞争条件、原语、信号量、管程、死锁、活锁、饥饿。(红色字体表示答案已有,见最下方图片)

答:(1)进程:程序在并发环境中的执行过程。(是操作系统进行资源分配的单位

(2)线程:是进程执行运算的最小单位,执行处理机调度的基本单位

(3)进程的互斥和同步:进程具有动态性和并发性。由于各个进程对资源的共享及完成一项共同的任务需要彼此会用,便产生了进程间的相互制约关系。进程间的相互关系主要表现如下三种:

一是互斥:各个进程彼此不知道对方的存在,逻辑上没有关系,由于竞争同一资源 而发生相互制约。

二是同步:各个进程不知道对方的名字,但通过对某些对象(或I/O缓冲区)的共同存取来协同完成一项任务。

三是通信:各个进程可以通过名字彼此之间直接进行通信,交换信息,合作完成一项工作。

(4)临界区:在每个进程中访问临界资源的那段程序。

临界资源:一次仅允许一个进程使用的共享资源。

(5)竞争条件:两个或多个进程同时访问和操纵相同的数据时,最后的执行结果取决于进程运行的精确时序的情况。

(6)原语:机器指令的延伸,往往是为完成某些特定的功能而编制的一段系统程序。

注意:原语操作,又称原子操作,即一个操作中的所有动作要么全做,要么全不做。

(7)信号量:(又称结构型信号量、计数信号量)一般是由两个成员组成的数据结构,其中一个成员是整型变量,表示该信号量的值;另一个是指向PCB的指针。

注意:信号量的值:

大于0:表示当前可用资源的数量。

小于0:其绝对值表示等待使用该资源的进程个数,即在该信号量队列上排队的PCB的个数。

(8)管程:一个管程定义一个数据结构和能为并发进程在其上执行的一组操作,这组操作能使进程同步和改变管程中的数据。

一个管程由以下4部分组成:

一是管程名称

二是局部于管程的共享数据的说明

三是对数据进行操作的一组过程

四是对该共享数据赋初值语句

(9)死锁:若干进程竞争有限资源,且推进顺序不当,从而构成无限期循环等待的局面。

(10)活锁:任务或者执行者没有被阻塞,由于某些条件没有满足,导致一直重复尝试—失败—尝试—失败的过程。

(11)饥饿:(又称为“饿死”)在可预计的时间内,某个或某些进程永远得不到完成工作的机会,它们所需的资源总是被别的进程占有或抢占的状态。

注意:死锁的进程必定处于阻塞状态,但饥饿进程不一定被阻塞,可以在就绪状态。

3、PCB的作用是什么。

答:PCB是进程存在的唯一标志。

(1)操作系统根据PCB对进程实施控制和管理。

(2)进程的动态、并发等特征是通过PCB表现出来。

4、进程的基本状态有哪几种?试描绘进程状态转换图。

答:进程的基本状态有:运行态,就绪态,阻塞态。进程的状态转换图如下: 

5、进程进入临界区的调度原则是什么?

答:(1)如果有若干进程要求进入空闲的临界区,一次仅允许一个进程进入。

(2)任何时候,处于临界区内的进程不可多于一个。

7、PCB表的组织方式主要有哪几种?分别简要说明。

答:有三种:

(1)线性方式:(最简单、最容易实现)OS预先确定整个系统中同时存在的进程的最大数目,比如 n,再静态分配空间,把所有进程的PCB都放在这个表中。

(2)链接方式:(经常用)OS按照进程的不同状态分别放在不同的队列中,从而形成就绪队列、阻塞队列、运行队列等。

(3)索引方式:利用索引表记载相应状态进程的PCB地址。(即系统建立几张索引表,各对应进程的不同状态。)

8、简述信号量的定义和作用。P、V操作原语是如何定义的?

答:信号量:

(1)定义:(又称结构型信号量、计数信号量)一般是由两个成员组成的数据结构,其中一个成员是整型变量,表示该信号量的值;另一个是指向PCB的指针。

(2)作用:表示系统中某类资源的数目。其值为:

大于0:表示当前可用资源的数量。

小于0:其绝对值表示等待使用该资源的进程个数,即在该信号量队列上排队的PCB的个数。

P、V操作原语:

(1)P操作:请求系统分配一个单位资源。

(2)V操作:释放出一个单位资源。

 P(S) 的定义V(S) 的定义
(1)信号量的值减1,即S = S - 1;(1)信号量的值加1,即S = S + 1;
(2)S >= 0,则该进程继续执行;(2)S > 0,则该进程继续执行;
S < 0,则把该进程的状态置为阻塞态,把相应的PCB连入该信号量队列的末尾,并放弃处理机,进入等待。(直至其他进程在S上执行V操作,把它释放出来为止)

S < 0,则释放信号量队列的第一个PCB(即信号量指针项所指向的PCB)所对应的进程(把阻塞态改为就绪态),执行V操作的进程继续运行。

10、计算机系统中产生死锁的根本原因是什么?

答:根本原因是资源有限且操作不当

11、产生死锁的四个必要条件是什么?一般对待死锁的方法有哪三种?

答:

产生死锁的四个必要条件一般对待死锁的方法
(1)互斥条件(1)忽略死锁问题
(2)不可抢占条件(2)死锁的预防
(3)占有且申请条件(3)死锁的避免
(4)环路等待条件(4)死锁的检测和恢复
死锁的预防方法实现办法/说明
(1)破坏互斥条件一般来说不能预防死锁
(2)破坏不可抢占条件(1)预分资源策略(静态分配)
(2)“空手”申请资源策略
(3)破坏占有且申请条件隐式抢占方式。(常用于资源状态易于保留和恢复的环境中)
(4)破坏环路等待条件

(1)资源有序分配策略;

(2)先弃大,再取小。

死锁的避免

(关键:确定资源分配的安全性)

方法实现办法/说明
(1)安全状态存在安全序列,则系统状态安全,不会发生死锁
(2)银行家算法由Dijstra提出
死锁的检测和恢复死锁检测(1)对单体资源类
(2)对多体资源类
从死锁中恢复(1)抢占资源
(2)回退执行
(3)杀掉进程

12、高级进程通信有哪几类?各自是如何实现进程间通信的?

答:高级进程通信大致可归并为三类:共享存储器、管道文件和消息传递。

(1)共享存储器:在内存中分配一片空间作为共享存储区,需要进行通信的各个进程把共享存储区附加到自己的地址空间中,再像进行正常操作一样对共享区中的数据进程进行读或写操作。若用户不需要某个共享存储区,则可取消。

(2)管道文件:也称管道线,是连接两个命令的一个打开文件。一个命令用于向该文件中写入数据,称做写者;另一个命令用于从该文件中读出数据,称做读者。

(3)消息传递:以消息为单位在进程间进行数据交换,有直接通信方式和间接通信方式两种实现方式。

二、书中附录已有答案(见下图:习题+答案)

习题:

答案: 

 


http://chatgpt.dhexx.cn/article/6A0sUIyF.shtml

相关文章

操作系统原理——第六章:页面置换算法

文章目录 1. 功能与目标2. 实验设置与评价方法3. 局部页面置换算法3.1 最优页面置换算法&#xff08;OPT&#xff0c;optimal&#xff09;3.2 先进先出算法&#xff08;FIFO&#xff09;3.3 最近最久未使用算法&#xff08;LRU&#xff0c;Least Recently Used&#xff09;3.4 …

操作系统原理模拟实验(基于C/C++模拟处理机调度、存储管理和文件系统)

目录 引言一、处理机调度模拟1、下载链接2、目的与要求3、截图示例 二、存储管理模拟动态分区分配1、下载链接2、目的与要求3、截图示例 分页存储地址转换1、下载链接2、目的与要求3、截图示例 三、文件系统模拟1、下载链接2、目的与要求3、截图示例 引言 包含多个实验的完整源…

操作系统原理总结

转载&#xff1a;https://blog.csdn.net/yanglingwell/article/details/53745758 操作系统原理总结 made by 杨领well (yanglingwellsina.com) 一、基础知识点 1. 操作系统的资源管理技术 资源管理解决物理资源数量不足和合理分配资源这两个问题。 操作系统虚拟机为用户提供…

操作系统原理:覆盖技术、交换技术、虚拟内存概要

随着时间的推移&#xff0c;程序不断地更新&#xff0c;规模不断增长&#xff0c;运行的时候可能会发现内存会越来越不够用。所以希望一个容量大&#xff0c;更快&#xff0c;更便宜&#xff0c;数据不易丢失的存储器。 首先想到的就是硬盘&#xff0c;所以在硬盘的基础上建立了…

操作系统原理、实现与实践课后习题参考答案(已完结)

习题二–系统接口 通向操作系统内核的大门 1.调用fork()的父子进程执行“同样”的代码&#xff0c;如何理解”同样“&#xff1f; 答&#xff1a; fork()函数为系统调用&#xff0c;用于创建进程。创建的进程与原来进程几乎完全相同. 一个进程调用fork&#xff08;&#xff09…

操作系统原理1-3章答案 黑新宏 胡元义主编

第1章引论 一、单项选择题 1.A 2. C 3. D 4. A 5.A 6. C 7. C 8. D 9. C 10.C 11. D 12.A 13.C 14.D 15.D 16.C 17.D 18.C 19.B 20.C 21.D 22.D 23.C 24.B 25.C 26.B 二、判断题 1.错误 2. 错误 3.错误 4. 错误 5.错误 6.错误 7.正确 8.错误 9.错误 10.错误 11.正确 12.错误 1…

操作系统原理:文件系统、磁盘调度

目录 一、相关概念 二、文件的分配 三、空闲空间列表 四、多磁盘管理-RAID 五、磁盘调度 一、相关概念 文件系统是一种用于持久性存储的系统抽象。硬盘属于持久性存储介质的一种。管理文件系统例如硬盘&#xff0c;需要管理文件块&#xff0c;哪一块属于哪一…

Linux的操作系统原理详解

Linux的操作系统原理详解 ///插播一条&#xff1a;我自己在今年年初录制了一套还比较系统的入门单片机教程&#xff0c;想要的同学找我拿/// 1.操作系统基本概念 操作系统是一个基本程序的集合&#xff0c;在这个集合中&#xff0c;最重要的程序称为内核&#xff08;Kernel&a…

操作系统原理

操作系统原理 第一章第二章第三章第四章第五章第六章总结 第一章 计算机系统组成部分&#xff1a; 硬件 应用程序 操作系统 用户操作系统的作用&#xff1a; 1.操作系统是管理计算机硬件的程序&#xff0c;为应用程序提供基础并充当计算机用户和计算机硬件的中介。 2.操作系统…

操作系统基本原理

操作系统的类型与结构 操作系统是计算机系统中最基本的系统软件&#xff0c;它既管理计算机系统的软、硬件资源&#xff0c;又控制程序的执行。操作系统的基本类型有&#xff1a;批处理操作系统、分时操作系统和实时操作系统。从资源管理的角度看&#xff0c;操作系统主要是对处…

操作系统原理(概述)

1.操作系统的工作&#xff1a; &#xff08;1&#xff09;程序的执行&#xff1a;负责启动每个程序&#xff0c;以及结束程序的工作。 &#xff08;2&#xff09;完成与硬件有关的工作&#xff1a;实现代码中包含存储器的物理地址、对设备接口寄存器和设备接口缓冲区的读写等…

Unity UGUi之Panel

Unity UGUI之Panel制作滑块 新建一个Panel和一个Image&#xff0c;image放在Panel下做子物体。 给Panel添加 Scroll Rect 和 Mask 组件, Mask组件是用来隐藏image超出Panel的区域。 然后将image拖拽到Scroll Rect组件下的Content属性上。 Horizontal是水平滑动&#xff0c;…

winform 设置panel边框

var panel1 new Panel(); var old panel1.Margin; panel1.Margin new Padding(old.Left, -50, old.Right, old.Bottom);

EasyUI中Panel面板的简单使用

场景 效果 属性 名称类型描述默认值idstring面板&#xff08;panel&#xff09;的 id 属性。nulltitlestring显示在面板&#xff08;panel&#xff09;头部的标题文字。nulliconClsstring在面板&#xff08;panel&#xff09;里显示一个 16x16 图标的 CSS class。nullwidthnu…

[C# WinForm设计]Panel布局及TabControl增加关闭按钮和Treeview导航 源码

前段时间因工作需要做一个类似进销存的系统&#xff0c;这里要用到基于C/S架构的WinForm界面&#xff0c;为了给我一样的菜鸟多一个参考&#xff0c;现将过程及关键界面的实现代码贴在后面&#xff0c;供参考&#xff01;老鸟飘过~~ 一、实现效果 演示 namespace TabTest {part…

C#Winform中如何将窗体显示在panel中

在窗体中我们有时候做美观就需要将一个窗体显示在panel或SplitContainer里的panel中如何实现呢&#xff1f; 代码&#xff1a; public void Showform(Form form) //定义方法 { //清除panel里面的其他窗体 this.splitContainer1.Panel2&#xff1a;要显示的panel this.splitCont…

从零开始学习CANoe(四)—— 设计panel

相关文章 从零开始学习CANoe&#xff08;一&#xff09;—— 新建工程从零开始学习CANoe&#xff08;二&#xff09;—— CANdb 创建 dbc文件从零开始学习CANoe&#xff08;三&#xff09;—— 系统变量的创建和使用从零开始学习CANoe&#xff08;四&#xff09;—— 设计pane…

winform无边框在panel上拖动窗口位置,改变窗口大小

将窗体的FormBorderStyles属性设置为None 窗体上放一个新的panel&#xff0c;设置Dock属性为Fill 创建变量 private bool isMouseDown false;//表示鼠标当前是否处于按下状态&#xff0c;初始值为否 MouseDirection direction MouseDirection.None;//表示拖动的方向&#x…

C# Winform Panel 内控件大小不随Panel大小改变设置

&#xff08;1&#xff09;将Anchor属性设置为&#xff1a;None &#xff08;2&#xff09;将AutoSize属性设置为&#xff1a;False 不过还存在一个问题点&#xff0c;就是Button的位置还是会随着Panel大小变化而改变。

Panel控件

今天小编来给大家介绍一下panel控件&#xff1b; 首先来看一下panel控件是什么? 是什么&#xff1a; Panel 控件提供了一种用于组织控件的分组机制。Panel 控件可被递归嵌套在 Form 控件&#xff08;Panel 控件最外面的容器&#xff09;中。面板呈现它本身包含的控件。 面板上…