APP下载

用生活中的实例来讲解“操作系统”课程

2009-08-28王育勤

计算机教育 2009年14期
关键词:缓冲区操作系统进程

摘要:本文主要介绍了作者在多年本科生的“操作系统”教学中积累的一点经验和心得体会,提出了在“操作系统”的授课过程中应注意举例时尽量用生活中的实例,这样就会生动、形象、更贴近实际,使枯燥的“操作系统”课程变得活灵活现,以增加学生的兴趣和好奇心。

关键词:操作系统;进程;文件;缓冲区

中图分类号:G642 文献标识码:A

1引言

操作系统是计算机系统的基本组成部分,它在整个计算机系统软件中占据核心地位。对操作系统的概念、理论和方法的研究以及对操作系统的使用、分析、开发和设计,历来是计算机领域中最主要的课题和任务之一;因而,“操作系统”是计算机科学教育的基本课程之一。它涉及到对计算机中各种资源(包括硬件和软件资源)的有效管理,又为用户及高层软件的运行提供良好的工作环境,起到承上启下、纵横贯通的作用。

“操作系统”是计算机专业学生的必修课,是一门专业基础课。它是控制和管理计算机系统中所有资源,并为用户使用计算机提供方便、有效、安全、可靠运行环境的系统软件,但它又不同于其它系统软件,它对计算机中的所有资源(包括系统软件)都起着领导者的作用。所以操作系统是整个计算机系统的主动脉,设计的好坏直接影响着计算机系统的性能和效率。它在用户与计算机系统之间架起一座桥梁。它的许多设计思想和方法,在用户的应用程序中都很有借鉴作用,所以“操作系统”课程的教与学就显得非常重要和关键。而“操作系统”课程的基本原理比较枯糙、抽象,学生理解起来比较困难,在授课时举例必须生动。笔者的经验是:在授课时用生活中的实例来解释“操作系统”课程中的现象与实现方法。下面就自己在十几年的“操作系统”课程教学中摸索出的一些经验与大家来共同探讨。

2关于“进程”的讲解

“进程”是操作系统中最基本、最重要的概念之一。引进这个概念对于理解、描述和设计操作系统都具有极其重要意义。它与程序不同,在操作系统中,进程不仅是最基本的并发执行的单位,而且也是分配资源、交换信息的基本单位。

对进程概念的解释为:进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。此定义有以下一些含义:

(1) 进程是一个动态的概念,而程序是一个静态的概念;

(2) 进程包含了一个数据集合和运行其上的程序;

(3) 同一程序同时运行于若干不同的数据集合上时,它将属于若干个不同的进程,或者说,两个不同的进程可包含相同的程序;

(4) 系统分配资源是以进程为单位的,所以只有进程才可能在不同的时刻处于几种不同的状态;

(5) 既然进程是资源分配的单位,处理机也是按进程分配的。因此,从微观上看,进程是轮换地占有处理机而运行的;从宏观上看,进程是并发地运行的。从局部看,每个进程是(按其程序)串行执行的;从整体看,多个进程是并发地运行的。

学生初次接触“进程”这一概念,可能会觉得它很枯燥,难以理解。我们说,在操作系统中许多概念、思想、实现方式都是来源于生活。“进程”也是这样,我们可以把“进程”理解为电影的一次放映过程,那么电影胶带就可以理解为是进程中的程序部分。则同一电影在同一电影院的两次放映过程,应称为两个不同的进程。我们还可以将音乐的一次播放过程理解为是一个进程,那么,一首歌的乐曲就可以理解为是一个程序段,则一个进程可以包含若干个程序段和一个程序段可以属于不同的进程就容易理解了。

有了进程的概念之后,对操作系统的并发性就可以用生活中的实例来理解了。我们用总办公室中一个秘书的活动来进行比拟。秘书应该做的每一件工作,如打印文件,将发票归档等,可以比拟为操作系统中的一个进程。CPU则是秘书本身。执行每件工作时应遵循的步骤序列类似于程序。如果在该办公室中,工作忙得不可开交,那么秘书不得不常常把正在做的工作搁一搁而去处理另一件工作。在这种场合下,她很可能抱怨“同时要做许多工作”。但实际上,在任一时刻,她只做一件工作,只是频繁地从一件工作转向另一件造成一种总的并发的印象。继续作更进一步的类比,我们设想在那一办公室中增加了一些秘书,于是在执行不同任务的各个秘书之间,有了一种真正的并发。与此同时,每个秘书又可能要从一个任务转向另一个任务,所以表面上并发仍旧存在。只有当“秘书的个数=事件数”时,才能以真正的并发方式执行各个事件。

因为进程在计算机操作系统中是独立的、动态的、有生命力的、起主导作用的个体。我们将进程比喻为人类社会中的主角——人。这样关于进程的创建、进程对资源的共享、进程状态的转换等都容易理解了。

因为如果一个事物始终处于一种状态,那么它就不再是活动的,就没有生命力了,所以进程并非固定处于某个状

态,它将在不同的状态之间随着自身的推进和外界条件的变化而发生变化,最终完成其使命。

3关于“缓冲区”的讲解

在计算机中引进缓冲技术主要是解决在系统某些位置上信息的到达率与离去率不匹配的问题。缓冲技术是在这些位置上设置能存贮信息的缓冲区,在速率不匹配的二者之间起平滑作用。

缓冲技术不仅在设备管理中起重要作用,在操作系统的其它部分也常起着特殊作用,如进程通讯、文件管理等等。

那么在设备管理中引进缓冲的原因是什么呢?

(1) 改善CPU与I/O设备之间速度不匹配的情况

CPU与外设之间的速度差异是明显的,尽管大多数系统中都配置了与CPU处理能力大致相当的多台外设。通道技术也为系统各部分并行提供了可能性,但在不同时刻系统各部分的负荷往往很不均衡。有时设备空闲,CPU忙碌,有时则相反。显然在这种情况下,其并行度很低,设备的忙闲程度也很不均衡。如果软件采用缓冲技术在内存或外存空间开辟一定数量的缓冲存贮区,I/O都先经过缓冲区,显然可以提高CPU与外设并行度,也使设备均衡地工作。

(2) 发掘I/O设备之间的并行操作

在实际中,常常需要将某台外设上的信息传递到另一台上,如将输入机上信息传送到磁盘上。这样输入设备与盘操作必须完全串行工作。若在内存开辟两个缓冲区(buffer1,buffer2),则情况会有好转。就可以把原来串行工作变成了并行工作,从而提高设备利用率。

(3) 减少I/O次数

当某些设备信息要重复使用时,利用缓冲区可以尽可能地保存I/O信息副本。

必须指出,缓冲技术只能在速度不匹配的两部分之间起平滑作用。缓冲技术带来的并行度的增益,实际上很大程度依赖于进程内部存在着的各部分活动间的并发性及进程间活动的并发性。另外,缓冲区的设置也比较关键。缓冲区可以用硬件寄存器实现(称为高速缓存器cache)。由于成本的考虑,cache的容量一般不宜很大,如1K~4K。比较经济的办法是在内存中开辟一片区域充当缓冲区。

我们在讲解时就将缓冲区的作用比喻为“水库”。若一条河面宽水流大的河流与一条河面窄水流小的河流对接时,为了让水量不流失且大小河流的速度不减,就可以在对接处建一个水库。这样学生就容易理解了。

4关于“文件系统”的讲解

文件系统是指OS中负责管理和存取文件信息的软件机构。从系统角度看,文件系统负责为用户建立文件(包括存放位置和保护);从用户角度看,文件系统主要是实现了“按名存取”,即,当用户要求系统保存一个已命名的文件时,文件系统能将它们放在适当的地方。当用户要使用文件时,文件系统根据文件名能找出某个具体文件。因此,文件系统的用户只需知道文件名就可存取文件中的信息,不需知道究竟放在何处。

设置文件系统的目的,主要是为了向用户提供一种简便、统一的管理和使用文件的界面。用户可以使用这个界面中的命令(指令),按照文件的逻辑结构,简单直观地对文件实施操作,而不需要了解存贮介质的特性以及文件的物理结构和I/O实现的细节。

文件系统的设计者,应以两种不同的观点研究文件的组织问题。一是用户观点,就是研究用户思维中的抽象文件,为用户提供一种逻辑结构清晰、使用简便的逻辑文件形式。用户可按这种形式对文件进行各种操作,而不管其机器实现的细节。另一种是实现观点,即研究文件在存贮介质上的具体存放形式,系统将按照这种存贮方式实施具体的存取操作。前者叫文件的逻辑组织,后者叫文件的物理组织。文件系统的重要作用之一,就是在两者之间建立映照关系。

文件系统要管理为数众多的文件,首先的问题就是要把它们有条不紊地组织起来,以便能根据文件名迅速准确地找到文件。这是文件系统能否有效地工作的关键。这就是目录结构的问题。那么,一个好的目录结构的标准是什么呢?

多级目录结构是使用灵活、能适应不同要求的目录结构,在实际系统中得到广泛的应用。多级目录结构有不同的形式,主要有树形结构,非循环图形结构等。树形的目录结构示意如图1所示。

在此结构中,有一个根目录(Root Directory)。根目录项可以是一个普通文件(数据文件),也可以是一个次一级的目录文件。如此层层类推,形成一个树形层次结构,在这一结构中,末端叶结点一般是数据文件,中间节点一定是一个目录文件。

建立目录结构的目的是要把文件有条不紊地组织起来,以便能按文件名迅速地找到该文件的控制块FCB。需要说明的是,整个目录结构都是建立在外存上的,而“按名查找”的过程是要通过CPU执行查找程序(例如,UNIX中此程序的名字叫namei)实现的,所以要把作为此程序加工的数据的目录有选择地读入内存。因此在查找文件的过程中,涉及到大量的内、外存之间的信息传输。

文件系统的多级目录结构中应能做到文件的重名与共享,而单纯的一棵倒立的树型结构中,将文件比喻成树叶,则文件的异名共享就解释不通了,所以在UNIX系统中说成是非循环图形结构。这样一解释学生就清楚了。

在UNIX系统的文件系统模块中对文件存储块的管理时用到的数据结构是卷的专用块。卷的专用块(存储资源管理信息块)是文件卷的1#块。专用块的主要内容如下:

(1) 空闲盘块数目S-nfree:当前可被直接分配使用的盘块数。

(2) 空闲块索引表S-free[50]:其中放有当前可用的盘块号。

(3) 空闲i节点数目S-ninode:当前可被直接分配使用的i节点数。

(4) 空闲i节点索引表S-inode[100]:其中放有当前可用的i节点号。

(5) 封锁标记:正在用专用块时要对它进行封锁。

在卷的专用块中直接记载的空闲存储块号和空闲i节点号用到的两个数组的工作方式就是“栈”。我们在讲解时,就让学生将“栈”想象成喝水的杯子。这样“先进后出”的特点就一目了然了。

4结束语

笔者从事本科“操作系统”的教学工作已有十八年。期间编写了一本操作系统教材,已在教学中使用十年;开发研制了操作系统动态演示软件;开设了“操作系统课程设计”;在教学中积累了一定的经验。由于时间仓促,本文就自己的一点浅薄见解与各位同仁共勉。

参考文献:

[1] 孟庆昌. 操作系统教程——UNIX系统V实例分析[M]. 西安:西安电子科技大学出版社,1993.

[2] 张尧学. 计算机操作系统教程习题解答与实验指导[M]. 北京:清华大学出版社,2000.

[3] 庞丽萍. 操作系统实验与课程设计[M]. 武汉:华中理工大学出版社,1995.

[4] 王育勤,谢余强,汪淼.计算机操作系统—基于UNIX系统V核心[M]. 北京:清华大学出版社,2004.

Using Examples of Life on the "Operating System" Course

WANG Yu-qin

(Institute of Science, PLA Information Engineering University, Zhengzhou 450000,China)

Abstract: In this article, the experiences in teaching of Operating Systems are introduced. Many skills are emphatically provided that examples of life are used on the “Operating System” course, which is visual, vivid, and close to reality. It makes the course more active, and also makes students having more interests and curiosities on this course. Finally, the implementation of course design of Operating Systems is proposed in this paper.

Key words: Operating Systems; process; file; buffer

猜你喜欢

缓冲区操作系统进程
Dalvik虚拟机进程模型研究
快速杀掉顽固进程
不留死角 全方位监控系统
缓冲区溢出漏洞攻击及其对策探析
智能手机操作系统的分析与比较
国产桌面操作系统中虚拟化技术应用研究
中外民主法制进程专题复习
初涉缓冲区
本期导读
Linux系统下缓冲区溢出漏洞攻击的防范