文档库 最新最全的文档下载
当前位置:文档库 › 进程状态转换图进程管理

进程状态转换图进程管理

进程状态转换图进程管理
进程状态转换图进程管理

进程状态转换图进程管理2011-06-28

进程状态转换图进程管理进程状态转换图进程管理

进程管理

要点

?基础:进程描述及控制

?策略:进程调度

?实现:互斥与同步

?避免:死锁与饥饿

?解决:几个经典问题

?关于:进程通信

进程的概念

?现代操作系统的重要特点:程序的并发执行及系统所拥有的资源被共享和系统的用户随机地使用。

?操作系统的重要任务之一:使用户充分、有效地利用系统资源。

程序顺序执行

?程序:源代码、目标程序和可执行程序

?程序执行:编辑、编译、链接、执行

?程序的结构:顺序结构、分支结构和循环结构。

进程的引入(一)

?前趋图:是一个有向无环图。图中的每个结点用于表示一条语句、一个程序段或进程;结点间的有向边表示在两个结点之间存在的偏序或前趋关系。

进程的引入(二)

?程序顺序执行:是指若干个程序或程序段之间必须按照某种先后次序逐个执行,仅当前一项操作执行完成后,才能执行后继操作。

?程序顺序执行时具有以下特征:

(1)顺序性

(2)封闭性

(3)确定性

(4)可再现性

进程的引入(三)

?多道程序系统中程序执行环境的变化

在许多情况下,需要计算机能够同时处理多个具有独立功能的程序。批处

理系统、分时系统、实时系统以及网络与分布式系统等都是这样的系统。

?执行环境具有三个特点:

?独立性:每道程序都是逻辑上独立的,它们之间不存在逻辑上的制约关系。

?随机性:在多道程序环境下,特别是在多用户环境下,程序和数据的输入与执行开始时间都是随机的。

?资源共享:资源共享将导致对进程执行速度的制约。

进程的引入(四)

?程序并发执行:是指两个或两个以上的程序或程序段可在同一时间间隔内同时执行。

?程序的并发执行卓有成效地提高了系统的吞吐量。

?程序并发执行的新特征:间断性;失去封闭性;不可再现性;资源共享;程序与计算不再一一对应。

进程的引入(五)

?程序的并发执行可进一步分为两种:第一种是多道程序系统的程序执行环境变化所引起的多道程序的并发执行。第二种并发执行是在某道程序的几个程

序段中(例如几个程序),包含着一部分可以同时执行或顺序颠倒执行的代码。

进程的引入(六)

?程序的并发执行可总结为:一组在逻辑上互相独立的程序或程序段在执行过程中,其执行时间在客观上互相重叠,即一个程序段的执行尚未结束,另一

个程序段的执行已经开始的这种执行方式。

进程的引入(七)

?程序的并发执行不同于程序的并行执行。程序的并行执行是指一组程序按独立的、异步的速度执行。并行执行不等于时间上的重叠。

进程的引入(八)

?程序的并发执行所带来的影响:程序的并发执行充分地利用了系统资源,从而提高了系统的处理能力,这是并发执行好的一方面。但是,正如前面所提

到的那样,由于系统资源有限,程序的并发执行必然导致资源共享和资源竞争,从而改变程序的执行速度。

进程并发执行引发的问题

?协调各程序的执行顺序。例:当输入的数据还未全部输入内存时,计算进程必须等待。

?多个执行程序共享系统资源,程序之间可能会相互影响,甚至影响输出结果。

?选择哪些、多少个程序进入内存执行?

?内存中的执行程序谁先执行,谁后执行?

?内存如何有效分配?

进程的引入(九)

?由于程序的顺序性、静态性以及孤立性,用程序段作为描述其执行过程和共享资源的基本单位既增加操作系统设计和实现的复杂性,也无法反映操作系统所应该具有的程序段执行的并发性、用户随机性,以及资源共享等特征。也就是说,用程序作为描述其执行过程以及共享资源的基本单位是不合适的。需要有一个能描述程序的执行过程且能用来共享资源的基本单位。这个基本单位被称为进程(或任务)。

进程的定义(一)

?60年代初期以来进程的各种定义如下:

(1)进程是可以并行执行的计算部分。

(2)进程是一个独立的可以调度的活动。

(3)进程是一抽象实体,当它执行某个任务时,将要分配和释放各种资源。

(4)行为的规则叫程序,程序在处理机上执行时的活动称为进程

(E.W.Dijkstra)。

(5)一个进程是一系列逐一执行的操作,而操作的确切含义则有赖于以何种详尽程度来描述进程(Brinch Hansen),等等。

进程的概念

?定义:可并发执行的程序,在一个数据集合上的运行过程。

?进程是系统进行资源分配的基本单位,又是可独立运行的基本单位。

?申请/拥有资源

?程序:静态概念,是指令和数据的集合,可长期存储。

?进程与程序的对应关系:一个程序可以对应一个进程或多个进程。一个进程可以对应一个程序,或者一段程序。

进程的定义(二)

?进程是具有独立功能的可并发执行的程序在一个数据集合上的运行过程,是系统进行资源分配和调度的独立单位。或者说,"进程"是进程实体的运行过程。

进程的特征

?动态性:进程是程序的一次执行过程,因此,动态性是进程最基本的特性。动态性还表现为:"它由创建而产生,由调度而执行,因得不到资源而暂停执行,以及由撤销而消亡"。

?并发性:这是指多个进程实体同存于内存中,能在一段时间内同时运行。并发性是进程的重要特征。

?独立性:这是进程实体是能独立运行的基本单位,同是也是系统中独立获得资源和独立调度的基本单位。

?异步性:这是指进程按各自独立的、不可预知的速度向前推进。

?结构特征:从结构上,进程实体是由程序段、数据段及进程控制块三部分组成,有人把这三部分统称为"进程映像"

引入进程带来的问题

?增加了空间开销:为进程建立数据结构。

?额外的时间开销:管理和协调、跟踪、填写和更新有关数据结构、切换进程、保护现场。

?更难控制:协调多个进程竞争和共享资源如何预防;解决多个进程因为竞争资源而出现故障。

?处理机的竞争尤为突出。

进程与程序

?进程和程序是两个既有联系又有区别的概念,它们的区别和关系可简述如下:

?进程是一个动态概念,而程序则是一个静态概念。程序是指令的有序集合,没有任何执行的含义。而进程则强调执行过程,它动态地被创建,并被调度执

行后消亡。

?进程具有并行特征,而程序没有。由进程的定义可知,进程具有并行特征的两个方面,即独立性和异步性。也就是说,在不考虑资源共享的情况下,各

进程的执行是独立的,执行速度是异步的。显然,由于程序不反映执行过程,

所以不具有并行特征。

?进程是竞争计算机系统资源的基本单位,从而其并行性受到系统自己的制约。这里,制约就是对进程独立性和异步性的限制。

?不同的进程可以包含同一程序,只要该程序所对应的数据集不同。

程序并发执行的Bernstein条件

?若两个进程P1和进程P2能满足下述条件,它们便能正确地并发执行,否则不能:

R(P1)∩W(P2)∪R(P2)∩W(P1)∪W(P1)∩W(P2)={}

其中:R(P1)={a1,a2.,am}进程P1执行期间所需要参考的所有变量的集合--读集

W(P1)={b1,b2.,bm}进程P1执行期间所要的所有变量的集合--写集

即P1的读集与P2写集的交集、P2的读集与P1的写集的交集、P1的写集与P2的写集的交集,三者同时为空集。则P1与P2可以并发执行。

?例如,有语句如下:

S1:a=x+y;

S2:b=z+1;

S3:c=a-b;

S4:w=c+1;

?它们的读集和写集分别如下:

R(S1)={x,y},W(S1)={a}

R(S2)={z},W(S2)={b}

R(S3)={a,b},W(S3)={c}

R(S4)={c},W(S4)={w}

?可见S1和S2两条语句满足Bernstein条件,它们可以并发执行。而S1和S3则不满足条件,因为R(S3)∩W(S1)={a},所以不能并发执行。S2和S3也不能并发执行,因为W(S2)∩R(S3)={b};同理,S3和S4也不能并发执行,因为R(S4)∩W(S3)={c}。这4条语句的前趋图

?这4条语句的前趋图如下所示:

例题

?试画出下面5条语句的前驱图:

S1:a=5-x;S2:b=a*x S3:c=4*x S4:d=b+c;S5:e=d+3

题解

?前趋图如下所示:

例题

?试利用Bernstein条件证明上题中的S2和S3语句是可以并发执行的,而S3与S4语句是不可以并发执行的。

题解

?由前题知:

?R(S2)={a,x},W(S2)={b},R(S3)={x},

W(S3)={c}

?由于R(S2)∩W(S3)∪R(S3)∩W(S2)∪W(S2)∩W(S3)={}

?因此,S2和S3语句是可以并发执行的。

题解

?由于R(S3)∩W(S4)∪R(S4)∩W(S3)∪W(S3)∩W(S4)={c}

?因此S3和S4语句是不可以并发执行的。

例题

?(中科院计算机网络信息中心)程序段S1,S2,S3,S4之间存在下面的前驱关系:

?S1 S2,S2 S3,S1 S4,可以并发执行的程序段为()

题解

?从图中可以看出,S2和S4可以并行处理,S3与S4可以并行处理。因此答案应为S2和S4、S3和S4。

作业与进程的关系(一)

?作业是用户需要计算机完成某项任务时要求计算机所作工作的集合。一个作业的完成要经过作业提交、作业收容、作业执行和作业完成四个阶段。

?进程是已提交完毕程序的执行过程的描述,是资源分配的基本单位。

作业与进程的关系(二)

?作业与进程的区别与联系:

?作业是用户向计算机提交任务的任务实体。而进程则是完成用户任务的执行实体,是向系统申请分配资源的基本单位。

?一个作业可由多个进程组成。且必须至少由一个进程组成,但反过来不成立。

?作业的概念主要用于在批处理系统中。而进程的概念则用在几乎所有的多道系统中。

进程的结构

?组成(进程映像):程序、数据集合、进程控制块PCB(Process Control Block)

?PCB是进程存在的唯一标志。创建进程时,创建PCB;进程结束时,系统

将撤消PCB。

进程控制块PCB(一)

?进程控制块是进程实体的一部分,是操作系统中最重要的数据结构。PCB

中记录了操作系统所需的、用于描述进程情况及控制进程运行所需的全部信息。操作系统是根据进程控制块PCB来对并发执行的进程进行控制和管理的。所以说,PCB是进程存在的唯一标志。因为PCB经常被系统访问,尤其是被运行频

率很高的进程调度及分派程序访问,故PCB常驻内存。

进程控制块PCB(二)

?在进程控制块中,用于描述和控制进程运行的信息主要包括下述四个方面:

(1)进程标识符信息。进程标识符用于唯一地标识一个进程。一个进程通常有外部标识符、内部标识符两种标识符。

(2)处理机状态信息。用于进程切换时保存和恢复CPU现场,主要是由处理机各种寄存器中的内容所组成.

(3)进程调度信息。存入与进程调度和进程对换有关的信息,主要包括进程状态、优先级、等待CPU的时间总和、进程已执行的时间总和和进程阻塞原因

等信息。

(4)进程控制信息。进程控制信息包括程序和数据的地址、进程同步和通信机制以及资源清单和链接指针等。

进程控制块PCB(三)

?在一个系统中,通常可拥有数十个、数百个乃至数千个PCB。为能对它们

进行有效的管理,应该用适当的方式将它们组织起来。目前常用的组织方式有

链接方式和索引方式两种。

PCB的组织方式之一

--单一队列

?所有进程的PCB通过链表组织成为一个单一队列。适用于进程数目不多的系统。如:Windows操作系统。

PCB的组织方式之二

--表格结构

?PCB按进程状态不同,组织成不同的表格:就绪进程表、执行进程表(多

机系统中)及阻塞进程表。

?系统分别记载各PCB表的起始地址。

PCB的组织方式之三

--多级队列

?PCB按进程状态不同用链接指针组成不同队列:就绪进程队列、阻塞进程队列(可按阻塞原因不同,分别组织)

?系统分别记载各PCB链表的起始地址。

进程执行轨迹

?进程的轨迹:进程执行的指令序列,用以观察处理机的执行过程。

?例:假设内存中有3个进程A、B、C,他们的程序代码已全部装入内存,若A、B两进程需要执行12条指令,C进程需要执行4条指令,且C进程执行到第4条指令处必须等待I/O.

?假设分派程序分派处理机需要依次执行指令序列:s+0,s+1,….,s+5

?进程A的执行轨迹为a+0,a+1,a+2,a+3,….

?进程B的执行轨迹为b+0,b+1,b+2,b+3,….

?进程C的执行轨迹为c+0,c+1,c+2,c+3,当它执行到C+3指令时遇到了I/O 指令,需要释放处理机,进行输入/输出操作。

两状态进程模型

?两状态:执行、未执行

?进程获得处理机,进入执行状态;当时间片结束或其它某种原因,进程释放处理机,暂停执行,处于未执行状态。

?问题:把等待处理机和等待其他事件都作为未执行状态合理吗?

?等待状态的进程不止一个,他以什么形式存在?

两状态进程模型:队列形式

?并非所有进程只要"未执行"就处于就绪(ready),有的需要阻塞(blocked)等待I/O完成。

?"未执行"又可分为就绪和阻塞。

进程的五状态

?执行状态(Running)

?就绪状态(Ready)

?阻塞状态(Blocked)

?新状态(New)

?终止状态(Terminated)

1.新状态:进程已经创建,但未被OS接纳为可执行进程。

2.就绪状态:准备执行

3.执行状态:占用处理机(单处理机环境中,某一时刻仅一个进程占用处理机)

4.阻塞状态:等待某事件发生才能执行,如等待I/O完成等。

5.终止状态:因停止或取消,被OS从执行状态释放。

进程的三种基本状态

?就绪状态:当进程已分配到除CPU以外所有必要的资源后,只要能再获得处理机便可立即执行,这时的状态称为就绪状态。

?执行状态:进程已获得处理机,程序正在执行。

?阻塞状态:进程因发生某种等待事件(如I/O请求、申请缓冲空间等)而暂停执行时的状态,即进程的执行受到阻塞,故称这种状态为阻塞状态,有时也

称为"等待"状态或"睡眠"状态。

进程状态的转换

?进程在运行期间不断地从一个状态转换到另一个状态,进程的各种调度状态依据一定的条件而发生变化,它可以多次处于就绪状态和执行状态,也可多

次处于阻塞状态,但可能排在不同的阻塞队列中。

进程状态

?空初始状态:新创建的进程首先处于初始状态。

?初始状态就绪状态。当系统允许增加就绪进程时,操作系统接纳新建状态进程,将它变为就绪状态,插入就绪队列中。

?就绪状态执行状态:当处理机空闲时,将从就绪队列中选择一个进程执行,该选择过程称为进程调度,或将处理机分派给一个进程,该进程状态从就绪转

变为执行。

?执行状态终止状态。执行状态的进程执行完毕,或出现诸如访问地址越界、非法指令等错误,而被异常结束,则进程从执行状态转换为终止状态。

进程状态

?执行状态就绪状态。分时系统中,时间片用完,或优先级高的进程到来。将中断较低优先级进程的执行。进程从执行状态转变为就绪状态。等待下一次

调度。

?执行状态等待状态。执行进程需要等待某事件发生。通常,会因为进程需要的系统调用不能立即完成。如读文件、共享虚拟内存、等待I/O操作、等待

另一进程与之通信等事件而阻塞。

?等待状态就绪状态。当阻塞进程等待的事件发生,就转换为就绪状态。进入就绪队列排队,等待被调度执行。

?某些进程允许其父进程在任何情况下终止其子进程。

?如果一个父进程被终止,其子孙进程都必须终止。

例题

?进程由就绪态转换为运行态是由()引起的。

A.中断事件

B.进程状态转换

C.进程调度

D.为程序创建进程

题解

?当CPU空闲时,调度程序就会选择一个进程投入运行,即把进程由就绪态转换为运行态。

?选:C

例题

?系统中有n个用户进程,在具有2个CPU的计算机系统中,可能处于执行状态的进程最多有()个,可能处于就绪状态的进程最多有()个,可能处于等待状态的进程最多有()个,某一时刻,处于执行状态的进程为0个,且当前处理器空闲,处于就绪状态的进程有()个。

题解

?运行态:在该时刻进程实际占有处理器。

?就绪态:在该时刻,进程已经满足所有运行条件了,只是处理器被别的进程占有。

?阻塞态:此时进程因等待输入而阻塞,当输入可用时进程转换到就绪态。

答案

?2、n-2、n、0

解决内存紧张问题

?多道程序系统,内存资源相当紧张

?交换技术

?虚拟存储技术

交换技术(Swapping)

?将内存中暂时不能运行的进程,或暂时不用的数据和程序,换出到外存,以腾出足够的内存空间,把已具备运行条件的进程,或进程所需要的数据和程序,换入内存。

进程的挂起状态

?进程被交换到外存,状态变为挂起状态。

?进程挂起的原因:

(1)进程全部阻塞,处理机空闲。

(2)系统负荷过重,内存空间紧张。

(3)操作系统的需要。操作系统可能需要挂起后台进程或一些服务进程,或者某些可能导致系统故障的进程。

(4)终端用户的请求。

(5)父进程的需求。

被挂起进程的特征

?不能立即执行

?可能是等待某事件发生,若是,则阻塞条件独立于挂起条件,即使阻塞事件发生,该进程也不能执行。

?使之挂起的进程为:自身、其父进程、OS。

?只有挂起它的进程才能使之由挂起状态转换为其他状态。

挂起与阻塞

问题:

?是否只能挂起阻塞进程?

?如何激活一个挂起进程?

挂起与阻塞

区分两个概念

?进程是否等待事件,阻塞与否

?进程是否被换出内存,挂起与否

4种状态组合

?就绪:进程在内存,准备执行

?阻塞:进程在内存,等待事件

?就绪/挂起:进程在外存,只要调入内存即可。

?阻塞/挂起:进程在外存,等待事件。

处理机可调度执行的进程有两种:

?新创建的进程

?或换入一个以前挂起的进程

通常为避免增加系统负载,系统会换入一个以前挂起的进程执行。

具有挂起状态的进程状态转换

?阻塞阻塞/挂起:OS通常将阻塞进程换出,以腾出内存空间。

?阻塞/挂起就绪/挂起:当阻塞/挂起进程等待的事件发生时,可以将其转换为就绪/挂起。

?就绪就绪/挂起:一般,OS挂起阻塞进程,但有时也会挂起就绪进程,释放足够的内存空间。

?新就绪/挂起(新就绪):新进程创建后,可以插入到就绪队列或就绪挂起队列。若无足够的内存分配给新进程,则需要新就绪/挂起。

具有挂起状态的进程状态转换

?阻塞/挂起阻塞:当阻塞/挂起队列中有一个进程的阻塞事件可能会很快发生,则可将一个阻塞/挂起进程换入内存,变为阻塞。

?执行就绪/挂起:当执行进程的时间片用完时,会转换为就绪。或,一个高优先级的阻塞/挂起进程正好变为非阻塞状态,OS可以将执行进程转换为就绪/挂起状态。

?所有状态终止:通常,执行终止,但某些OS中,父进程可以终止其子进程,使任何状态的进程都可转换为退出状态。

进程控制

两种执行模式

?系统模式(又称为系统态)、控制模式或内核模式:

?具有较高的特权

?运行系统特定的指令,包括读/写控制寄存器的指令、基本I/O指令以及与存储器管理有关的指令,及一些特定的内存区。

?内核模式下的处理机及其指令、寄存器和内存都受到完全控制和保护。

?用户模式(或用户态)

?具有较低的特权

?用户程序一般运行在用户模式。

模式切换

?用户模式系统模式:用户程序执行到一条系统调用,进入操作系统内核执行。

?系统模式用户模式:执行完系统调用的功能,返回到用户程序。

?特殊情况:程序执行到结束语句时,切换到系统模式,不再返回到用户程序。

操作系统内核

?操作系统的核心,是基于硬件的第一层软件扩充,提供操作系统最基本的功能,是操作系统工作的基础。

?现代操作系统设计中,为减少系统本身的开销,往往将一些与硬件紧密相关的(如中断处理程序、设备驱动程序等)、基本的、公共的、运行频率较高的

模块(如时钟管理、进程调度等)以及关键性数据结构独立开来,使之常驻内存,并对它们进行特殊保护。通常把这一部分称为操作系统的内核。

操作系统内核

?用户通过系统调用访问操作系统的功能,这些功能最终都通过操作系统内核实现。

?不同的操作系统对内核的定义和功能范围的设定是不同的。

?一般地,操作系统内核的功能可以概括地划分为资源管理功能和支撑功能。

资源管理:进程管理、存储管理和I/O设备管理。

支撑功能:中断处理、统计、监测、时钟管理、原语操作等。

资源管理功能

?进程管理:进程创建和终止、调度、状态转换、同步和通信、管理PCB ?存储管理:为进程分配地址空间、对换、段/页管理

?I/O设备管理:缓存管理,为进程分配I/O通道和设备。

支撑功能

?中断处理

?时钟管理

?原语(Primitive):原子操作。

?监测

进程控制原语

?进程切换

?创建与终止

?阻塞与唤醒

?挂起与激活

进程创建:原因

?提交新的批处理作业

?交互式用户注册

?操作系统提供服务

?父进程创建子进程

进程创建:步骤

?为进程分配一个唯一标识号ID,主进程表中增加一个新的表项。

?为进程分配空间:用户地址空间、用户栈空间、PCB空间。若共享已有空间,则应建立相应的链接。

?初始化PCB:进程标识、处理机状态信息、进程状态。

?建立链接:若调度队列是链表,则将新进程插入到就绪或就绪/挂起链表。

?建立或扩展其他数据结构。

进程终止:原因

?批处理作业执行到"结束"语句

?交互式用户"注销"

?停止进程(应用程序)的执行

?遇到错误或故障

进程终止:具体原因(1)

?正常结束

?超时终止,执行时间超过预计时间

?内存不足,无法为进程分配所需的内存空间

?越界访问

?企图使用未允许用的数据,或操作方式错

2019年进程管理习题及答案

进程管理习题答案 一.选择题 1.在进程管理中,当时进程从阻塞状态变为就绪状态. A. 进程被进程调度程序选中 B.等待某一事件 C.等待的事件发生 D.时间片用完 答:C 2.分配到必要的资源并获得处理机时的进程状态是。 A.就绪状态 B.执行状态 C.阻塞状态 D.撤消状态 答:B 3.P、V操作是。 A.两条低级进程通信原语 B.两组不同的机器指令 C.两条系统调用命令 D.两条高级进程通信原语 答:A 4.对进程的管理和控制使用。 A.指令 B.原语 C.信号量 D.信箱通信 答:B 5.进程的并发执行是指若干个进程。 A.同时执行 B.在执行的时间上是重叠的 C.在执行的时间上是不可重叠的 D.共享系统资源 答:B 6.若P、V操作的信号量S初值为2,当前值为-1,则表示有等待进程。A.0个 B.1个 C .2个 D.3个 答:B 7.进程的三个基本状态在一定条件下可以相互转化,进程由就绪状态变为运行状态的条件是①;由运行状态变为阻塞状态的条件是②。 A.时间片用完 B.等待某事件发生 C.等待的某事件己发生 D.被进程调度程序选中 答,①D ②B 8.下列的进程状态变化中,变化是不可能发生的。 A.运行一就绪 B.运行一等待 C.等待一运行 D.等待一就绪 答:C 9.一个运行的进程用完了分配给它的时间片后,它的状态变为。 A.就绪 B.等待 C.运行 D.由用户自己确定

答:A 10.用P、V操作管理临界区时,信号量的初值应定义为。 A.一1 B.0 C.1 D.任意值 答:C 11.用V操作唤醒一个等待进程时,被唤醒进程的状态变为. A.等待 B.就绪 C.运行 D.完成 答:B 12.进程间的同步是指进程间在逻辑上的相互关系。 A.联接 B.制约 C. 继续 D.调用 答:B 13.是一种只能进行P操作和V操作的特殊变量。 A.调度 B.进程 C.同步 D.信号量 答:D 14.下面对进程的描述中,错误的是。 A.进程是动态的概念 B.进程执行需要处理机 C.进程是有生命期的 D.进程是指令的集合 答:D 15.下面的叙述中正确的是。 A.操作系统的一个重要概念是进程,因此不同进程所执行的代码也一定不同。B.为了避免发生进程死锁,各进程只能逐个申请资源。 C.操作系统用PCB管理进程,用户进程可以从此PCB中读出与本身运行状况有关的信息 D.进程同步是指某些进程之间在逻辑上的相互制约关系 答:D 16.进程控制就是对系统中的进程实施有效的管理,通过使用、进程撤销、进程阻塞、进程唤醒等进程控制原语实现。 A.进程运行 B.进程管理 C.进程创建 D.进程同步 答:C 17.操作系统通过对进程进行管理。 A.JCB B.PCB C.DCT D.CHCT 答:B 18.用P、V操作可以解决互斥问题。 A.一切 B.某些 C.正确 D.错误 答:A 19.通常,用户进程被建立后,。 A.便一直存在于系统中,直到被操作人员撤消

进程管理实验报告

实验2过程管理实验报告学生号姓名班级电气工程系过程、过程控制块等基本原理过程的含义:过程是程序运行过程中对数据集的处理,以及由独立单元对系统资源的分配和调度。在不同的数据集上运行程序,甚至在同一数据集上运行多个程序,是一个不同的过程。(2)程序状态:一般来说,一个程序必须有三种基本状态:就绪、执行和阻塞。然而,在许多系统中,过程的状态变化可以更好地描述,并且增加了两种状态:新状态和终端状态。1)就绪状态,当一个进程被分配了除处理器(CPU)以外的所有必要资源时,只要获得了处理器,进程就可以立即执行。此时,进程状态称为就绪状态。在系统中,多个进程可以同时处于就绪状态。通常,这些就绪进程被安排在一个或多个队列中,这些队列称为就绪队列。2)一旦处于就绪状态的进程得到处理器,它就可以运行了。进程的状态称为执行状态。在单处理器系统中,只有一个进程在执行。在多处理器系统中,可能有多个进程在执行中。3)阻塞状态由于某些事件(如请求输入和输出、额外空间等),执行进程被挂起。这称为阻塞状态,也称为等待状态。通常,处于阻塞状态的进程被调度为-?这个队列称为阻塞队列。4)新状态当一个新进程刚刚建立并且还没有放入就绪队列中时,它被称为新状态。5)终止状态是

什么时候-?进程已正常或异常终止,操作系统已将其从系统队列中删除,但尚未取消。这就是所谓的终结状态。(3)过程控制块是过程实体的重要组成部分,是操作系统中最重要的记录数据。控制块PCB记录操作系统描述过程和控制过程操作所需的所有信息。通过PCB,一个不能独立运行的程序可以成为一个可以独立运行的基本单元,并且可以同时执行一个进程。换句话说,在进程的整个生命周期中,操作系统通过进程PCB管理和控制并发进程。过程控制块是系统用于过程控制的数据结构。系统根据进程的PCB来检测进程是否存在。因此,进程控制块是进程存在的唯一标志。当系统创建一个进程时,它需要为它创建一个PCB;当进程结束时,系统回收其PCB,进程结束。过程控制块的内容过程控制块主要包括以下四个方面的信息。过程标识信息过程标识用于对过程进行标识,通常有外部标识和内部标识。外部标识符由流程的创建者命名。通常是一串字母和数字。当用户访问进程时使用。外部标识符很容易记住。内部标识符是为了方便系统而设置的。操作系统为每个进程分配一个唯一的整数作为内部标识符。通常是进程的序列号。描述性信息(process scheduling message)描述性信息是与流程调度相关的一些有关流程状态的信息,包括以下几个方面。流程状态:表

不确定有限状态自动机的确定化

编译原理实验报告 实验名称不确定有限状态自动机的确定化 实验时间 院系计算机科学与技术学院 班级 学号 姓名

1.试验目的 输入:非确定有限(穷)状态自动机。 输出:确定化的有限(穷)状态自动机 2.实验原理 一个确定的有限自动机(DFA)M可以定义为一个五元组,M=(K,∑,F,S,Z),其中: (1)K是一个有穷非空集,集合中的每个元素称为一个状态; (2)∑是一个有穷字母表,∑中的每个元素称为一个输入符号; (3)F是一个从K×∑→K的单值转换函数,即F(R,a)=Q,(R,Q∈K)表示当前状态为R,如果输入字符a,则转到状态Q,状态Q称为状态R的后继状态; (4)S∈K,是惟一的初态; (5)Z?K,是一个终态集。 由定义可见,确定有限自动机只有惟一的一个初态,但可以有多个终态,每个状态对字母表中的任一输入符号,最多只有一个后继状态。 对于DFA M,若存在一条从某个初态结点到某一个终态结点的通路,则称这条通路上的所有弧的标记符连接形成的字符串可为DFA M所接受。若M的初态结点同时又是终态结点,则称ε可为M所接受(或识别),DFA M所能接受的全部字符串(字)组成的集合记作L(M)。 一个不确定有限自动机(NFA)M可以定义为一个五元组,M=(K,∑,F,S,Z),其中: (1)k是一个有穷非空集,集合中的每个元素称为一个状态; (2)∑是一个有穷字母表,∑中的每个元素称为一个输入符号; (3)F是一个从K×∑→K的子集的转换函数; (4)S?K,是一个非空的初态集; (5)Z?K,是一个终态集。 由定义可见,不确定有限自动机NFA与确定有限自动机DFA的主要区别是: (1)NFA的初始状态S为一个状态集,即允许有多个初始状态; (2)NFA中允许状态在某输出边上有相同的符号,即对同一个输入符号可以有多个后继状态。即DFA中的F是单值函数,而NFA中的F是多值函数。 因此,可以将确定有限自动机DFA看作是不确定有限自动机NFA的特例。和DFA一样,NFA也可以用矩阵和状态转换图来表示。 对于NFA M,若存在一条从某个初态结点到某一个终态结点的通路,则称这条通路上的所有弧的标记(ε除外)连接形成的字符串可为M所接受。NFA M所能接受的全部字符串(字)组成的集合记作L(M)。 由于DFA是NFA的特例,所以能被DFA所接受的符号串必能被NFA所接受。 设M 1和M 2 是同一个字母集∑上的有限自动机,若L(M 1 )=L(M 2 ),则称有 限自动机M 1和M 2 等价。

操作系统精髓与设计原理-第3章 进程描述和控制

第3章进程描述和控制 复习题: 3.1什么是指令跟踪? 答:指令跟踪是指为该进程而执行的指令序列。 3.2通常那些事件会导致创建一个进程? 答:新的批处理作业;交互登录;操作系统因为提供一项服务而创建;由现有的进程派生。(详情请参考表3.1) 3.3对于图3.6中的进程模型,请简单定义每个状态。 答:运行态:该进程正在执行。就绪态:进程做好了准备,只要有机会就开始执行。 阻塞态:进程在某些事件发生前不能执行,如I/O操作完成。新建态:刚刚创建的进程,操作系统还没有把它加入到可执行进程组中。退出态:操作系统从可执行进程组中释放出的进程,或者是因为它自身停止了,或者是因为某种原因被取消。 3.4抢占一个进程是什么意思? 答:处理器为了执行另外的进程而终止当前正在执行的进程,这就叫进程抢占。 3.5什么是交换,其目的是什么? 答:交换是指把主存中某个进程的一部分或者全部内容转移到磁盘。当主存中没有处于就绪态的进程时,操作系统就把一个阻塞的进程换出到磁盘中的挂起队列,从而使另一个进程可以进入主存执行。 3.6为什么图3.9(b)中有两个阻塞态? 答:有两个独立的概念:进程是否在等待一个事件(阻塞与否)以及进程是否已经被换出主存(挂起与否)。为适应这种2*2的组合,需要两个阻塞态和两个挂起态。3.7列出挂起态进程的4个特点。 答:1.进程不能立即执行。2.进程可能是或不是正在等待一个事件。如果是,阻塞条件不依赖于挂起条件,阻塞事件的发生不会使进程立即被执行。3.为了阻止进程执行,可以通过代理把这个进程置于挂起态,代理可以是进程自己,也可以是父进程或操作系统。4.除非代理显式地命令系统进行状态转换,否则进程无法从这个状态中转移。 3.8对于哪类实体,操作系统为了管理它而维护其信息表? 答:内存、I/O、文件和进程。 3.9列出进程控制块中的三类信息。 答:进程标识,处理器状态信息,进程控制信息。 3.10为什么需要两种模式(用户模式和内核模式)? 答:用户模式下可以执行的指令和访问的内存区域都受到限制。这是为了防止操作系统受到破坏或者修改。而在内核模式下则没有这些限制,从而使它能够完成其功能。 3.11操作系统创建一个新进程所执行的步骤是什么? 答:1.给新进程分配一个唯一的进程标识号。2.给进程分配空间。3.初始化进程控制块。 4.设置正确的连接。 5.创建或扩充其他的数据结构。 3.12中断和陷阱有什么区别? 答:中断与当前正在运行的进程无关的某些类型的外部事件相关,如完成一次I/O操作。陷阱与当前正在运行的进程所产生的错误或异常条件相关,如非法的文件访问。 3.13举出中断的三个例子。 答:时钟终端,I/O终端,内存失效。 3.14模式切换和进程切换有什么区别? 答:发生模式切换可以不改变当前正处于运行态的进程的状态。发生进程切换时,一个正在执行的进程被中断,操作系统指定另一个进程为运行态。进程切换需要保存更

第二章进程管理答案

第二章进程管理 一、单项选择题 1、顺序程序和并发程序的执行相比,()。 A.基本相同 B. 有点不同 C.并发程序执行总体上执行时间快 D.顺序程序执行总体上执行时间快 2、在单一处理机上,将执行时间有重叠的几个程序称为()。 A.顺序程序 B. 多道程序 C.并发程序 D. 并行程序 3、进程和程序的本质区别是()。 A.存储在内存和外存 B.顺序和非顺序执行机器指令 C.分时使用和独占使用计算机资源 D.动态和静态特征 4、在下列特性中,不是进程的特性的是()。 A. 异步性 B. 并发性 C. 静态性 D. 动态性 5 A 6 A. 7 A. 8 A. 9 A. 10 A. 11 A. 12。 A. 13 A. 14 A. 15 A. 16、在操作系统中,对信号量S的P原语操作定义中,使进程进入相应阻塞队列等待的条件是()。 A. S>0 B. S=0 C. S<0 D. S≠0 17、信号量S的初值为8,在S上执行了10次P操作,6次V操作后,S的值为()。 A.10 B.8 C.6 D.4 18、在进程通信中,使用信箱方式交换信息的是()。 A.低级通信B.高级通信C.共享存储器通信D.管道通信 19.( )必定会引起进程切换。A.一个进程被创建后进入就绪态B.一个进程从运行态变成等待态c.一个进程从运行态变成就绪态 D.一个进程从等待态变成就绪态 20、操作系统使用( )机制使计算机系统能实现进程并发执行,保证系统正常工作。 A.中断B.查询c.同步D互斥 21.对于一个单处理器系统来说,允许若干进程同时执行,轮流占用处理器.称它们为()的。 A.顺序执行 B.同时执行c.并行执行D.并发执行

实验二Linux进程调度及用户管理系统

实验二 1 实验名称:Linux进程调度及用户管理 2 实验目标 2.1 掌握手工启动前后台作业的方法。 2.2 掌握进程与作业管理的相关Shell命令。 2.3 掌握at调度和cron调度的设置方法。 2.4了解系统性能监视的基本方法。 2.5 掌握用户管理基本方法和命令。 2.6 具有批量新建用户能力。 2.7掌握非实时的通信方式。 3 实验环境和准备 3.1Windows XP下基于“VMware Workstation”虚拟机环境的Red Hat Enterprise Linux Server 5系统。 3.2将主机改为具有个人学号后3位特征的名称。 4 实验要求、步骤及结果 4.1复习vi的基本操作;实现用户间非实时通信;进行作业和进程的基本管理。 【操作要求1】root用户在个人用户主目录下,利用vi新建student.txt文件;存盘退出。内容参见下表左列。 【操作步骤1-新建】 【操作步骤2-存盘】

【操作要求2】利用vi新建password.txt文件;内容参见上表右列。 【操作步骤】 【操作要求3】将vi password.txt作业挂起;显示当前所有进程的详细信息。

【操作步骤1-挂起】 【操作步骤2-显示】 【操作要求4】将挂起的vi作业切换到前台;继续向password.txt文件输入以下内容,输入完成后存盘退出。password.txt文件的后段内容: S06:12345678 S07:12345678 S08:12345678 S09:12345678 S10:12345678 S11:12345678 【操作步骤1-作业切换】

进程管理实验报告

进程的控制 1 .实验目的 通过进程的创建、撤消和运行加深对进程概念和进程并发执行的理解,明确进程与程序之间的区别。 【答:进程概念和程序概念最大的不同之处在于: (1)进程是动态的,而程序是静态的。 (2)进程有一定的生命期,而程序是指令的集合,本身无“运动”的含义。没有建立进程的程序不能作为1个独立单位得到操作系统的认可。 (3)1个程序可以对应多个进程,但1个进程只能对应1个程序。进程和程序的关系犹如演出和剧本的关系。 (4)进程和程序的组成不同。从静态角度看,进程由程序、数据和进程控制块(PCB)三部分组成。而程序是一组有序的指令集合。】2 .实验内容 (1) 了解系统调用fork()、execvp()和wait()的功能和实现过程。 (2) 编写一段程序,使用系统调用fork()来创建两个子进程,并由父进程重复显示字符串“parent:”和自己的标识数,而子进程则重复显示字符串“child:”和自己的标识数。 (3) 编写一段程序,使用系统调用fork()来创建一个子进程。子进程通过系统调用execvp()更换自己的执行代码,新的代码显示“new

program.”。而父进程则调用wait()等待子进程结束,并在子进程结束后显示子进程的标识符,然后正常结束。 3 .实验步骤 (1)gedit创建进程1.c (2)使用gcc 1.c -o 1编译并./1运行程序1.c #include #include #include #include void mian(){ int id; if(fork()==0) {printf(“child id is %d\n”,getpid()); } else if(fork()==0) {printf(“child2 id %d\n”,getpid()); } else {id=wait(); printf(“parent id is %d\n”,getpid()); }

实验2 进程状态转换及其PCB的变化

实验2进程状态转换及其PCB的变化 1.目的 自行编制模拟程序,通过形象化的状态显示,使学生理解进程的概念、进程之间的状态转换及其所带来的PCB内容、组织的变化,理解进程与其PCB间的一一对应关系。 2. 内容及要求 1)设计并实现一个模拟进程状态转换及其相应PCB内容、组织结构变化的程序。 2)独立编写、调试程序。进程的数目、进程的状态模型(三状态、五状态、七状态或其它)以及PCB的组织形式可自行选择。 3)合理设计与进程PCB相对应的数据结构。PCB的内容要涵盖进程的基本信息、控制信息、资源需求及现场信息。 4)设计出可视性较好的界面,应能反映出进程状态的变化引起的对应PCB 内容、组织结构的变化。 5)代码书写要规范,要适当地加入注释。 6)鼓励在实验中加入新的观点或想法,并加以实现。 7)认真进行预习,完成预习报告。 8)实验完成后,要认真总结,完成实验报告。 3.程序流程图 进程的三种基本状态及其转换如下图所示。

开始 输入要执行的指令 1?N 2?N 3?N 4? N 5?N 0?Y Y 结束 N 提示输入错误 就绪队列已 满? N 创建进程 Y 提示就绪队列 已满Y 有进程处于运行状态? Y 该进程执行一个时间片 后放回就绪队列 N 将就绪队列中优先级最高的进程放入运行队列 有进程处于运行状态? Y 该进程所需执行时间减1,并回到就绪队列 Cputime++ Y 有进程处于运行状态? Y 将该进程放入阻塞 队列 N 提示无运行的进程 输入事件发生的进程名称 阻塞队列中有该 进程? Y 将该进程放入就绪队列 N 提示该进程并 未阻塞 4.数据结构及说明 在本实验中,主要的数据结构是PCB 的数据结构,具体如下: struct process{

操作系统实验报告--实验一--进程管理

实验一进程管理 一、目的 进程调度是处理机管理的核心内容。本实验要求编写和调试一个简单的进程调度程序。通过本实验加深理解有关进程控制块、进程队列的概念,并体会和了解进程调度算法的具体实施办法。 二、实验内容及要求 1、设计进程控制块PCB的结构(PCB结构通常包括以下信息:进程名(进程ID)、进程优先数、轮转时间片、进程所占用的CPU时间、进程的状态、当前队列指针等。可根据实验的不同,PCB结构的内容可以作适当的增删)。为了便于处理,程序中的某进程运行时间以时间片为单位计算。各进程的轮转时间数以及进程需运行的时间片数的初始值均由用户给定。 2、系统资源(r1…r w),共有w类,每类数目为r1…r w。随机产生n进程P i(id,s(j,k),t),0<=i<=n,0<=j<=m,0<=k<=dt为总运行时间,在运行过程中,会随机申请新的资源。 3、每个进程可有三个状态(即就绪状态W、运行状态R、等待或阻塞状态B),并假设初始状态为就绪状态。建立进程就绪队列。 4、编制进程调度算法:时间片轮转调度算法 本程序用该算法对n个进程进行调度,进程每执行一次,CPU时间片数加1,进程还需要的时间片数减1。在调度算法中,采用固定时间片(即:每执行一次进程,该进程的执行时间片数为已执行了1个单位),这时,CPU时间片数加1,进程还需要的时间片数减1,并排列到就绪队列的尾上。 三、实验环境 操作系统环境:Windows系统。 编程语言:C#。 四、实验思路和设计 1、程序流程图

2、主要程序代码 //PCB结构体 struct pcb { public int id; //进程ID public int ra; //所需资源A的数量 public int rb; //所需资源B的数量 public int rc; //所需资源C的数量 public int ntime; //所需的时间片个数 public int rtime; //已经运行的时间片个数 public char state; //进程状态,W(等待)、R(运行)、B(阻塞) //public int next; } ArrayList hready = new ArrayList(); ArrayList hblock = new ArrayList(); Random random = new Random(); //ArrayList p = new ArrayList(); int m, n, r, a,a1, b,b1, c,c1, h = 0, i = 1, time1Inteval;//m为要模拟的进程个数,n为初始化进程个数 //r为可随机产生的进程数(r=m-n) //a,b,c分别为A,B,C三类资源的总量 //i为进城计数,i=1…n //h为运行的时间片次数,time1Inteval为时间片大小(毫秒) //对进程进行初始化,建立就绪数组、阻塞数组。 public void input()//对进程进行初始化,建立就绪队列、阻塞队列 { m = int.Parse(textBox4.Text); n = int.Parse(textBox5.Text); a = int.Parse(textBox6.Text); b = int.Parse(textBox7.Text); c = int.Parse(textBox8.Text); a1 = a; b1 = b; c1 = c; r = m - n; time1Inteval = int.Parse(textBox9.Text); timer1.Interval = time1Inteval; for (i = 1; i <= n; i++) { pcb jincheng = new pcb(); jincheng.id = i; jincheng.ra = (random.Next(a) + 1); jincheng.rb = (random.Next(b) + 1); jincheng.rc = (random.Next(c) + 1); jincheng.ntime = (random.Next(1, 5)); jincheng.rtime = 0;

操作系统实验报告+进程状态转换

实验进程状态转换及其PCB的变化 一、程序流程图: 二、使用的数据结构及说明: 在本实验中,主要用到的数据结构是PCB的结构,其中PCB的数据结构如下: struct PCB { int P_Id; //PCB的ID号 char P_Name[10]; //PCB的名称 char P_State[10]; //PCB状态 int P_Runtime; //PCB的所需要的运行时间 int P_Requiry; //PCB所需要的资源要求 struct PCB * next ; //PCB块的下一个指针 } ; 其中,P_Id,和P_Name用来标示一个进程,而P_State用来标示进程的五种状态:

Create_state,Ready_state,Block_state,Run_state,Exit_state。P_Runtime标示要完成一个进程所需要的时间。P_Requiry标示一个进程的执行所需要的其他条件,当其他的条件满足,则P_Requiry 置1,否则置0。Struct PCB * next 用来指向同一队列中的下一个PCB块。 三、程序源代码: #include"stdlib.h" #include"stdio.h" #include"string.h" /********** globle structure and viable ******/ struct PCB { int P_Id; //PCB的ID号 char P_Name[10]; //PCB的名称 char P_State[10]; //PCB状态 int P_Runtime; //PCB的所需要的运行时间 int P_Requiry; //PCB所需要的资源要求 struct PCB * next ; //PCB块的下一个指针 } ; struct PCB * Create_state; //创建状态 struct PCB * Run_state; //运行状态 struct PCB * Ready_state; //就绪状态 struct PCB * Block_state; //阻塞状态 struct PCB * Exit_state; //退出状态 int signal4=0; //标示进程4的完成状态 int signal5=0; //标示进程5的完成状态 void InsertQueue(struct PCB **head,struct PCB *node) /* insert node function */ { struct PCB * p,*q; node->next=NULL; if(*head==NULL) //如果队列为空 { *head=node; } Else //队列不空 { p=*head; q=p->next; while(q!=NULL) //找到最后的元素位置 { p=q; q=q->next; } p->next=node; //将节点插入队列 }

第二章 操作系统进程(练习题标准答案)

第二章操作系统进程(练习题答案)

————————————————————————————————作者:————————————————————————————————日期: 2

第二章进程管理 1.操作系统主要是对计算机系统全部 (1) 进行管理,以方便用户、提高计算机使 用效率的一种系统软件。它的主要功能有:处理机管理、存储管理、文件管理、 (2) 管 理和设备管理等。Windows和Unix是最常用的两类操作系统。前者是一个具有图形界面的 窗口式的 (3) 系统软件,后者是一个基本上采用 (4) 语言编制而成的 的系统软件。在 (5) 操作系统控制下,计算机能及时处理由过程控制反馈的信息 并作出响应。 供选答案: (1): A. 应用软件 B. 系统软硬件 C. 资源 D. 设备 (2): A. 数据 B. 作业 C. 中断 D. I/O (3): A. 分时 B. 多任务 C. 多用户 D. 实时 (4): A. PASCAL B. 宏 C. 汇编 D. C (5): A. 网络 B. 分时 C. 批处理 D. 实时 答案:CBBDD 2.操作系统是对计算机资源进行的 (1) 系统软件,是 (2) 的接口。 在处理机管理中,进程是一个重要的概念,它由程序块、 (3) 和数据块三部 分组成,它有3种基本状态,不可能发生的状态转换是 (4) 。 虚拟存储器的作用是允许程序直接访问比内存更大的地址空间,它通常使用 (5) 作为它的一个主要组成部分。 供选答案: (1): A. 输入和输出 B. 键盘操作 C. 管理和控制 D. 汇编和执行 (2): A. 软件和硬件 B. 主机和外设 C. 高级语言和机器语言 D. 用户和计算机 (3): A. 进程控制块 B. 作业控制块 C. 文件控制块 D. 设备控制块 (4): A. 运行态转换为就绪态 B. 就绪态转换为运行态 C. 运行态转换为等待态 D. 等待态转换为运行态 (5): A. 软盘 B. 硬盘 C. CDROM D. 寄存器 答案:CDADB 3.在计算机系统中,允许多个程序同时进入内存并运行,这种方法称为 D。 A. Spodling技术 B. 虚拟存储技术 C. 缓冲技术 D. 多道程序设计技术 4.分时系统追求的目标是 C。 A. 高吞吐率 B. 充分利用内存 C. 快速响应 D. 减少系统开销 5.引入多道程序的目的是 D。

实验一 进程管理

实验一进程管理 1. 实验目的 ⑴加深对进程概念的理解,明确进程和程序的区别; ⑵进一步认识并发执行的实质; ⑶分析进程争用资源的现象,学习解决进程互斥的方法; ⑷了解Linux系统中进程通信的基本原理。 2. 实验准备 ⑴阅读Linux的sched.h源码文件,加深对进程管理的理解。 ⑵阅读Linux的fork.h源码文件,分析进程的创建过程。 3. 实验内容 ⑴进程的创建 编写一段程序,使用系统调用fork ( )创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符:父进程显示字符“a”;子进程显示字符“b”和字符“c”。试观察记录屏幕上的显示结果,并分析原因。 ⑵进程的控制 修改已编写的程序,将每个进程输出一个字符改为每个进程输出一句话,再观察程序执行时屏幕上出现的现象,并分析原因。 如果在程序中使用系统调用lockf ( )来给每一个进程加锁,可以实现进程之间的互斥,观察并分析出现的现象。 ⑶软中断通信 编制一段程序实现进程的软中断通信。要求:使用系统调用fork ( )创建两个子进程,再用系统调用signal( )让父进程捕捉键盘上发来的中断信号(既按Del键);当捕捉到中断信号后,父进程系统调用kill( )向两个子进程发出信号,子进程捕捉到信号后分别输出下列信息后终止:Child process 1 is killed by parent! Child process 2 is killed by parent! 父进程等待两个子进程终止后,输出如下的信息后终止: Parent process is killed! 在上面的程序中增加语句signal (SIGINT, SIG_IGN) 和signal (SIGQUIT, SIG_IGN),观察执行结果,并分析原因。 4. 实验指导

昆明理工大学进程管理实验报告

昆明理工大学信息工程与自动化学院学生实验报告 (2010 —2011 学年第二学期) 课程名称:操作系统开课实验室:年月日 目录 一、实验目的 (1) 二、实验原理及基本技术路线图 (1) 1. 进程的状态转换图 (2) 2. 各原语的功能说明 (2) 3.多级反馈队列调度算法的描述 (3) 4. 程序功能结构图 (4) 5. 流程图 (4) 6. 数据结构定义 (5) 7. 主要变量的说明 (6) 8. 函数的说明 (6) 四、实验方法、步骤 (6) 五、实验过程原始记录 (18) 六、实验结果、分析和结论 (21) 一、实验目的 通过编写进程管理的算法,要求学生掌握整个进程管理的各个环节,进程的数据结构描述,进程的各种状态之间的转换,以及进程的调度算法。以加深对进程的概念及进程调度算法的理解,并且提高链表的应用能力,达到提高编程能力的目的。 二、实验原理及基本技术路线图(方框原理图) 用C语言或C++语言开发。需要定义PCB的数据结构,用链表的形式管理进程,采用

多级反馈队列调度的算法模拟进程的控制。要求有创建、撤销、调度、阻塞、唤醒进程等功能。 1.进程的状态转换图: 2.各原语的功能说明: -进程创建原语:进程创建是调用创建原语来实现。创建原语扫描系统的PCB链表,在找到一定PCB 链表之后,填入调用者提供的有关参数(这些参数包括:进程名、进程优先级P0、进程正文段起始地址d0、资源清单R0等),最后形成代表进程的PCB结构。 -进程撤销(终止): 撤消原语首先检查PCB进程链或进程家族,寻找所要撤消的进程是否存在。如果找到了所要撤消的进程的PCB结构,则撤消原语释放该进程所占有的资源之后,把对应的PCB结构从进程链或进程家族中摘下并返回给PCB空队列。如果被撤消的进程有自己的子进程,则撤消原语先撤消其子进程的PCB结构并释放子进程所占用的资源之后,再撤消当前进程的PCB结构和释放其资源。

实验一 进程状态转换

实验一进程的状态及其转换 一、实验目的: 自行编制模拟程序,通过形象化的状态显示,加深理解进程的概念、进程之间的状态转换及其所带来的PCB内容、组织的变化,理解进程与其PCB间的一一对应关系。 二、实验内容及要求: 1)设计并实现一个模拟进程状态转换及其相应PCB内容、组织结构变化的程序。 2)独立编写、调试程序。进程的数目、进程的状态模型(三状态、五状态、七状 态或其它)以及PCB的组织形式可自行选择。 3)合理设计与进程PCB相对应的数据结构。PCB的内容要涵盖进程的基本信息、控 制信息、资源需求及现场信息。 4)设计出可视性较好的界面,应能反映出进程状态的变化引起的对应PCB内容、 组织结构的变化。 三、程序流程图:

四、使用的数据结构及说明: 在本实验中,主要用到的数据结构是PCB的结构,其中PCB的数据结构如下: struct PCB { int P_Id; //PCB的ID号 char P_Name[10]; //PCB的名称 char P_State[10]; //PCB状态 int P_Runtime; //PCB的所需要的运行时间 int P_Requiry; //PCB所需要的资源要求 struct PCB * next ; //PCB块的下一个指针 } ; 其中,P_Id,和P_Name用来标示一个进程,而P_State用来标示进程的五种状态:Create_state,Ready_state,Block_state,Run_state,Exit_state。P_Runtime标示要完成一个进程所需要的时间。P_Requiry标示一个进程的执行所需要的其他条件,当其他的条件满足,则P_Requiry置1,否则置0。Struct PCB * next 用来指向同一队列中的下一个PCB 块。 五、参考程序源代码: #include"stdlib.h" #include"stdio.h" #include"string.h" #include /*全局结构体及变量定义*/ struct PCB { int P_Id; //PCB的ID号 char P_Name[10]; //PCB的名称 char P_State[10]; //PCB状态 int P_Runtime; //PCB的所需要的运行时间 int P_Requiry; //PCB所需要的资源要求 struct PCB * next ; //PCB块的下一个指针 } ; struct PCB * Create_state; //创建状态 struct PCB * Run_state; //运行状态 struct PCB * Ready_state; //就绪状态 struct PCB * Block_state; //阻塞状态 struct PCB * Exit_state; //退出状态 int signal4=0; //标示进程4的完成状态 int signal5=0; //标示进程5的完成状态 void InsertQueue(struct PCB **head,struct PCB *node) //将进程插入到队列的尾部

第二章-操作系统进程(练习题答案)

第二章进程管理 1.操作系统主要是对计算机系统全部 (1) 进行管理,以方便用户、提高计算机使 用效率的一种系统软件。它的主要功能有:处理机管理、存储管理、文件管理、 (2) 管 理和设备管理等。Windows和Unix是最常用的两类操作系统。前者是一个具有图形界面的 窗口式的 (3) 系统软件,后者是一个基本上采用 (4) 语言编制而成的 的系统软件。在 (5) 操作系统控制下,计算机能及时处理由过程控制反馈的信息 并作出响应。 供选答案: (1): A. 应用软件 B. 系统软硬件 C. 资源 D. 设备 (2): A. 数据 B. 作业 C. 中断 D. I/O (3): A. 分时 B. 多任务 C. 多用户 D. 实时 (4): A. PASCAL B. 宏 C. 汇编 D. C (5): A. 网络 B. 分时 C. 批处理 D. 实时 答案:CBBDD 2.操作系统是对计算机资源进行的 (1) 系统软件,是 (2) 的接口。 在处理机管理中,进程是一个重要的概念,它由程序块、 (3) 和数据块三部 分组成,它有3种基本状态,不可能发生的状态转换是 (4) 。 虚拟存储器的作用是允许程序直接访问比内存更大的地址空间,它通常使用 (5) 作为它的一个主要组成部分。 供选答案: (1): A. 输入和输出 B. 键盘操作 C. 管理和控制 D. 汇编和执行 (2): A. 软件和硬件 B. 主机和外设 C. 高级语言和机器语言 D. 用户和计算机 (3): A. 进程控制块 B. 作业控制块 C. 文件控制块 D. 设备控制块 (4): A. 运行态转换为就绪态 B. 就绪态转换为运行态 C. 运行态转换为等待态 D. 等待态转换为运行态 (5): A. 软盘 B. 硬盘 C. CDROM D. 寄存器 答案:CDADB 3.在计算机系统中,允许多个程序同时进入内存并运行,这种方法称为 D。 A. Spodling技术 B. 虚拟存储技术 C. 缓冲技术 D. 多道程序设计技术 4.分时系统追求的目标是 C。 A. 高吞吐率 B. 充分利用内存 C. 快速响应 D. 减少系统开销 5.引入多道程序的目的是 D。

进程管理习题及答案

一、判断题 1.( )操作系统的所有程序都必须常驻内存。 2.( )多道程序设计可以缩短系统中作业的执行时间。 3.( )实时系统中的作业周转时间有严格的限制。 4.( )进程获得处理机而运行是通过申请而得到的。 5.( )同一个程序不能被创建成多个进程。 6.( )子进程可以继承它的父进程所拥有的所有资源。 7.( )对于临界区,最重要的是断定哪个进程先执行临界区里的那段程序。 8.( )若进程A和进程B在临界区上互斥,那么当A位于临界区内时不能打断它的 运行。 9.( )进程间的互斥是一种特殊的同步关系。 10.( )临界区是指进程中用于实现进程互斥的那段代码。 11.( )资源的同时共享是指多个用户作业可以在同一时刻使用同一资源。 12.( )并发性是指若干事件在同一时间间隔内发生。 13.( )进程在运行中,可以自行修改自己的进程控制块PCB。 14.( )进程申请CPU得不到满足时,其状态变为等待态。 15.( )当一个进程从等待态变成就绪态,则一定有一个进程从就绪态变成运行态。 16.( )进程状态的转换是由操作系统完成的,对用户是透明的。 17.( )优先数是进程调度的重要依据,优先数大的进程首先被调度运行。 18.( )不可抢占式动态优先数法一定会引起进程长时间得不到运行。 19.( )进程调度的主要功能是从所有处于等待状态的进程中挑选一个"最合适"的进 程,创建好进程运行所需要的环境,然后把处理机分配给它。 20.( )无限循环和无限延迟是一个概念。 21.( )导致系统出现死锁的一种原因是某个用户作业发生了死循环。 22.( )一旦出现死锁,所有进程都不能运行。 23.( )所有进程都挂起时系统陷入死锁。 24.( )参与死锁的进程至少有两个已经占有资源。 25. ( )有M个进程的操作系统出现死锁时,死锁进程的个数为1

操作系统实验一模拟进程状态转换

实验一模拟进程状态转换及其PCB的变化 一、实验目的: 自行编制模拟程序,通过形象化的状态显示,使学生理解进程的概念、进程之间的状态转换及其所带来的PCB内容、组织的变化,理解进程与其PCB间的一一对应关系。 二、实验内容及要求: (1)、设计并实现一个模拟进程状态转换及其相应PCB内容、组织结构变化的程序。 (2)、独立编写、调试程序。进程的数目、进程的状态模型(三状态、五状态、七状态或其它)以及PCB的组织形式可自行选择。(3)、合理设计与进程PCB相对应的数据结构。PCB的内容要涵盖进程的基本信息、控制信息、资源需求及现场信息。 (4)、设计出可视性较好的界面,应能反映出进程状态的变化引起的对应PCB内容、组织结构的变化。 (5)、代码书写要规范,要适当地加入注释。 (6)、鼓励在实验中加入新的观点或想法,并加以实现。 (7)、认真进行预习,完成预习报告。 (8)、实验完成后,要认真总结,完成实验报告。 三、实现: 数据结构 struct PCB{

char name; int priority; int needtime; bool operator < (const PCB &b) const{ return priority>b.priority; } }; 五状态进程模型 最高优先数优先调度算法流程图

四、运行结果:

图1创建2个进程,因为这时cpu空闲所以内核调度,b优先级高先执行 图2超时,因为这时cpu空闲所以内核调度,b优先级还是比a高所以先执行

图32个进程均被阻塞,其中一旦进程被阻塞就会引发调度 图4唤醒1个进程,从阻塞队列取队首放到就绪队列队尾,由于这时cpu空闲所以内核调 度

进程管理练习及参考答案

OS概述、进程管理练习答案 一、单项选择题(OS概述部分) 1、UNIX O.S. 属于一种( A )操作系统。 A.分时 B.批处理 C.实时 D.分布式 2、计算机软件中,最靠近硬件层次的一类软件是(C )。 A.应用软件 B.支撑软件 C.系统软件 D.编译软件 3、下列四个操作系统中,是分时系统的为(C )。 A.CP/M B.MS-DOS C.UNIX D.WINDOWS NT 4、在操作系统中,设计者往往编制了许多完成不同功能的子程序供用户程序中使用,这些子程序被称为(B )。 A.作业控制语言 B.系统调用 C.操作控制命令 D.访管命令 5、个人计算机操作系统也被称为( B )。 A.多用户操作系统 B.单用户操作系统 C.实时操作系统 D.批处理操作系统 6、批处理系统的主要缺点是( B )。 A.CPU的利用率不高 B.失去了交互性 C.不具备并行性 D.以上都不是 7、DOS操作系统主要的功能是(A )。 A.文件管理功能 B.中断处理功能 C.作业管理功能 D.打印管理功能 8、第一个在计算机上实现的操作系统是(C )。 A.分时操作系统 B.实时操作系统 C.单道批处理系统 D.单用户操作系统 9、操作系统的功能是进行处理器管理、作业管理、( B )管理、设备管理和文件管理。 A.进程 B.存储器 C.硬件 D.软件 10、设计实时操作系统时,首先应该考虑系统的(B )。 A.可靠性和灵活性 B.实时性和可靠性 C.灵活性和可靠性 D.优良性和分配性 11、操作系统是计算机系统的(B )。 A.应用软件 B.系统软件 C.硬件 D.固件 12、从工作的角度看操作系统,可以分为:单用户操作系统、批处理系统、(B )和实时系统。 A.单机操作系统 B.分时操作系统 C.面向过程的操作系统 D.网络操作系统 13、下列系统中,( B )是实时系统。 A.计算机激光照排系统 B.航空定票系统 C.办公自动化系统 D.计算机辅助设计系统 14、工业过程控制系统中运行的操作系统最好是( B )。 A.分时系统 B. 实时系统 C.分布式操作系统 D.网络操作系统 15、计算机发展到第三代,操作系统已成为软件的一个重要分支,最早的操作系统是(D )。 A.分布式系统 B. 实时系统 C.分时系统 D.批处理系统 16、设计实时操作系统时,( B )不是主要的追求目标。 A.安全可靠 B. 资源利用率 C.及时响应 D.快速处理 二、单项选择题(进程控制与同步部分) 1、进程从运行状态变为等待状态的原因可能是(A )。 A.输入/输出事件发生 B.时间片到 C.输入/输出事件完成 D.某个进程被唤醒

相关文档