- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ch07程序和进程,进程和程序的区别,进程和程序,进程和程序的本质区别,程序和进程的关系,应用程序和进程,进程和程序的主要区别,不是进程和程序的区别,google安装程序进程,程序打不开但是有进程
教学要求 本章目的: 本章介绍操作系统的核心概念——进程。介绍进程的结构;进程的状态及其转换;进程的控制。同时还介绍了线程的概念。 教学目标: 并发程序及其特点;进程的概念;进程的状态;进程的描述;进程的控制,Linux中的进程控制;线程的概念。 重点与难点: 进程及其描述,进程的状态与转换,进程控制,线程状态及其转换。 专业术语: 程序的并发执行、进程、线程 7.1 并发进程 7.1.1程序的顺序执行 程序的基本特征是它的顺序性,即程序的操作按某种顺序依次执行,只有当前一个操作完成后,才能执行下一个操作。 程序顺序执行的特点: 顺序性。处理机的操作严格按照程序所规定的顺序执行,只有当上一个操作完成后,下一个操作才能执行。除非有人为的干预造成机器暂时停顿外,前一个动作的结束就意味着下一个操作的开始。因此,程序和处理机执行程序的活动一一对应。 封闭性。程序运行在一个封闭的环境中,即程序运行时独占系统的全部资源,这些资源的状态只能因程序的执行而改变,不受任何外界因素的影响。 可再现性。由于程序顺序执行的封闭性,只要程序顺序执行的初始条件相同,则不论何时执行,也不论程序执行期间是否存在停顿,程序所得的结果也相同。 7.1 并发进程 7.1.2 程序的并发执行及其特点 现代计算机系统在软件技术上广泛采用了多道程序技术,允许在内存中同时存放多个程序,使多个程序之间可以同时或相互穿插地执行,即多个程序段之间可以并发地执行。 作业1从t1时刻开始执行到t3时刻结束;作业2从t2时刻开始执行到t4时刻结束;作业3从t3时刻开始执行到t5时刻结束。很显然,在t2时刻作业1的计算与作业2的输入二部分就并发执行;同理可得出,在t3时刻作业1的输出与作业2的计算、作业3的输入也并发执行。 可以发现,在并发执行方式下这些作业的总执行时间明显减少,系统的处理能力增强。 7.1 并发进程 7.1.2 程序的并发执行及其特点 程序并发执行的特点 失去了程序的封闭性。程序顺序执行时,由于系统中只允许运行一个程序,自然具备了封闭性,必然导致程序的可再现性。但程序并发执行时,系统中多道程序共享资源,资源的状态不是唯一地取决于某一个程序,因此,必然失去了程序的封闭性,而程序的执行结果因依赖于外部环境也失去了可再现性。(案例见后页) 程序和机器执行程序的活动不再一一对应。程序是指令的有序集合,是静态概念。而机器执行程序的活动是指程序的指令序列在处理机上的执行过程,称为“计算”,是一个动态的概念。在程序顺序执行时,程序和“计算”是一一对应的;但在程序并发执行时,系统中的多个硬件设备在并行工作着,系统中多个程序并发运行着,这多个“计算”相互穿插,一个程序尚未执行完毕另一个程序又开始运行,而且一个程序可以为多个作业调用,这个程序就形成了多个“计算”,系统的“计算”和“计算”之间的关系变得非常复杂,程序和“计算”已经不再一一对应。 7.1 并发进程 7.1.2 程序的并发执行及其特点 程序并发执行的特点 并发程序之间相互制约。由于系统中多个程序并发执行着,它们共享系统中的硬件资源和软件资源,有时相互竞争地使用系统资源,有时又要相互合作共同完成一项任务,因此,并发程序之间存在着相互制约的关系。正由于并发程序之间存在着相互制约的关系,每个并发程序所处的外部环境由多个并发程序共同确定,因此,外界环境不断地变化,而并发程序的状态也不停地随之变化,常走走停停,出现了执行—暂停—执行的活动规律。 制约关系可分为两类:直接制约和间接制约。 直接制约发生在具有合作关系的并发程序之间。例如,一个程序段C执行时产生计算结果,并送到指定的缓存区M中,而另一个程序段P执行时从上述的缓存区M中取出计算结果,然后打印。很显然,程序段C和程序段P之间就存在直接制约关系:如果程序段C没有产生计算结果,并送到存储区M中,那么程序段P就将一直等待下去。程序段C对程序段P就产生了直接制约。 间接制约发生在彼此间相互独立的并发程序之间,是由于它们竞争使用系统中的资源引起的。例如,两个并发程序竞争地使用打印机,得到打印机的并发程序就可以继续执行下去,而未得到打印机并发程序只好暂停等待。这两个并发程序之间就存在着间接制约。 失去封闭性的案例 读程序段push和程序段pop合作操作一个数据栈S的情形。 设数据栈S有n个单元,栈顶指针为top。 程序段push将一个数据x压入栈顶, 程序段pop从栈顶取出数据,并返回之。 失去封闭性的案例 现假设某时刻栈S的情形如图中的图(a)所示。在程序顺序执行模式下,无论是先执行程序段push或pop,都没有问题。但如程序采用并发执行方式,那么栈S成为两者的共享资源,由于各个程序段执行的速度无法预知,各个并发程序段的语句可能交织穿插地执行,很可能产生异常或失败。试分析如下两
文档评论(0)