- 1、本文档共102页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章进程管理 3.1进程的引入和定义 3.2进程的状态与转换 3.3进程的描述 3.4进程的调度 3.5进程间的通信 3.6死锁 3.7线程 3.8综合应用 3.1进程的引入和定义 3.1.1 程序的顺序执行与特点 当用户要求计算机完成某项工作时,必须使用一定的指令,按照一定的步骤编写能在计算机上运行的“程序”。“程序”是指令的集合,它体现了用户要求计算机完成特定功能的执行步骤。 在早期的计算机系统中,编制一个程序时,通常是按顺序进行设计的。这个程序运行时,将独占整个计算机系统中的各种软件、硬件资源,其他程序只能等待。我们把一个具有独立功能的程序独占处理机直至得到最终结果的过程称为程序的顺序执行。 3.1进程的引入和定义 假设有n个用户作业,每个作业都有相应的3个程序段。若用节点代表各程序段的操作:用节点I代表输入,节点P代表计算,节点O代表打印,用箭头指示操作的先后次序,则顺序程序的执行过程如图3-1表示。 显然,程序的顺序执行具有下述特征。 1.顺序性 处理机的操作严格按照程序所规定的顺序执行。一个程序开始执行时必须要等到前一个程序已执行完成。绝对不可能出现在一个程序执行过程中,又夹杂另一个程序执行的现象。 3.1进程的引入和定义 2.封闭性 程序执行的最终结果由给定的初始条件决定。程序一旦开始执行,其执行结果不受外界因素的影响。任何时候,位于内存中的程序可以使用系统中的一切资源,不可能有其他程序与之竞争。 3.可再现性 程序执行的最终结果与执行速度无关,只要程序执行时的环境和初始条件相同,无论执行多少次,程序的运算结果都是相同的。 程序执行时独占系统中的全部软、硬件资源,资源的使用状态(除了初始状态)只能由程序本身确定。换言之,只有该程序的操作才能改变它,它不受外界因素的影响。 3.1进程的引入和定义 3.1.2程序的并发执行及其特点 为了提高计算机系统的处理能力和资源的利用率,就应该让多道程序同时在计算机中交替执行。当一道程序不使用CPU时,另一道程序应马上占用CPU,使CPU和各种外设并行工作,这样就可大大提高CPU的利用率。由于通道和中断技术的出现,在计算机系统中引入了多道程序系统,使得多个程序在时间上可以重叠执行,称之为并发执行。 采用多道程序后系统资源得到了充分的利用。在内存中可同时驻留多道程序,从宏观上看,多道程序在同时执行,而微观上这几道程序是交替地按顺序执行的,如图3-2所示。 3.1进程的引入和定义 对于单CPU系统而言,它们只能轮流地占用CPU。也就是说,程序的并发执行是指一组在逻辑上互相独立的程序在一段时间间隔之内的交替执行。由此可见,程序的并发执行在其执行时间上存在着宏观上的相互重叠。 相对单道程序系统而言,并发程序的引入提高了系统资源的利用率,但由于并发进程共享处理机、内存、外设等系统资源,并发进程的执行就产生了与单道环境下的顺序程序执行不同的特点,具体如下。 1.程序的封闭性和可再现性不复存在 由于多道程序共享系统内的各种资源,使得资源的状态不再受制于一道程序,而是由多道程序的活动共同决定。 3.1进程的引入和定义 2.程序之间的相互制约性 一组并发程序执行时,虽然它们各白具有相对独立的功能,但由于它们共享系统中的软、硬件资源,同时程序之间相互合作完成一项共同任务,这使得并发程序之间常常相互依赖、相互制约。 由此可见,相互制约将导致并发程序具有“执行-暂停-执行”的活动规律,使程序的执行出现了间断性。 3.程序与计算不再一一对应 程序是指令的有序集合,是静态的概念;而计算是指令序列在CPU上的执行过程,是动态的概念。程序顺序执行时,一个程序只能对应一个计算,程序与计算之间存在着一一对应的关系。 3.1进程的引入和定义 而程序并发执行时,一个共享程序可被多个用户作业调用,以使该程序处于多个执行过程中,从而形成了多个计算,显然这时程序与计算已不再一一对应。 4.独立性 并发程序在执行过程中,既然是一个独立的执行实体,它也就必然作为一个独立的单位去获取资源,否则将无法独立运行。例如,每当某接收程序要接收数据时,必须申请相应数量的缓冲区,只要系统为它分配了所需的缓冲区后,它便可执行接收操作。由于信息的到达是随机的,因此接收进程随时都有申请缓冲区的要求,用完后要立即释放缓冲区。 3.1进程的引入和定义 3.1.3进程的定义与特征 1.进程的定义 多道程序在执行时,需要共享系统资源,从而导致各程序在执行过程中出现相互制约的关系,程序的执行表现出间断性的特征。这些特征都是在程序的执行过程中发生的,是动态的过程,而传统的程序本身是一组指令的集合,是一个静态的概念,无法描述程序在内存中的执行情况,即无法从程序的字面上看出它何时执行,何时停顿,也无法看出它与其他执行程序的关系,因此,程序这个静态概念已不能如实
文档评论(0)