论文部分内容阅读
摘要:为了提高学生分析问题、解决问题和创新能力,研究了新的教学模式“算法项目驱动”教学法。通过操作系统程序算法项目驱动的操作系统课程教学实践验证了该教学模式的可行性,对构建新型教学模式和提高课程教学效果具有一定的指导意义。
关键词:操作系统;项目驱动教学;读者写者算法
1.《操作系统》课程教学现状及存在的问题
《操作系统》课程主要涉及操作系统的原理概念,技术发展和理论基础。同时该课程较全面、系统的介绍了处理机管理,存储管理,作业管理,文件系统,设备管理以及整体分析操作系统的设计方法及应用等方面[1]。
目前在操作系统课程教学中普遍存在的问题如下:
(1)教学内容抽象,理论性过强。大量枯燥乏味的理论概念使得学生的学习兴趣减弱,容易使得学生产生厌学情绪。
(2)存在理论与实践脱节的现象。在教学过程中操作系统课程缺少相应的程序算法项目支撑,很多学生在课程学习完成后也未能真正了解操作系统实践的全过程。
(3)学生能力的培养缺失。教学内容和方法往往受到教材的制约,束缚了对学生发散性思维的培养,教师在教学过程中往往单方面灌输知识,导致学生的依赖性加强,学习能力严重不足。
2. 项目驱动模式在操作系统课程中的教学实践
2.1 项目驱动模式
项目教学是将某门专业课程按类别分为若干技术或技能单元,每个技术或技能单元作为一个教学项目,实行理论、实践一体化的单元式教学,每个单元教学都以应用该项技术或技能完成一个作业来结束,并进行下一个项目的教学。简而言之,项目教学就是师生为完成某一具体的工作任务而展开的教学行动。项目教学是一种方法,更是一种方案。
2.2读者写者算法设计项目驱动为例的算法项目驱动教学的过程
(1)读者写者项目算法问题描述:
模型描述:设想一个飞机订票系统,其中有许多竞争的进程试图读写其中的数据,多个进程同时读数据库是可以接受的,但如果一个进程正在更新(写)数据库,则其他所有进程都不能访问数据库,即使读操作也不行[2]。
问题的提出:读者-写者问题,允许多个读者同时执行读操作;不允许读者、写者同时操作;不允许多个写者同时操作。
要求:读者与写者之间互斥,写者与写者之间互斥,读者之间不互斥。
(2)读者-写者问题PV操作解决方案:
读者优先,只要有一个读者存在,不管有否写者请求,后续读者都可以执行读过程。
int readcount = 0; /*定义读者计数器*/
semaphore mutex = 1; /*读者计数器互斥信号量*/
semaphore wsem = 1; /*写互斥信號量*/
process reader:
{
P(mutex);
readcount++;
if (readcount==1) P(wsem);
V(mutex);
read;
P(mutex);
readcount--;
if (readcount==0) V(wsem);
V(mutex)
};
process writer:
{
P(wsem);
write;
V(wsem);
};
(3)读者-写者问题研究模拟:
引导学生完成设计要求及步骤
1)在windows xp环境下创建一个控制台进程,在此进程中创建若干个线程模拟读者和写者线程,每个线程按照测试文的件要求进行读写操作。
2)测试文件包括若干行测试数据。每一行表示一个线程,每行中包括四个字段,每个字段用空格隔开。第一个字段为一个正数,表示线程序号。第二个字段表示线程的角色,R表示读者,W表示写者。第三个字段为一个正数,表示读写操作开始的时间。第四个字段表示读写操作的持续时间[2]。
3)创建两个等待队列其中一个放读者,另一个放写者。当读允许时就从读者队列中取出一个或多个读者线程进行读操作;当写允许时就从写者队列中取出一个一个或多个写者线程进行写操作。
4)设计一个程序使用读者优先的算法完成读者写者问题
5)读者优先附加条件:如果一个读者申请进行读操作,同时又有一个读操作正在进行读操作,则该读者可以直接开始读操作。
6)写者优先附加条件:如果一个读者申请进行读操作是已经有一个写者在等待访问共享资源,则该读者必须等到没有写者处于等待状态后才能开始读操作。
7)运行结果如图1显示:每个线程创建、发出读写操作请求、开始读写操作、结束读写操作时分别显示一行提示信息,一确定所有处理都遵守相应的读写操作条件。
3. 结语
《操作系统》课程的教学目的在于使学生较全面地学习有关操作系统的基本理论和实践技术,教学中利用算法项目为驱动开展课程教学实践,引导学生完成相应的知识内容,对学生有积极地帮助,尤其在团队合作,知识获取和学习方法上。
参考文献:
[1]颜彬. 计算机操作系统(第2版)[M].北京:清华大学出版社.2014.
[2]孙钟秀. 操作系统教程(第3版)[M].北京:高等教育出版社.2003.
作者简介:许平(1978-),男,江汉大学,副教授,研究方向:计算机网络、软件测试。
关键词:操作系统;项目驱动教学;读者写者算法
1.《操作系统》课程教学现状及存在的问题
《操作系统》课程主要涉及操作系统的原理概念,技术发展和理论基础。同时该课程较全面、系统的介绍了处理机管理,存储管理,作业管理,文件系统,设备管理以及整体分析操作系统的设计方法及应用等方面[1]。
目前在操作系统课程教学中普遍存在的问题如下:
(1)教学内容抽象,理论性过强。大量枯燥乏味的理论概念使得学生的学习兴趣减弱,容易使得学生产生厌学情绪。
(2)存在理论与实践脱节的现象。在教学过程中操作系统课程缺少相应的程序算法项目支撑,很多学生在课程学习完成后也未能真正了解操作系统实践的全过程。
(3)学生能力的培养缺失。教学内容和方法往往受到教材的制约,束缚了对学生发散性思维的培养,教师在教学过程中往往单方面灌输知识,导致学生的依赖性加强,学习能力严重不足。
2. 项目驱动模式在操作系统课程中的教学实践
2.1 项目驱动模式
项目教学是将某门专业课程按类别分为若干技术或技能单元,每个技术或技能单元作为一个教学项目,实行理论、实践一体化的单元式教学,每个单元教学都以应用该项技术或技能完成一个作业来结束,并进行下一个项目的教学。简而言之,项目教学就是师生为完成某一具体的工作任务而展开的教学行动。项目教学是一种方法,更是一种方案。
2.2读者写者算法设计项目驱动为例的算法项目驱动教学的过程
(1)读者写者项目算法问题描述:
模型描述:设想一个飞机订票系统,其中有许多竞争的进程试图读写其中的数据,多个进程同时读数据库是可以接受的,但如果一个进程正在更新(写)数据库,则其他所有进程都不能访问数据库,即使读操作也不行[2]。
问题的提出:读者-写者问题,允许多个读者同时执行读操作;不允许读者、写者同时操作;不允许多个写者同时操作。
要求:读者与写者之间互斥,写者与写者之间互斥,读者之间不互斥。
(2)读者-写者问题PV操作解决方案:
读者优先,只要有一个读者存在,不管有否写者请求,后续读者都可以执行读过程。
int readcount = 0; /*定义读者计数器*/
semaphore mutex = 1; /*读者计数器互斥信号量*/
semaphore wsem = 1; /*写互斥信號量*/
process reader:
{
P(mutex);
readcount++;
if (readcount==1) P(wsem);
V(mutex);
read;
P(mutex);
readcount--;
if (readcount==0) V(wsem);
V(mutex)
};
process writer:
{
P(wsem);
write;
V(wsem);
};
(3)读者-写者问题研究模拟:
引导学生完成设计要求及步骤
1)在windows xp环境下创建一个控制台进程,在此进程中创建若干个线程模拟读者和写者线程,每个线程按照测试文的件要求进行读写操作。
2)测试文件包括若干行测试数据。每一行表示一个线程,每行中包括四个字段,每个字段用空格隔开。第一个字段为一个正数,表示线程序号。第二个字段表示线程的角色,R表示读者,W表示写者。第三个字段为一个正数,表示读写操作开始的时间。第四个字段表示读写操作的持续时间[2]。
3)创建两个等待队列其中一个放读者,另一个放写者。当读允许时就从读者队列中取出一个或多个读者线程进行读操作;当写允许时就从写者队列中取出一个一个或多个写者线程进行写操作。
4)设计一个程序使用读者优先的算法完成读者写者问题
5)读者优先附加条件:如果一个读者申请进行读操作,同时又有一个读操作正在进行读操作,则该读者可以直接开始读操作。
6)写者优先附加条件:如果一个读者申请进行读操作是已经有一个写者在等待访问共享资源,则该读者必须等到没有写者处于等待状态后才能开始读操作。
7)运行结果如图1显示:每个线程创建、发出读写操作请求、开始读写操作、结束读写操作时分别显示一行提示信息,一确定所有处理都遵守相应的读写操作条件。
3. 结语
《操作系统》课程的教学目的在于使学生较全面地学习有关操作系统的基本理论和实践技术,教学中利用算法项目为驱动开展课程教学实践,引导学生完成相应的知识内容,对学生有积极地帮助,尤其在团队合作,知识获取和学习方法上。
参考文献:
[1]颜彬. 计算机操作系统(第2版)[M].北京:清华大学出版社.2014.
[2]孙钟秀. 操作系统教程(第3版)[M].北京:高等教育出版社.2003.
作者简介:许平(1978-),男,江汉大学,副教授,研究方向:计算机网络、软件测试。