CN102013191A - 一种用于操作系统实验教学的智能教具 - Google Patents
一种用于操作系统实验教学的智能教具 Download PDFInfo
- Publication number
- CN102013191A CN102013191A CN 201010273275 CN201010273275A CN102013191A CN 102013191 A CN102013191 A CN 102013191A CN 201010273275 CN201010273275 CN 201010273275 CN 201010273275 A CN201010273275 A CN 201010273275A CN 102013191 A CN102013191 A CN 102013191A
- Authority
- CN
- China
- Prior art keywords
- chip
- telescopic arm
- rotating disk
- photoelectric sensor
- driving
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Manipulator (AREA)
Abstract
本发明属于教具,特别涉及演示操作系统中进程调度、进程同步、死锁等知识点的操作系统教学的智能教具。其结构主要包括转盘、伸缩臂、方台、数码管、发光二极管和光电传感器。作为一种智能教具,将嵌入式系统的优点与传统形象化教具创造性地结合起来,因此模型也兼具可由用户自行编程和直观呈现的两大优点。该教具结构简单清晰,演示直观,成本低适合在教学中推广。
Description
技术领域
本发明是一种应用于操作系统进程相关内容演示、实验的教具。具体来说,是一种将操作系统中进程有关概念具象化,直观呈现操作系统中进程执行过程中的进程调度、进程同步、死锁等状态的教具。作为一种形象化教具,本发明直观地呈现多进程在算法的指导下协调执行的场景。
背景技术
操作系统是计算机配备的最基本、最重要的系统软件。它不仅是硬件与所有其他软件之间的接口,而且任何数字电子计算机都必须在其硬件平台上加载相应的操作系统之后,才能构成一个可以协调运转的计算机系统。只有在操作系统的指挥控制下,各种计算机资源才能被分配给用户使用。也只有在操作系统的支撑下,其他系统软件如各类编译系统、程序库和运行支持环境才得以取得运行条件。没有操作系统,任何应用软件都无法运行。
由于操作系统在计算机系统所处的位置决定了操作系统课程的重要性,操作系统课程是计算机类专业、通信类专业、自动化类专业的专业主干课程。学好操作系统不仅能较全面地掌握计算机软硬件知识,而且为以后学习数据库系统、计算机网络、分布式系统等课程打下良好的基础。
当前的操作系统课堂教学以及操作系统上机实验普遍存在一些问题,导致学生无法深入理解操作系统内部运行机制,无法达到既定的教学目标。这些问题包括:(1)操作系统中概念、内部机制过于抽象化、专业化,难以通过类比的方法,获得感性的、直观的理解。(2)在操作系统教学中,为了对操作系统有更加深入的、直观的理解,该课程一般都会安排与相应章节内容相关的上机实验。然而这些实验多是通过系统调用的方式获取进程信息、资源信息,通过输出的数据分析操作系统执行状态。这就导致了操作系统实验缺乏直观性、趣味性。(3)由于在课上学习的过程中对操作系统相关知识的学习、理解过程中本身存在问题,导致实验难以开展,又因实验单调枯燥,很多时候学生实验课都在应付了事。
为了解决操作系统教学中存在的这些问题,该发明提出一种应用于操作系统进程相关内容演示、实验的教具。首先,该教具是一种演示教具,它对操作系统中进程相关的概念提供了一组形象化模型表示,可在预先写好的程序的控制下在课上演示操作系统进程执行过程。另外,作为一种智能教具,它允许用户自行编写程序来控制模型教具中各部件的运转情况,达到直观的观察、验证操作系统在不同的算法指导的情况之下的运行的情况。
操作系统相关知识:
操作系统从用户交互性的角度主要可以分为三种类型:批处理系统、分时操作系统、实时操作系统。批处理系统分为单批处理系统、多批处理系统。与单批处理系统相比,多批处理系统内存同时驻留多个要执行的程序,当正在执行的程序进行I/O操作时,系统会通过调度策略选择下一个程序交付给此时处于空闲的处理机。在多批处理操作系统中,程序执行的顺序是严格按照它们被载入内存的先后顺序依次执行的,在执行的过程中不受用户干预。与多批处理操作系统相同,分时系统中内存中也同时驻留多个待执行程序,但是多个程序不再是依次执行而是在逻辑上同时执行。分时系统有更好的交互性,这主要表现在分时系统同时可以对多个终端用户服务,对每个用户的输入都能做出及时的响应,使每个用户在感觉上是独占一台机器的。
在分时操作系统中处理机的运行时间被分割成很短的时间段,每个时间段称为一个时间片。通过一个调度策略,在某一时刻将一个时间片分给某一个程序,即这个程序在这个时间片上得到处理。当时间片用尽,这个程序的执行结果暂时保存起来,然后系统依照某一调度策略去选择下一个程序执行。这样虽然某一时刻只有一个程序被处理,但在一个较长的时间段上每个程序都得到了处理。处理机处理的速度很快,划分的时间片很小,所以给用户的感觉是多个程序在同时被处理。这样一组逻辑上同时执行的程序被认为是并发的。与并行不同,并发不能做到在某一个时刻同时执行多个程序,而是通过处理机运行时间的划分给用户带来感觉上几个程序同时执行。
在分时操作系统中,由于每个程序都以走走停停的方式轮流执行,为了更好描述某个一个时刻某一个程序执行状态而引入进程的概念。进程是程序在某一个数据集上一次执行过程,也是操作系统进行资源分配和保护的基本单位。一个进程从创建到消亡的整个生命周期,可用一组状态加以刻画。按照程序执行过程中的状态可以定义三种不同的进程状态:运行态、就绪态、等待态。运行态的进程占有处理机,并且正在执行;就绪态的进程已经具备运行条件但是由于并不占有处理机,暂时不能运行;等待态的进程因为等待某种条件的发生,例如等待输入输出接口空闲,而暂时不能运行。
在分时操作系统中,某一时刻最多有一个进程处于运行态,多个进程处于就绪态和等待态。在一定条件下进程的状态发生相互转化,从运行态到就绪态的转化的条件是当前处于运行态的进程时间片用尽;从就绪态到运行态的转化条件是某一个处于就绪态的进程在某一选择策略条件下被系统选中执行;从运行态到等待态的转换条件是进程在执行过程中,由于发现某个执行条件不满足而主动放弃处理机进入等待状态;在事件满足的条件时,进程会从等待态转化到就绪态。
处于就绪状态的几个进程以先进先出的原则构成的一个逻辑上的集合,称为就绪队列。
处于等待状态的几个进程以先进先出的原则构成的一个逻辑上的集合,称为等待队列。
操作系统调度问题的关键知识点,是在操作系统中同时存在多个进程的情况下,按一定策略为处于就绪态的进程分配处理机,以避免因进程相互争夺处理机而导致的处理机利用率下降以及某些进程长期得不到执行等问题。
在分时操作系统中,进程执行过程中会访问共享的资源。这些资源包括硬件资源和软件资源统称为临界资源。部分临界资源的访问是互斥的,即在某个进程提出申请资源之后,不允许其它进程访问。
进程同步描述的是一组同时执行的进程,在都要访问共享的临界资源而相互制约的条件下,进行互相合作、互相等待,使得各进程按一定的速度执行的场景。
几个进程互斥访问的临界资源时,由于资源分配策略不合理,导致在极端的情况下,几个进程都在占有某资源的同时等待其它进程占有的资源,这可能导致几个进程一直处在等待态,等待其他进程释放资源,这一现象称为死锁。死锁问题的关键知识点,是如何发现死锁并避免死锁。
发明内容
本发明的目的是提供一种演示操作系统中进程调度、进程同步、死锁等知识点的教具。
该教具的主要部件及结构如下:
(1)动作执行部件转盘、伸缩臂,提供动力的部件直流电机、步进电机,以及连接在动作执行部件和提供动力的部件之间的动力传动部件包括齿轮、连接管、支撑平台等;
(2)用来控制系统运转的核心控制部件单片机以及其外围电路其中包括直流电机驱动、步进电机驱动、数码管驱动、多路选通芯片;
(3)为完整描述操作系统必要的部件,其中包括用于表示操作系统进程的小物块,用来描述进程状态的方台,用来表示操作系统资源的数码管;
(4)用于表示操作系统执行状况的部件发光二极管;
(5)用于检测表示进程的小物块位置以及伸缩臂凹槽位置的部件光电传感器;
(6)黑盒处于教具结构中最底部,为整个系统部件的支撑。
黑盒是一个中空、顶部为正方形的盒子,黑盒内部用来装载单片机、驱动芯片、电机搭建的电路,黑盒处于模型最底部,黑盒的顶部为方台、光电传感器支撑面;
转盘处于黑盒的正上方,是一个厚度L<4mm的圆形转盘,转盘的圆心与黑盒的中心重合,直径小于黑盒顶部正方形的边长,并在竖直方向上与黑盒顶部保持一定距离d.转盘通过齿轮与直流电机连接,在直流电机旋转时转盘在齿轮的推动下一同旋转,黑盒顶部中心处、转盘的圆心各有一个半径为R的小孔,一个半径为r<R的连接管,从转盘中心黑盒顶部穿过与内部步进电机粘合在一起;
支撑平台为一多边形平板处于转盘的上方,与连接管的一端粘合。步进电机旋转时,会带动连接管、支撑平台会与步进电机一起旋转,支撑平台为伸缩臂以及另一个步进电机的支撑面;
伸缩臂从顶部看是为长方形,其一段有一个凹槽,凹槽开口方向竖直向下,另一端末尾有一段齿痕粘合在臂上。伸缩臂处于支撑平台的上方,并固定于支撑平台上。伸缩臂在一端的齿痕和固定于另一步进电机的齿轮的作用下,在另一步进电机旋转时沿径向推拉伸缩臂。伸缩臂也可在支撑平台的带动下与支撑平台一同旋转,伸缩臂有凹槽的一侧可以包住处于转盘上的小物快,并在沿径向运动的过程中,推拉小物块沿径向运动相应位移,而当伸缩臂随支撑平台旋转时,即伸缩臂沿转盘切线方向运动时,并不会触碰小物块;
用于描述进程就绪态和等待态的多个方台与转盘竖直方向上同高分布在转盘周围。方台的边缘与转盘外边缘相切、径向距离n<2mm。这些方台逻辑上可分为两组,一组构成了一个就绪队列,另一组构成等待队列。当表示进程的小物块处于构成就绪队列的方台上时,此时表示进程的小物块进入了就绪状态,当表示进程的小物块处于构成等待队列的方台上时,表示进程的小物块进入了等待状态;
一组光电传感器用来检测旋转过程中表示进程的小物块的位置和伸缩臂凹槽的位置。光电传感器安置在每个方台的其中一侧与方台紧邻的位置,竖直方向高度略高于方台的高度,用来检测小物块当前移动到哪一个方台对应的位置,除此之外空闲的一个光电传感器用来全局记录表示进程的小物块随转盘一同旋转转过的圈数;
单片机为整个系统的核心控制部件,它通过驱动芯片与步进电机,直流电机,数码管,发光二极管连接,输出信号控制步进电机的正向旋转反向或旋转以及旋转的角度,控制直流电机旋转还是停止,控制数码管亮灭以及显示数字,控制发光二极管亮灭,另一方面,它通过多路选择芯片轮询一组光电传感器的电位改变,获得小物块随转盘旋转过程中的位置以及小物块随转盘转过的圈数,此外,单片机还要记录就绪队列、等待队列的状态,记录处于逻辑上对首的位置的方台的编号,处于队尾位置的方台的编号;记录小物块在随转盘旋转的圈数以判断表示进程的小物块时间片是否用尽;记录表示资源的数码管的状态,即该资源类型访问是否为互斥的、资源个数、资源是否处于被访问状态。
演示方法:
该教具通过表示进程的小物块在转盘上旋转,停止在表示就绪队列的方台上和停止在表示等待队列的方台上,这样一组状态来表示进程执行过程中进程的运行态、就绪态、等待态。进程每次状态的转化,即从某个方台移动到转盘、从转盘移动到某个方台,是在伸缩臂的旋转、伸缩,转盘的旋转的协调配合下完成的。
表示进程的小物块从一个方台移动到另一个方台,或者移动上转盘可以分解成为一些基本动作序列。
1.将小物块从某一个方台上移动到转盘
单片机向驱动芯片发出指令旋转,步进电机在驱动的控制下旋转,并通过连接管带动支撑平台、伸缩臂一起旋转。此时单片机从与该方台旁紧邻的光电传感器读入电信号,伸缩臂移动到该方台位置时,光电传感器因被遮住而产生电信号变化。该电信号的改变被单片机检测到,单片机向驱动芯片发出指令停止旋转,步进电机在驱动芯片控制下,继续转若干周后停止,支撑平台、伸缩臂也在步进电机的带动下继续旋转一个单位角度后停止。单片机向驱动芯片发出指令旋转,另一步进电机在驱动芯片的控制之下旋转若干个角度后停止并带动伸缩臂向外伸长一定长度后停止。单片机控制再次控制步进电机反向旋转,在步进电机的带动下,支撑平台、伸缩臂反向旋转一定相应角度后停止,此时表示进程的小物块正好处于伸缩臂的下方。单片机向驱动芯片发出指令反向旋转,另一步进电机在驱动芯片的控制下反向旋转,伸缩臂在步进电机的控制下向内收缩一定长度回到原来位置,并带动表示进程的小物块移动到表示处理机的转盘上。
2.将小物块从转盘移动到某一个方台上
单片机向驱动芯片发出指令旋转,直流电机在驱动芯片的控制之下旋转并带动转盘旋转。此时单片机从与该方台旁紧邻的光电传感器读入电信号,小物块移动到该方台位置时,光电传感器因被遮住而产生电信号变化。该电信号的改变被单片机检测到后,单片机向驱动芯片发出指令停止旋转,直流电机在驱动芯片的控制下停止旋转。此时表示进程的小物块静止于与方台相对的位置。单片机控制步进电机旋转,支撑平台、伸缩臂在步进电机的带动下旋转到小物块的位置,此时小物块处于伸缩臂下方凹槽内。单片机向控制另一步进电机旋转并带动伸缩臂向外伸长一定角度后停止,此时小物块随伸缩臂沿径向向外移动相应距离,静止于方台上。单片机控制步进电机旋转若干角度后停止,支撑平台、伸缩臂也随之旋转相应角度后停止,此时伸缩臂从小物块上面移开。单片机向驱动芯片发出指令反向旋转,另一步进电机在驱动芯片的控制下反向旋转一定的长度后停止,伸缩臂在步进电机的带动下沿径向向内移动响应位移后回到初始位置。
由此,进程的状态的转化在该模型中可以描述为:
1.进程从就绪态到运行态的转化:将小物块从某一个表示就绪态的方台移动到表示处理机的转盘上。
2.进程从运行态到就绪态的转化:将小物块从表示处理机的转盘上移动到某一个表示就绪态的方台。
3.进程从运行态到等待态的转化:将小物块从表示处理机的转盘上移动到某一个表示等待态的方台。
4.进程从等待态到运行态的转化:将小物块从某一个表示等待态的方台移动到表示处理机的转盘,再从表示处理机的转盘移动到某一个表示就绪态的方台。
由于操作系统的多个进程的执行过程是多种多样的,因而无法规定系统以某一种具体形式来描述操作系统多个进程同步执行的情况,以及在极端情况下多进程发生死锁的情况。但是对于多个同步执行的进程中单独的一个进程来看,状态转化只有以上叙述的四种情况,在每次状态转化时执行上述相应动作。只是在系统资源状态不同,以及算法不同的情况下,多个进程状态转化的顺序会有不同,进程执行的先后顺序也会不同。这也反映了操作系统进程在执行过程中的复杂性,某一个进程从一个状态转为另一个状态带有一定不确定性。
该发明提出一种应用于操作系统教学的智能教具,该智能教具的设计中将嵌入式系统的优点与传统教学教具创造性地结合起来。因此模型也兼具可由用户自行编程和直观呈现的两大优点。
与传统的教具相比,该模型教具具有传统教具的所有优点:(1)有利于学生通过多种渠道获取对操作系统进程有关概念、执行机制的理解。(2)通过类比的方式使操作系统进程有关概念、执行机制形象化、具体化,进而帮助学生获得直观的,感性的理解。(3)在直观的、形象的学习方式的帮助下,学生会有更加深刻的理解和思考。(4)在教学中利用教具的趣味性、新鲜感,有利于调动学生学习的积极性主动性,从而有助于提到学生的动手能力,引发对编程的兴趣。
另外,操作系统进程在执行过程是在算法指导下协调进行的,所以操作系统进程执行的场景是多种多样的,这就要求该模型教具可以演示多种进程执行的场景。该教具采用嵌入式的系统结构,学生、教师都可以自行设计实验,给学生创造了一些动手实践机会。
系统还具有材料简单、易于获取,成本低;结构清晰、直观,实验生动形象;设计精巧、轻便,易于携带、使用;可独立于计算机执行等优点,适合在教学中推广。
附图说明
附图1为本教具俯视图附图2为本教具主视图;
附图3为本教具电路原理图;
附图4为本教具演示下进程由就绪态到运行态状态转化流程图;
附图5为伸缩臂在步进电机带动下每次转过的单位角度a;
附图6为本教具伸缩臂位置校准流程图;
附图7为本教具演示下进程由运行态到就绪态状态转化流程图;
附图8为本教具演示下进程由运行态到等待态状态转化流程图;
附图9为本教具演示下进程由等待态到就绪态状态转化流程图;
附图10为本教具演示下两进程同步执行流程图的第一部分;
附图11为本教具演示下两进程同步执行流程图的第二部分;
附图12为本教具演示下两进程同步执行流程图的第三部分;
附图13为本教具演示下两进程执行引发死锁过程流程图。
附图1、2、3中:1转盘、2支撑平台、3伸缩臂、4小齿轮、5大齿轮、6数码管、7数码管、8发光二极管、9发光二极管、10步进电机、11步进电机、12步进电机、13连接管、14黑盒、15橡皮块、16齿痕、17齿轮、18光电传感器、19光电传感器、20光电传感器、21光电传感器、22光电传感器、23光电传感器、24光电传感器、25方台、26方台、27方台、28方台、29方台、30方台、31单片机、32驱动芯片、33驱动芯片、34驱动芯片、35驱动芯片、36驱动芯片、37多路选通芯片、38橡皮块
具体实施方式
实施例1:操作系统实验教学的智能教具
转盘1是一个可旋转的圆盘,用来承载并带动橡皮块15旋转。转盘表示操作系统中的处理机。
支撑平台2用来承载步进电机10、伸缩臂3,可水平旋转。
伸缩臂3可延径向伸缩,用来推动橡皮块15延径向移动。
小齿轮4可旋转带动大齿轮5旋转。大齿轮5旋转,用来带动转盘1旋转。
数码管6、数码管7分别用来表示系统的某一类资源的个数。
发光二极管8用来标识电源是否接通。在电源接通时,发光二极管8发光。
发光二极管9用来标识系统是否有死锁情况发生。发生死锁时,发光二极管9发光。
步进电机10带动齿轮17旋转。
步进电机11带动连接管13旋转。
步进电机12带动小齿轮4旋转。
连接管13连接步进电机11与支撑平台2并带动支撑平台2旋转。
黑盒14是步进电机11、直流电机12、光电传感器18、光电传感器19、光电传感器20、光电传感器21、光电传感器22、光电传感器23、光电传感器24、方台25、方台26、方台27、方台28、方台29、方台30的支撑物。
橡皮块15、橡皮块38用来表示操作系统中的进程。在转盘1旋转时,会在转盘1和橡皮块15、橡皮块38之间静摩擦力的作用下随转盘旋转。在伸缩臂3的推动下,橡皮块15、橡皮块38可以沿径向移动。
齿痕16与齿轮17咬合,带动伸缩臂3伸缩。
齿轮17可以在步进电机10的带动下正向、反向旋转,带动齿痕沿径向向里或向外运动。
光电传感器18用来记录记录橡皮块15旋转地圈数、校准伸缩臂3的位置。在被橡皮块15遮住时,会产生电位的变化传递给单片机31。
光电传感器19、光电传感器20、光电传感器21、光电传感器22、光电传感器23、光电传感器24用来检测随转盘1旋转过程中橡皮块15的位置以及伸缩臂3凹槽一端的位置。在被橡皮块15遮住时,会产生电位的变化传递给单片机31。
方台25、方台26、方台27可以用来承载橡皮块15,与转盘等高并与转盘的边缘相切,径向距离R<3mm.它们一起组成了操作系统中的一个等待队列。
方台28、方台29、方台30可以用来承载橡皮块15,与转盘等高并与转盘的边缘相切,径向距离R<3mm.它们一起组成了操作系统中的一个就绪队列。
单片机31控制整个系统的执行。它从光电传感器18、光电传感器19、光电传感器20、光电传感器21、光电传感器22、光电传感器23、光电传感器24获取输入,输出信号控制数码管6、数码管7显示的资源个数;控制直流电机12,步进电机10、步进电机11的旋转与停止;控制发光二极管8、发光二极管9的亮灭。
驱动芯片34、驱动芯片35、驱动芯片36用来驱动直流电机10以及步进电机11、步进电机12的旋转与停止。
驱动芯片32、驱动芯片33用来用来控制数码管6、数码管7数字的显示。
多路选通芯片37对光电传感器18、光电传感器19、光电传感器20、光电传感器21、光电传感器22、光电传感器23、光电传感器24编码,在某一时刻只有一个光电传感器被选通。
部件连接:
光电传感器18、光电传感器19、光电传感器20、光电传感器21、光电传感器22、光电传感器23、光电传感器24,发光二极管8、发光二极管9,方台25、方台26、方台27、方台28、方台29、方台30,数码管6、数码管7粘合在黑盒14上。
直流电机12与黑盒14粘合,直流电机12与小齿轮4粘合,小齿轮4与大齿轮5咬合,大齿轮5与转盘1粘合。
步进电机11与黑盒14粘合,步进电机11与连接管13粘合,连接管13与支撑平台2粘合。
支撑平台2与步进电机10粘合,步进电机10与齿轮17粘合,齿轮17与齿痕16咬合,齿痕16与伸缩臂3粘合。
光电传感器18、光电传感器19、光电传感器20、光电传感器21、光电传感器22、光电传感器23、光电传感器24与多路选通芯片37导线连接,多路选通芯片37与单片机31导线连接。
数码管6、数码管7与驱动芯片33、驱动芯片32导线连接,驱动芯片33、驱动芯片32与单片机31导线连接。步进电机11、步进电机12与驱动芯片35、驱动芯片36导线连接,驱动芯片35、驱动芯片36与单片机31导线连接。直流电机10与驱动芯片34导线连接,驱动芯片34与单片机31导线连接。
实施例2:
本发明所述教具用于演示处于就绪态的进程队列的实施方式如下;
本发明所述教具对于就绪队列和等待队列实施方式如下:
方台28、方台29、方台30组成就绪队列。此时系统最多只能有三个进程同时处于就绪态。
方台25、方台26、方台27组成等待队列,此时系统最多只能有三个进程同时处于等待态。
本发明所述教具对于资源的描述:
数码管6表示第一类资源,数码管显示数字表示该类资源的数目。数目最多为9个,最少为0个。
数码管7表示第二类资源,数码管显示数字表示该类资源的数目。数目最多为9个,最少为0个。
本发明所述教具对于时间片描述实施方式如下;
表示进程的橡皮块15由就绪态转为运行态之后,在随转盘1旋转过程中第一次被光电传感器18检测开始到下一次被光电传感器18检测到为止经历的时间定义为系统分配给进程执行的一个时间片。
在无特别说明的情况下,系统中提到的资源均为临界资源。既可以是互斥的临界资源,也可以是可同时访问的临界资源,因具体实验而定。如无特别说明的情况下,下文提到的转盘1、支撑平台2旋转方向与附图1中箭头所示方向一致。
系统中对于进程状态的描述:
代表进程的橡皮块15处于代表处理机的转盘1上,并在静摩擦力的作用下与转盘1同步旋转时,此时进程处于运行态。
代表进程的橡皮块15静止于由方台28、29、30组成的就绪队列上时,进程处于就绪态。
代表进程的橡皮块15静止于由方台25、26、27组成的等待队列上时,进程处于等待态。
伸缩臂位置校准:
伸缩臂的校准发生在单片机31上电之后,整个实验开始之前;以及在实验执行的过程中,伸缩臂3进行的动作包括将代表进程的橡皮块15推入或取出就绪队列或者等待队列之后。伸缩臂的校准保证每次伸缩臂在推、拉进程的橡皮块15之前,起始于同一位置。
单片机31向驱动芯片35发出指令旋转,步进电机11在驱动芯片35的控制下旋转,步进电机11旋转带动支撑平台2旋转,支撑平台2带动伸缩臂3旋转。同时单片机31不断的从多路选通芯片37读入信号并分析判断光电传感器18的电位是否为低电位。
当旋转中的伸缩臂3遮住光电传感器18时,光电传感器18变为低电位,单片机31通过多路选通芯片37获得信号,向驱动芯片35发出指令停止,步进电机11在驱动芯片35的控制下旋转两个单位角度a后停止。支撑平台2在步进电机11的带动下,旋转两个单位角度后停止。伸缩臂3在支撑平台2带动下,也旋转两个单位角度a后停止。伸缩臂3转过的单位角度a,可参见附图5.
对于上述校准过程,如附图6所示具体步骤如下:
步骤1.单片机31向驱动芯片35发出指令旋转,步进电机11在驱动芯片35的控制下旋转,步进电机11旋转带动支撑平台2旋转,支撑平台2带动伸缩臂3旋转。
步骤2.单片机31通过多路选通芯片37选通光电传感器18,并不断读入信号。当旋转中的伸缩臂3遮住光电传感器18时,光电传感器18变为低电位。
步骤3.单片机31判断从光电传感器18读入信号是否为低电平。
步骤4.单片机31通过多路选通芯片37获得信号,向驱动芯片35发出指令停止,步进电机11在驱动芯片35的控制下旋转两个单位角度a后停止。支撑平台2在步进电机11的带动下,旋转两个单位角度后停止。伸缩臂3在支撑平台2带动下,也旋转两个单位角度a后停止。
本发明所述教具用于演示进程状态转化的实施方式如下:
演示进程由就绪态到运行态的转化:
在处理机处于空闲状态的状态时,系统会通过某一个调度策略选择一个处于就绪态的进程执行,此时被选中的进程要进行从就绪态到运行态的转化。
单片机31定位代表进程的橡皮块15在由方台28、29、30组成的就绪队列中的位置。在系统只有一个进程的情况下,代表进程的橡皮块15会静止于队首即方台30.单片机31向驱动芯片35发出指令旋转,步进电机11在驱动芯片35的控制下旋转,步进电机11旋转带动支撑平台2旋转,支撑平台2带动伸缩臂3旋转。同时单片机31不断的从多路选通芯片37读入信号并分析判断光电传感器24的电位是否为低电位。
当旋转中的伸缩臂3遮住光电传感器24时,光电传感器24变为低电位,单片机31通过多路选通芯片37获得信号。向驱动芯片35发出指令,步进电机11在驱动芯片35的控制下旋转两个单位角度之后停止,伸缩臂3也旋转两个单位角度后停止。单片机31向驱动芯片36发出指令,步进电机10在驱动芯片36的控制下移动十个单位角度后停止,此时伸缩臂3在齿轮17、齿痕16的作用下向外延伸一定长度后停止。单片机31向驱动芯片35发出指令反向旋转两个角度,步进电机11在驱动芯片35的控制下反向旋转两个单位角度之后停止,伸缩臂3也旋转两个单位角度后静止。
此时表示进程的橡皮块15正处于伸缩臂3的凹槽中、方台30上。
单片机31向驱动芯片36发出指令,步进电机10在驱动芯片36的控制下反向旋转十个角度之后停止,此时伸缩臂3在齿轮17、齿痕16的作用下向内收缩一定长度后停止。
此时伸缩臂3的动作结束,进行上述伸缩臂校准过程,回到指定位置。
单片机31向驱动芯片34发出指令旋转,直流电机12在驱动芯片34的控制下旋转,在直流电机12的带动下转盘1旋转。在静摩擦力的作用下,橡皮块15与转盘1一起旋转。旋转过程中,橡皮块15首次经过光电传感器18时,单片机31检测通过多路选通芯片37,光电传感器18检测到橡皮块15,此时系统会将进程标记为运行态,完成进程从就绪态到运行态的转化。
上述状态转换过程,如附图4所示具体步骤如下:
步骤1.单片机31向驱动芯片35发出指令旋转,步进电机11在驱动芯片35的控制下旋转,步进电机11旋转带动支撑平台2旋转,支撑平台2带动伸缩臂3旋转。同时单片机31不断的从多路选通芯片37读入信号并分析判断光电传感器24的电位是否为低电位。当旋转中的伸缩臂3遮住光电传感器24时,光电传感器24变为低电位,单片机31通过多路选通芯片37获得信号。向驱动芯片35发出指令停止,步进电机11在驱动芯片35的控制下旋转两个单位角度之后停止,伸缩臂3也旋转两个单位角度后停止。此时伸缩臂位置处于方台30附近的位置,与方台30和转盘1圆心的连线成一定角度,角度为2a。
步骤2.单片机31向驱动芯片36发出指令,步进电机10在驱动芯片36的控制下反向旋转十个角度之后停止,此时伸缩臂3在齿轮17、齿痕16的作用下向内收缩一定长度后停止。
步骤3.单片机31向驱动芯片35发出指令反向旋转两个角度,步进电机11在驱动芯片35的控制下反向旋转两个单位角度之后停止,伸缩臂3也旋转两个单位角度后静止。此时表示进程的橡皮块15正处于伸缩臂3的凹槽中、方台30上。
步骤4.单片机31向驱动芯片34发出指令,步进电机10在驱动芯片36的控制下移动十个角步距之后停止,此时伸缩臂3在齿轮17、齿痕16的作用下向内收缩一定长度后停止。此时收缩的长度与步骤2中伸出的长度相等。
步骤5.伸缩臂3执行上述校准过程,回到初始位置。
步骤6.单片机31向驱动芯片34发出指令旋转,直流电机12在驱动芯片34的控制下旋转,在直流电机12的带动下转盘1旋转。在静摩擦力的作用下,橡皮块15与转盘1一起旋转。此时单片机31不断地通过多路选通芯片37读入光电传感器18的电位。当橡皮块15经过光电传感器18时,单片机31检测到光电传感器18判断橡皮块15已经到达光电传感器18所在位置。系统将进程标记为运行态,进程从这一刻起开始占有处理机并执行。
演示进程由运行态到就绪态的转化:
处于运行态的进程由于时间片用尽要暂时放弃处理机而进入就绪状态。
当用于表示进程的橡皮块15处于运行态与转盘1一起旋转到光电传感器18时,此时光电传感器18由于橡皮块15的遮挡产生由高到底的电位变化并通过多路选通芯片37被单片机31检测到。系统判断此时表示进程的橡皮块15时间片用尽,要从运行态转为就绪态,并插入由方台28、方台29、方台30组成的就绪队列队尾的位置。在系统只有唯一一个进程时,队列为空,此时表示进程的橡皮块15要被移动到方台30上。
如附图7所示此时进程由运行态到就绪态的转化步骤如下:
步骤1.在橡皮块15随转盘1旋转过程中,单片机31不断从光电传感器24读入电信号。当橡皮块15经过光电传感器24的位置时,单片机31通过多路选通芯片37检测到光电传感器24电信号由高电位转为低电位。单片机31向驱动芯片34发出指令停止,直流电机12在驱动芯片34的控制下经过一个很小的单位时间t后停止转动。此时橡皮块15静止于与方台30正对的位置。
步骤2.单片机31向驱动芯片35发出指令旋转,步进电机11在驱动芯片35的控制下旋转并带动支撑平台2、伸缩臂3一起转动。
此时单片机31不断通过多路选通芯片37从光电传感器24读入电信号,当检测到电位由高电位变为低电位时,单片机31向驱动芯片35发出指令停止,步进电机11在驱动芯片35的控制下继续旋转两个角步距停止,支撑平台2、伸缩臂3也转过两个单位角度a后停止。此时伸缩臂3静止于橡皮块15的正上方。
步骤3.单片机31向驱动芯片36发出指令旋转,步进电机10在驱动芯片36的控制下旋转并带动齿轮17旋转。伸缩臂在齿轮17、齿痕16的相互作用下向外伸张。代表进程的橡皮块15在伸缩臂凹槽推力的作用下和伸缩臂一起延径向向外运动。在单片机31和驱动芯片36的控制下步进电机10移动十个角步距后停止,此时表示进程的橡皮块15被推到方台30上。
步骤4.单片机31向驱动芯片35发出指令旋转,步进电机11在驱动芯片35的控制下转旋转两个角步距后停止,支撑平台2、伸缩臂3也转过两个单位角度a后停止。此时伸缩臂3的凹槽从橡皮块15上移开。
步骤5.单片机31向驱动芯片36发出指令旋转,步进电机10在驱动芯片36的控制下按4步骤中旋转地相反方向旋转十个角步距后静止。伸缩臂3在齿轮17,齿痕16的控制下向内收缩一定长度后回到原位。
步骤6.伸缩臂3执行上述校准过程,回到初始位置。系统标记进程为就绪态,并处于就绪队列中方台30的位置。
演示进程由运行态到等待态的转化:
处于运行态的进程由于某些执行条件不能满足而主动放弃处理机而进入等待状态。
当用于表示进程的橡皮块15处于运行态与转盘1一起旋转到光电传感器18时,此时光电传感器18由于橡皮块15的遮挡产生由高到底的电位变化并通过多路选通芯片37被单片机31检测到。系统判断此时表示进程的橡皮块15在执行过程中是否因等待某些条件而不能继续执行,要从运行态转为等待态,并插入由方台25、方台26、方台27组成的等待队列队尾的位置。在系统只有唯一一个进程时,队列为空,此时表示进程的橡皮块15要被移动到方台27上。
如附图8所示此时进程由运行态到等待态的转化步骤如下:
步骤1.在橡皮块15随转盘1旋转过程中,单片机31不断从光电传感器21读入电信号。当橡皮块15经过光电传感器21的位置时,单片机31通过多路选通芯片37检测到光电传感器21电信号由高电位转为低电位。单片机31向驱动芯片34发出指令停止,直流电机12在驱动芯片34的控制下经过一个很小的单位时间t后停止转动。此时橡皮块15静止于与方台27正对的位置。
步骤2.单片机31向驱动芯片35发出指令旋转,步进电机11在驱动芯片35的控制下旋转并带动支撑平台2、伸缩臂3一起转动。
此时单片机31不断通过多路选通芯片37从光电传感器21读入电信号,当检测到电位由高电位变为低电位时,单片机31向驱动芯片35发出指令停止,步进电机11在驱动芯片35的控制下继续旋转两个角步距停止,支撑平台2、伸缩臂3也转过两个单位角度a后停止。此时伸缩臂3静止于橡皮块15的正上方。
步骤3.单片机31向驱动芯片36发出指令旋转,步进电机10在驱动芯片36的控制下旋转并带动齿轮17旋转。伸缩臂在齿轮17、齿痕16的相互作用下向外伸张。代表进程的橡皮块15在伸缩臂凹槽推力的作用下和伸缩臂一起延径向向外运动。在单片机31和驱动芯片36的控制下步进电机10移动十个角步距后停止,此时表示进程的橡皮块15被推到方台27上。
步骤4.单片机31向驱动芯片35发出指令旋转,步进电机11在驱动芯片35的控制下转旋转两个角步距后停止,支撑平台2、伸缩臂3也转过两个单位角度a后停止。此时伸缩臂3从橡皮块15上移开。
步骤5.单片机31向驱动芯片36发出指令旋转,步进电机10在驱动芯片36的控制下按4步骤中旋转地相反方向旋转十个角步距后静止。伸缩臂3在齿轮17,齿痕16的控制下向内收缩一定长度后回到原位。
步骤6.伸缩臂3执行上述校准过程,回到初始位置。系统标记进程为等待态,并处于等待队列中方台27的位置。
演示进程由等待态到就绪态的转化:
进程执行过程中要可能会访问临界资源,在临界资源不可用的情况下,进程要发生从运行态到等待态的转化。在资源可用时,系统会通知处于等待态的进程临界资源状态发生了改变并检查此刻哪些进程执行条件得到满足,可以从等待态转化为就绪态。
某一个进程放弃处理机并转入相应状态之后,系统会检测临界资源表示数码管6、数码管7状态是否发生改变。在资源发生改变的情况下,系统会检测处于由方台25、方台26、方台27组成的等待队列中的进程哪一个,或者那几个进程,条件满足可以从等待态转为就绪态。在系统只有唯一一个进程且处于等待态且位于用于表示进程的橡皮块15处于等待队列中方台27上时,系统判断该进程的执行条件得到满足,发生等待态到就绪态的转化。由于此时的就绪队列为空,表示进程的橡皮块15要从处于等待队列对首的方台27移动到处于就绪队列对首的方台30.
如附图9所示此时进程由等待态到就绪态的转化步骤如下:
步骤1.单片机31向驱动芯片35发出指令旋转,步进电机11在驱动芯片35的控制下旋转并带动支撑平台2、伸缩臂3一起旋转。
此时单片机31不断通过多路选通芯片37检测光电传感器21电位的变化。当伸缩臂3旋转到光电传感器21的位置时,单片机31通过多路选通芯片37检测到光电传感器21电信号由高电位转为低电位。单片机31向驱动芯片35发出指令停止,步进电机11在驱动芯片35的控制旋转两个角步距后停止,支撑平台2、伸缩臂3移动两个单位角度a后停止。
步骤2.单片机31向驱动芯片36发出指令旋转十个角步距,步进电机10在驱动芯片36的控制下旋转十个角步距后停止。在齿轮17、齿痕16的作用下,伸缩臂3向外延伸一定长度后停止。
单片机31向驱动芯片35发出指令旋转两个角步距,旋转方向与步骤1中步进电机11的旋转方向相反。步进电机11在驱动芯片35的控制下反向旋转并带动支撑平台2、伸缩臂3一起旋转。旋转两个角步距后,步进电机11停止转动。支撑平台2、伸缩臂3在步进电机11带动下旋转两个单位角度后停止。此时表示进程的橡皮块15正处于伸缩臂3的凹槽内。
步骤3.单片机31向驱动芯片36发出指令旋转十个角步距,方向与步骤2中步进电机10旋转的方向相反。步进电机10在驱动芯片36的控制下旋转十个角步距后停止。在齿轮17、齿痕16的作用下,伸缩臂3向内收缩一定长度后停止。在伸缩臂3的拉力控制下,表示进程的橡皮块15也沿径向向内移动同样长度后静止。此时橡皮块15从方台27上取下,并移动到转盘1上。
步骤4.单片机31向驱动芯片34发出指令旋转,在驱动芯片34的控制下直流电机10带动转盘1、橡皮块15一起旋转。
此时单片机31不断通过多路选通芯片37检测光电传感器24电位的变化。当伸缩臂3旋转到光电传感器24的位置时,单片机31通过多路选通芯片37检测到光电传感器24电信号由高电位转为低电位。单片机31向驱动芯片34发出指令停止,在驱动芯片34的控制下直流电机10、转盘1移动一个单位距离t停止。橡皮块15移动相应距离停止在与方台30相对的位置。
步骤5.单片机31向驱动芯片35发出指令旋转,步进电机11在驱动芯片35的控制下旋转并带动支撑平台2、伸缩臂3一起旋转。
此时单片机31不断通过多路选通芯片37检测光电传感器24电位的变化。当伸缩臂3旋转到光电传感器24的位置时,单片机31通过多路选通芯片37检测到光电传感器24电信号由高电位转为低电位。单片机31向驱动芯片35发出指令停止,步进电机11在驱动芯片35的控制旋转两个角步距后停止,支撑平台2、伸缩臂3移动两个单位角度a后停止。此时橡皮块15处于伸缩臂3的凹槽中。
步骤6.单片机31向驱动芯片36发出指令旋转十个角步距,步进电机10在驱动芯片36的控制下旋转十个角步距后停止。在齿轮17、齿痕16的作用下,伸缩臂3向外延伸一定长度后停止。在伸缩臂3的推动控制下,表示进程的橡皮块15也沿径向向外移动同样长度后静止与方台30.
步骤7.单片机31向驱动芯片35发出指令旋转两个角步距,旋转方向与步骤6中步进电机11的旋转方向相同。步进电机11在驱动芯片35的控制下反向旋转并带动支撑平台2、伸缩臂3一起旋转。旋转两个角步距后,步进电机11停止转动。支撑平台2、伸缩臂3在步进电机11带动下旋转两个单位角度后停止。此时伸缩臂3从表示进程的橡皮块15上移开。
单片机31向驱动芯片36发出指令旋转十个角步距,方向与步骤6中步进电机10旋转的方向相反。步进电机10在驱动芯片36的控制下旋转十个角步距后停止。在齿轮17、齿痕16的作用下,伸缩臂3向内收缩一定长度后停止。
步骤8.伸缩臂3执行上述校准过程,回到初始位置。系统标记进程为就绪态,并处于就绪队列中方台30的位置。
本发明所述教具用于演示进程同步问题的实施方式如下:
对于某一进程同步问题:进程A、进程B在执行过程中都要对某一类资源组成的集合R进行访问。在其中一个进程对R访问的过程中,不允许另一个进程对R访问。
进程A每次对资源R的操作都要用三个时间片的时间。第一个时间片用于获取对R的访问,如果此时资源R标记无法访问或者资源R组成的集合中资源的个数已经达到上限,进程A会进入等待态直到以上条件得到满足。否则,进程A将资源R标记为不可用。在第二个时间片,进程A使资源R的个数增加一个。在第三个时间片,进程A将资源R标记为可用。
进程B每次对资源R的访问要用三个时间片的时间。第一个时间片用于获取对R的访问,如果此时资源R标记为不可用或者资源R中资源的个数为0时,进程B会进入等待态直到以上条件得到满足。否则,进程B将资源R标记为不可用。在第二个时间片,进程B使资源R的个数减少一个。在第三个时间片,进程B将资源R标记为可用。
资源R中资源个数初值为1.进程A、进程B按如下的顺序执行:进程A在第一个时间片不访问临界资源,在接下的三个时间片内,进程A访问资源R并增加一个资源。进程B共执行六个时间片,在前三个时间片和后三个时间片分别对资源R进行两次操作。每次操作都将会减少一个资源。进程A先于进程B创建,即在就绪队列中进程A在进程B的前面,会先于进程B执行。
上述进程同步问题可由该教具中各组成部件等价表示为:橡皮块15表示进程A静止于就绪队列对首的位置方台30上,橡皮块38表示进程B静止于就绪队方台29上.数码管6表示资源R,资源R个数的上限为9,下限为0.数码管6显示的数字为当前资源R的个数,初值为1。在某一进程对资源提出访问时,若访问成功,用于表示该资源的数码管6闪烁一段时间,否则用于表示该资源的数码管6变熄灭一段时间,再恢复显示之前显示数字。
如附图10、附图11、附图12所示进程A、进程B同步执行的步骤如下:
步骤1.用于表示进程A的橡皮块15被选中,执行上述从就绪态到运行态的转换:从方台30取下并移动到光电传感器18所在的位置。
步骤2.表示进程A的橡皮块15从光电传感器18所在的位置开始在转盘1上旋转一周,即执行一个时间片之后回到光电传感器18所在的位置。此时系统检测进程A没有访问表示资源的数码管6,没有引起表示资源的数码管6状态的改变。接下来系统检测进程A没有等待访问表示资源的数码管6。进程A因时间片用尽而转为就绪态。系统此时寻找到表示就绪队列的方台中,处于队尾位置的方台28。此时执行上述,从运行态到就绪态的转化:将表示进程A的橡皮块15移入方台28.
步骤3.用于表示进程B的橡皮块38被选中,执行上述从就绪态到运行态的转换:从方台29取下并移动到光电传感器18所在的位置。
步骤4.表示进程B的橡皮块38从光电传感器18所在的位置开始在转盘1上旋转一周,即执行一个时间片之后回到光电传感器18所在的位置。此时系统检测进程B访问表示资源的数码管6,并标记表示资源的数码管6的状态为不可用。此时单片机31通过驱动芯片33向数码管6发出指令闪烁,数码管6在驱动芯片33的控制下闪烁一段时间后停止闪烁。此时进程B因时间片用尽而转为就绪态。系统此时寻找到表示就绪队列的方台中,处于队尾位置的方台30。此时执行上述,从运行态到就绪态的转化:将表示进程B的橡皮块38移入方台30.
步骤5.用于表示进程A的橡皮块15被选中,执行上述从就绪态到运行态的转换:从方台28取下并移动到光电传感器18所在的位置。
步骤6.表示进程A的橡皮块15从光电传感器18所在的位置开始在转盘1上旋转一周,即执行一个时间片之后回到光电传感器18所在的位置。此时系统检测进程A有访问表示资源的数码管6,但是此时表示资源的数码管6已经被标记不可用。此时单片机31通过驱动芯片33向数码管6发出指令熄灭,数码管6在驱动芯片33的控制下熄灭一段时间后恢复显示。进程A因等待访问表示资源的数码管6而转为等待态。系统此时寻找到表示等待队列的方台中,处于队尾位置的方台27。此时执行上述,从运行态到等待态的转化:将表示进程A的橡皮块15移入方台27.
步骤7.用于表示进程B的橡皮块38被选中,执行上述从就绪态到运行态的转换:从方台30取下并移动到光电传感器18所在的位置。
步骤8.表示进程B的橡皮块38从光电传感器18所在的位置开始在转盘1上旋转一周,即执行一个时间片之后回到光电传感器18所在的位置。此时系统检测进程B有访问表示资源的数码管6,并要将资源数减少一个。单片机31通过驱动芯片33向数码管6发出指令显示0,数码管6在驱动芯片33的控制下从当前的资源数1变为为0。进程B因时间片用尽而转为就绪态。系统此时寻找到表示就绪队列的方台中,处于队尾位置的方台29。此时执行上述,从运行态到就绪态的转化:将表示进程B的橡皮块38移入方台29.
步骤9.用于表示进程B的橡皮块38被选中,执行上述从就绪态到运行态的转换:从方台29取下并移动到光电传感器18所在的位置。
步骤10.表示进程B的橡皮块38从光电传感器18所在的位置开始在转盘1上旋转一周,即执行一个时间片之后回到光电传感器18所在的位置。此时系统检测进程B有访问表示资源的数码管6,并要将资源标记为可用。单片机31通过驱动芯片33向数码管6发出指令闪烁,数码管6在驱动芯片33的控制下闪烁一段时间后停止闪烁。进程B因时间片用尽而转为就绪态。系统此时寻找到表示就绪队列的方台中,处于队尾位置的方台28。此时执行上述,从运行态到就绪态的转化:将表示进程B的橡皮块38移入方台28.
步骤11.由于步骤10中,进程A等待的资源标记为可用,等待态的进程A等待条件已经得到满足。系统寻找到用于表示进程A的橡皮块15所在的方台27,进一步寻找到当前就绪队列中处于队尾的位置的方台30,执行上述从等待态到就绪态的转换:从方台27取下并移动到方台30.
步骤12.进程B的橡皮块38被选中,执行上述从就绪态到运行态的转换:从方台28取下并移动到光电传感器18所在的位置。
步骤13.表示进程B的橡皮块38从光电传感器18所在的位置开始在转盘1上旋转一周,即执行一个时间片之后回到光电传感器18所在的位置。此时系统检测进程B有访问表示资源的数码管6,而表示资源的数码管6显示资源数为0,进程B因没有可用资源进入等待。此时单片机31通过驱动芯片33向数码管6发出指令熄灭,数码管6在驱动芯片33的控制下熄灭一段时间后恢复显示。此时进程B因没有可用资源而进入等待队列。系统寻找到表示等待队列的方台中,处于队尾位置的方台26。此时执行上述,从运行态到等待态的转化:将表示进程B的橡皮块38移入方台26.
步骤14.用于表示进程A的橡皮块15被选中,执行上述从就绪态到运行态的转换:从方台30取下并移动到光电传感器18所在的位置。
步骤15.表示进程A的橡皮块15从光电传感器18所在的位置开始在转盘1上旋转一周,即执行一个时间片之后回到光电传感器18所在的位置。此时系统检测进程A有访问表示资源的数码管6,并标记表示资源的数码管6状态为不可用。单片机31通过驱动芯片33向数码管6发出指令闪烁,数码管6在驱动芯片33的控制下闪烁一段时间后停止闪烁。此时进程A因时间片用尽而转为就绪态。系统寻找到表示就绪队列的方台中,处于队尾位置的方台29。此时执行上述,从运行态到就绪态的转化:将表示进程A的橡皮块15移入方台29.
步骤16.用于表示进程A的橡皮块15被选中,执行上述从就绪态到运行态的转换:从方台29取下并移动到光电传感器18所在的位置。
步骤17.表示进程A的橡皮块15从光电传感器18所在的位置开始在转盘1上旋转一周,即执行一个时间片之后回到光电传感器18所在的位置。此时系统检测进程A有访问表示资源的数码管6,并要将资源数增加一个。单片机31通过驱动芯片33向数码管6发出指令显示1,数码管6在驱动芯片33的控制下从当前的资源数0变为为1。进程A因时间片用尽而转为就绪态。系统检测到表示就绪队列的方台中,队尾的位置方台28。执行上述,从运行态到就绪态的转化:将表示进程A的橡皮块15移入方台28.
步骤18.用于表示进程A的橡皮块15被选中,执行上述从就绪态到运行态的转换:从方台28取下并移动到光电传感器18所在的位置。
步骤19.由于步骤18中,进程A增加了一个可用资源。等待态的进程B等待条件得到满足。系统寻找到用于表示进程B的橡皮块15所在的方台26,进一步寻找到当前就绪队列中处于队尾队尾的方台30,执行上述从等待态到就绪态的转换:从方台26取下并移动到方台30.
步骤20.表示进程A的橡皮块15从光电传感器18所在的位置开始在转盘1上旋转一周,即执行一个时间片之后回到光电传感器18所在的位置。此时系统检测进程A有访问表示资源的数码管6,并要将资源标记为可用。单片机31通过驱动芯片33向数码管6发出指令闪烁,数码管6在驱动芯片33的控制下闪烁一段时间后停止闪烁。表示进程A的橡皮块15执行任务全部结束,从转盘1上手动取下。
步骤21.用于表示进程B的橡皮块38被选中,执行上述从就绪态到运行态的转换:从方台30取下并移动到光电传感器18所在的位置。
步骤22.表示进程B的橡皮块38从光电传感器18所在的位置开始在转盘1上旋转一周,即执行一个时间片之后回到光电传感器18所在的位置。此时系统检测进程B有访问表示资源的数码管6,并标记表示资源的数码管6状态为不可用。单片机31通过驱动芯片33向数码管6发出指令闪烁,数码管6在驱动芯片33的控制下闪烁一段时间后停止闪烁。进程B因时间片用尽而转为就绪态。系统此时寻找到表示就绪队列的方台中,处于队尾位置的方台29。执行上述,从运行态到就绪态的转化:将表示进程B的橡皮块38移入方台29.
步骤23.用于表示进程B的橡皮块38被选中,执行上述从就绪态到运行态的转换:从方台29取下并移动到光电传感器18所在的位置。
步骤24.表示进程B的橡皮块38从光电传感器18所在的位置开始在转盘1上旋转一周,即执行一个时间片之后回到光电传感器18所在的位置。此时系统检测进程B有访问表示资源的数码管6,并要将资源数减少一个。单片机31通过驱动芯片33向数码管6发出指令显示0,数码管6在驱动芯片33的控制下从当前的资源数1变为为0。进程B因时间片用尽而转为就绪态。系统此时寻找到表示就绪队列的方台中,处于队尾位置的方台28。此时执行上述,从运行态到就绪态的转化:将表示进程B的橡皮块38移入方台28.
步骤25.用于表示进程B的橡皮块38被选中,执行上述从就绪态到运行态的转换:从方台29取下并移动到光电传感器18所在的位置。
步骤26.表示进程B的橡皮块38从光电传感器18所在的位置开始在转盘1上旋转一周,即执行一个时间片之后回到光电传感器18所在的位置。此时系统检测进程B有访问表示资源的数码管6,并将资源标记为可用。单片机31通过驱动芯片33向数码管6发出指令闪烁,数码管6在驱动芯片33的控制下闪烁一段时间后停止闪烁。此时表示进程B的橡皮块38执行任务全部结束,从转盘1上手动取下。
本发明所述教具用于演示死锁问题的实施方式如下:
对于某一死锁问题:进程A、进程B在执行过程中都要对资源M、资源N进行访问。资源M、资源N为两个要求互斥访问的临界资源。即其中某一个资源被某一个进程访问过程中不允许其它进程访问。
进程A对资源M、资源N的操作为:在第一个时间片,进程A获取对M的访问,如果此时资源M标记无法访问,进程A会进入等待态直到资源M标记为可用。在第二个时间片,进程A获取对N的访问,如果此时资源N标记无法访问,进程A会进入等待态直到资源N标记为可用。在第三个时间片,进程A将资源N标记为可用。在第四个时间片,进程A将资源M标记为可用。
进程B对资源M、资源N的操作为:在第一个时间片,进程A获取对N的访问,如果此时资源N标记无法访问,进程A会进入等待态直到资源N标记为可用。在第二个时间片,进程A获取对M的访问,如果此时资源M标记无法访问,进程A会进入等待态直到资源M标记为可用。在第三个时间片,进程A将资源M标记为可用。在第四个时间片,进程A将资源N标记为可用。
上述死锁问题可由该教具中各组成部件等价表示为:橡皮块15表示进程A静止于就绪队列对首的位置方台30上,橡皮块38表示进程B静止于就绪队方台29上.数码管6用于表示资源M,显示数字1.数码管7表示资源N,显示数字1.在某一进程对资源M提出访问时,用于表示该资源的数码管6闪烁一段时间。若访问成功,用于表示该资源的数码管6显示数字由1变为0。当进程放弃资源M的访问时,用于表示该资源的数码管6显示数字由0变为1。在某一进程对资源N提出访问时,用于表示该资源的数码管7闪烁一段时间。若访问成功,用于表示该资源的数码管7显示数字由1变为0。当进程放弃资源M的访问时,用于表示该资源的数码管7显示数字由0变为1。
如附图13所示进程A、进程B执行的步骤如下:
步骤1.用于表示进程A的橡皮块15被选中,执行上述从就绪态到运行态的转换:从方台30取下并移动到光电传感器18所在的位置。
步骤2.表示进程A的橡皮块15从光电传感器18所在的位置开始在转盘1上旋转一周,即执行一个时间片之后回到光电传感器18所在的位置。此时系统检测进程A访问表示资源M的数码管6,并将数码管6状态的标记为不可用。单片机31通过驱动芯片33向数码管6发出指令闪烁,数码管6在驱动芯片33的控制下闪烁一段时间后停止闪烁。然后单片机31通过驱动芯片33向数码管6发出指令显示0,数码管6在驱动芯片33的控制下从当前的数字1变为数字0。进程A因时间片用尽而转为就绪态。系统此时寻找到表示就绪队列的方台中,处于队尾位置的方台28.此时执行上述,从运行态到就绪态的转化:将表示进程A的橡皮块15移入方台28.
步骤3.用于表示进程B的橡皮块38被选中,执行上述从就绪态到运行态的转换:从方台29取下并移动到光电传感器18所在的位置。
步骤4.表示进程B的橡皮块38从光电传感器18所在的位置开始在转盘1上旋转一周,即执行一个时间片之后回到光电传感器18所在的位置。此时系统检测进程A访问表示资源N的数码管7,并将数码管7状态的标记为不可用。单片机31通过驱动芯片32向数码管7发出指令闪烁,数码管7在驱动芯片32的控制下闪烁一段时间后停止闪烁。然后单片机31通过驱动芯片32向数码管7发出指令显示0,数码管7在驱动芯片32的控制下从当前的显示数字1变为数字0。进程B因时间片用尽而转为就绪态。系统此时寻找到表示就绪队列的方台中,处于队尾位置的方台30.此时执行上述,从运行态到就绪态的转化:将表示进程B的橡皮块38移入方台30.
步骤5.用于表示进程A的橡皮块15被选中,执行上述从就绪态到运行态的转换:从方台28取下并移动到光电传感器18所在的位置。
步骤6.表示进程A的橡皮块15从光电传感器18所在的位置开始在转盘1上旋转一周,即执行一个时间片之后回到光电传感器18所在的位置。此时系统检测进程A访问表示资源N的数码管7,由于资源N的数码管7已经标记为不可用,进程A访问失败。单片机31通过驱动芯片32向数码管7发出指令闪烁,数码管7在驱动芯片32的控制下闪烁一段时间后停止闪烁。进程A因等待访问资源N而转为等待态。系统此时寻找到表示就等待列的方台中,处于队尾位置的方台27.此时执行上述,从运行态到等待态的转化:将表示进程A的橡皮块15移入方台27.
步骤7.用于表示进程B的橡皮块38被选中,执行上述从就绪态到运行态的转换:从方台30取下并移动到光电传感器18所在的位置。
步骤8.表示进程B的橡皮块38从光电传感器18所在的位置开始在转盘1上旋转一周,即执行一个时间片之后回到光电传感器18所在的位置。此时系统检测进程B访问表示资源M的数码管6,由于资源M的数码管6已经标记为不可用,进程B访问失败。单片机31通过驱动芯片33向数码管6发出指令闪烁,数码管6在驱动芯片33的控制下闪烁一段时间后停止闪烁。进程B因等待访问资源M而转为等待态。系统此时寻找到表示就等待列的方台中,处于队尾位置的方台26.此时执行上述,从运行态到等待态的转化:将表示进程B的橡皮块38移入方台26.
步骤9.此时进程M已经申请到对表示资源M的数码管6的访问,因等待访问表示资源N的数码管7处于等待态。进程N已经申请到对表示资源N的数码管7的访问,因等待访问表示资源M的数码管6处于等待态。此时系统判断死锁发生,在单片机31的控制下,标识死锁的发光二极管9由灭转为发光。
Claims (1)
1.一种用于操作系统实验教学的智能教具,其特征是该教具的主要部件及结构如下:
(1)动作执行部件转盘、伸缩臂,提供动力的部件直流电机、步进电机,以及连接在动作执行部件和提供动力的部件之间的动力传动部件包括齿轮、连接管、支撑平台等;
(2)用来控制系统运转的核心控制部件单片机以及其外围电路其中包括直流电机驱动、步进电机驱动、数码管驱动、多路选通芯片;
(3)为完整描述操作系统必要的部件,其中包括用于表示操作系统进程的小物块,用来描述进程状态的方台,用来表示操作系统资源的数码管;
(4)用于表示操作系统执行状况的部件发光二极管;
(5)用于检测表示进程的小物块位置以及伸缩臂凹槽位置的部件光电传感器;
(6)黑盒处于教具结构中最底部,为整个系统部件的支撑。
黑盒是一个中空、顶部为正方形的盒子,黑盒内部用来装载单片机、驱动芯片、电机搭建的电路,黑盒处于模型最底部,黑盒的顶部为方台、光电传感器支撑面;
转盘处于黑盒的正上方,是一个厚度L<4mm的圆形转盘,转盘的圆心与黑盒的中心重合,直径小于黑盒顶部正方形的边长,并在竖直方向上与黑盒顶部保持一定距离d.转盘通过齿轮与直流电机连接,在直流电机旋转时转盘在齿轮的推动下一同旋转,黑盒顶部中心处、转盘的圆心各有一个半径为R的小孔,一个半径为r<R的连接管,从转盘中心黑盒顶部穿过与内部步进电机粘合在一起;
支撑平台为一多边形平板处于转盘的上方,与连接管的一端粘合。步进电机旋转时,会带动连接管、支撑平台会与步进电机一起旋转,支撑平台为伸缩臂以及另一个步进电机的支撑面;
伸缩臂从顶部看是为长方形,其一段有一个凹槽,凹槽开口方向竖直向下,另一端末尾有一段齿痕粘合在臂上。伸缩臂处于支撑平台的上方,并固定于支撑平台上。伸缩臂在一端的齿痕和固定于另一步进电机的齿轮的作用下,在另一步进电机旋转时沿径向推拉伸缩臂。伸缩臂也可在支撑平台的带动下与支撑平台一同旋转,伸缩臂有凹槽的一侧可以包住处于转盘上的小物快,并在沿径向运动的过程中,推拉小物块沿径向运动相应位移,而当伸缩臂随支撑平台旋转时,即伸缩臂沿转盘切线方向运动时,并不会触碰小物块;
用于描述进程就绪态和等待态的多个方台与转盘竖直方向上同高分布在转盘周围。方台的边缘与转盘外边缘相切、径向距离n<2mm。这些方台逻辑上可分为两组,一组构成了一个就绪队列,另一组构成等待队列。当表示进程的小物块处于构成就绪队列的方台上时,此时表示进程的小物块进入了就绪状态,当表示进程的小物块处于构成等待队列的方台上时,表示进程的小物块进入了等待状态;
一组光电传感器用来检测旋转过程中表示进程的小物块的位置和伸缩臂凹槽的位置。光电传感器安置在每个方台的其中一侧与方台紧邻的位置,竖直方向高度略高于方台的高度,用来检测小物块当前移动到哪一个方台对应的位置,除此之外空闲的一个光电传感器用来全局记录表示进程的小物块随转盘一同旋转转过的圈数;
单片机为整个系统的核心控制部件,它通过驱动芯片与步进电机,直流电机,数码管,发光二极管连接,输出信号控制步进电机的正向旋转反向或旋转以及旋转的角度,控制直流电机旋转还是停止,控制数码管亮灭以及显示数字,控制发光二极管亮灭,另一方面,它通过多路选择芯片轮询一组光电传感器的电位改变,获得小物块随转盘旋转过程中的位置以及小物块随转盘转过的圈数,此外,单片机还要记录就绪队列、等待队列的状态,记录处于逻辑上对首的位置的方台的编号,处于队尾位置的方台的编号;记录小物块在随转盘旋转的圈数以判断表示进程的小物块时间片是否用尽;记录表示资源的数码管的状态,即该资源类型访问是否为互斥的、资源个数、资源是否处于被访问状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010273275A CN102013191B (zh) | 2010-09-02 | 2010-09-02 | 一种用于操作系统实验教学的智能教具 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010273275A CN102013191B (zh) | 2010-09-02 | 2010-09-02 | 一种用于操作系统实验教学的智能教具 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102013191A true CN102013191A (zh) | 2011-04-13 |
CN102013191B CN102013191B (zh) | 2012-10-03 |
Family
ID=43843351
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010273275A Expired - Fee Related CN102013191B (zh) | 2010-09-02 | 2010-09-02 | 一种用于操作系统实验教学的智能教具 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102013191B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103302662A (zh) * | 2013-06-18 | 2013-09-18 | 南京普朗医疗设备有限公司 | 一种使用机械爪对样品进行自动颠倒和离心装置 |
CN107967851A (zh) * | 2017-12-21 | 2018-04-27 | 重庆工程职业技术学院 | 一种单片机实验教学系统 |
CN109064983A (zh) * | 2018-08-08 | 2018-12-21 | 中国船舶重工集团公司第七〇九研究所 | 一种多功能在线配置的采集显示系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN2621318Y (zh) * | 2003-06-18 | 2004-06-23 | 北京博创兴业科技有限公司 | 嵌入式系统教学仪器 |
US20040160446A1 (en) * | 2003-02-18 | 2004-08-19 | Gosalia Anuj B. | Multithreaded kernel for graphics processing unit |
CN1737764A (zh) * | 2005-09-12 | 2006-02-22 | 浙江大学 | 支持osek标准的嵌入式实时操作系统的任务调度方法 |
CN101040249A (zh) * | 2003-06-27 | 2007-09-19 | 索夫特斯扣普有限公司 | 虚拟桌面—元-组织和控制系统 |
-
2010
- 2010-09-02 CN CN201010273275A patent/CN102013191B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040160446A1 (en) * | 2003-02-18 | 2004-08-19 | Gosalia Anuj B. | Multithreaded kernel for graphics processing unit |
CN2621318Y (zh) * | 2003-06-18 | 2004-06-23 | 北京博创兴业科技有限公司 | 嵌入式系统教学仪器 |
CN101040249A (zh) * | 2003-06-27 | 2007-09-19 | 索夫特斯扣普有限公司 | 虚拟桌面—元-组织和控制系统 |
CN1737764A (zh) * | 2005-09-12 | 2006-02-22 | 浙江大学 | 支持osek标准的嵌入式实时操作系统的任务调度方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103302662A (zh) * | 2013-06-18 | 2013-09-18 | 南京普朗医疗设备有限公司 | 一种使用机械爪对样品进行自动颠倒和离心装置 |
CN103302662B (zh) * | 2013-06-18 | 2016-02-03 | 南京普朗医疗设备有限公司 | 一种使用机械爪对样品进行自动颠倒和离心装置 |
CN107967851A (zh) * | 2017-12-21 | 2018-04-27 | 重庆工程职业技术学院 | 一种单片机实验教学系统 |
CN109064983A (zh) * | 2018-08-08 | 2018-12-21 | 中国船舶重工集团公司第七〇九研究所 | 一种多功能在线配置的采集显示系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102013191B (zh) | 2012-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Mondada et al. | The e-puck, a robot designed for education in engineering | |
WO2011074838A2 (ko) | 로봇 동기화 장치 및 그 방법 | |
CN102013191B (zh) | 一种用于操作系统实验教学的智能教具 | |
CN110048151A (zh) | 一种电池包的组装方法、装置、电子设备及存储介质 | |
CN109807903A (zh) | 一种机器人控制方法、装置、设备和介质 | |
CA3204405A1 (en) | Gestural interface with virtual control layers | |
CN110502217B (zh) | 一种基于ros的机器人云平台设计方法 | |
CN104360633A (zh) | 一种面向服务机器人的人机交互系统 | |
US12076868B2 (en) | Cloud based computer-implemented visually programming method and system for robotic motions in construction | |
CN103870119A (zh) | 一种信息处理方法和电子设备 | |
CN107562338A (zh) | 图片查看方法、装置、电子设备及存储介质 | |
CN105355129A (zh) | 一种基于三维组态技术的立体车库演示系统 | |
CN105809058A (zh) | 教学资源库管理系统 | |
Moshayedi et al. | Integrating virtual reality and robotic operation system (ROS) for AGV navigation | |
CN203415155U (zh) | 教学用plc实训平台 | |
Chudý et al. | Emulating centralized control in multi-agent pathfinding using decentralized swarm of reflex-based robots | |
CN109615953A (zh) | 一种教育机器人的交互方法、装置、机器人及存储介质 | |
CN104200459A (zh) | 一种信息处理方法及电子设备 | |
US20220055216A1 (en) | Cloud based computer-implemented system and method for grouping action items on visual programming panel in robot simulator | |
CN102799478B (zh) | 一种计算机及计算机启动方法 | |
RU99107125A (ru) | Способ автоматизированной подготовки и аттестации по безопасности производства и устройство для его осуществления | |
Ullmer et al. | Strata/ICC: physical models as computational interfaces | |
CN206696934U (zh) | 3d实景分诊咨询引导装置 | |
CN111915961A (zh) | 一种基于Windows平台的操作系统虚拟实验方法 | |
JP3049945B2 (ja) | プログラム生成システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20121003 Termination date: 20130902 |