执行每一个进程创建原语控制原语时,进程创建原语状态发生什么变化

        处理器的分配对象大多是进程。进程是程序的一次运行,进程的实体是由程序段、数据段和进程控制块组成,程序没有进程就无法运行。但是进程到底是怎么运行的?

PS:以下的栗子,来源于个人对进程的理解与生活体验如果觉得不合适,请见谅

单道程序系统中,程序是顺序运行的。其过程就像这样,举个栗子:拿起筷子,夹起饭菜,送到嘴里。这个过程必须一步接着一步来,可以重复实现(即可在现性),但是在这个吃饭过程中,你不能再在做作业之类的,吃饭这个动作独占你的所有资源(即封闭性)。所以说程序顺序执行不利于提高资源利用率。

多道程序系统中,程序是并发执行的。一个计算机只有一个处理器,但是作业的个数可以多于处理器,这些作业在处理器中同时运行,是不正确的说法,在每一个瞬间只有一个程序在执行,在一个在执行的时候,另外一个的执行已经开始了就像这样一个过程,举个栗子:起床之后,在烧水等待的同时,可以去刷牙洗脸,在榨汁机运行的同时可以去准备早餐的食材等。所以说程序并发运行可以极大的提高资源利用率。

       并发程序虽然很好,但是并不是所有的程序都可以并发执行,举个栗子:你不可能一边刷牙,一边吃饭。

于是程序的并发运行是需要条件的,来一个公式:

R(P1)和W(P2),W(P2)和R(P2),W(P1)和 W(P2)都不能有交集(注意,不是所有的都要符合无交集的条件)。

个人理解:我们可能会经常去买票看电影,但是会有一个问题,当这个座位还没人买,大家的选择界面上都可以选择,未刷新之前大家是可以选的,提交之后,有时候会发现票已经被买走。我们都可以买票,所以不是所有的都不能有交集,但是一个座位的票只有那一张,同一段资源不能被同时占有,但是还是有其他选择,所以存在不能有交集的情况。

        既然进程可以并发执行,那么他们是在程序运行是什么状态呢?不同的系统可能会有不同的状态,以下为大多数情况:

进程一般存在三种情况:

(1)就绪状态:我已经准备好,给我处理器,我就可以执行,这时的进程状态就是就绪状态;

(2)执行状态:我已经获得资源,并且正在工作中,这时的进程状态就是执行状态;

(3)阻塞状态:我刚刚正在工作,突然“断电”了,我被迫停止,这时的进程状态就是阻塞状态。

但是,不是说我处于一种状态就会不变,正在执行的总会做完,被迫停止的也可以重新开始。

关于三种状态,举个栗子

在食堂买饭,有人已经买上饭菜了坐了正在吃,有人正在排队买菜,有人买好了但是没有座位,正在等待。

       进程控制主要是负责进程的创建与撤销,进程状态之间的切换以及进程之间的通信等。当然这也是系统的基本功能,在内核中的相应程序中完成。

 但是什么是操作系统内核

      操作系统内核是指扩充计算机硬件的第一层,广泛采用层次式结构,通常将一些与硬件密切相关的模块,比如中断处理程序,设备驱动程序,存储器管理等安排在紧靠硬件的软件层,并且让他们常住在内存中,施以保护。内核在实现实现其基本功能时基本常采用原语操作。

       可以简单的看作是命令。主要介绍一下进程控制语言,主要包括进程的创建与撤销、阻塞与唤醒、刮起与激活等六个原语。

(1)进程创建原语:进程通过调用进程创建原语来创建一个子进程,步骤为:申请空闲的PCB(进程控制模块),为子进程获得新的标识-->为子进程分配诸如内存空间的资源-->初始化进程控制模块-->将新进程插入到PCB的就绪队列中。创建ok。

(2)进程撤销原语:撤销原语在撤销进程时,连同该进程的子孙进程一同撤销。步骤为:根据被撤销的进程的标识符从PCB检索表中找到该进程的PCB,并获得该进程的状态-->若进程处于执行状态,立即终止其执行,并且将其逻辑值重置;若进程不是执行状态,直接将其从状态队列中删去-->递归的处理该进程的子孙进程-->撤销进程时,将所有资源归位,注销其资源描述清单-->释放该进程的PCB。撤销ok,但是如果其逻辑值为真,则会转入进程调度程序。

(3)进程阻塞原语:当进程请求某个事件尚未出现时,进行步骤:终止调用者自身的执行-->进程调用进程阻塞原语使其从执行状态变为阻塞状态-->把调用者进程的PCB插入到相应的阻塞队列-->然后转入进程调度程序。

(4)进程唤醒原语:执行的进程释放某资源之后,调用进程唤醒原语将因等待该资源而阻塞的进程唤醒成就绪状态。进行步骤:找出相应被唤醒的进程的内部标识-->把该标识从阻塞队列中移去-->重设该状态为就绪-->将该进程插入到就绪队列中去。

了解以上信息对于进程的运行就有了一些大致的理解,这是对于了解运行中出现的互斥和同步问题的基础。

}

当用户在编程中需要创建一个进程时,他可以采用下列哪一种方法?

A.调用进程创建原语由操作系统创建进程

B.填写进程控制块的数据结构并提交系统

C.填写进程控制块的数据结构并将其放入就绪队列

D.将用户所在进程的进程控制块复制一份给新进程

请帮忙给出正确答案和分析,谢谢!

}

第二章进程管理习题及答案

1.进程的静态描述由三部分组成:① 、② 和③ 。

【答案】①PCB、②程序部分、③相关的数据结构集

【解析】PCB是系统感知进程的唯一实体。进程的程序部分描述了进程所要

完成的功能,而数据结构集是程序在执行时必不可少的工作区和操作对象。后两

部分是进程完成所需功能的物质基础。

2.进程存在的标志是。

【答案】进程控制块PCB

【解析】系统根据PCB感知进程的存在和通过PCB中所包含的各项变量的变化,掌握进程所处的状态以达到控制进程活动的目的。

3.① 是现代操作系统的基本特征之一,为了更好地描述这一特征而

【答案】①程序的并发执行,②进程

【解析】程序的并发执行和资源共享是现代操行系统的基本特征。程序的并

发执行使程序失去了程序顺序执行时所具有的封闭性和可再现性。在程序并发执

行时,程序这个概念不能反映程序并发执行所具有的特性,所以引入进程概念来

描述程序并发执行所具有的特点。

4.给出用于进程控制的四种常见的原语① 、② 、③ 和④ 。【答案】①创建原语、②撤消原语、③阻塞原语、④唤醒原语

【解析】进程控制是系统使用一些具有特定功能的程序段来创建、撤消进程

以及完成进程各状态间的转换,从而达到多个过程高效率地并行执行和协调,实

现资源共享的目的。把那些在管态下执行的具有特定功能的程序段称为原语。

5.进程被创建后,最初处于① 状态,然后经② 选中后进入③ 状态。

【答案】①就绪,②进程调度程序,③运行

【解析】进程的从无到有,从存在到消亡是由进程创建原语和撤消原语完成的。被创建的进程最初处于就绪状态,即该进程获得了除处理机以外的所有资源,处于准备执行的状态;从就绪状态到运行状态的转换是由进程调度程序来完成的。

6.进程调度的方式通常有① 和② 方式两种。

【答案】①可剥夺、②非剥夺

【解析】所谓可剥夺方式,是指就绪队列中一旦有优先级高于当前运行进程

的优先级的进程存在时,便立即发生进程调度,转让处理机。而非剥夺方式则是指:即使在就绪队列中存在有优先级高于当前运行进程的进程,当前进程仍将继

续占有处理机,直到该进程完成或某种事件发生(如I/O事件)让出处理机。

7.轮转法主要是用于① 的调度算法,它具有较好的② 时间,

且对每个进程来说都具有较好的③ 性。

【答案】①分时系统②响应③公平

【解析】所谓轮转调度算法,就是将CPU的处理时间分成固定的时间片,处

于就绪状态的进程按一定的方式(如先到先服务FCFS)排成一个队列,该队列

}

我要回帖

更多关于 进程创建原语 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信