1.什么是前趋图?为什么要引入前趋图?
答:前趋图是指一个有向无循环图,用于描述进程之间执行的先后顺序。
2.试画出下面四条语句的前趋图:
S1: a = x+y;
S2: b = z+1;s3: c = a-b;S4: w = c+1;
答:
3.为什么程序并发执行会产生间断性特征?
答:并发执行是指系统内有多道程序在宏观上"同时"执行,但系统内往往只有一台处理机(CPU),因此只能分时地为多个程序服务。就一道程序而言,往往不是一次能够运行完成,而是以"走走停停"的方式完成其运行,这就是并发系统内程序执行的间断性。
4.程序并发执行时为什么会失去封闭性和可再现性?
答:程序并发执行时会失去封闭性和可再现性,主要是因为并发执行会引入竞态条件和不确定性。当多个线程同时访问共享资源时,由于执行顺序不确定,可能会导致不同的结果。这就会导致程序失去了封闭性和可再现性,因为同样的输入可能会产生不同的输出。此外,并发执行还可能导致死锁和饥饿等问题,进一步影响程序的正确性和可靠性。
5.在操作系统中为什么要引入进程的概念?它会产生什么样的影响?
答:原因:为了使程序在多到程序的环境下能并发执行,并能对并发执行的程序加以控制和描述。
影响:使程序的并发执行得以实行。
6.试从动态性、并发性和独立性上比较进程和程序。
答:
动态性:
进程的实质是进程实体的执行过程,因此,动态性就是进程最基本的特点。它由创建而产生,由调度而执行,由撤销而消亡。
而程序只是一组有序指令的集合,静态的。
并发性:
多个进程实体存在于内存中,且在一段时间内同时运行。
而程序不能并发执行(因为没有PCB)
独立性:
在传统os中,独立性是指进程实体是一个能独立运行、独立获得资源、独立接受调度的基本单位。
凡未建立PCB的程序都不能作为一个独立的单位参与运行。
7.试说明PCB的作用具体表现在哪几个方面,为什么说PCB是进程存在的唯一标志?
答:作用:1.作为独立运行基本单位的标志;2.能实现间断性运行方式;3.提供进程管理所需要的信息;3.提供进程管理所需要的信息;4.提供进程调度所需要的信息;5.实现与其它进程的同步与通信。
原因:PCB中的第一信息就是进程标识符,用于识别一个进程所以是唯一的。一般可分为内部标识符和外部标识符,内部用于系统内的调用使用,外部方便用户辨别。
8.PCB提供了进程管理和进程调度所需要的哪些信息?
答:进程管理:程序和数据的地址,进程同步和通信机制,资源清单,链接指针。
进程调度:进程状态,进程优先级,进程调度所需其他信息,事件。
9.进程控制块的组织方式有哪几种?
答:线性方式、链接方式、索引方式。
10.何谓操作系统内核?内核的主要功能是什么?
答:内核指常驻内存的紧靠硬件的一些与硬件紧密相关的模块(如中断处理程序等),各种常用设备的驱动程序以及运行频率较高的模块(如时钟管理、进程调度和许多模块所公用的一些基本操作)。
主要功能为:一、支撑功能,包括中断处理、时钟管理、原语操作;二、资源管理功能,包括进程管理、存储器管理、设备管理。
11.试说明进程在三个基本状态之间转换的典型原因。
答:就绪状态→执行状态:进程分配到CPU资源
执行状态→就绪状态:时间片用完
执行状态→阻塞状态:I/O请求
阻塞状态→就绪状态:I/O完成
12.为什么要引入挂起状态?该状态有哪些性质?
答:引入挂起状态处于五种不同的需要:终端用户需要,父进程需要,操作系统需要,对换需要和负荷调节需要。
处于挂起状态的进程不能接收处理机调度。
13.在进行进程切换时,所要保存的处理机状态信息有哪些?
答:进程当前暂存信息、下一指令地址信息、进程状态信息、进程和系统挪用参数挪用地址信息。
14.试说明引起进程创建的主要事件。
答:用户登录:系统为用户创建一个进程,并插入就绪队列;
作业调度;
提供服务:系统为用户请求创建一个进程;
应用请求:用户程序自己创建进程。
15.试说明引起进程被撤消的主要事件。
答:正常结束、异常结束 (越界错误、保护错、非法指令、特权指令错、运行超时、等待超时、算术运算错、I/O故障)、外界干预 (操作员或操作系统干预、父进程请求、父进程终止)。
16.在创建一个进程时所要完成的主要工作是什么?
答:1)、申请空白PCB(进程控制块);
2)、为新进程分派资源;
3)、初始化PCB;
4)、将新进程插入就绪队列。
17.在撤消一个进程时所要完成的主要工作是什么?
答:(1)根据被终止的进程标识符,从PCB集中检索出进程,读出该进程状态;
(2)若被终止进程处于执行状态,立即中止该进程的执行,置调度标志为真,指示该进程被终止后重新调度;
(3)若该进程还有子进程,应将所有子孙进程终止。
18.试说明引起进程阻塞或被唤醒的主要事件是什么?
答:1)等待I/O操作完成,例如等待从磁盘读取数据或等待网络连接响应;
2)等待资源的可用性,例如等待锁或等待内存空间;
3)等待信号或事件通知,例如等待定时器到期或等待其他进程发送消息。
19.为什么要在OS中引入线程?
答:为了减少程序在并发执行时所付出的时空开销,使OS具有更好的并发性。
20.试说明线程具有哪些属性?
答:轻型实体、独立调度和分派的基本单位、可并发执行、共享进程资源。
21.试从调度性、并发性、拥有资源及系统开销方面对进程和线程进行比较。
答:(1)调度性。
在传统的操作系统中,拥有资源的基本单位和独立调度、分派的基本单位都是进程,在引入线程的OS中,则把线程作为调度和分派的基本单位,而把进程作为资源拥有的基本单位;
(2)并发性。
在引入线程的OS中,不仅进程之间可以并发执行,而且在一个进程中的多个线程之间,亦可并发执行,因而使OS具有更好的并发性;
(3)拥有资源。
无论是传统的操作系统,还是引入了线程的操作系统,进程始终是拥有资源的一个基本单位,而线程除了拥有一点在运行时必不可少的资源外,本身基本不拥有系统资源,但它可以访问其隶属进程的资源;
(4)开销。
由于创建或撤销进程时,系统都要为之分配和回收资源,如内存空间等,进程切换时所要保存和设置的现场信息也要明显地多于线程,因此,操作系统在创建、撤消和切换进程时所付出的开销将显著地大于线程。
22.线程控制块TCB中包含了哪些内容?
答:线程标识符,一组寄存器,线程运行状态,优先级,线程专有存储区,信号屏蔽,堆栈指针。
23.何谓用户级线程和内核支持线程?
答:用户级线程:仅存在于用户空间中的线程,无须内核支持。 这种线程的创 建、撤销、线程间的同步与通信等功能,都无需利用系统调用实现。 用户级线 程的切换通常发生在一个应用进程的诸多线程之间,同样无需内核支持。
内核支持线程:在内核支持下运行的线程。
24.试说明用户级线程的实现方法。
答:用户级线程是在用户空间中的实现的,运行在 “运行时系统 ”与“内核控制线程 ”的中间系统上。运行时系统是用于管理和控制线程的函数的集合。内核控制线程或轻型进程 LWP可通过系统调用获得内核提供服务,利用 LWP 进程作为中间系统。
25.试说明内核支持线程的实现方法。
答:系统在创建新进程时,分配一个任务数据区PTDA,其中包括若干个线程控制块TCB空间。创建一个线程分配一个TCB,有关信息写入TCB,为之分配必要的资源。
当PTDA中的TCB用完,而进程又有新线程时,只要所创建的线程数目未超过系统允许值,系统可在为之分配新的TCB;在撤销一个线程时,也应回收线程的所有资源和TCB。
26.多线程模型有哪几种类型?多对一模型有何优缺点?
答:类型:多对一模型、一对一模型和多对多模型。
缺点:多对一模型的主要缺点在于,如果一个线程在访问内核时发生阻塞,则整个进程都会被阻塞;此外,在任一时刻,只有一个线程能够访问内核,多个线程不能同时在多个处理机上运行。