基于操作系统课程教学的动态解析研究

时间:2022-03-14 05:01:51

基于操作系统课程教学的动态解析研究

摘要:本文主要以操作系统课程中的前趋图、进程同步问题和哲学家就餐问题三个知识点为基础,讲述采用Flash技术动态讲解操作系统知识的方法,同时阐述Flash技术对操作系统学习的重要意义。

关键词:进程;同步;互斥;信号量;前趋图;

从20世纪70年代第一代微机操作系统诞生到今天,操作系统的发展已经有将近40年的历史了,其更新换代也从未停止过:从DOS系统到Windows系列,一直到今天的Windows7,操作系统开发技术的发展令人叹为观止。同时,世人对操作系统知识的学习和技术提高也在不断的进行着。然而,由于操作系统知识与现实生活并不贴近,因而理解上难免会有困难,学习起来也就不是那么的容易。在高等院校中,有限的学时安排也直接导致了操作系统知识学习的障碍明显,所以操作系统的学习方式有待改善。利用Flash技术讲解相关的知识点是一个非常重要的手段,其直观、生动的特点可以有效学习操作系统知识。

1结合Flash解释知识点

1.1概述

Flash技术最重要的特点就是问题解释的直观性和生动性,将该技术用于操作系统课程教学,可以大大降低知识介绍的难度。使用Flash制作的课件,不仅操作简单,而且交互性强,非常有利于教学的互动[1]。书本上各种原理的阐述,通过一段可控制的动画来完成,既能简化教学过程,又能活跃课堂的气氛、提高学生学习的积极性。下面的2个实例将具体介绍Flash技术阐释某些原理的过程,从而让我们清晰的看到该技术的优越性。

1.2程序并发执行前趋图

我们知道,计算机大型程序的运行通常是由若干个小的程序段组成,而在执行时,必须按照某种先后顺序逐个执行,仅当前一个操作执行完毕后才可以执行后继操作。故我们可以得出程序顺序执行时的前趋图,如图1所示[2]。

图1描述的前趋关系为:IiàCiàPi。每个程序段必须按照输入(I)、计算(C)、打印(P)的顺序执行,一个程序段执行完毕后,下一个程序段才能开始并且按照相同的顺序执行。

考虑各程序段并发执行,为了减少程序运行的时间,我们应当使整个执行过程中的某些步骤并行执行,即在执行程序1的某个步骤时,使程序2的某个步骤同时执行。而在各个程序段执行过程中,所占用的计算机资源是不同的。例如:输入步骤占用输入设备,如键盘;计算步骤占用处理器;打印步骤占用打印机。这样各个程序段中占用相同计算机设备的步骤显然不能够同时执行,只能让占用不同资源的步骤并行执行,而程序段内部仍然按照原来的顺序进行,如图2所示[2]。

起初,程序1执行其第一个步骤――输入,当程序1执行计算步骤时,计算机的输入设备处于空闲状态,故可以让程序2同时执行其输入操作,这样程序1的计算步骤就和程序2的输入步骤并发执行了。同理,当程序1执行到打印步骤,程序2并行执行到计算步骤时,计算机的输入设备又一次处于空闲状态,故可以使程序3的输入步骤和程序1的打印步骤、程序2的计算步骤并发执行。如此进行下去,就形成了整个程序的并发执行过程。

然而,单纯的这样一张图,是不能够让学习者清楚的了解这个知识点的含义,甚至还会引起误解,混淆输入步骤、计算步骤和打印步骤之间的执行关系。在笔者制作的Flash解释材料中,完整演示了各个步骤并行运行的情况。

在每个并行执行时刻,并行执行步骤都会发光以提示读者,如图3所示[3],程序正好执行到三个程序第一次并行执行的时刻,三个发光的进程代表它们同时进行,一方面前趋关系可以通过进程间联系的箭头显示,另一方面并发程序块有哪些也是一目了然的(发光显示)。Flash技术在展现动态发生过程的直观性毋庸赘言。

1.3进程同步问题

1.3.1概述

在多道程序环境下,进程同步问题是一个非常重要的研究对象。进程同步的主要任务是对多个相关进程在执行顺序上进行协调,以使并发执行的诸进程之间能够有效的共享资源和相互合作,从而使程序的执行具有可再现性。例如,两个用户(可以假设为用户A和B)同时要求对某个银行账户进行操作时,账户内原本存有500元,A欲存入200元,B欲取出100元,下面列举一种可能出现的情况:

(1)A读出银行账户存款为500元。

(2)B读出银行账户存款为500元。

(3)A存入200元,但是处理结果还没有提交时(即账户存款没有更新为700元),发生下一步骤。

(4)B取出100元,并提交更新结果,即账户存款变为400元(因为B读到的余额为500元)。

(5)A提交处理结果,即账户余额更新为500+200 =700元。

显然最后的结果并不符合实际情况:账户应该剩余600元,但实际却剩余700元。同样地,如果对进程的同步运行没有合理的管理,也会出现异常的情况。进程同步的研究意义也就不言而喻了。

1.3.2经典同步问题简介

在学者们感兴趣的进程同步问题中,典型的有:“生产者――消费者问题”、“读者写者问题”和“哲学家进餐问题”。笔者将结合Flash技术重点讲述“哲学家进餐问题”。

1.4哲学家进餐问题

1.4.1问题描述[4]

该问题是由Dijkstra提出并解决的经典的哲学家就餐问题。该问题是描述有五个哲学家共用一张圆桌,分别坐在周围的五张椅子上,圆桌上有五个碗和五根筷子,他们的生活方式是交替的进行思考和进餐。平时,一个哲学家进行思考。饥饿时便试图取用其左右最靠近他的筷子,只有在他拿到两根筷子时才能进餐,进餐完毕放下筷子继续思考。

1.4.2问题分析与解决

经过分析可知,放在桌子上的筷子是临界资源,在一段时间内只允许一位哲学家使用,为实现对筷子的互斥使用,可以用互斥量表示一根筷子,由这五个信号量构成信号向量组。描述如下:

在以上的描述中,当哲学家饥饿的时候,总是先去拿他左边的筷子,即执行wait(chopstick[i]),成功后,再去拿他右边的筷子,即执行wait(chopstick[ (i + 1) mod 5]),成功后,可以进餐。进餐完毕,又先放下他左边的筷子,然后再放下他右边的筷子。虽然以上的方法,可以保证不会有两个以上的哲学家同时进餐,但是有可能引起死锁。假如五个哲学家同时拿起左边的筷子,就会使五个信号量chopstick均为0;当他们再试图去拿右边的筷子时,都将因无筷子可拿而无限期等待。对于这样的死锁问题,可以采取以下几种解决方法:

(1) 至多只允许四位哲学家同时去拿左边的筷子,最终能保证至少有一位哲学家能够进餐,并在用餐完毕时释放他所使用的两根筷子,从而使更多的哲学家可以进餐。

(2) 仅当哲学家左右两侧的筷子均可用时,才允许他拿起筷子进餐。此时,即转换为AND同步问题。

(3) 规定奇数号哲学家先拿他左边的筷子,然后再去拿他右边的筷子,而偶数号的哲学家则相反。按此规定,将是1、2号哲学家竞争1号筷子;3、4号哲学家竞争3号筷子。即五位哲学家都先竞争奇数号筷子,获得后,再去竞争偶数号筷子,最后总有一位哲学家能够获得两根筷子而进餐。

1.4.3Flash技术讲解

笔者制作的哲学家进餐问题的材料是,原始问题的一个变种问题,其中的共享变量变为一双筷子和一把叉子,对应的,当且仅当哲学家同时获得了身边的一双筷子和一把叉子时,才可以进餐(问题的原理是没有变化的)。如图4所示。

笔者在演示过程中考虑了所有可能出现的情况,同时为了便于读者对Flash的播放进度进行控制,也设置了播放和暂停按钮。

图5描述的是第一个场景,即某哲学家准备进餐并且身边的筷子和叉子都可以获得,此时,哲学家可以进餐,并且身边的叉子和筷子属性更改为不可用,直到该哲学家进餐完毕。

图6描述的是第二个场景,即某哲学家准备进餐,但是身边的筷子和叉子不能同时获得,此时,哲学家不可以进餐,需要等待。即等待执行操作[2]:

wait(fork);

wait(chopsticks);

另外,对应还有2个场景是上述2种情况下,当哲学家进餐完成后,需要放回筷子和叉子,使旁边的哲学家有可能进餐。

通过对所有可能出现情况的解释,我们理解了整个哲学家就餐问题的过程。在具体操作过程中,教师可以通过交互按钮对动画的播放过程进行控制,到了关键的步骤可以暂停动画的播放,让学生说出接下来发生的状况,然后使动画继续播放,以印证学生回答的正误。

2总结

2.1Flash的特点

Flash课件可以动态的展现事情发展的整个过程,对于操作系统中一些抽象的知识,用Flash来进行讲解,比书中的图片解释效果要好得多。连续动画的播放,足够详细阐释某个过程的发展。适当的添加一些交互式按钮(如播放、暂停、继续等)可以让读者自己控制动画的播放,有利于读者的自学。Flash中对色彩、图形进行合理、巧妙的设计,更能满足读者的审美需求。Flash生动具体的表现能力,使抽象的过程能够生动具体化,这是所有特点中最重要的。

2.2Flash对操作系统课堂教学的意义

在专业知识的传授过程中,我们的目标就是先用最容易理解的方式来解释其中的原理,然后再让学生结合自己的理解获得对问题的全面认识。利用Flash技术最显而易见的好处,是将深奥繁琐的操作系统原理,用简单的动画加以解释说明,这样就大大降低了授课的难度。

在各高校中,由于操作系统课程安排的时间普遍比较少,同时学习的内容又增加了,所以就要求在有限的时间里完成更多的教学任务,这对教学方法和教学方式都提出了新的挑战。传统的教学模式下,课堂上借助书本、PPT等资料,解释的过程也只是先前学习过程的重复,很难获得新的理解;对学生知识点理解的检查,是通过口头回答或者上黑板做练习的方式,既浪费时间又不一定能够达到目的;同时,从前高校的小班教学也随着班级人数的增加发生了变化,要在课堂上让每个同学都理解所讲的知识点也就不太现实了。

然而,通过Flash技术的引进,很好的解决了上述的问题。教师可以合理的控制Flash课件的播放,在关键部分重点解释(也可以调节Flas播放的速度),在生动的展现过程中,有针对性的解决疑问;Flash课件中添加相关的练习,在播放的过程中提出问题并解答提问,并由播放的结果加以印证,从而高效的达到了教学的目的;对于简单的知识点,课堂上只需要简单介绍,节省时间。课后,学生可以自己演示动画并结合书本学习,在相同的课堂时间,把更多的时间可以安排在重、难点上。

另外,教师授课过程也随着Flash技术的引入而发生了变化。从前,上课前教师必须准备充分的材料,以帮助学生更顺利的掌握知识点;课堂上,甚至还需要在黑板上绘制各种表格图像,以解决疑难;Flash课件的出现,让教师只需要控制交互式按钮,即可达到教学的目的。

2.3Flash对操作系统学生学习的意义

一般来说,学生掌握知识的过程分为两个部分,即课堂上的听讲和课后的巩固。在课堂听讲后,将不理解的部分做上标记,课后可以通过到图书馆中查找资料、向同学、老师请教或者上网等方式来解决疑惑,从而掌握知识点。虽然这种传统的方式有利于学生自学能力的培养,然而毕竟花费了太多的时间。引入Flash课件后,掌握知识的过程仍然是这两个部分,但是在课堂上不理解的知识点已经有所减少,到了课后,学生可以根据自己的需要控制Flash课件的播放,理解的速度必然会加快,再结合上课老师的讲述和自己做的笔记,学习的效率会显著的提高。

2.4Flash与操作系统知识结合的不足

当然,用最自然的方式阐述专业化的知识,也不可避免的存在一个问题――生动性的降低。Flash本身就是以图片场景的组合来表达意思的,但是专业化的知识,必须考虑到学术的严谨性,在场景播放中也不可避免的会出现一些文字说明,有时还是大量的,这对Flash的生动表达无疑是明显的损害。

综合来看,Flash技术用于操作系统知识的解释无疑还是成功的。

参考文献:

[1] 汤小丹,梁红兵,哲凤屏,等. 计算机操作系统[M]. 3版. 西安:西安电子科技大学出版社,2007.

[2] 邹恒明. 计算机的心智:操作系统之哲学原理[M]. 北京:机械工业出版社,2009.

[3] 汪国安,侯秀红,周星,等.计算机操作系统课程及考研辅导[M]. 北京:机械工业出版社,2004.

[4] Gary Nutt. Operating Systems[M]. 3rd ed. New York:Addison-Wesley,2004.

The Research on Dynamic Teaching Method Based on the Course of Operating System

JU Wei , XU Yun-long

( School of Computer Science and Technology, Soochow University, Suzhou 215006, China)

Abstract: This paper introduces a teaching method in an operating system course with the using of the Flash technology, which can help us display things in a continuous way, based on three concepts, i.e. Precedence Relation Chart, Problems of Synchronization and The Dining-Philosophers Problem, and emphasizes the significance of Flash technology in the study of the Operating System.

Key words: process; synchronization; mutual exclusion; semaphores; precedence relation chart

上一篇:地方本科院校计算机应用型人才培养模式探讨 下一篇:接口技术研究型教学的探索与实践