操作系统原理教学中多课程知识融合探析
日期:2023-01-24 阅读量:0次 所属栏目:软件技术
操作系统原理教学中多课程知识融合探析
1. 引言
计算机操作系统原理(以下简称操作系统)课程是计算机科学与技术及相关本科专业的一门重要的主干核心课程,它以先修课程计论文联盟http://算机导论、程序设计、数据结构和计算机组成原理等课程为基础对计算机专业知识进行扩展,并为后继课程计算机体系结构、计算机网络、软件工程等课程提供知识基础,在整个计算机科学与技术专业的课程中起着承上启下的关键作用。由此可以见,操作系统课程融合了多门计算机科学与技术专业的相关课程知识,如果教师在授课时仅限于本课程的知识点,就容易造成学生的知识结构过于单一和狭窄,不能很好地融会贯通,形成一个完整的知识体系,因此教师在授课时需要结合相关的课程知识进行扩展,实施多课程知识与操作系统课程的相互衔接与融合是很重要的。
2. 操作系统原理课程与多课程知识融合
2.1 程序设计与操作系统课程的融合
2.1.1 程序设计与操作系统的联系
程序设计是操作系统的先导课程之一,学生通过程序设计课程的学习可以初步掌握程序设计的思想和方法,具备利用计算机求解实际问题的基本能力。而操作系统是计算机中的系统软件,因此程序设计中的一些基本概念和方法被广泛的应用到操作系统课程中。
2.1.2 程序设计与操作系统知识融合的方法及举例
采用启发式教学方法,通过对具体问题的提问和讨论将程序设计的思想融入到操作系统的知识中,以提高学生解决问题的能力。
例如:“生产者-消费者”问题是操作系统中的经典进程同步/互斥问题,几乎所有的操作系统课程教材都会对这些内容进行阐述,教师在授课中讲到这个问题的具体解决时,首先应先给学生讲解和分析,经过分析让他们明白“生产者-消费者”问题既是互斥问题,也是同步问题,对于互斥问题肯定要设置互斥信号量(mutex),这个学生比较容易理解,但对于这个问题的两个私有信号量学生可能一下子不能理解,这时教师可以这样对学生进行启发:
1)生产者关心的问题是什么?(是否有空的缓冲区,因此可以设置一个生产者的私有信号量empty,表示空的缓冲区的个数,初值为n。)
2)那么消费者关心的问题又是什么?(是否有装满数据的缓冲区,因此可以设置一个消费者的私有信号量full,表示装满数据的缓冲区个数,初值为0。)
3)生产者所做的事情是什么?(生产一个数据,然后申请一个空的缓冲区,并给该缓冲区上锁,将数据放到该缓冲区中,数据装满后意味着它释放一个装满数据的缓冲区,最后给该缓冲区开锁。)
4)消费者所做的事情是什么?(申请一个装满数据的缓冲区,并给该缓冲区上锁,将数据从缓冲区中拿去消费,意味着它释放一个空的缓冲区,最后给该缓冲区开锁。)
经过以上分析,可以分别将生产者和消费者进程的操作写成如下的伪代码:
producer:begin
…
produce an item nextp;
转贴于论文联盟 http://
p(empty);
p(mutex);
buffer(in)= nextp;
in:=(in+1) mod n;
v(full);
v(mutex)
end
consumer:begin
…
p(full);
p(mutex);
nextc:=buffer(out);
out:=(out+1) mod n;
v(empty);
v(mutex);
consume the item in nextc;
end
并对这些伪代码做些解释,学生就很容易理解和掌握,并在上机课时让学生利用某种高级语言对这些伪代码稍做修改就可以上机实践,使学生把进程同步的抽象概念知识变为具体可理解的知识。除此问题外,其他的经典进程同步/互斥问题如“哲学家进餐问题”、“读者-写者问题”等的解决,也可以通过这种方法向学生讲解。
2.2 数据结构与操作系统课程的融合
2.2.1 数据结构与操作系统的联系
数据结构是计算机科学中一门综合性的专业基础课,它研究非数值数据计算的程序设计问题中计算机操作对象以及它们之间的关系和操作等。随着计算机技术的发展,计算机加工处理的对象也由纯粹的数值发展到字符、表格和图像等各种具有一定结构的数据,正是基于这种需求,数据结构被广泛应用到操作系统当中来解决各种实际问题。
2.2.2 数据结构与操作系统知识融合的方法及举例
对数据结构的学习与掌握操作系统中的一些算法有着密切的关系,因此可以采用探究法、举例法等教学方法将数据结构的知识和操作系统的知识融合在一起,可以激发学生的求知欲,加深对课堂教学知识的理解和掌握。
例如:银行家算法是避免死锁的有效方法,为实现该算法系统中必须设置若干数据结构。1)可利用资源向量available,它是一个含有m个元素的二维数组,其中的每一个元素代表一类可利用的资源数目;2)最大需求矩阵max,这论文联盟http://是一个n×m的矩阵,它定义了系统中n个进程中对每一个对m类资源的最大需求;3)分配矩阵allocation,这是一个n×m的矩阵,它定义了系统中每一类资源当前已分配给每一个进程的资源数;4)需求矩阵need,这是一个n×m的矩阵,它表示系统中每个进程尚需的各类资源数。上述各矩阵存在如下关系:need[i,j]=max[i,j]-allocation[i,j]。此外还需设置work和finish两个工作向量和一个请求向量request。有了这些数据结构就可以对银行家算法进行描述了,由于教材已有该算法的具体描述,在此不再赘述。教师在讲课时应先向学生介绍以上各数据结构的含义,再讲银行家算法的过程,最后再举一个具体的例子,这样学生就能把握该算法的思想,并能将它具体的应用。此外,除了这些,在先来先服务调度算法、基于时间片的轮转调度算法、内存的动态分区分配算法、缓冲池的管理等算法中还多次用到队列的知识。教师在教学过程中应将数据结构的这些知识融合到操作系统课程中来,使之成为一个连贯的知识体系,易于学生的理解和接受。转贴于论文联盟 http://
2.3 计算机组成原理与操作系统课程的融合
2.3.1 组成原理与操作系统的联系
操作系统是直接覆盖在硬件之上的第一层软件,它依靠计算机硬件并在其基础上提供很多新的服务和功能,使用户方便、安全、可靠、高效地操纵计算机。随着操作系统的发展,为了便于操作系统管理,使软件和硬件能够相互协调地作为一个整体运行,保障计算机系统安全和高效的运行,计算机的硬件系统在设计层面上为操作系统提供支持。因此,可以说,与操作系统课程有关联的几门课程中,计算机组成原理是与操作系统关系最密切的一门课程。
2.3.2 组成原理与操作系统知识融合的方法及举例
组成原理的知识与操作系统的知识有着密切的联系,在操作系统课程中,有些内容要具有一定的硬件知识才能理解,因此有时采用举例的方法将组成原理的知识融合到操作系统课程中,将抽象的概念具体化,使学生易于理解和掌握是很有必要的。
例如:在讲进程调度时,往往会涉及到进程的切换,当时间片到或高优先级的进程到达而不得不进行进程的切换时,一定要保存被中断进程的“断点”,即进程上下文。对于一些初学者来说,“进程上下文”这个概念太抽象了,有些学生甚至会问“上下文”怎么会和操作系统扯上关系了呢?教师在讲课时就有必要解释进程上下文的概念。而计算机组成原理是操作系统的先导课程,教师在讲到这部分内容时,为了让学生理解什么叫进程上下文,可以先画一个简单的cpu组成框图,然后举例讲一条指令在cpu中执行的过程,比如在指令的取指阶段、译码阶段和运行阶段等各阶段中cpu中的各个寄存器各是什么内容。如果进程被论文联盟http://“打断”,要保存的进程上下文其实就是当前cpu中各个寄存器的内容。这样把问题具体化,学生就会有一种豁然开朗的感觉。此外,除了这些,还有很多组成原理和操作系统相融合的例子。例如:虚拟存储器为请求分页存储管理提供硬件支持;流水cpu为程序的并发执行提供支持等。将先导课程的相关知识引入到后继学习的课程当中,让学生在已掌握的知识上学习新的知识,使他们更易于理解和接受。
3. 结束语
操作系统是计算机系统不可缺少的重要组成部分,是计算机硬件功能的首次扩充,鉴于操作系统本身的特性及其在计算机系统中的地位,其课程特点表现为内容庞杂、涉及面广、知识点难度跨度大。在教学中实施多课程知识的融合,既能改善教师自身的知识结构,达到对教学过程中各类知识的驾轻就熟,提高教学质量;同时,又能使各学科在教学内容、知识背景、实践应用等方面相互交叉、相互渗透,增进学科间知识和方法的联系,让学生借助多学科的知识、技能和方法感知新的知识,培养他们的创新精神及综合能力。转贴于论文联盟 http://
本文链接:http://www.qk112.com/lwfw/jsjlw/ruanjianjishu/229789.html