版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计算机与信息工程学院-操作系统 课程教案滁州学院计算机与信息工程学院课程教案课程名称: 操作系统 授课教师: 李元金 学习对象:2015级计算机科学与技术(对口) 任课时间: 2016年9月-2016年12月 滁州学院计算机与信息工程学院2016年8月89第1讲 操作系统引论(1)一、 教学目标 1.掌握操作系统的目标、作用;2.了解操作系统的发展过程;二、 重点与难点分析1.重点:操作系统的目标和作用; 2.难点: 无三、 教学内容与教学过程1.课程简介 (15分钟)自我介绍、理论课与实验课介绍、介绍课程地位、学习目的、教学内容、学习要求、考核方式、实验教学安排等。教学提示:考核成绩包括2部
2、分:平时占40 %,期末笔试占60%。 2. 讲授新课复习计算机系统组成:硬件系统、软件系统(操作系统在软件系统中的地位)。 操作系统的目标和作用 (20分钟)操作系统的目标:有效性、方便性、可扩充性、开放性; 操作系统的作用,从不同的观点出发观察操作系统的作用:用户观点:作为用户与计算机硬件系统之间的接口;资源管理观点:作为计算机系统资源的管理者;发展观点:实现了对计算机资源的抽象。教学提示:结合Windows操作系统举例讲解。推动操作系统发展的主要动力:不断提高计算机资源的利用率;方便用户;器件的不断更新换代;计算机体系结构的不断发展。 操作系统的发展过程 (47分钟)无操作系统的计算机系
3、统:人工操作方式:电子管计算机,无操作系统,由手工控制作业的输入输出,通过控制台开关启动程序运行;特点:用户独占全机及CPU等待人工操作;脱机输入/输出方式:引入I/O机的概念,解决前者的缺点;特点:减少了CPU的空闲时间且提高I/O速度;单道批处理系统:系统对作业的处理都是成批进行的、且内存中始终只保持一道作业;批处理系统的引入是为了提高系统资源的利用率和吞吐量;特征:自动性、顺序性、单道性;多道批处理系统:系统中同时驻留多个作业;多道引入的优点:提高CPU利用率;提高内存和I/O设备利用率;提高了系统吞吐量;特征:多道性、无序性、调度性:作业调度、进程调度缺点:平均周转时间长、无交互能力多
4、道批处理系统需要解决的问题。教学提示:引导学生思考引入多道程序会带来什么问题?处理机管理问题、内存管理问题、I/O管理问题、文件管理问题、作业管理问题。由多道批处理系统引出操作系统及其定义: 操作系统是一组控制和管理计算机硬件和软件资源,合理地对各类作业进行调度,以及方便用户使用的程序的集合。分时系统:指一台主机上连接了多个带有显示器和键盘的终端,同时允许多个用户通过自己的终端,以交互方式使用计算机,共享主机中的资源。满足用户的需求:人机交互性、共享主机、便于用户上机分时系统在实现中的关键问题:及时接收:多终端卡、输入缓冲区;及时处理:交互作业应在内存、响应时间应短。分时系统的实现方法:交互式
5、作业直接进入内存、以分配时间片方式实现。分时系统的特征:多路性、独立性、及时性、交互性实时系统:引入:要求及时处理的场合概念系统能及时响应外部事件的请求,在规定时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。类型:实时控制、实时信息处理实时任务类型:按任务执行是否呈现周期性来划分周期性的(联系周期);非周期性的(联系开始或完成截止时间)根据对截止时间的要求来划分硬实时任务、软实时任务。实时、分时的比较:多路性:相同;独立性:相同;及时性:实时系统要求更高;交互性:分时系统交互性更强;可靠性:实时系统要求更高。通用操作系统:各种操作系统的出现,致使操作系统日益完善,出现了通用操作系统
6、。通用操作系统兼有多道批处理、分时、实时处理的功能。操作系统的进一步发展:个人计算机上的操作系统、嵌入式操作系统、网络操作系统、分布式操作系统、智能化操作系统。微机操作系统的发展:单用户单任务操作系统、单用户多任务操作系统、多用户多任务操作系统。3.教学小结 (5分钟)本讲首先介绍课程的基本情况以及要求,然后介绍操作系统的目标和作用以及操作系统的发展历史。参考资料和深入学习途径孙钟秀.操作系统教程(第四版)M. 北京:高等教育出版社,2008.张献忠.操作系统M. 北京 :电子工业出版社,2007.Andrew S. Tanenbaum著,陈向群,马洪兵等译. 现代操作系统M. 北京:机械工业
7、出版社,2005.四、 作业与实验布置 (3分钟)1.作业P33 1.设计现代OS的主要目标是什么?4.试说明推动多道批处理系统形成和发展的主要动力是什么。5.何谓脱机I/O和联机I/O?7.实现分时系统的关键是什么?应如何解决?12.试从交互性、及时性以及可靠性方面,将分时系统与实时系统进行比较。 2.实验 本讲无实验第2讲 操作系统引论(2)一、 教学目标 1.掌握操作系统的基本特性;2.理解操作系统的主要功能模块;3.了解操作系统的结构设计方法。二、 重点与难点分析1.重点:操作系统的基本特性、操作系统的主要功能模块; 2.难点: 操作系统的结构设计方法。三、 教学内容与教学过程1.复习
8、上一讲内容 (10分钟)操作系统的目标和作用、操作系统的发展过程等。 2.讲授新课操作系统的基本特征(17分钟)并发性并行性:两或多个事件在同一时刻发生。并发性:两或多个事件在同一时间间隔内发生。进程:系统中能独立运行并作为资源分配的基本单位。引入线程后,独立运行的单位变为线程。教学提示:只有一个CPU的计算机运行时任务之间只能并发处理不能并行处理。共享性系统中资源可供内存中多个并发执行的进程(线程)共同使用。互斥共享:一段时间只允许一个进程访问该资源。临界资源:在一段时间内只允许一个进程访问的资源。同时访问:微观上仍是互斥的。教学提示:并发和共享是操作系统的两个最基本的特征。虚拟技术虚拟:通
9、过某种技术把一个物理实体变为若干个逻辑上的对应物。教学提示:在操作系统里有两种实验虚拟技术的方式,即时分复用技术和空分复用技术。异步性进程以人们不可预知的速度向前推进。 OS的主要功能(55分钟)处理机管理在传统的多道环境下,处理机的运行及分配都是以进程为单位,因此处理机管理可归结为进程管理,引入线程后,也包括对线程的管理。 存储器管理为多道程序的运行提供良好的环境,方便用户使用存储器,提高存储器的利用率以及能从逻辑上扩充内存。设备管理完成用户进程提出的I/O请求;为用户进程分配其所需的I/O设备;提高CPU和I/O利用率以及I/O速度,方便用户。文件管理对用户文件和系统文件进行管理,以方便用
10、户使用,并保证文件的安全性。教学提示:操作系统主要任务,是为多道程序的运行提供良好的运行环境,以保证多道程序能有条不紊、高效地运行,并能最大程度地提高系统中各种资源的利用率和方便用户的使用。操作系统结构设计传统的操作系统结构无结构操作系统。模块化结构操作系统。分层次式结构操作系统。现代结构的操作系统微内核结构的操作系统。无结构操作系统一组过程集,各过程可相互调用,也叫整体系统结构。缺点:逻辑复杂,维护困难。传统的操作系统结构模块化操作系统通过分解来控制大型软件复杂度。如:进程模块、内存模块,各模块内进一步划分子模块。优点:提高了OS设计的可维护性。增强的OS的可适应性。加速了OS的开发过程:并
11、行开发模块。缺点:接口不易确定。模块依赖关系可能复杂(对于大型软件而言)。分层式操作系统。有序分层。优点:易保证系统的正确性。易扩充和易维护性。缺点:系统效率低。现代结构的操作系统3.教学小结 (5分钟)本讲首先复习了上一讲所讲解的主要内容,然后介绍了操作系统的主要特征,最后讲解了操作系统的主要功能和设计。四、 作业与实验布置 (3分钟)1.作业P33 13.操作系统有哪几大特征?其最基本的特征是什么?18.是什么原因使得操作系统具有异步性特征?19.模块接口法存在哪些问题?可通过什么样的途径来解决?24.微内核操作系统具有哪些优点?它为何能有这些优点? 2.实验 本讲无实验第3讲 进程管理(
12、1)一、 教学目标 1.掌握前趋图,顺序执行和并发执行的特征;2.掌握进程的基本状态及其转换;3.掌握进程与程序的联系与区别;二、 重点与难点1.重点:进程的概念、状态的切换条件及因果关系。2.难点:进程状态的切换。三、 教学过程的具体安排1.复习上一讲内容 (10分钟) 操作系统的特征、操作系统的功能、操作系统的设计等。2.讲授新课(72分钟)程序的顺序执行及特征程序的顺序执行: I1C1P1I2C2P2 教学提示:程序顺序执行时的特征:顺序性;封闭性; 可再现性。 前趋图:前趋图(Precedence Graph)是一个有向无循环图,记为DAG(Directed Acyclic Graph
13、),用于描述进程之间执行的前后关系。图中的每个结点可用于描述一个程序段或进程,乃至一条语句;结点间的有向边则用于表示两个结点之间存在的偏序(Partial Order)或前趋关系(Precedence Relation)“”。P1P2P3P4程序的并发执行及其特征 程序的并发执行:教学提示:程序并发执行时的特征: 间断性;失去封闭性;不可再现性。 进程的特征与状态进程的特征和定义:结构特征;动态性;并发性;独立性;异步性。定义。进程的三种基本状态: 就绪(Ready)状态;执行状态;阻塞状态。进程的三种基本状态及其转换如下图: 挂起状态引入挂起状态的原因 终端用户的请求;父进程请求;负荷调节的
14、需要;操作系统的需要。具有挂起状态的进程状态图(如下图) 进程控制块进程控制块的作用:其作用是将一个不能独立运行的程序变成一个可以独立运行的基本单位,一个能与其他进程并发执行的进程。教学提示:操作系统利用PCB来对并发执行的进程进行控制和管理,PCB是进程存在的唯一标志。进程与PCB是一一对应的。PCB(process control block)常驻内存。进程控制块中的信息:进程控制块中的信息如下表所示。pid进程状态现场优先级阻塞原因程序地址同步机制资源清单链接指针进程控制块的组织方式链接:索引:进程控制 进程控制就是对系统中的所有进程实施管理,进程控制一般有原语来实现。所谓原语是一种特殊
15、的系统功能调用,它可以完成一个特定的功能,其特点是原语执行时不可被中断。常用原语:创建原语终止原语阻塞原语、唤醒原语进程的创建:进程图(Process Graph)DEFGHBCIJKLMA3.教学小结 (5分钟)本讲首先复习了上一讲所讲解的主要内容,然后介绍了程序的并发运行与顺序运行,最后讲解了进程控制块以及它的创建。四、 作业与实验(3分钟)1.作业P812.试画出下面四条语句的前趋图: S1: a: =x+y; S2: b: =z+1; S3: c: =a-b; S4: w: =c+1;6.试从动态性、并发性和独立性上比较进程和程序。7.试说明PCB的作用,为什么说PCB进程存在的惟一标
16、志?9.为什么要引入挂起状态?该状态有哪些性质?2.实验 实验一:Linux系统基本操作 第4讲 进程管理(2)一、 教学目标 1.理解临界资源、临界区的概念;2.掌握常用的信号量机制;二、 重点与难点分析1.重点:临界资源、信号量机制;2.难点:信号量机制。三、 教学内容与教学过程1.复习(10分钟)复习上一讲内容,前趋图,顺序执行和并发执行的特征,进程与PCB等。2.讲授新课 进程同步的基本概念 (12分钟)进程同步任务对多个相关进程在执行次序上进行协调,以使并发执行的诸进程之间能有效地共享资源和相互合作,从而使程序的执行具有可再现性。两种形式的制约关系:进程间接制约;进程直接制约。教学提
17、示:临界资源:一次仅允许一个进程访问的资源。举例:生产者消费者问题Dijkstra把同步问题抽象成一种生产者和消费者关系,计算机系统中的许多问题都可以被归结为生产者和消费者关系,例如,生产者可以是计算进程,消费者是打印进程,输入时输入进程是生产者,计算进程是消费者。我们可以通过一个缓冲区把生产者和消费者联系起来。临界区:进程访问临界资源的那段代码。访问临界资源的描述:进入区:检查有无进程进入临界区:退出区:将访问标志复位剩余区RepeatEntry sectionCritical sectionExit sectionremainder sectionUntil false同步机制应遵循的准则
18、:空闲让进;忙则等待;有限等待;让权等待。 信号量机制 (37分钟)解决进程同步问题可以使用中断机制,特殊的机器指令以及信号量机制等。重点讲解信号量机制,信号量机制是由荷兰学者Dijkstra在1965年提出来的有效的进程同步工具。信号量机制得到广泛的发展,经过了整型信号量、记录型信号量、AND型信号量、信号量集。整型信号量:一个整型量S,通过2个原子操作wait(S)和signal(S)来访问。(P、V操作)Wait(S): while S= 0 do no-opS:=S-1;Signal(S):S:=S+1;记录型信号量:procedure wait(s)var S: semaphoreb
19、eginS.value:=S.value 1;if S.value 0 them block (S.L)endAND型信号量:Swait(S1,S2,Sn)if S11 and and Sn 1 then for i:=1 to n do Si:=Si-1; endforelseplace the process in the waiting queue with the first Si found with Si1, and set the program count of this process to the beginning of swait operationend if Ssi
20、gnal(S1,S2,Sn)for i:=1 to n do Si:=Si+1; Remove all the process waiting in the queue associated with Si into the ready queue endfor信号量集: Swait(S1,t1,d1,Sn,tn,dn)if Siti and and Sn tn then for i:=1 to n do Si:=Si-di; endforelseplace the executing process in the waiting queue of the first Si found wit
21、h Siti, and set the program counter to of the beginning of Swait operationend if Ssignal(S1,d1,Sn,dn)for i:=1 to n do Si:=Si+1; Remove all the process waiting in the queue associated with Si into the ready queue endfor教学提示:结合各个信号量机制的描述,讲解其具体功能及每部分的含义,尤其是 记录型信号量中S.value不同取值代表的意义。 信号量的应用 (10分钟)利用信号量实现
22、进程互斥(举例如下)var mutex: semaphore:=1beginparbeginprocess1:beginrepeat wait(mutex); critical setion signal(mutex); remainder sectionuntil false; endprocess2: begin repeat wait(mutex); critical setion signal(mutex); remainder sectionuntil false;endpar end利用信号量实现前趋关键举例:(前趋图为教材中的图2-12)Var a,b,c,d,e,f,g:sem
23、aphore:=0,0,0,0,0,0,0;Beginparbegin begin S1; signal(a); signal(b); end; begin wait(a);S2; signal(c); signal(d); end; begin wait(b);S3; signal(e); end; begin wait(c);S4; signal(f); end; begin wait(d);S5; signal(g); end; begin wait(e); wait(f);wait(g);S6; end;parendend 教学提示:结合实例讲解利用信号量解决互斥和前趋关系的方法 管程
24、机制 (15分钟)教学提示:为什么要引入管程机制?管程的定义:(Hansan):一个数据结构和能为并发进程所执行(在该数据结构上)的一组操作,这组操作能同步进程和改变管程中的数据。管程的组成:管程的名称;局部于管程内部的共享数据结构说明;对该数据结构进行操作的一组过程;对局部于管程内部的共享数据设置初始值的语句。管程的特征:模块化;抽象数据类型;信息掩蔽。管程与进程的区别:从六个方面进行阐述。条件变量:引入条件变量的原因:防止进程在管程内阻塞或挂起,而是使其它进程长时间等待。条件的说明形式:Var x,y:condtion;条件变量的操作wait,signal,表示为x.wait,x.sing
25、al。教学提示:重点讲解x.wait,x.signal的含义3. 教学小结 (3分钟)本讲主要介绍了进程的同步、临界资源、临界去的概念。进程同步的信号量机制及应用、管程机制。四、 作业与实验(3分钟)1.作业P8113.在创建一个进程时所要完成的主要工作是什么?14.在撤销一个进程时所要完成的主要工作是什么?17.为什么进程在进入临界区之前应先执行“进入区”代码?而在退出前又要执行“退出区”代码?21.如何利用信号量机制来实现多个进行对临界资源的互斥访问?并举例说明之。2.实验 本讲无实验第5讲 进程管理(3)一、 教学目标 1.掌握利用信号量机制解决经典的进程同步问题的方法; 2.掌握P、V
26、操作的实现;二、 重点与难点分析1.重点:P、V操作、信号量机制;2.难点:信号量机制解决经典的进程同步问题。三、 教学内容与教学过程1.复习(5分钟)复习上一讲内容,临界资源、临界区,信号量机制等。2.讲授新课生产者一消费者问题(15分钟)Dijkstra把同步问题抽象成一种生产者和消费者关系,计算机系统中的许多问题都可以被归结为生产者和消费者关系,例如,生产者可以是计算进程,消费者是打印进程,输入时输入进程是生产者,计算进程是消费者。我们可以通过一个缓冲区把生产者和消费者联系起来。上述生产者-消费者问题是一个同步问题。即生产者和消费者之间满足如下条件:消费者想接收数据时,有界缓冲区中至少有
27、一个单元是满的;生产者想发送数据时,有界缓冲区中至少有一个单元是空的。由于有界缓冲区是临界资源,因此,各生产者进程和消费者进程之间必须互斥执行。由以上分析我们设公用信号量mutex保证生产者进程和消费者进程之间的互斥,设信号量empty表示有界缓冲区中的空单元数,初值为n;信号量full表示有界缓冲区中的非空单元数,初值为0。信号量mutex表示有界缓冲区中的个数,初值为1。利用记录型信号量解决生产者一消费者问题:mutex:使诸进程互斥地访问缓冲区(n个缓冲区)empty、 full:空、满缓冲区数量。Var mutex,empty,full:semaphore:=1,n,0; buffer
28、:array0,1,n-1 of item;in, out: integer: =0,0;begin parbeginproducer: begin repeat Produce an item in nextp; 利用AND信号量解决生产者消费者问题:var mutex, empty, full: semaphore:=1,n,0;buffer:array0,n-1 of item;in out: integer :=0,0; beginparbegin哲学家进餐问题(15分钟)有五个哲学家共用一张圆桌,分别坐在周围的五张椅子上,在圆桌上有五个碗和五只筷子,他们的生活方式是交替地进行思考和进
29、餐。平时,一个哲学家进行思考,饥饿时便试图取其左右最靠近他的筷子,只有在他拿到两只筷子时才能进餐,进餐完毕,放下筷子继续思考。Var chopstick: array0, , 4 of semaphore:=(1,1,1,1,1);repeat swait(chopsticki); wait(chopstick(i+1)mod 5 ); eat; signal(chopsticki) ; signal(chopstick(i+1)mod 5 ); think;Until false上述解决哲学家进餐问题的方法,可以保证不会有两个相邻的哲学家同时进餐,但是可能引起死锁。解决方法:至多允许有四位哲
30、学家同时去拿左边的筷子,最终能保证至少有一位哲学家能够进餐,并在用毕时能释放出他用过的两只筷子,从而使更多的哲学家能够进餐。仅当哲学家的左右两只筷子均可用时,才允许他拿起筷子进餐。规定奇数号哲学家先拿他左边的筷子,然后再去拿右边的筷子,而偶数号哲学家则相反。Var chopstick: array0, , 4 of semaphore:=(1,1,1,1,1);processi repeat think; Sswait(chopstick(i+1)mod 5,chopsticki); eat Ssignal(chopstick(i+1)mod 5,chopsticki);Until false
31、教学提示:结合各个信号量机制的描述,讲解其具体功能及每部分的含义,尤其是 记录型信号量中S.value不同取值代表的意义。读者写者问题(10分钟)一个数据文件或记录,可被多个进程共享,把只要求读该文件的进程成为“Reader进程”,其他进程则称为“Write进程”。保证一个Write进程必须与其他进程互斥地访问共享对象的同步问题。var rmutex, wmutex: semaphore: =1,1; readcount:integer: =0; begin parbegin reader: begin repeat wait(rmutex); if readcount=0 then wait
32、(wmutex); readcount:=readcount+1; signal(rmutex);perform read operationwait(rmutex);readcount:=readcount-1;if readcount=0 then signal(wmutex);signal(rmutex); until false; endwriter: beginrepeat wait(wmutex); perform write operation; signal(wmutex);until false;end parend end教学提示:结合实例讲解利用信号量解决互斥和前趋关系的
33、方法 P操作和V操作(5分钟)P(s):若S=0,继续取s值减1V(s):若S0,继续取s值加1教学提示:P和V操作重在理解。信号量及P、V操作讨论(5分钟)对于两个并发进程,互斥信号量的值仅取1、0和-1三个值 若1表示没有进程进入临界区若0表示有一个进程进入临界区若-1表示一个进程进入临界区,另一个进程等待进入。 信号量的物理含义:S0表示有S个资源可用S=0表示无资源可用S0则| S |表示S等待队列中的进程个数P(S):表示申请一个资源 V(S):表示释放一个资源。信号量的初值应该大于等于0例题(30分钟)例1:设某计算进程和打印进程共用一个单缓冲区,进程负责不断地计算数据并送入缓冲区
34、中,进程负责不断地从缓冲区中取出数据去打印。通过分析可知,CP、必须遵守以下同步规则:当进程把计算结果送入缓冲区时,IOP进程才 能从缓冲区中取出结果去打印;当IOP进程把缓冲区中的数据取出打印后,进程才能把下一个计算结果送入缓冲区。用P、V操作解决下图之同步问题 教学提示:分别考虑对缓冲区S和T的同步,再合并考虑例2:桌上有一空盘,最多允许存放一只水果。爸爸可向盘中放一个苹果或放一个桔子,儿子专等吃盘中的桔子,女儿专等吃苹果。试用P、V操作实现爸爸、儿子、女儿三个并发进程的同步。教学提示:设置一个信号量表示可否向盘中放水果,一个信号量表示可否取桔子,一个信号量表示可否取苹果。例3:四个进程A
35、、B、C、D都要读一个共享文件F,系统允许多个进程同时读文件F。但限制是进程A和进程C不能同时读文件F,进程B和进程D也不能同时读文件F。为了使这四个进程并发执行时能按系统要求使用文件,现用P,V操作进行管理。定义二个信号量S1、S2,初值均为1,即:S1=1,S2=1。其中进程A和C使用信号量S1,进程B和D使用信号量S2。A:P(S1) V(S1)B: P(S2) V(S2)C: P(S1) V(S1) D:P(S2) V(S2)例4:有一阅览室,读者进入时必须先在一张登记表上进行登记,该表为每一座位列一表目,包括座号和读者姓名。读者离开时要消掉登记信号,阅览室中共有100个座位,请问:为
36、描述读者的动作,应编写几个程序?设置几个进程?进程与程序间的对应关系如何?用类Pascal语言和P, V操作写出这些进程间的同步算法。应编写1个程序;设置2个进程;进程与程序间的对应关系是:多对1。Beginmutex: =1cobeginP1: repeatP(S1);P(mutex);登记信息;V(muetx);V(S2)就座,阅读;until false coendendP2: repeatP(S2)P(mutex);消掉信息;V(muetx);V(S1);离开阅览室;until false3. 教学小结 (3分钟)本讲主要介绍了利用信号量机制解决经典的进程同步问题、P、V操作的实现等。
37、四、 作业与实验(2分钟)1.作业P8123.在生产者-消费者问题中,如果缺少了signal(full)或到sign(empty),对执行结果将会有何影响?24.在生产者-消费者问题中,如果将两个wait操作即wait(full)和wait(mutex)互换位置,或者将signal(mutex)与signal(full)互换位置,结果会如何?25.我们为某临界资源设置一把锁W,当W=1时表示关锁;当W=0时表示锁已打开。试写出开锁和关锁的原语,并利用它们去实现互斥。26.试修改下面生产者-消费者问题解法中的错误: producer: consumer: begin begin repeat r
38、epeat wait(mutex); produce an item in nextp; wait(empty); wait(mutex); nextc:=buffer(out); wait(full); out:=out+1; signal(mutex); signal(mutex); until false; until false;27.试利用记录型信号量写出一个不会出现死锁的哲学家进餐问题的算法。2.实验 本讲无实验第6讲 进程管理(4)一、 教学目标 1.掌握共享缓冲区进程同步问题的方法; 2.掌握P、V操作的实现;3.了解进程通信的类型; 4.理解消息传递系统中的发送和接收原语;5
39、.理解线程的概念、线程间的同步、通信以及线程的实现;二、 重点与难点分析1.重点:共享缓冲区进程同步问题的方法, P、V操作的实现;消息传递系统中的发送和接收原语;2.难点:P、V操作的实现。三、 教学内容与教学过程1.复习(10分钟)复习上一讲内容,信号量机制解决经典的进程同步问题的方法、P、V操作的实现等。2.讲授新课P、V操作实现(30分钟)例1:本题考核的主要内容是进程互斥与同步问题。为了保证 系统的控制流程,专门设一个Monitor进程,用于控制学生进入机房及计算机的分配与使用。从题目上看,虽然没有明确指出这一进程,但实际上这一进程应当是存在的。BEGINSemaphore: stu
40、dent, computer, enter, finish, check;student:=0;computer:=2m;enter:=0; finish:=0;check:=0;COBEGIN Process Procedure Student() Begin V (student); /表示有学生到达 P(computer); /等待获取一台计算机 P(enter); /等待进入许可 do it with parnter(); V(finish); /实习完成 P(check); /等待老师检查 V(computer); /释放计算机资源 EndProcess Procedure Teac
41、her()BeginL1:P(finish); /等待学生实习完成 P(finish); /等待另一个学生实习完成 check the work(); V(check); /表示检查完成 V(check); /表示检查完成 goto L1;End教学提示:要结合前讲的P、V操作一道进行。进程通信和进程通信的类型(20分钟)概念:进程间的信息交换。实例:信号量机制(一种低级通信)缺点:效率低;通信对用户不透明高级通信效率高,通信实现细节对用户透明共享存储器系统在共享存储系统中,互相通信的进程共享某些数据结构或共享存储区,进程之间能够通过这些空间进行通信。故其可分成以下两种类型。基于共享数据结构的
42、通信方式(低级通信)要求诸进程公用某些数据结构,借以实现诸进程的信息交换。在生产者-消费者问题中,就是用有界缓冲区这种数据结构来实现通信的。produce-consume中的缓冲区,低效,不透明。系统只提供了一个共享存储器,适于少量通信。基于共享存储区的通信方式(高级通信)为了传输大量数据,在存储器中划出了一块共享存储区,进程可通过对共享存储区中数据的读或写来实现通信。系统提供:共享存储区通信过程:向系统申请一个或多个分区 获得分区后即可读/写特点:高效,速度快。消息传递系统(用于单机,多机,网络)数据交换以格式化的消息(报文)为单位实现:一组通信命令(原语)。是目前的主要通信方式,分为直接通
43、信方式、间接通信方式管道通信管道:用于连接一个读进程和一个写进程以实现他们之间通信的一个共享文件。又名pipe文件。写进程以字符流的形式向管道送入大量数据;读进程则从管道中接收数据,故又称为管道通信。其能有效传输大量数据。 教学提示:管道机制提供以下协调能力互斥、同步、对方是否存在。消息传递通信的实现方式(20分钟)直接通信方式send(Receiver, message); 发送一个消息给接收进程receive(Sender, message);接收sennder发来的消息例:解决生产消费问题。repeat produce an item in nextp; send(consumer, n
44、extp); until false; repeat receive( producer, nextc); consumer the item in nextc; until false;间接通信方式(可以实现非实时通信)指进程之间的通信,需要通过作为共享数据结构的实体,这种实体称为信箱。发送进程接收进程信箱消息在信箱中可以安全地保存,只允许核准的目标用户随时读取。这样既可实现实时通信,又可实现非实时通信。原语信箱的创建与撤消:信箱名 属性(公用、私用、共享)(共享者名字),不需要时可撤销之 消息的发送和接收Send (mailbox, message)Receive (mailbox, me
45、ssage)信箱类型私用:拥有者有读/写数,其它只有写权,(单向通信链路实现)存在期进程存在期。公用:系统创建,核准进程可以发送,也可读取发送给自己的消息。双向通信链路实现,存在期=系统存在期。共享信箱:一般进程创建,并指明其共享者。拥有者和共享者都可取走发送给自己的消息。发送接收进程之间的关系:一对一关系;多对一关系;一对多关系;多对多关系:公用信箱。教学提示:要能够正确理解私用、公用和共享信箱的真正意义。消息传递系统实现中的若干问题(10分钟)通信链路建立通信链路发送进程建立系统自动建立通信链路的分类根据连接方法分为点-点连接通信链路多点连接链路根据通信方式分为单向链路双向链路根据通向链路
46、的容量分为无容量通信链路有容量通信链路消息格式定长格式变长格式进程同步方式发送进程阻塞,接收进程阻塞(汇合)发送进程不阻塞,接收进程阻塞。发送进程和接收进程均不阻塞。 教学提示:本部分内容主要是了解性的。消息缓冲队列通信机制(15分钟)数据结构消息缓冲区type message buffer =recordsender:size:text:next:指向下一指针endPCB中有关通信的数据项:type pcb=recordmq 消息队列首指针mutex 消息队列互斥信息量sm 消息队列资源信息量(表资源消息数)end发送原语procedure send(receiver, a) begin g
47、etbuf(a.size, i); i.sender:=a.sender; i.size:=a.size; i.text:=a.text; i.next:=0; getid(PCB set, receiver.j); wait(j.mutex); insert(j.mq, i); signal(j.mutex); signal(j.sm);end接收原语procedure receive(b)begin j:=internal name; wait(j.sm); wait(j.mutex); remove(j.mq, i); signal(j.mutex); b.sender:=i.sende
48、r; b.size:=i.size; b.text:=i.text;end教学提示:P和V操作重在理解。线程(9分钟)线程的基本概念 线程的引入减少并发执行时的时空开销,进程的创建、撤消、切换较费时空,因它既是调度单位,又是资源拥有者。创建进程系统在创建一个进程时,必须为它分配其所必需的、除处理机以外的所有资源,如内存空间、I/O 设备,以及建立相应的PCB。撤销进程系统在撤销进程时,必须先对其所占有的资源执行回收操作,然后再撤销PCB。进程切换对进程切换时,由于要保留当前进程的CPU 环境和设置新选中进程的CPU环境,因而花费不少的处理机时间。3. 教学小结 (3分钟)本讲主要介绍了共享缓冲
49、区进程同步问题的方法,以及它们实现等;进程通信和进程通信的类型、消息传递系统实现中的若干问题、消息缓冲队列通信机制、线程等。四、 作业与实验(3分钟)1.作业P8128.在测量控制系统中的数据采集任务时,把所采集的数据送往一单缓冲区;计算任务从该单缓冲区中取出数据进行计算。试写出利用信号量机制实现两任务共享单缓冲区的同步算法?30.如何利用管程来解决生产者-消费者问题?31.什么是AND信号量?试利用AND信号量写出生产者-消费者问题的解决。32.什么是信号量集?试利用信号量集写出读者-写者问题的解法。37.试说明线程具有哪些属性?38.试从调度性、并发性、拥有资源及系统开销方面对进程和线程进行比较?39.为了在多线程OS中实现进行之间的同步与通信,通常提供了哪几种同步机制?40.用于实现线程同步的私用信号量和公用信号量之间有何差异?2.实验实验二:进程创建第7讲 处理机调度与死锁(1)一、 教学目标 1.理解处理机调度的层次; 2.理解调度队列模型和选择调度方式和算法的准则3.掌握先来先服务、短作业(进程)优先、时间片轮转和优先权调度算法;4.理解多级反馈队列调度算法;二、 重点与难点分析1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 老师免责协议书(2篇)
- 南京工业大学浦江学院《新能源汽车》2022-2023学年第一学期期末试卷
- 南京工业大学浦江学院《设计思维与方法》2022-2023学年第一学期期末试卷
- 分式通分说课稿
- 启东市安置房城东村高层住宅小区施工组织总设计方案
- 【初中化学】课题2 原子的结构第二课时-2024-2025学年九年级化学人教版上册
- 《雨点儿》说课稿
- 南京工业大学浦江学院《发动机原理》2022-2023学年第一学期期末试卷
- 私人迁坟协议书(2篇)
- 南京工业大学《信息检索6:艺术法学马克思外语体育》2022-2023学年期末试卷
- 过敏性紫癜的护理培训课件
- 监理工作重点、难点分析及解决方案
- 雪梨产业规划专项研究报告
- 3.1DNA是主要的遗传物质课件20232024高一下学期生物人教版必修二
- 智能制造(智改数转)架构设计解决方案
- 教学病例讨论模板
- 林业工程竣工报告
- 从偏差行为到卓越一生3.0版
- 失血性休克患者的麻醉处理
- 2024网站渗透测试报告
- 九年级上期中考试质量分析
评论
0/150
提交评论