- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第3章 进程的描述与控制 引言 3.1 程序执行方式 3.2 进程描述 3.3进程状态 3.4 进程控制 3.5 线程 3.6 Linux进程管理 3.7 Windows的进程管理 引言 进程是操作系统中最重要的概念之一,简单地说,进程就是程序的执行过程。具体的说,进程是系统进行资源分配的基本单位,同时也是处理器调度和运行的基本单位。现代操作系统的四大特征均基于进程而形成。因此,进程是操作系统中最基本、最重要的概念。 3.1程序执行方式 程序的执行方式分为顺序执行方式和并发执行方式两种。在早期的系统中,只有当一个程序执行完后,另一个程序才可执行,这是程序的顺序执行方式;而在多道程序环境下,多个程序同时进入内存,程序的执行方式是并发执行方式。程序的这两种执行方式有着明显的不同。正是程序并发执行的原因,引入了进程的概念。 3.1.1 程序顺序执行 程序的顺序执行:各道程序顺序进入内存,只有前一道程序运行结束退出内存,后一道程序方可进入内存运行。 程序顺序执行示意图: 3.1.1 程序顺序执行 程序顺序执行时的特征: 顺序性:程序的执行总是按照程序结构所指定的次序顺序连续进行。只有前一个操作结束才能执行后继操作。除了人为干预造成机器暂停之外,否则,前一个操作的结束就意味着后一个操作的开始。 封闭性:封闭性包含两方面含义: 资源封闭性:程序在执行期间,全部系统资源为该程序所独占,除了资源的初始状态由操作系统设定之外,程序一旦进入系统,则资源的状态不受外界因素影响,完全由该程序所控制,只有该程序才能改变它。 3.1.1 程序顺序执行 结果封闭性:程序的执行结果与执行速度无关。换言之,程序无论是从头到尾不停顿地执行,还是断断续续地间断执行,其最终结果都是唯一确定的。 可再现性:只要程序执行时的环境和初始条件相同,当程序多次重复执行时,无论它是从头到尾不停顿地执行,还是“停停走走”地执行,都将获得相同的结果。如程序中存在错误,则错误也能够再现。 3.1.2 程序并发执行 程序的并发执行:一组在逻辑上互相独立的程序或程序段在执行过程中,其执行时间在客观上互相重叠,即一个程序段的执行尚未结束,另一个程序段的执行已经开始的这种执行方式。 程序并发执行的条件: 从硬件角度:中断机构的设立使得多种硬件部件能同时操作,即硬件具有了并行操作能力,而通道技术的出现则使处理器与输入输出设备之间可以并行工作。 从操作系统角度:多道程序设计技术的引入,使得内存中可同时驻留一道以上的程序,它们同时活动在不同硬件部件上,硬件的并行性能得到进一步发挥。 3.1.2 程序并发执行 程序的并发执行示意图: 3.1.2 程序并发执行 程序并发执行时的特征: 间断性:并发执行的程序,由于相互之间的依赖和制约关系,将不是连续执行而是处于“执行―暂停―再执行”的活动规律中,即它有时处于执行状态,有时又由于某种原因而暂停执行,当这种原因消失又恢复至执行状态。因此,程序中前一个动作的结束并不一定意味着后一个动作的开始,程序的执行失去连续性而呈现出间断性特征。 失去封闭性:程序在并发执行时,多道程序共享系统的各类资源,由于资源数量有限,必然导致并发程序对资源的竞争从而改变程序执行的速度。这样,每个程序的执行都会受到其它程序的影响,其执行结果将不可避免地失去封闭性。下面的例子说明了这一点。 3.1.2 程序并发执行 【例3-1】假设在一条单向行驶的公路上经常有卡车通过,观察者和报告者并发工作。观察者不断观察并对通过的卡车计数,报告者定时地将观察者的计数值打印出来,然后将计数器清零。观察者和报告者并发执行的程序如下,试分析n可能的计算结果(主程序main中的parbegin表示多个程序可以并发执行) 3.1.2 程序并发执行 int n=0; void observer(void) { while(1) { … n++; remainder of observer; } } 3.1.2 程序并发执行 void reporter (void) { while(1) { … print(n); n=0; remainde
文档评论(0)