课件第四章并发处理_第1页
课件第四章并发处理_第2页
课件第四章并发处理_第3页
课件第四章并发处理_第4页
课件第四章并发处理_第5页
已阅读5页,还剩214页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

线程2操作系统的特性之一是并发与共享,即在系统中(内存)同时存在几个相互独立的程序,这些程序在系统中既交叉地运行,又要共享系统中的资源,这就会引起一系列的问题,包括:对资源的竞争、运 3 5有n个作业,每个作业都有三个处理步骤,输入数据、处理、输出,即Ii,Ci,Pi(i=1,2,3,...,n)。作业1I1C1作业2I2C2┇作业nInCn678若两个进程的程序p1和p2能满足Bernstein条件、即9S1:a:=x+S2:b:=z+S3:c:=a-S4:w:=c+R(S1)={x,y},R(S2)={z},R(S3)={a,b},可见S1和S2可并发执行,因为,满足Bernstein其中Si(i=1,2,3,...,n)表示n个语句(程序段),这n个语句用cobegin和coend括起来表示这n个语句 假设有一个程序由S0-Sn+1个语是等待。假设一个飞机订票系统有两个终端,分别运行进程Tl和T2Tl和T2共享Aj错误1:假设初值Aj=5,有可能出现买了两张borrow和return共享了表示主存物理资源的临界变量如果,一个进程调用borrow申请主存,发现B>x,但此时 线程在多道程序设计的环境下,为了描述程序在计算机系统内进程的概念来自于麻省理工的MULTICS、IBMTSS/360,1、程序是指令的集合,是静态的概念。进程是程序在处2、进程是一个独立的运行单位,能与其它进程并行(并3、进程是竞争计算机系统有限资源的基本单位,也是进在系统中同时有多个进程存在,但归纳起来有两大1、系统进程执行操作系统 代码的进程。系统2、用户进程——暂停——①②③等待状态(又称阻塞、挂起、睡眠就绪—运行(进程调度) 静止就绪(suspend)(→活跃就绪活跃阻塞(→活跃就绪静止阻塞(→静止就绪 境合称为进程上下文(processcontext)。(1)什么是进程控制 程控制块pcb(processcontrolblock)。UNIXSystemV中,进程上下文由用户级上下文,寄存器 索引

PCBPCBPCBPCBPCBPCBPCBPCBPCBPCB…PCB等待队1 等待队2一个进程从一个所在的队列中退出的称为出队。一个进程排入到一个指定的队列中的称 是 ,进入各个队列中查询是很麻烦的进程控制是处理机管理的部分(另一部分 制的功能 上叫原语(一种特殊的系统调用)创建原阻塞原唤醒原语name为被创建进程的标识priority为进程优先start_addr进程,因等待某个的发生(如等待)其中:chan进程阻塞(睡眠)的原因pri其中:chan进程等待的原一个正在运行的进程会因等待某 (例如,等待打而当它等待的 发生后,这个进程将由阻塞状态转(1) (2) {for(该队列不为空{}} 静止阻塞)。 绪--活动阻塞)。 进程之间有两种关 进程的互斥(MutualExclusion)是指若干个进程要 引例宿舍固 的使 进进入退出剩余保证对临界去进行互什么是锁——用某假设变量w代表某种资源的状锁位值 锁位的值(是0还是1) 操作(表示占用该资源);4、当某进程使用完资源后,将锁位置为“0” 等待busywaiting)测试法,浪费CPU时间。互 资弊无法保证“空闲让进解决了“空闲让进”问弊无法保证“忙则等待可防止两进程同时进入临界弊有可能两进程都进不了临界区;违背“有限等待”原Flag[]解决互 临界if(turn!=-if(turn!=i)gototurn=-临界其他区 Untilbooleanintturn=0boolean//设置标志数void

void 临界 }临界区}

TS指令(Testand交换两个字的内 (Semaphore)展开交互。信号灯是一个确定的二元组(s,q),s是一个具有非负初值的整型变量,q是一个 S代表资源的实体。在实际应用中应准确地说明s的意义和初值,每个信号灯都有0时,表示绿灯0时,表示红灯 信号灯机制整型信号 V操作。wait和signal操作可描述为:wait(S):whileS≤0dono-S∶=S-

记录型信机中要信,准,,了待 于,10可描述88资源的数目,因而又称为资源信号灯,对它的每次wait操作,=S.value-1S.value<0时,表示该类资源已分配完毕,准则此时S.value的绝对值表示在该信号灯链表中已阻塞进个单位资源,故S.value∶=S.value+1操作表示资源数目加1。若加1后仍是S.value≤0,则表示在该信号灯链表中,仍10示只允许一个进 临界资源,此时的信号灯转化为互信号灯对信号灯的V操作记为:V(S),V若相减结果大于等于0,若结果小于0,则该进程1 设信号灯print表 引例引例1:两位同,早上8:00当一个同学先来到校门口,要等另一个同学,到齐后一独木桥 在操作系统中,同步有各种各样,但归纳起来有诸进程合作完成某工作的逻辑顺序:如看病拿药问题;对系统资源的共享:如两个进程共 个缓冲区完成 和计算相关的进程p1,p2,s1和s2初值为0,并发执行后,x,y,z各为多少进程进程进程拣棋子开车买票问信号灯值的小结(回顾计算进程cp不断产生数据,是生产者;发消息进程send不断产生消息,是生产者;界缓冲区取出物品后,要发消息(P操作)。如果我们把生产者进程中的两个P22 f intsemapnore semaphore emntv: 户盘子里可以放几个水果勺e oranae 户盘子里有桔子”annor ann1.e; 户盘子里有苹果勺apnor mutex; 尸不能同时对盘子操作的互斥量勺_ 尸盘子里允许放两个个水果勺/*盘子里没有桔子勺ex=

尸盘子里没有苹果勺ea红n户可并发的进程*();er()()auaner()n11问题描述:有两组并发进程读者和写者,共享要求同步过桥问桥较宽敞,允许两人通过或歇息。使用PV操作写出过{

{ }

{ 有五个哲学家围坐在一圆桌旁,桌有一盘通心面,每 {{p(stick[i]);//}}计算完后,结果x,y由进程P1输出N缓冲区问P2每次用getodd()从该缓冲区中取出一个奇数,并用{}{}11步操作都集中起来,构成一个所谓的进程。凡要该临界资源的进程,都需先报告,由来实现诸进程对同一管程管程的基本特一个进程只有通过调用管程内的函数才能进入管每次仅允许一个进程在管程内执行某个函数。共享数4由于管程是一个语言成分,所以管程的互 完全由编译程序编译时自动添加上,无需程序员关心,而且保证正确管程与进程作比6期,由创建而产生至撤销便消 进和扩充,形成了“systemVIPC”,通信进程局信号量机制作为同步工具是卓有成效的,但作为通讯工具则不够理(效率低。通讯对用户不透明。1(signal)①共享数据结②共 2消息传递(messagepassing)通信机34共享内存(sharedmemory)通信机制;procedurep(var{s.value=s.value-if(s.value<0)}procedurev(varif(s.value<=0)}因其实现方法的不同,又可分间接通信方式 消息缓冲数据结构(下图此外,进程的PCB块中增加一些数据项以支持消息缓冲区的通信机制实现;如:mq,消息链首指针;mutex,消息链互斥信号量;Sm,消 就是“一切皆文件”,都可以用“打开open读写write/read–>关闭close”模式来操作。 3(pip)UNIXXpc,5发送进 接收进字符流方式写入读 先进先出顺67 8

基于共 区的通讯方式。为了传送大量 1、向系统申请共 区中的一个分2、指定该分区的关 4、申请者将申请到的共享分区挂到本进程Linux1.共享内存对象的创建或获得。通过系统调用sys_shmgetkey_tkeyintsize,intshm)创建一个键值为key的共享内存对象,或获得已经存在的键值为key的某共享内存对象的标识符。2.关联。将共享内存区域映射(粘附)到进程的虚拟地址空间,然后才能使用该共享内存区域。系统调用shmat(intshmidconstvoid*shmaddr,intshm)3.分离。当进程不再需要共享虚拟内存的时候,它们与之分离(detach)。系统调用sys_shmdt(char*shmaddr)用于共享内存区与进程虚拟地址空间的分离。4.控制。包括获得共享内存对象的状态,设置共享内存对象的参数(如uid、gid、通常Windows中实现进程间的通 是 2剪贴板是Windows应用程序间进行通信的最初方式。它开始/程序/附件/系统工具/剪贴板查看程序图位#pragmadatacharstrSharedArray[1024]=#pragmadata

命令行指定-SECTION参数如下:-SECTIONcommonrwsOnCopyData(CWnd*pWnd,COPYDATASTRUCT*2Co

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论