欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    操作系统原理第4章 并发处理ppt课件.ppt

    • 资源ID:2070833       资源大小:384.50KB        全文页数:100页
    • 资源格式: PPT        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    操作系统原理第4章 并发处理ppt课件.ppt

    第4章并发处理,主要内容:1 进程的引入2 进程的概念3 进程控制4 进程的相互制约关系5 进程互斥,6 信号灯和P、V操作7 进程同步8 进程通信9.UNIX系统的进程管理,4.1 并发活动进程的引入,4.1.1 程序的顺序执行(一)数据、操作对某一有限数据的集合所施行的、目的在于解决某一问题的一组有限的操作的集合,称为一个计算。(二)顺序程序一个程序由若干个程序段组成,而这些程序段的执行必须是顺序的,这个程序被称为顺序程序。,(三)顺序程序的特点1.顺序性:处理机的操作严格按照程序所规定的顺序执行2.封闭性:程序执行的结果不受外界因素的影响,即一个程序执行时所用的变量、指针值、各资源的状态不能被外界改变。3.可再现性:程序执行的结果与它的执行速度无关(即与时间无关),只与初始条件有关。,4.1.2 程序的并发执行 所谓程序的并发执行是指:若干个程序同时在系统中运行,这些程序的执行在时间上是重迭的,一个程序的执行尚未结束,另一个程序的执行已经开始,即使这种重迭是很小的一部分,那么这两个程序是并发执行的。,程序的并发执行的表示方法:1.图示方法,2语句方法(荷兰科学家E.W.Dijkstra方法)S0;cobegin S1;S2;Sn;coend Sn+1;,4.1.3 并发执行实例誉抄(一)一个循环程序的誉抄方案 假设f表示输入序列,g表示输出序列。main()while(f不空)input;/*读入f中的数据;*/output;/*输出读入的数据;*/,(二)两个并发程序的誉抄方案假设f表示输入序列,g表示输出序列,誉抄过程利用一个缓冲区A。,main()cobeginwhile(f不空)input;/*读入f中的数据;*/send;/*将读入的数据送到A;*/while(誊抄未完成)receive;/*从A中取的数据;*/output;/*输出取出的数据;*/coend,三个并发程序的誉抄方案main()if(f不空)get(s,f);while(誊抄未完成)t=s;/*COPY*/cobeginput(t,g);get(s,f);coend,4.1.4 与时间有关的错误结论:并发程序如共享某些公共变量时,并发程序执行时会出现与时间有关的错误。如,main()if(f不空)get(s,f);while(誊抄未完成)/*t=s;*/*COPY*/cobegint=s;/*COPY*/put(t,g);get(s,f);coend,4.1.5 并发程序的特点(一)失去程序的封闭性和再现性(二)程序与计算不再一一对应(三)程序并发执行的相互制约,4.2进程概念,4.2.1 进程的定义 到目前为止,进程有多种定义,如:(1)进程是程序的执行;(2)并行程序称为进程;(3)进程是可以和别的计算并发的计算;(4)进程是一个数据结构及在其上进行操作的程序。,这些定义都从不同的侧面描述了进程的特征,都一定的道理,但我们认为下面的定义更全面和更准确:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。此定义包含有如下的含义:,(1)进程是一个动态的概念,而程序是一个静态的概念;(2)进程包含了一个数据集合和运行其上的程序;(3)同一程序运行于若干不同的数据集合上时,它将属于若干个不同的进程,或者说,两个不同的进程可包含相同的程序;(4)系统分配资源是以进程为单位的,所以只有进程才可能在不同的时刻处于几种不同的状态,即等待、就绪、运行。(5)从微观上看,进程是轮换地占有处理机而运行的,从宏观上看,进程是并发地运行的。,进程和程序是即有联系又有区别的两个概念,它们的区别和关系如下:(1)程序是指令的有序集合,其本身没有任何运行的含义,它是一个静态概念。而进程是程序在处理机上的一次执行过程,它是一动态概念。程序可以作为一种软件资料长期保存,而进程是有一定生命周期的,它能够动态地产生和消亡。即进程可由“创新”而产生,由调度而执行,因得不到资源而暂停,以致最后由“撤消”而消亡。,(2)进程是一个能独立运行的单位,能与其它进程并行地活动。(3)进程是竞争计算机系统有限资源的基本单位,也是进行处理机调度的基本单位。(4)同一程序同时运行于若干不同的数据集合上,它将属于若干个不同的进程。或者说,若干个不同的进程可以包含相同的程序。这句话的意思是:用同一程序对不同的数据先后或同时加以处理,就对应与好几个进程。例如,系统具有一个输入子程序,当它输入不同的作业时就形成了输入进程I1、I2、I3In。,进程的构成 进程=PCB+程序+数据,4.2.2 进程的类型1系统进程2用户进程3系统进程与用户进程的区别:(1)系统进程被分配一个初始的资源集合,这些资源可以独占,也可以最高优先权资格优先使用。用户进程通过系统服务请求的手段竞争系统资源。(2)系统进程可以进行显示的、直接的I/O操作。用户进程不进行直接的I/O操作。(3)系统进程在管态下活动。用户进程在目态下活动。,4.2.3 进程的状态(一)进程的基本状态(1)就绪状态:存在于处理机调度队列中的那些进程,它们已经准备就绪,一旦得到CPU就立即可以运行,这些进程所处的状态为就绪状态。(2)运行状态:当进程由调度/分派模块分派后,得到中央处理机控制权,它的程序正在运行,该进程所处的状态为运行状态。(3)等待状态:若一进程正在等待着某一事件发生(如等待输入输出操作的完成)而暂时停止执行,这时,即使给它CPU时间,它也无法执行,则称该进程处于等待状态。又可称为阻塞状态或挂起状态。,(二)进程状态变迁图在进程状态变迁图中,以结点表示进程的状态,以箭头表示状态的变化。,(三)引起进程状态转换的4原因(1)CPU调度(低级调度):CPU调度按某种原则从就绪队列中调度一个进程到CPU上运行,该进程就从就绪状态变为运行状态;与此同时,原运行进程从运行状态变为就绪状态。因此,这两种状态变化是同时发生的。(2)进程在运行过程中需要等待某一事件,例如,等待分配某一资源,等待I/O操作完成等。一个进程在需要等待某一事件时主动退出CPU,并使自己处于阻塞状态,引起状态变化。,(3)如果进程所等待的事件发生了变化,例如,一次I/O完成了,于是进程便被解除阻塞状态,变为就绪状态。(4)一个具体的进程在任何一个指定的时刻必须而且只能处于一种状态。,(四)进程状态转换的说明(1)进程之间的状态转换并非都是可逆的进程既不能从等待变为运行,也不能从就绪变为等待。(2)进程之间的状态转换并非都是主动的,在很多情况下都是“它动的”事实上,只有运行到等待的转换是进程的主动行为(主动调用调度管理程序),其它都是它动的,例如,从执行到就绪,通常是时钟中断引起的,从等待到就绪,是一个进程把另一个进程唤醒。,4.2.4进程的描述-进程控制块进程控制块(process control block,PCB)是进程的重要组成部分,是操作系统能“感知”进程存在的唯一标志,它和进程是一一对应的,操作系统正是通过管理PCB来管理进程的。为了描述一个进程和其它进程相联系的数据块,称为进程控制块pcb(process control block)或称为进程描述器(process descriptor)。包含下面的内容:,(1)进程标识符name(2)进程当前状态status(3)当前队列指针next(4)总链指针all-q next(5)进程开始地址start-addr(6)进程优先级priority(7)CPU现场保护区cpustatus(8)通信信息communication-information(9)家族联系process-family(10)占用资源清单own-resource,4.3进程控制,4.3.1进程控制的概念 进程控制的职责是对系统中的全部进程实施有效的管理,它是处理机管理的一部分,当系统允许多进程并发执行是,为了实现共享、协调并发进程的关系,处理机管理机就提供对进程实行有效的功能。用于进程控制的原语有:创建原语、撤消原语、阻塞原语、唤醒原语等,原语 一般,我们把系统态下执行的某些具有特定功能的程序段成为原语,原语可是机器指令级的扩充,其特点是执行期间不允许中断、它是一个不可分割的基本单位。它们都在系统态下执行,且都是为了完成某个系统管理所需要的功能和被高层软件调用。,4.3.2进程创建进程创建的方式有两种:(a)由系统程序模块统一创建。例如在批处理系统中,由操作系统的作业调度程序为用户进程创建相应的进程以完成用户作业所要求的功能。(b)由父进程创建。例如在UNIX操作系统中,父进程创建子进程以完成并行工作。,create(name,priority,start_add)在总链队列上查找有无同名的进程;if(有同名的进程)return(错误码);从pcb资源池申请一个空闲的pcb结构;if(无空pcb结构)return(错误码);用入口参数设置pcb内容;置进程为“就绪”状态;将新进程的pcb插入就绪队列;将新进程的pcb插入总链队列;return(新进程的pid);,4.3.3进程撤消进程撤消的原因:1)该进程已完成所要求的功能而正常终止。2)由于某种错误导致非正常终止。,Kill()由运行指针得到当前进程的pid;释放本进程所占资源给父进程;将该进程从总链队列中摘除;释放该进程的pcb;转进程调度程序;,4.3.4进程等待(阻塞)阻塞原语在一个进程期待某一事件发生但发生条件尚不具备时,被该进程自己调用来阻塞自己。阻塞原语在阻塞一个进程时,由于该进程正处于执行状态,故应先中断处理机和保存该进程的处理机现场,然后被阻塞进程置阻塞状态后插入等待队列中,再转进程调度程序选择新的就绪进程投入运行。,susp(chan)/*入口参数chan,进程等待的原因*/保护现行进程的CPU现场到pcb结构中;置进程为“等待”状态;将该进程的pcb插入到等待chan的等待队列中;转进程调度;,4.3.5进程唤醒进程唤醒的两种方法1)由系统进程唤醒 系统统一控制事件的发生并将“事件发生”这一消息通知等待进程。2)由事件发生进程唤醒,wakeup(chan)/*输入:chan等待的事件(阻塞原因)输出:无*/找到该等待chan的队列指针;for(等待该事件的进程)将进程移出此等待队列;置进程为“就绪”状态;将进程pcb入就绪队列;,4.3.6进程延迟 delay(seconds)/*seconds为所需延迟秒数*/保护调用进程的CUP现场;clock_ticks=secondsX(clock_rate);/*需延迟的机内时间,clock_rate 为时钟速率*/封锁延迟队列;以clock_ticks值查找延迟队列;找到合适位置插入;/*延迟队列按延迟时间升序排队*/解除延迟队列;置进程为延迟状态;转进程调度;,4.4 进程的相互制约关系,资源共享是当代计算机系统的一个重要特征。而资源共享导致进程之间存在相互制约关系。,资源共享的方式(两种),1.由系统进行统一分配凡需要使用共享资源的进程,先向系统申请,然后由系统根据资源情况,按一定的策略进行分配。如,进程对处理机的共享,靠操作系统的进程调度程序来协调;内存的共享,靠操作系统的内存管理程序来协调。,2.由程序自行使用系统中的某些资源无需系统分配,而由进程自行使用,如数据集、变量、队列等。共享这些资源时,靠操作系统提供的同步机构来协调,进程合作,进程合作时,必定会出现数据的共享,如消息的传递等。,4.4.2 进程互斥与同步,同步:所谓进程同步就是对于进程操作的时间顺序所加的某种限制。也可以说进程同步是进程间共同完成一项任务是直接发生相互作用的关系,也就是说,这些具有伙伴关系的进程在执行时间次序上必须遵循确定的规律。,互斥:在操作系统中,当某一进程正在访问某一存储区域时,就不允许其它进程来读出或者修改存储区的内容,否则就会发生后果无法估计的错误。我们把进程之间的这种相互制约关系称为互斥。也可以说,进程的互斥是因为对同一物理资源的竞争而产生的相互制约关系。,同步与互斥的特点比较,临界资源和临界区我们把一次只允许一个进程使用的资源称为临界资源,而把在每个进程中访问临界资源的程序段称为临界区。要进入临界区的若干个进程必须满足如下关系:(1)一次只允许一个进程进入临界区。(2)任何时候,处于临界区的进程不得多于一个。(3)进入临界区的进程要在有限的时间内退出。(4)如果不能进入自己的临界区,则应让出处理机资源。,4.5.同步机构4.5.1 锁和上锁、开锁操作对应于每一共享数据块或设备都要有一个单独的锁位。按惯例,常用锁位w值为“0”表示资源可用,而用“1”表示资源已经被占用。这样,进程使用某一共享资源之前就必须完成下列动作(即关锁操作):(1)考察锁位的值(是0还是1);(2)如果原来的值为0,将锁位置1(表示占用资源);(3)如果原来的值为1(即资源已被占用),则返回第一步再考察。当前进程使用完资源后,它将锁位置成“0”,称为开锁操作。,局限性:只要有一个进程由于执行关锁操作而进入临界区,则其它进程在检查锁状态时都将反复执行关锁操作,从而导致处理机繁忙。现在一般采用硬件指令来解决互斥进入临界区问题。,lock(w)while(w=1)保护现行进程的CPU现场;现行进程入等W的队列;将该进程登记为“等待”状态;转到进程调度;w=1;/*上锁*/,unlock(w)if(等W的队列不空)移出等W的队列的首元素;将该进程入就绪队列;将该进程登记为“就绪”状态;w=0;/*开锁*/,4.5.2 信号灯和P、V操作,1.信号灯的概念P、V操作是荷兰科学家E.W.Dijkstra在1965年提出的一种解决同步、互斥问题的更通用的方法,并在THE操作系统中得以实现。P是荷兰语发信号的开头字母,V是等待的开头字母。信号灯是一个确定的二元组(s,q),s为信号灯的值,是整型变量;q是指向PCB的队列。,信号量的值s与相应资源的使用状态有关。(1)当它的值0时,它表示可用资源的数量;(2)当它的值0时,其绝对值表示等待使用该资源的进程个数,即在该信号量队列上排队的PCB的个数。(3)当它的值0时,无可用资源,同时也无等待使用该资源的进程信号量的一般数据结构及PCB队列如图,信号灯的值只能通过p、v操作来改变。其可能的取值范围是,负数值、零、正数值。信号灯的是操作系统中实现进程见同步和通信的一种常用工具。,2.p、v操作,设信号量为S,对S的P操作记为P(S),对它的V操作记为V(S)。P、V操作的含义是:P(S)操作顺序执行下述动作:1)S=S-1 2)S=0说明当前进程q有资源可执行;3)S0 说明无资源,则当前进程挂起或封锁,将该进程插入排队到该信号量等待队列的队尾,并放弃处理机,进行等待(直到其它进程在S上执行V操作,把资源释放出来为止)。,V(S)操作顺序执行下述动作:1)S=S+1;2)如果S0,则该进程继续运行;3)如果S=0,则释放信号队列上的第一个PCB(即信号量指针所指向的PCB)所对应的进程(把阻塞态改为就绪态),执行V操作的进程继续运行。,4.6 进程互斥与同步的实现4.6.1 用上锁原语和开锁原语实现进程互斥,main()int w=0;cobeginppa();ppb();coend ppa()lock(w);csa;/*临界区*/unlock(w);,ppb()lock(w);csa;/*临界区*/unlock(w);,4.6.2 用信号灯实现进程互斥,main()int mutex=1;/*互斥作用*/cobegin pa();pb();coend pa();p(mutex);csa;/*临界段*/v(mutex);;,pb();p(mutex);csb;/*临界段*/v(mutex);;,4.6.3 进程同步的实现,同步的概念所谓同步,就是并发进程在一些关键点上可能需要互相等待与互通消息,这种相互制约的等待与互通消息称为进程同步。,同步的例子,SPOOLing 系统中的输入功能可以由两个进程A和B完成,进程A负责从读卡机上把卡片上的信息读到一个缓冲区中,进程B负责把该缓冲区中的信息进行加工并写到外存输入井中。要实现两者的协同工作,两个进程必须满足如下的制约关系:,只有当缓冲区的内容取空时,进程A才能向其中写入新信息;只有当缓冲区写满时,进程B才能从中取出内容作进一步加工和转送工作。可见,在缓冲区内容区空时,进程B不应该继续运行,需要等待进程A向其中送入新的信息;反之,当缓冲区中的信息尚未取走时,进程A应等待,防止把原有的信息冲掉,造成丢失信息的结果。进程A和进程B就是一种同步关系。,用信号灯实现进程同步,信号灯可以解决进程的同步问题。一般同步问题可以分为两类:一类是保证一组合作进程按逻辑需要所确定的执行次序;另一类是保证共享缓冲区(或共享数据)的合作进程的同步。,main()int s1=0;/*表示有无化验单*/int s2=0;/*表示有无化验结果*/cobegin labora();diagnosis();coend labora()while(化验工作未完成)p(s1);/*询问有无化验单,若无则等*/,化验工作;v(s2);/*送出化验结果*/diagnosis()while(看病工作未完成)看病;v(s1);/*送出化验单*/p(s2);/*等化验结果*/diagnosis;/*诊断*/,(一)合作进程的执行次序,main()int sb=0;/*表示Pb进程能否开始执行*/int sc=0;/*表示Pc进程能否开始执行*/cobegin pa();pb();pc();coend,pa();v(sb);v(sc);pb()p(sb);;pc()p(sc);;,(二)共享缓冲区的合作进程的同步,main()int sa=0;/*表示buf中有无信息*/int sb=1;/*表示buf中有无空位置*/cobegin cp();iop();coend cp()while(计算未完成)得到一个计算结果;,p(sb);将数送到缓冲区中;v(sa);iop()while(打印工作未完成);p(sa);从缓冲区中取一数;v(sb);从打印机上输出;,4.6.4生产者-消费者问题(producer-consumer problem),生产者-消费者问题表述如下:有n 个生产者和m个消费者,连接在一个有k 个单位缓冲区的有界缓冲上,故又叫有界缓冲问题。其中,pi 和cj 都是并发进程,只要缓冲区未满,生产者pi 生产的产品就可投入缓冲区;类似地,只要缓冲区不空,消费者进程cj 就可从缓冲区取走并消耗产品。,可以用程序把生产者-消费者问题的算法描述如下:,main()int full=0;/*满缓冲区的数目*/int empty=n;/*空缓冲区的数目*/int mutex=1;/*互斥作用*/cobegin producer();consumer();coend producer()while(生产未完成);生产一个产品;,p(empty);p(mutex);送一个产品到有界缓冲区中;v(mutex)v(full);consumer()while(还要继续消费);p(full);p(mutex);从有界缓冲区中取产品;v(mutex);v(empty);消费一个产品;;,哲学家吃通心面问题,下面再来讨论使用信号量和P、V 操作解决操作系统经典的五个哲学家吃通心面问题(Dijkstra,1965)。有五个哲学家围坐在一圆桌旁,桌子中央有一盘通心面,每人面前有一只空盘子,每两人之间放一把叉子。每个哲学家思考、饥饿、然后,欲吃通心面。为了吃面,每个哲学家必须获得两把叉子,且每人只能直接从自己左边或右边去取叉子。,五个哲学家吃通心面问题,在这道经典题目中,每一把叉子都是必须互斥使用的,因此,应为每把叉子设置一个互斥信号量Si(i=0,1,2,3,4),初值均为1。当一个哲学家吃通心面之前必须获得自己左边和右边的两把叉子,即执行两个P 操作,吃完通心面后必须放下叉子,即执行两个V 操作。程序如下:,main()int fork0.4=1,1,1,1,1,1;cobegin p1;p2;p3;p4;p5;coend,process Pi/*i=0,1,2,3,4 while()思考;P(forki);P(forki+1 mod 5);吃通心面;V(forki);V(forki+1 mod 5);,上述解法中,如果五个哲学家先执行P(forki),再执行P(forki+1 mod 5)的话,就有可能出现每个哲学家举起左边一把叉子,却又在永远等待相邻哲学家手中的叉子的情况。有若干种办法可避免这类死锁:(1)至多允许四个哲学家同时吃。(2)奇数号先取左手边的叉子,然后再取右手边的叉子;偶数号先取右手边的叉子,然后,再取左手边的叉子。(3)每个哲学家取到手边的两把叉子才吃,否则,一把叉子也不取。,读者与写者问题(reader-writer problem),读者与写者问题(Courtois,1971)也是一个经典的并发程序设计问题。有两组并发进程:读者和写者,共享一个文件F,要求:(1)允许多个读者可同时对文件执行读操作;(2)只允许一个写者往文件中写信息;(3)任一写者在完成写操作之前不允许其他读者或写者工作;(4)写者执行写操作前,应让已有的写者和读者全部退出。,Reader_i()P(mutex);rc=rc+1;if rc=1 then P(W);V(mutex);读文件;P(mutex);rc=rc-1;if rc=0 then V(W);V(mutex);,Writer_j()P(W);写文件;V(W);,其中:i=1,2,n;j=1,2,m;,main()int W=1,mutex=1;int rc=0;/*读进程计数*/cobegin Reader_i;Writer_j;coend,4.7 进程通信,.7.进程通信的概念并发进程之间的交互必须满足两个基本要求:同步和通信。进程竞争资源时要实施互斥,互斥是一种特殊的同步,实质上需要解决好进程同步问题,进程同步是一种进程通信,通过修改信号量,进程之间可建立起联系,相互协调运行和协同工作。但是信号量与PV 操作只能传递信号,没有传递数据的能力。,有些情况下进程之间交换的信息量虽很少,例如,仅仅交换某个状态信息,但很多情况下进程之间需要交换大批数据,例如,传送一批信息或整个文件,这可以通过一种新的通信机制来完成,进程之间互相交换信息的工作称之为进程通信IPC(InterProcess Communication)。,进程通信是指进程之间可直接以较高的效率传达较多数据的信息交换方式。这种方式中采用的是通信机构,如消息发送和接收、邮箱结构等,在进程通信时往往以消息形式传递信息。消息是指进程之间相互传送的赖以发生交互作用的有结构的数据。,进程间通信的方式很多,大致分为四类:1、信号(signal)通信机制;2、信号量及其原语操作(PV、读写锁、管程)控制的共享存储区(shared memory)通信机制;3、管道(pipeline)提供的共享文件(shared file)通信机制;4、信箱和发信/收信原语的消息传递(message passing)通信机制。,其中前两种通信方式由于交换的信息量少且效率低下,故称为低级通信机制,相应地可把发信号/收信号及PV 之类操作称为低级通信原语,仅适用于集中式操作系统。消息传递机制属于高级通信机制,共享文件通信机制是消息传递机制的变种,这两种通信机制,既适用于集中式操作系统,又适用于分布式操作系统。,信号通信机制,信号(signal)机制又称软中断,是一种进程之间进行通信的简单通信机制,通过发送一个指定信号来通知进程某个异常事件发生,并进行适当处理。进程运行时不时地检查有无软中断信号到达,如果有,则中断原来正在执行的程序,转向该信号的处理程序对该事件进行处理,处理结束后便可返回原程序的断点执行。,一般地可以分成OS 标准信号和用户进程自定义信号,这种机制类似硬件中断,不分优先级,简单有效,但不能传送数据。信号不但能从内核发给一个进程,也能由一个进程发给同组的另一个进程或多个进程。,举例:,当系统正在运行一个耗时的前台程序,如若已发现有错误,并断定该程序要失败,为了节省时间,用户可以按软中断键(一般为ctrl+alt+del)停止程序的执行,这一过程中就用到了信号(signal)。系统具体的操作为:响应键盘输入的中断处理程序向发来中断信号的终端进程发一个信号,进程收到信号后,完成相关处理,然后执行终止。,共享文件通信机制,管道(pipeline)是连接读写进程的一个特殊文件,允许进程按先进先出方式传送数据,也能使进程同步执行操作。如图所示,发送进程视管道文件为输出文件,以字符流形式把大量数据送入管道;接收进程将管道文件视为输入文件,从管道中接收数据,所以,也叫管道通信。由于方便有效,能在进程间作大量信息的通信,目前已被引入到许多操作系统中。,管道和消息队列的主要区别在于:管道中的消息是无界的,它存于外存;消息队列是位于内存。,.7.消息缓冲通信消息传递方式分为直接通信方式和间接通讯方式两种,而直接通讯方式的消息缓冲为基本的进程通讯方式。发送进程直接将消息挂在接收进程的消息缓冲队列上,接收进程从消息缓冲队列中得到消息。基本的有发送(send)消息和读取(receive)消息两条原语。,(a)send 用于进程发送信息。例如,发送进程向接收进程发送消息的过程如下:1)发送进程在发送消息前,在本进程所占空间中开辟一发送区;2)使用send原语send(m);3)send程序向系统申请一个消息缓冲区,将发送区中消息正文、长度和发送进程名填入;4)将缓冲区挂到接收消息的接收进程消息链链尾;5)退出send,发送进程继续执行。,(b)receive用于进程接收消息。例如,接收进程读发送进程发送的消息的过程如下:1)接收进程在接收消息前,在本进程所占空间中开辟一接收区;2)使用receive原语receive(n,sid);3)receive程序将接收进程消息链区中第一个消息缓冲区中的内容、长度、本消息发送者名字,填入接收区;4)将缓冲区从消息链中摘除,释放缓冲区;5)退出receive程序,接收进程继续执行。详见图示,(一)发送原语 MODULE 4.22(二)接收原语 MODULE 4.23,4.9 线程,1线程的定义线程(thread)并没有统一的定义。多线程首先是在多处理机系统的并行处理中提出来的。简单地讲,进程就是程序的一次执行过程。而线程是由进程派生出来的一组代码(指令组)的执行过程。Windows 98/NT使用线程的概念。2线程的特点 线程是由进程派生出来的,一个进程可以产生多个线程,线程的特点是共享进程的内存空间,它们可以并发、异步地执行。,3 线程的优点(1)使同一个程序能有几个并发执行的路径,提高了执行速度;(2)线程需要的开销比进程小.,4.线程与进程的主要区别进程是任务调度的单位,也是系统资源的分配单位。而当系统支持多线程处理时,线程(不是进程)是任务调度的单位,但线程不是系统资源的分配单位。例如:一个程序A按两个并发进程和两个并发线程分解的情况如下,5线程的状态及变迁,6多线程程序设计技术 指单个程序中包含并发执行的多个线程。,谢谢!,Dijkstra:1930-2002著名的计算机科学和工业先锋。获得数学和物理双学位,和计算机博士。1972年获得图灵奖。1974年 AFIPS Harry Goode Award,1982 IEEE计算机先锋奖,1989 ACM,因对计算机教育的非凡成就,SIGCSE奖;他提出将操作系统作为同步序列方式处理;最短路算法;极力倡导在程序中放弃使用GOTO的领导人物。,

    注意事项

    本文(操作系统原理第4章 并发处理ppt课件.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开