欢迎来到天天文库
浏览记录
ID:44396618
大小:399.00 KB
页数:100页
时间:2019-10-21
《华中科技大学电信系操作系统课件-Chapter5》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、第五章并行性:互斥和同步为了充分利用计算机各部分的能力,使之并行运行以提高计算机系统的效率和性能,计算机界一直在坚持不懈地、不遗余力地发展并行技术。近几十年来,随着多道程序设计、多处理器系统、分布式处理系统技术的发展,操作系统的并行技术不断完善。掌握程序顺序执行和并行执行的含义和特点并行执行的表示方法临界段的定义、目的、设计原则同步和互斥的含义、实现方式信号量机制:信号量定义、物理意义、信号量的使用(互斥、同步、生产者/消费者,阅读者/写入者等)。进程通信多道程序设计基础——并行程序设计并行程序设计进程间的同步和互斥同步和互斥的执
2、行工具同步机构在实际程序设计中的应用进程通信*管程*WindowsNT中的同步和互斥机制1、程序的顺序执行处理机逐条的一次只执行一条指令主存储块一次只访问一个字或字节外设一次只能传送一个数据块程序的顺序执行概念:一个程序由若干个程序段组成,而这些程序段的执行必须是顺序的,这种程序执行的方式就称为程序的顺序执行。例如:程序顺序执行的特点顺序性处理机严格按照程序所规定的顺序执行,即每个操作必须在下一个操作开始之前结束。封闭性程序一旦开始执行,其计算结果不受外界的影响,当程序的初始条件给定之后,其后的状态只能由程序本身确定,即只有本程序
3、才能改变它。可再现性程序执行的结果与初始条件有关,而与执行时间无关。即只要程序的初始条件相同,它的执行结果是相同的,不论它在什么时间执行,也不管计算机的运行速度。程序的并行执行例:在系统中有n个作业,每个作业都有三个处理步骤,输入数据、处理、输出,即Ii,Ci,Pi(i=1,2,3,...,n)。这些作业系统中执行时是对时间的偏序,有些操作必须在其它操作之前执行,这是有序的,但有些操作是可以同时执行的。例如:I1、C1、P1的执行必须严格按照I1,C1,P1的顺序,而P1与I2,C1与I2,I3与P1是可以同时执行的。程序并行执行
4、(定义)若干个程序段同时在系统中运行,这些程序的执行在时间上是重迭的,一个程序段的执行尚未结束,另一个程序段的执行已经开始,即使这种重迭是很小的,也称这几个程序段是并行执行的。程序并行性的表示之一:有向图SSSFFFP1P2P3P6P2P3P4P5P5P4P3P2P1P1P7串行并行一般的程序并行性的表示之二:并行语言并行语言:并行PASCAL,CSP/K语言,MODULA语言,扩充的Ada等.并行语句记号:cobeginS1;S2;S3;...;SNcoend;Si(i=1,2,3,...,n)表示n个语句(程序段),这n个语句
5、用cobegin和coend括起来表示这n个语句是可以并发执行的。co是concurrent的头两个字符。有的书用parbegin和parend表示。Si:简单语句,复合语句,并行语句。编译程序为每个并行语句Si设置一个进程。程序并行性表示举例假设有一个程序由S0~Sn+1个语句,其中S1~Sn语句是并发执行的。程序如下:S0;cobeginS1;S2;S3;...;SNcoend;Sn+1;程序并行性表示举例+***/--BEGINCOBEGINt1=a-bt2=c-dt3=e/fCOENDCOBEGINt4=t1*t2t5=t
6、3**2COENDt6=t4+t5END算数表达式求值:(a-b)*(c-d)+(e/f)**2SFt5t1t3t2t4t6abcdef并行程序设计的特点并行、异步的在系统内运行共享各类资源,彼此相互制约只有在严格遵循并行程序设计的原则下,程序运行的结果才是确定的,否则,可能产生意料不到的情况并发执行实例:誊抄一个循环程序顺序执行的誊抄算法1:输入:f输出:g{while(f不为空){input;output;}}由这个程序完成誊抄工作是不会出错的。并发执行实例:誊抄两个程序并发执行完成誊抄设有一台标准输入设备(键盘),和一台标准
7、输出设备(显示器或打印机),输入程序负责从标准设备中读取一个字符,送缓冲区中。输出程序从缓冲区中取数据,送标准设备输出。并发执行实例:誊抄算法:2{cobeginf:Beginwhile(不为结束符)/*输入程序段*/{input;/*从标准输入设备读入一个数据*/write_buf;/*将读入的数据送到bufferf*/}Endg:Beginwhile(buffer不为空)/*输出程序段*/{read_buf;/*从bufferf中取数据*/output;/*送打印机输出*/}Endcoend}并发执行实例:誊抄这两个程序段并发
8、执行时可能出现如下情况:1、输出程序运行的速度比输入程序快时,有些输出会重复;如输入送入了一个字符“A”,输出取出打印“A”,当输入还未送入新的数据,输出程序已执行,又取出“A”打印,这样“A”的输出就重复了,出错。2、输入程序执行的速度比输出程序
此文档下载收益归作者所有