《记录型信号量》说课稿
- 格式:doc
- 大小:39.00 KB
- 文档页数:3
操作系统(三)——信号量、死锁1、信号量信号量机制:概念:其实就是⼀个变量,可以⽤⼀个信号量来表⽰系统中某种资源的数量、⽤户进程通过使⽤操作系统提供的⼀对原语来对信号量进⾏操作,从⽽⽅便的实现了进程互斥。
这⾥的⼀对原语是指wait(S)和signal(S),也简写为P(S)和V(S),即申请和释放资源。
P、V操作必须成对出现。
整数型信号量:⽤⼀个整数作为信号量,数值表⽰某种资源数。
对信号量的操作只有三种:初始化、P操作、V操作。
不满⾜让权等待原则。
记录型信号量:S.value表⽰某种资源数,S.L指向等待该资源的队列。
P操作中,先S.value++,之后可能执⾏block阻塞原语。
V操作中,先S.value--,之后可能执⾏wakeup唤醒原语。
可以⽤记录型信号量实现系统资源的申请和释放,申请S.value--,然后如果S.value<0说明资源分配完了,就阻塞;释放S.value++,然后如果S.value<=0说明还有进程在等待队列中等待,就唤醒。
记录型信号量可以实现进程互斥、进程同步。
实现进程互斥:划定临界区。
设置互斥信号量mytex,初值为1。
在临界区之前执⾏P(mutex),在临界区之后执⾏V(mutex)。
实现进程同步:分析那些地⽅是必须保证⼀前⼀后执⾏的两个操作。
设置同步信号量S,初始值为0。
在“前操作”之后执⾏V(S)。
在“后操作”之前执⾏P(S)。
实现前驱关系:每⼀对前驱关系都是⼀个进程同步问题。
为每⼀对前驱关系设置⼀个同步变量,初始值为0。
在“前操作”之后执⾏V操作。
在“后操作”之前执⾏P操作。
⽣产者消费者问题:⽣产者每次⽣产⼀个产品放⼊缓冲区,消费者每次从缓冲区取出⼀个产品使⽤。
缓冲区满⽣产者必须等待(同步关系1),缓冲区空消费者必须等待(同步关系2)。
缓冲区是临界资源,必须被互斥访问(互斥关系)。
问题中的P、V操作:⽣产者每次P⼀个缓冲区,V⼀个产品。
消费者每次V⼀个缓冲区,P⼀个产品。
第二讲进程管理主讲教师:李志民2.3.2 信号量机制▪1. 整型信号量▪2. 记录型信号量▪3. AND型信号量▪4. 信号量集AND同步机制的基本思想是:(1)将进程在整个运行过程中需要的所有资源,一次性全部地分配给进程,待进程使用完后再一起释放。
(2)要么全部分配到进程,要么一个也不分配。
Swait(S 1, S 2, …, S n ) if S i ≥1 and … and S n ≥1 then for i ∶ =1 to n do S i ∶=S i -1; endfor else place the process in the waiting queue associated with the first S i found with S i <1, andset the program count of this process to thebeginning of Swait operationendifSwait 原语的实现只有进程所需的资源,全都满足时,执行Si ∶=Si-1操作;只要发现有第Si 个资源不满足,将进程阻塞在第Si 的队列中。
Ssignal (S1, S2, …, Sn) for i ∶ =1 to n do S i =S i +1; Remove all the process waiting in the queue associatedwith S i into the ready queue.endfor;S signal 原语的实现针对所有的资源,执行Si ∶=Si+1操作;将Si 队列中的阻塞进程移出,进入就绪队列。
AND型信号量的应用第i位哲学家的活动可描述为:repeat▪ Swait(chopstick[i], chopstick[(i+1) mod 5]);▪…▪ eat;▪…▪ Ssignal(chopstick[i], chopstick[(i+1) mod 5]);▪…▪ think;▪ until false;思考利用记录型信号量、AND型信号量,解决哲学家就餐问题,那个效率高?基本思想:(1)前面讲的信号量操作,每次施以加1、减1操作,当进程一次需要N个某类资源时,便要执行N次wait(S)操作,显然是低效的。
《操作系统原理》实验指导书羊四清编写适用专业:计算机科学与技术网络工程湖南人文科技学院计算机科学技术系2008年8 月前言操作系统是计算机的核心和灵魂.操作系统软件的设计对整个计算机的功能和性能起着至关重要的作用,所以此门课也是必不可少的,是面向计算机科学与技术、网络工程、软件工程等大多数计算机专业本科生开设的一门计算机专业课程。
操作系统是计算机系统的核心,《操作系统》课程是计算机科学与技术专业的重要必修课.本课程的目的是使学生掌握现代计算机操作系统的基本原理、基本设计方法及实现技术,具有分析现行操作系统和设计、开发实际操作系统的基本能力。
操作系统实验是操作系统课程的重要组成部分,属于学科基础实验范畴。
作为与相关教学内容配合的实践性教学环节,应在操作系统理论课教学过程中开设。
操作系统是计算机科学与技术专业必修的专业基础课程,操作系统实验的作用是:理解操作系统的设计和实现思路,掌握典型算法。
基本要求是:理解进程的概念,理解死锁,掌握银行家算法;掌握请求页式存储管理的实现原理及页面置换算法。
学生应具有高级语言编程能力、具有数据结构等基础知识。
说明:本实验指导书所提供的源程序均已在VC6.0下调试运行过.目录实验一进程创建模拟 (1)实验二进程撤销模拟 (9)实验三P、V 原语的模拟实现 (10)实验四带优先级的时间片轮换的进程调度算法的实现 (16)实验五银行家算法模拟 (26)实验六连续动态内存管理模拟实现 (29)实验七请求页式存储管理中常用页面置换算法模拟 (31)实验八SCAN 磁盘调度模拟实现 (36)实验九UNIX基本操作 (37)实验一进程创建模拟实验学时:2实验类型:验证实验要求:必修一、实验目的1)理解进程创建相关理论;2)掌握进程创建方法;3)掌握进程相关数据结构。
二、实验内容本实验针对操作系统中进程创建相关理论进行实验.要求实验者输入实验指导书提供的代码并进行测试。
代码简化了进程创建的多个步骤和内容。
第二章1. 什么是前趋图?为什么要引入前趋图?答:前趋图(Precedence Graph)是一个有向无循环图,记为DAG(Directed Acyclic Graph),用于描述进程之间执行的前后关系。
2. 画出下面四条语句的前趋图:S1=a:=x+y; S2=b:=z+1; S3=c:=a – b; S4=w:=c+1;答:其前趋图为:3. 什么程序并发执行会产生间断性特征?答:程序在并发执行时,由于它们共享系统资源,为完成同一项任务需要相互合作,致使这些并发执行的进程之间,形成了相互制约关系,从而使得进程在执行期间出现间断性。
4.程序并发执行时为什么会失去封闭性和可再现性?答:程序并发执行时,多个程序共享系统中的各种资源,因而这些资源的状态由多个程序改变,致使程序运行失去了封闭性,也会导致其失去可再现性。
5.在操作系统中为什么要引入进程概念?它会产生什么样的影响?答:为了使程序在多道程序环境下能并发执行,并对并发执行的程序加以控制和描述,在操作系统中引入了进程概念。
影响: 使程序的并发执行得以实行。
6.试从动态性,并发性和独立性上比较进程和程序?答:(1)动态性是进程最基本的特性,表现为由创建而产生,由调度而执行,因得不到资源而暂停执行,由撤销而消亡。
进程有一定的生命期,而程序只是一组有序的指令集合,是静态实体。
(2)并发性是进程的重要特征,同时也是OS 的重要特征。
引入进程的目的正是为了使其程序能和其它进程的程序并发执行,而程序是不能并发执行的。
(3)独立性是指进程实体是一个能独立运行的基本单位,也是系统中独立获得资源和独立调度的基本单位。
对于未建立任何进程的程序,不能作为独立单位参加运行。
7.试说明PCB 的作用,为什么说PCB 是进程存在的惟一标志?答:PCB 是进程实体的一部分,是操作系统中最重要的记录型数据结构。
作用是使一个在多道程序环境下不能独立运行的程序,成为一个能独立运行的基本单位,成为能与其它进程并发执行的进程。
《记录型信号量》说课稿
尊敬的各位评委老师:
大家下午好!
我是来自xxxxxxxx,我说课的内容选自《操作系统》课程,第二章“进程控制”中的记录型信号量。
今天的说课从三个方面展开:教学分析、教学设计及教学过程。
一、教学分析
教学分析方面我主要从课程性质、教学内容、教学重难点、教学目标、学情分析五个点展开。
1.课程性质
操作系统课程是计算机软件工程专业的一门专业必修课。
也是计算机专业考研的一门必考课程。
通过本课程的学习,使学生能够掌握操作系统当中涉及到的基本概念、原理和算法,理解操作系统运行过程中的各种机制以及操作系统的五大管理功能。
学习本课程需要具备计算机组成原理、数据结构和高级程序设计语言基础。
学好本课程能够为后续软件开发课程如移动平台开发、Cocos 程序设计的学习打下坚实的理论基础。
2.教学内容
进程控制是操作系统课程的核心内容,是保证多进程有序使用操作系统资源的重要措施。
信号量机制是一种卓有成效的进程同步机制。
本次课在回顾整型信号量的基础上,对记录型信号量展开讲解,包括记录型信号量的数据结构、两个原语操作及其同步应用,同时引出信号量集的概念,为下一节课做铺垫。
3.教学重难点
记录型信号量的数据结构是理解该机制的基础,原语操作是使用该机制解决进程同步的核心,同步应用能帮助学生将知识应用于实践,所以都是教学重点。
由于学生之前有一定的数据结构基础,故记录型信号量的数据结构、原语操作不是难点,难点是如何在实践中准确的应用他们来解决问题。
4.教学目标
在确定了教学的重点、难点,依据教学内容在课程中的地位,及课程教学大纲的要求,制定教学目标为:
(1)知识目标:了解信号量的概念和种类;掌握记录型信号量的数据结构和原语操作
(2)能力目标:根据不同应用特点设置信号量。
运用wait原语、signal 原语完成进程的同步与互斥控制。
(3)情感目标:激发学生学习的兴趣;培养学生自主学习精神和探索学习精神。
5.学情分析
本学期教学的对象是13级软件工程专业数字媒体方向的学生,学生们通过对计算机导论,C语言,数据结构等先修专业课程的学习,对计算机操作系统中涉及到的一些基本术语、结构有所了解,有一定的理论基础和动手实践能力。
但对理论知识兴趣不高,理论联系实际能力欠缺。
二、教学设计
通过教学分析,本课程内容理论性较强,又缺乏实验环节,加上学生学习兴趣不浓,课堂参与度低。
为了改善学生的学习现状,本课程遵循“以学生为主体、以探索为主线、以生活为主题、以兴趣为主流”的教学理念,突出学生在教师的点拨下的自主性学习,研究性学习、体验性学习和愉快性学习。
介于此,我主要采用类比教学法,用生活中形象的事物类比操作系统中抽象的概念,创设真实生动情景,使学生感到抽象的理论不再抽象,提高学生的学习积极性;采用问题驱动法,适时的抛出问题,引导学生积极主动的去分析解决问题,提高课堂的互动性。
同时采用动画演示手段让学生更加直观的了解抽象事物。
在具体的教学过程设计上,共分为四个环节:
①导入新课(2);
②详解新课(11);
③知识应用(15);
④课堂小结(2)。
三、教学设计
导入新课阶段,以“知识回顾”的形式回忆信号量概念,在回顾整型信号量机制缺陷的基础上,采用问题驱动教学法抛出“记录型信号量是否能解决忙等缺
陷”这一问题引出记录型信号量机制。
详解新课阶段,针对数据结构这一教学重点,我首先以图的形式直观的给出记录型信号量的数据结构,引导学生联系进程状态、对比整型信号量,解决导入新课阶段的问题。
然后通过类比教学法引入“汽车进入停车位必须先申请停车证”这一生活情景,引导学生采用联想学习法将数据结构中涉及的抽象概念与生活中的事物关联,结合汽车入库出库提出问题“记录型信号量如何实现资源的申请和释放”,引出第二个教学重点“原语操作”。
接下来采用汽车入库出库动画模拟演示5个进程对3个系统资源的访问过程,分别引出wait原语和signal原语的语法结构和作用,同时采用提问填空的形式检查学生是否掌握原语操作的语法;最后采用问题驱动法抛出问题,引导学生结合记录型信号量中的整型值和系统资源的关系,归纳总结出记录型信号量的物理含义。
知识应用阶段,针对同步应用这一教学重难点,引入经典进程同步问题哲学家就餐,通过问题描述、关系分析、思路整理、信号量设置,给出一个就餐算法,带领学生结合进程并发的中断性,提问学生哲学家就餐的最佳情况和最坏情况,分析该算法可能出现的“死锁”问题。
然后通过日常生活中的规则引导学生思考解决死锁问题的方法,调动学生参与课堂,结合学生给出的解决方案,说明各种方案的实际应用范畴。
另外给出三种常用方案,其中第一种解决方案“服务生法”由教师带领学生当堂解决,在理论教学中引出“小角色也有大作为”的社会情感培养,第二种解决方案由教师引导学生课后自我探究解决,同时通过分析第三种方案跟其他方案本质区别,引出下次课内容。
最后采用对比教学法,引导学生从数据结构、特点、适用范围三个方面对整型信号量和记录型型信号量展开小结。
各位领导、老师们,本次课我根据课程的特点和学情,主要采用类比教学法和问题驱动法,以“教师为主导,学生为主体”,教法学法相结合,力求使学生在积极、愉快的课堂氛围中提高自己的认识水平,从而达到预期的教学效果。
我的说课完毕,谢谢大家。