您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 第4章进程及进程管理1
第4章进程2019/12/182本章主要内容4.1进程的引入4.2进程的概念4.3进程控制4.4进程之间的约束关系4.5同步机构4.6进程互斥与同步的实现4.7进程通信4.8线程概念及特点4.9Linux系统的进程管理2019/12/1834.1进程的引入2019/12/1844.1进程的引入现代操作系统最主要的特点:实现多道程序并发执行,并由此引发资源共享。进程概念引入的目的:为了对并发执行的程序进行动态描述。进程是操作系统最核心的概念,操作系统对于资源的分配和管理都是围绕进程进行的。2019/12/185一个程序由若干个程序段组成,而这些程序段必须按照一定的先后顺序执行,称为程序的顺序执行。如下图所示,两个作业之间的运行方式就是单道顺序执行的方式:I1C1P1作业1I2C2P2作业24.1.1程序顺序及其特点2019/12/186程序顺序执行的特点:顺序性封闭性可再现性程序单道顺序执行之所以具有以上特点,是因为单道环境下作业独占系统资源。2019/12/187程序的并发执行程序ACPU设备1设备2程序B并行区4.1.2/3程序的并发执行以及“与时间有关的错误”1:程序并发执行2019/12/1882:程序并发执行产生的与时间有关的错误[例1]读写缓冲区操作写程序CPU读程序单缓冲区读程序RP写程序WP写程序CPU读程序初始态缓冲区内无数据初始态缓冲区内有数据读写单缓冲区可能产生错误示例12(1+2=一个写周期)(1+2=一个读周期)122019/12/189[例2]假设某飞机定票系统在t0时刻有A、B、C、D四个终端程序同时都要对机票库中的某航班当前剩余票数X进行操作。如果每个终端程序的当前定票需求为N,并对共享变量X进行如下操作:在机票数据库中取出当前剩余票数X;(第1步)判断X0(有票吗)?(第2步)如果有,X≥N(票够吗)?(第3步)如果够,则出票(打印票据);(第4步)X=X-N(修改剩余票数);(第5步)将X回写到数据库中;(第6步)结束开始出票,并打印票据有票吗?(X0?)票够吗?(XN?)修改剩余票数(X=X-N)从数据库中提取当前剩余票数将剩余票数X写回数据库中有无够不够2019/12/1810初始条件:设系统剩余票数为10,终端A、B需要的票数也均为10。首先,终端程序A抢先执行,当执行完第3步,正在打印票据;此时,系统调度到终端程序B的请求执行。最终结果??2019/12/1811导致“与时间有关的错误”的原因:与诸程序的执行速度有关;由于多个程序都共享了同一个变量或者互相需要协调同步;对于变量的共享或者互相协作的过程没有进行有效地控制。2019/12/1812在例中,如果诸终端程序是按照下述方式执行,则可以避免发生“与时间有关的错误”:如果A能够执行得快一点,或者时间片长一点,使它来得及将X的剩余值回写到数据库中;或者A再慢一点,使票没有出。皆不会出现“与时间有关的错误”。(与诸程序的执行速度有关)如果诸终端程序并发执行时操作的是不同的变量而不是共享变量,也不会出现“与时间有关的错误”。(共享了同一个变量)如果能够对该共享变量X在其共享过程中加以控制,实现当一个程序还没有使用完时另一个程序就不能使用,那么也可以避免“与时间有关的错误”。(没有进行有效地控制)2019/12/1813上述3种避免发生“与时间有关的错误”的方法中,操作系统无法使用前两种,因为:第1种办法不可行是因为并发程序执行时所具有的不确定性是操作系统的特征,操作系统无法控制每个程序所需要的执行速度;第2种办法不可行在于共享是操作系统的特点,是其提高资源利用率的宗旨所在。因此,操作系统只能针对第3种解决方法,在资源分配和使用的过程中通过采取有效的措施来避免发生“与时间有关的错误”,保证程序并发执行结果的正确性。2019/12/18143:程序并发执行的特点(1)失去了程序的封闭性和可再现性由于程序相互协作打破了程序的封闭性及可再现性(如例1中两程序操作单独缓冲区);由于资源共享打破了程序的封闭性及可再现性(如例2中的公共变量X,系统剩下的机票数)。2019/12/1815(2)程序与任务不再一一对应程序并发执行时,多个任务可以共存于一个程序之中,从而使得一个程序对应于多个任务。比如,多个终端用户都对服务器提出某个相同的服务请求,服务器则需要针对每个用户创建一个任务去分别完成,这些针对不同用户的不同任务执行的却是相同的服务程序;另外,一个任务中也可能涉及多个程序调用或转移,从而打破了一对一的关系。2019/12/1816(3)程序并发执行中存在相互制约的关系间接制约:因多道并发而导致的对于资源的竞争和共享引起的。(例3-2)直接制约:多道并发的程序相互协作共同完成某个任务引起的。(例3-1)2019/12/1817结论:多道程序由于并发执行和共享资源,打破了单道程序由于独占资源所具有的执行过程的封闭性,并发程序在并发执行过程中相互之间会有干扰或制约,而这些干扰和制约的不可预知性和随机性给操作系统实现多道程序并发的管理和控制带来一系列需要解决的问题。为此,首先需要对并发执行的程序进行描述,然后才能进行下一步的讨论。2019/12/18184:程序并发执行的描述语句设有n个程序P1、P2、P3……Pn,用以下语句描述它们的并发执行:cobeginP1;P2;P3;…;Pi;…;Pn;coend被cobegin与coend括起来的多个程序是并发执行的,表示这n个并发程序的执行是非顺序的、由操作系统进行调度的、具有随机性的执行过程,可以是其中任意一个进程Pi先执行。2019/12/18194.2进程的概念2019/12/18204.2.1进程的定义两个事实:一个程序当它没有执行时是一个静止的、可以保存的程序,当它被系统调度执行后,它就会处于不同的状态之中。这些不同的状态是在该程序投入运行之后才可能出现的,而且与同时并发执行的其它进程的状态有关系。程序自身不可能记录执行过程中动态变化的信息。进程控制块的引入:为了描述程序并发执行的动态特征,必须为执行中的程序配置一个数据结构来描述其动态执行过程中出现的种种信息,以便操作系统进行管理和控制,从而保证程序并发执行的安全性和正确性,这个数据结构就是进程控制块。2019/12/18214.2.1进程的定义1:定义由进程控制块与程序组合,形成了一个新的实体,引入一个新的概念来描述这个新的实体,这就是“进程”。对于进程可以定义如下:进程,是一个具有一定独立功能的程序关于某个数据集合的一次运行活动,是操作系统进行调度和资源分配的基本单位。(进程是程序在并发环境中的执行过程)进程描述了程序动态执行的过程,当程序投入运行时创建进程,当程序终止时进程消亡,进程具有生命周期。2019/12/18224.2.1进程的定义2:进程与程序间的关系进程中包含了需要执行的程序,程序是进程的一个组成部分。进程与程序的关系主要体现在以下几点:进程是一个动态概念,而程序是一个静态概念进程具有并行特性,而程序没有。进程与程序之间存在多对多的联系(无一一对应关系)。程序:进程的1:n联系进程:程序的1:n联系2019/12/18234.2.1进程的定义3:进程的类型系统进程:它们是执行操作系统核心代码的进程,起着资源管理和控制的作用。用户进程:执行用户程序的进程。系统进程与用户进程的区别:系统进程被分配一个初始的资源集合,这些资源可以被它独占,也能以最高优先权使用;用户进程需要通过请求系统服务的手段竞争使用系统资源。系统进程可以做显式的、直接的I/O操作;用户进程不能直接做I/O操作。系统进程运行时CPU处于系统态(核态或管态);用户进程运行时CPU处于用户态(目态)。2019/12/18244.2.1进程的定义4:进程映像进程映像指进程实体的组成,它主要包括两个部分:程序和进程控制块。PCB用户地址空间程序和数据2019/12/18254.2.1进程的定义5.进程控制块PCB进程控制块(PCB,ProcessControlBlock)的定义:实质:定义的一个数据结构作用:控制和管理进程在执行过程中的动态信息,是进程存在的唯一标识,以此来感知进程的存在!进程与PCB的关系:每个进程有唯一的PCBOS依据PCB管理进程利用PCB来管理进程的动态、并发PCB是进程存在的唯一标志,进程存在则PCB存在,进程撤消则PCB消亡2019/12/18264.2.1进程的定义5.进程控制块PCB操作系统中的PCB一般应包含如下内容:进程标识PID、userID、进程名处理器状态信息及现场保护区CPU寄存器PC指针、栈指针进程控制信息如进程当前状态及CPU调度信息进程间的通信信息内存管理信息……2019/12/18274.2.2进程状态1.进程的三态模型•运行态(running):进程占有处理机并在其上执行其程序的状态。•阻塞态(blocked或waiting):阻塞或称等待态或睡眠态,进程等待某些事件发生(逻辑原因)。•就绪态(ready):就绪态是指进程具备了获得处理机的条件,但还未得到处理机,正在等待分配处理机(物理原因)。2019/12/18284.2.2进程状态2.进程的三态模型运行态就绪态阻塞态时间片到进程调度事件完成、I/O完成或消息到来请求I/O或等待消息2019/12/1829就绪--运行调度程序选择一个新的进程运行运行--就绪运行进程用完了时间片运行进程被中断,因为一高优先级进程处于就绪状态4.2.2进程状态2019/12/18304.2.2进程状态运行--等待对一资源的访问尚不能进行初始化I/O且必须等待结果等待某一进程提供输入(IPC)等待--就绪当所等待的事件发生时2019/12/18314.2.2进程状态3.进程的五态模型在运行态、就绪态、阻塞态的基础上增加了如下两态:•新建态(New),进程刚被创建的状态,并没有被提交执行,而是在等待操作系统完成创建进程的必要操作。•终止态(Terminated),或称僵死态,该进程不再执行,但依然临时保留在系统中等待善后。2019/12/18324.2.2进程状态3.进程的五态模型运行态就绪态阻塞态时间片到进程调度事件完成、I/O完成或消息到来请求I/O或等待消息新建态终止态exit2019/12/1833作业第4章3、5、6、9题
本文标题:第4章进程及进程管理1
链接地址:https://www.777doc.com/doc-2110027 .html