为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

进程状态和状态转移

2017-12-04 3页 doc 14KB 27阅读

用户头像

is_620441

暂无简介

举报
进程状态和状态转移进程状态和状态转移 对UNIX而言,进程状态和状态转移类似于本章前面关于进程方面讨论的内容。这里再进一步介绍,有助于读者更好地理解这部分内容。此外,要考虑的新内容如下(参见图13-34)。 进程要么在用户模式下执行,要么在内核模式下执行。 (点击查看大图)图13-34进程状态和状态转移 进程在创建后并不会立刻进入"准备就绪"状态。实际上,先将其状态设为"创建"(参见图中圆圈"h")。想法就是创建进程时没有足够的内存运行该进程。随后,该进程状态从"创建"变成"准备就绪"(也就是在内存中),或是变成"准备就绪、已交换的"(...
进程状态和状态转移
进程状态和状态转移 对UNIX而言,进程状态和状态转移类似于本章前面关于进程方面讨论的内容。这里再进一步介绍,有助于读者更好地理解这部分内容。此外,要考虑的新内容如下(参见图13-34)。 进程要么在用户模式下执行,要么在内核模式下执行。 (点击查看大图)图13-34进程状态和状态转移 进程在创建后并不会立刻进入"准备就绪"状态。实际上,先将其状态设为"创建"(参见图中圆圈"h")。想法就是创建进程时没有足够的内存运行该进程。随后,该进程状态从"创建"变成"准备就绪"(也就是在内存中),或是变成"准备就绪、已交换的"(也就是图中的圆圈"e"),这取决于可用的内存大小(参见图13-34)。 当进程结束时,它调用"Exit退出"系统调用,如图中顶部所示的"系统调用中断"。此时,它进入"内核运行"模式(也就是图13-34中从圆圈"a"到"b"),并最终进入图13-34中圆圈"i"表示的"僵尸"状态。在该状态中,除了进程表中一个槽之外所有的信息都会被清除。 图13-34中用"c"和"g"描述了进程"准备就绪"到"运行"和"抢占优先"的这两个状态。这两个状态本质上很相似。从某种意义上讲,这两种状态实际上都是"准备就绪态",也就是处于这两种状态的进程都可以内核被调度,因为实际上不会有一个正在等待任何事件的发生。处于这两种状态的进程之所以没有运行,是因为CPU正在运行某个其他进程,而且CPU每次只能运行一个进程。然而,主要差别在于当调度"准备就绪"进程时,它先进入"内核运行"状态(从图中的圆圈"c"到"b"),然后状态是"用户运行"状态(从图中的圆圈"b"到"a"),反之,抢占优先的进程可以直接进入"用户运行"态(从图中圆圈"g"到"a")。实际上,这样做很有必要。 这样做的原因可以首先在进程变成抢占优先的方式中找到。当进程在内核模式下运行(也就是圆圈"b")而且在内核模式下完成后将要进入"用户运行态 "(圆圈"a")时,当时它的时间槽已经用完,那么该进程就进入抢占优先状态(圆圈"g")。因此,操作系统知道在调度进程后,该进程可以立刻在"用户运行态"运行。所有其他准备就绪进程在用户模式中开始执行前,要先进到"内核模式"中。 本节使用了一些与前面讨论不同的术语,例如,这里用"睡眠"替代"受阻塞",如果进程"被阻塞",也就是如果它正等待如I/O完成这样的事件,就称其为"睡眠"。 如图13-34所示,可以列出以下的进程状态: (1)用户运行态(UR)--进程运行在用户模式下。 (2)内核运行态(KR)--进程运行在内核模式下。 (3)准备就绪态(RD)--进程运行准备就绪。 (4)内存睡眠态(AM)--进程受阻塞,并且正在等待诸如I/O完成这样的事件。 (5)就绪交换态(RS)--进程只有被交换进入之后才可以被调度,而不是在等待其他事件时被调度。 (6)睡眠交换态(AS)--进程已经被换出,同时还在等待事件。通常,在等待的事件发生后,它先转移到"就绪交换态",然后是在被换入时才转移到"准备就绪态"。作为选择,如果该进程在某个事件中被阻塞时就被换入,那么它可以进入"内存睡眠态"。在事件处理完以后可以进入"准备就绪态"。之后,该进程进入"内核运行态",最终进入"用户运行态",内核就可以调度该进程了,因而可以执行实际的用户进程。 (7)抢占优先态(PR)--进程没有等待任何事件,并且有一个进程已经放弃对CPU的控制,且其直接返回到"用户模式",那么可以调用该进程。 (8)已经创建态(CR)--进程已经创建完毕,但尚未准备就绪。 (9)僵尸存放态(ZM)--进程已经被终止,但尚未完全从系统中删除。 进程的进程表条目包含一个字段,名为"进程状态",它指明进程的状态(参见13.5.2节(2))。内核可以将进程表中状态相同的所有条目通过指针链表链接在一起。例如,准备就绪状态或抢占优先状态链表可以按照优先级顺序维护,而进程优先级就是进程表中的一个字段。由于进程在其生命周期中频繁改变自己的状态和优先级,所以管理这些变化的算法和数据结构要有很高的处理效率。 这里已经知道,进程层次结构中进程表条目通过链表链接在一起,这样可以提高遍历速度。这会使操作系统设计人员的工作更复杂。例如,所有准备就绪进程的进程表也被链接在一起,所有抢占优先的进程、已经创建的进程以及就绪交换的进程也分别被各自链表链接在一起。实际上,内核按照优先级顺序维护这些链表,按照时间顺序维护其他链表。同样的,进程层次结构中的所有进程也链接在一起,这里不考虑进程的状态。
/
本文档为【进程状态和状态转移】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索