- 1、本文档共121页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
进程间通信IPC-Read
第二章 进程管理 为了描述程序在并发执行时对系统资源的共享,我们需要一个描述程序执行时动态特征的概念,这就是进程或线程。在本章中,我们将讨论进程的概念和进程间的关系。 2.1 进程的基本概念 2.1.1 程序的执行特征 程序的执行有两种方式:顺序执行和并发执行。 1)顺序执行是单道批处理系统的执行方式。 顺序执行的特征: 顺序性:按照程序结构所指定的次序(可能有分支或循环) 封闭性:独占全部资源,计算机的状态只由于该程序的控制逻辑所决定,结果不受外界因数的影响 可再现性:初始条件相同则结果相同。如:可通过空指令控制时间关系。 2)程序的并发执行 引入并发执行的目的是为了提高资源利用率。 并发执行的特征: 间断性:表现为“走走停停”,一个程序可能走到中途停下来,失去原有的时序关系; 失去封闭性:共享资源,受其他程序的控制逻辑的影响。如:一个程序写到存储器中的数据可能被另一个程序修改,失去原有的不变特征。 失去可再现性:失去封闭性 -失去可再现性;外界环境在程序的两次执行期间发生变化,失去原有的可重复特征。 并发执行的条件:达到封闭性和可再现性(正确性的要求)。 2.1.2 进程的定义与特征 1. 进程的定义 一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程。 它对应处理机、存储器和外设等资源的分配和回收 引入多进程,提高了对硬件资源的利用率,但又带来额外的空间和时间开销,增加了OS 的复杂性 2. 进程的特征 (1)动态性:创建产生,调度执行,受制于资源,撤销消亡。 进程具有动态的地址空间(数量和内容),地址空间上包括:代码、数据、进程控制块(PCB) (2)并发性:多个进程同时存在于内存,宏观上同时运行。 (3)独立性:资源分配的单位。 各进程的地址空间相互独立,除非采用进程间通信手段 (4)异步性:异步方式运行。 (5)结构化:代码段,数据段和进程控制块(PCB) 组成。 进程控制块包含在核心区 程序文件中通常也划分为代码段和数据段, 内存核心段通常存放OS核心部分,由各个进程共享,包括各进程的PCB。 3. 进程与程序的区别 1)?进程是动态的,程序是静态的;程序是有序代码的集合;进程是程序的执行。 2)?进程是暂时的,程序是永久的。 3)?进程与程序的组成不同:进程的组成包括程序、数据和进程控制块(即进程状态信息)。 4)??进程与程序的对应关系:通过多次执行,一个程序可对应多个进程;通过调用关系,一个进程可包括多个程序。 2.1.3 进程的基本状态 ?创建状态(New):进程刚创建,(一种可能的原因是OS对并发进程数的限制);如:分配和建立PCB表项(可能有数目限制)、建立资源表格(如打开文件表)并分配资源,加载程序并建立地址空间表。 结束状态(Exit):进程已结束运行,回收除PCB之外的其他资源,并让其他进程从PCB中收集有关信息(例如记帐,将退出码exit code传递给父进程)。 3.引起状态转换的事件 1)?创建新进程:创建一个新进程,以运行一个程序。可能的原因为:用户登录、OS创建以提供某项服务、批处理作业。 2)?收容(Admit, 也称为提交或接纳):收容一个新进程,进入就绪状态。由于性能、内存、进程总数等原因,系统会限制并发进程总数。 3)?调度运行(Dispatch):从就绪进程表中选择一个进程,进入运行状态; 4)?释放(Release):由于进程完成或失败而中止进程运行,进入结束状态; 运行到结束:分为正常退出Exit和异常退出Abort(执行超时或内存不够,非法指令或地址,I/O失败,被其他进程所终止,) 5)?超时(Timeout):由于用完时间片或高优先级进程就绪等导致进程暂停运行;进程由运行态→就绪态 6)?事件等待(Event Wait):进程要求的事件未出现而进入阻塞;可能的原因包括:申请系统服务或资源、通信、I/O操作等; 7)事件出现(Event Occurs):进程等待的事件出现;如:操作完成、申请成功等; 4、引入挂起状态 (1)引入挂起状态的原因 1)高优先级的进程要执行,而内存不空,系统将低优先级进程对换至外存。 2)提高处理机效率:就绪进程表为空时,要提交新进程,而此时内存不空,以提高处理机效率; 3)为运行进程提供足够内存(对换及调整负荷):资源紧张时,暂停某些进程,如:CPU繁忙(或实时任务执行),内存紧张 4)用于调试(终端用户或父进程):在调试时,挂起被调试进程(从而对其地址空间进行读写) (2)引入的新状态 注:这里只列出了意义有变化或新的状态。 1)????? 就绪状态(Ready):进程在内存且可立即进入运行状态; 2)????? 就绪挂起状态(Ready, suspend):进程在外存,但只要进入内存,即可运
文档评论(0)