【操作系统】第二章问题与解答
[c-downbtn type=“default” url=“https://todo.lthero.cn/source/operating_system/chapter2.md” pwd=""]md下载[/c-downbtn]
1、什么是前趋图?为什么要引入前趋图?
2、画出下面语句的前趋图。
-
S1:a=x+y;
-
S2:b=z+1;
-
S3:c=a-b;
-
S4:w=c+1;
3、为什么程序并发执行会产生间断性特征?
由于它们共享系统资源,以及为完成同一项任务而相互合作,致使在这些并发执行的程序之间形成了相互制约的关系。
如同题目2的S3某个步骤需要用S2的数据,就需要暂停,等到S2运行后,S3继续运行
4、程序并发执行时为什么会失去封闭性和可再生性?
失去封闭性:
程序在并发执行时,由于它们共享系统资源,这些资源的状态也由这些程序改变,导致,某个程序运行时,它的环境会受到其它程序的影响
失去可再生性:
程序并发执行时,由于它们共享系统资源,如果某些程序对某个共享变量进行操作,这些程序运行的顺序不同,会对变量进行不同的修改结果。由于失去了封闭性,即使环境相同但执行结果也会不同
5、操作系统中为什么要引入进程的概念?它会产生什么样的影响?
为了解决程序并发执行时,程序失去了“封闭性”和“可再生性”的问题,而引入“进程”概念。
进程控制块(PCB)
专门用来记录进程活动过程和基本情况的数据结构
进程的构成
_程序段、数据段、PCB_三个一起组成了进程实体
进程的定义:
进程是具有独立功能的程序在一个数据集合上运行的过程,是系统进行资源分配和调度的独立单位
6、从动态性、并发性、独立性比较进程与程序。
动态性:
动态性是_进程最基本的性质_,进程有一定的生命周期,进程是动态的;而程序只是指令的集合,程序是静态的
并发性:
并发性是进程重要的性质,也是OS的重要性质。多个进程同时存在于内存中,并在一段时间内同时运行,某个瞬间只有一个进程在运行,但在某段时间内,cpu切换不同进行运行,所以在一段时间内,表现为多个进程同时运行。
独立性:
进程实体是能独立运行、独立获得资源、独立接受调度的基本单位,没有建立1PCB的程序不能作为一个独立的单位参与运行。
异步性:
进程按各自独立,不可预知的速度向前推进。
为了能使进程并发执行结果是可再现的,OS引入进程同步机制
7、PCB的作用具体表现在哪些方面?为什么说PCB是进程存在的唯一标志?
表现方面
PCB用来保存每个进程的活动信息,包括_进程标识、占用空间、运行状态、资源使用_等信息。
原因
系统总是通过PCB对进程进行控制,也只能通过PCB感知进程的存在。
8、PCB提供了进程管理和进程调度所需要的哪些信息?
进程标识符:
用来唯一地标识一个进程,pid
处理机状态:
当进程被切换时,处理机状态信息必须保存在相对PCB中
如,下一条指令地址;程序状态字PSW
进程调度信息:
调度:决定进程执行顺序
包含进程状态、进程优先级、已经等待cpu时间、已经执行时间等
进程控制信息:
程序和数据的地址、进程同步和通信机制
9、进程控制块的组织方式有哪几种?
3种,线性方式、链接方式、索引方式
线性方式
所有PCB都在一张表中
链接方式
具有相同状态的进程PCB链接成一个队列,就形成了“就绪队列”、“阻塞队列”、“空白队列”等。
索引方式
根据进程状态不同,建立就绪队列表、阻塞队列表等。每个索引表中,记录PCB在PCB表中的地址。
10、什么是操作系统内核?内核的主要功能是什么?
定义:将一些与硬件紧密相关的模块,各种常用的设备驱动程序,将它们常驻内存中。
功能:中断处理、时钟管理、原语操作
11、说明进程在三个基本状态之间转换的典型原因。
就绪状态的程序,被分配处理机后,即可变成运行状态
运行状态的进程,因为缺少资源,进入阻塞状态;或因为时间片用完,进入就绪状态
阻塞状态的进程,获取到需要的资源,重新变成就绪状态,_不能_直接变成运行状态!!!
12、为什么要引入扶起状态?该状态有什么性质?
原因:为了分析各观察进程;系统为了减少负荷,将不重要的进程挂起;
性质:处于挂起状态的进程,不能接收处理机调度
13、在进行进程切换时,要保存的处理机状态信息有哪些?
-
下一条指令的地址
-
程序状态字PSW
-
过程中和系统调用参数及调用地址
14、创建一个进程时所要完成的工作。
申请空白PCB
为新进程申请唯一的数字标识符,并从PCB集合中,拿一个空白PCB
为进程分配运行所需的资源
如内存、文件、I/O设备、处理机等
初始化PCB
初始化标识信息,将_标识符pid和父进程pid_填写入PCB
初始化处理机状态信息:程序计数器指向_入口地址_
初始化处理机控制信息:将进程设置为就绪/静止就绪状态,设置优先级等
15、在撤消一个进程所要完成的主要工作是什么?
结束进程
根据进程的标识符,从PCB集合中找到该进程的PCB,读出该进程状态
-
若该进程正在被执行,需要立即终止进程
-
若该进程还有子子孙孙进程,需要将子孙进程全部停止
-
将被终止的进程资源全部还给父进程不系统
-
将终止进程的PCB从所有队列中除去
16、为什么要在OS中引入线程?
引入线程,为了减少程序在并发执行时所付出的时空开销,使OS有更好的并发性
17、说明线程拥有的属性。
调度的基本单位
传统的OS中,进程是作为独立调度和分派的基本单位
引入线程的OS中,线程作为独立调度和分派,能独立运行的基本单位。
切换线程的*****代价远低*于切换进程的代价。
并发性
不同进程可以并发执行;
同一个进程的多个线程可以并发执行;不同进程的多个线程也可以并发执行。
拥有资源
进程作为拥有资源的基本单位
线程本身不拥有资源,仅有一点必不可少的,让线程能运行的资源;
多个线程可以共享该进程的全部资源
独立性
每个进程拥有一个独立的地址空间和资源,不同进程不能相互访问
同一个进程的不同线程,因为可以共享进程的全部资源,并需要不同线程相互合作,因为独立性很低
18、试说明用户级线程的实现方法。
- 所有线程的创建、撤消等功能,无需内核的支持,线程的TCB也设置在用户空间
19、引起创建进程的事件
-
用户登录:用户登录成功,系统为用户创建一个进程
-
作业调度:调度某个作业到内存时,会为作业创建进程
-
提供服务:运行中的用户程序提出某个请求后,系统专门创建一个进程,用来提供服务
-
应用请求:用户进程已经创建的进程,如某个用户进程创建同进程的线程