首页 > 文章中心 > 操作系统

操作系统

开篇:润墨网以专业的文秘视角,为您筛选了八篇操作系统范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

操作系统范文第1篇

【关键词】Linux操作系统 网络操作系统 内核

一、Linux的产生

Linux是一种计算机操作系统,通常被称为类Unix系统,这是因为Linux和Unix有着很深的渊源。

在计算机非常昂贵的年代,只有在大学或大型企业中才能够接触到计算机,人们非常希望多个用户能同时连接到一台计算机并同时使用它。于是,计算机科学家开始研究分时系统。分时系统是将CPU的运行时间分为很小的时间片,多个用户任务可以通过交替占有时间片的方式实现快速交互使用CPU。由于时间片是很短的一段时间,以至于每个用户任务、每个用户好像在独占CPU,独占整个计算机系统。在研究人员的不懈努力下,1969年,AT&T公司贝尔实验室开发出了Unix系统。

1986年,芬兰赫尔辛基大学的Andrew Tanenbaum教授为了给学生讲授《计算机操作系统》课程,开发出了Minix系统,这是Unix的一个变体。1991年,Andrew Tanenbaum教授的学生Linus Torvalds,由于对课堂上使用的Minix系统不太满意,于是开始在386 PC机上试着改进Minix系统。

1991年8月,Linus Torvalds在comp.os.minix新闻组贴上了以下这段话:“你好,所有使用minix的人,我正在为386(486)AT做一个免费的操作系统,只是为了爱好,……”

Linus最初为自己的这套系统取名为freax,他将源代码放在了芬兰的一个FTP站点上供大家下载。该站点的管理员认为这个系统是Linus的Minix系统,因此建立了一个名为Linux的文件夹来存放它。于是,Linus的“爱好”就成了今天微软的头号对手,功能强大且价格低廉的Linux操作系统。

1993年底94年初,Linux 1.0终于诞生了!

Linux1.0已经是一个功能完备的操作系统,而且内核写得紧凑高效,可以充分发挥硬件的性能,在4M内存的80386机器上也表现得非常好,至今人们还在津津乐道于此。

Linux的 和 是一只名字叫做 的 ,Linux的是Linus Torvalds所有的。这是由于在 ,一个名字叫做William R. Della Croce的律师开始向各个Linux商发信,声明他拥有Linux 的所有权,并且要求各个商支付版税,这些发行商集体进行上诉,要求将该注册商标重新分配给Linus Torvalds。

二、Linux的开发模式

Linus于1991年10月5日了Linux的第一个版本Linux 0.0.2,并在网络上公布了Linux核心程序的源代码,同时决定以GPL(大众所有版权,又称GUN通用公共许可证)的方式来发行传播,也就是说这个软件允许任何人以任何形式进行修改和传播。

随着网络的日益盛行,越来越多的技术高超的程序员加入到Linux的开发与完善中来。在这个过程中,无数的富有个性和开创性的程序员在没有计较任何酬劳的前提下,完全自发的加入到开发行列中来。一旦一个程序员完成了其中的部分程序,他便会立即将这个程序发表,并免费将它发给任何一个需要的人,而其他的一些程序员研究它后将会对它修正和改良,然后将它发表。这个过程周而复始,因此Linux的改进速度是最快的,同时它的稳定性也是非常高的。

所以,Linux并非仅由Linus一人开发,而是由全世界几百个程序员共同开发的,当然Linus为内核定了调子。这种集市型的开发模式促成了Linux系统的繁荣。可以说,Linux完全是一个热情、自由、开放的网络产物。

三、Linux的发展

Linux具有良好的兼容性和可移植性。大约在1.3版本之后,Linux开始向其他硬件平台上移植,包括号称最快的CPU——Digital Alpha。所以不要总把Linux与低档硬件平系到一块,Linux只是将硬件的性能充分发挥出来而已。Linux必将从低端应用横扫到高端应用!

为了使Linux变的容易使用,Linux也有了许多版本,版实际上就是一整套完整的程序组合。现在已经有许多不同的Linux发行版和各自的版本号,为了不产生混淆,我们先解释一些常提到的术语。当我们提到的Linux时,一般是指“Real Linux”,即内核,是所有UNIX操作系统的“心脏”。但光有linux并不能成为一个可用的操作系统,还需要许多软件包,编译器、程序库文件、Xwindow系统等等。因为组合方式不同,面向用户对象不同,所以就有了许多不同的Linux发行版。

越来越多的公司在Linux上开发商业软件或把其他Unix平台的软件移植到Linux上来。如今很多IT业界的大腕IBM、Intel、Oracle、Infomix、Sysbase、Corel、Netscape、CA、Novell等都宣布支持 Linux。商家的加盟弥补了纯自由软件的不足和发展障碍,Linux迅速普及到广大计算机爱好者,并且进入商业应用,成为打破某些公司垄断文化圈的希望所在。

Linux是爱好者们通过Internet协同开发出来的,当然它的网络功能十分强大。比如你可以通过ftp、nfs等来安装Linux,用它来做网关等等。随着Linux的发展,衍生出来的应用恐怕出乎Linus本人最初的预料。如有人用它来做路由器,有人来做嵌入式系统,有人来做实时性系统……。常有新手问Linux能做什么?其实它不象那些中看不中用的操作系统,不在于你用它能干什么,而在于你想干什么。

Linux是一个在PC机上运行的Unix系统。Linux系统具有最新 Unix的全部功能,包括真正的多任务、虚拟存储、共享库函数、即时负载、优越的存储管理和TCP/IP、UUCP网络工具等。Linux系统及其发展均符合Posix标准,其内核支持Ethernet、PPP、SLIP、NFS、AX.25、IPX/SPX(Novell)、NCP(Novell)等。系统应用包括tellnet、rlogin、ftp、Mail、gopher、talk、term、news(tin、trn、nn)等全套UNIX工具包。X图形库,包括xterm、fvwm、xxgdb、mosaic、xv、gs、xman等全部X-Win应用工具。商业软件有Motif、WordPerfect。中文工具已有Cxterm、celvis、cemasc、cless、hztty、cytalk、ctalk、cmail等,可以处理GB、BIG5、HZ文件。此外还有DOS模拟软件,可以运行DOS/Win下的软件。

在开始的时候,Linux只是个人狂热爱好的一种产物。但是现在,Linux已经成为了一种受到广泛关注和支持的一种操作系统。和其他的商用Unix系统以及 相比,作为自由软件的Linux具有低成本,安全性高,更加可信赖的优势。直到今天,Linux已经成为一个功能完善的主流网络操作系统。

操作系统范文第2篇

基金项目:广东省大学生创新实验项目(1184510037);广东工业大学高教研究基金项目(2009C01)。

作者简介:张钢,男,讲师,研究方向为机器学习、数据挖掘、知识发现、高级计算机网络、操作系统。

摘 要:当前,高等院校的操作系统教学过程主要是基于传统的操作系统基本原理而进行的,与现代操作系统的发展不相适应,在教学过程中很难让学生理解当前操作系统发展的挑战和今后的发展方向。本文对现代操作系统的特性进行分析,阐述其在教学过程中的必要性和重要性,并介绍使用微软公司的Singularity项目进行操作系统教学的经验。实践表明,Singularity系统架构清晰简洁,很好地体现了现代操作系统的理念,适用于高等院校的操作系统教学。

关键词:现代操作系统;Singularity;教学实践

随着软件开发技术和计算机网络技术的发展,操作系统作为软件和应用的承载平台,承担着越来越重要的任务,也面临着越来越大的挑战。操作系统有将近40年的历史,虽然目前主流使用的操作系统功能强大,能够支持各种软件的运行,但远远达不到完美的程度,相反,随着计算机软件的日益复杂和网络化应用程度的提高,操作系统表现出越来越多的问题,主要表现在以下几个方面[1-2]。

1) 可靠性。现代操作系统十分脆弱,系统经过一段时间的使用之后速度变得越来越慢,使用一段时间之后就需要重装。对一些非专业用户而言,为了装一个软件而导致整个系统不能使用的情况很常见。

2) 安全性。病毒、木马等程序在操作系统的控制范围内得到运行,但它们却破坏了整个系统。

3) 系统配置问题。以Windows为例,DLL错误、注册表表项错误、Windows启动配置错误等问题很常见,操作系统本身不能把自身的配置保持在一个稳定且一致的状态。

4) 程序隔离问题。操作系统的内存管理中每个进程都有独立的运行空间,它们之间的通信只能通过特定的机制(管道、消息、共享数据区等)进行,但经常会出现一个程序的运行失败导致整个操作系统崩溃,或是某些特殊的程序(如木马程序)能跨越进程的数据空间非法访问其他进程的数据。

但与此同时,高等院校的操作系统教学仍然停留在以操作系统的五大管理功能(处理器管理、存储器管理、文件管理、设备管理、作业管理)为核心内容的教学上,主要进行操作系统理论和基本原理的教学。我们发现,现代操作系统的这些问题几乎不能从现有的教学内容中找到答案,在学习的过程中,学生一方面会认为这种理论学习与日常操作系统的使用脱节;另一方面学生可能会更加疑惑,这些常见问题是否是操作系统的基本原理本身有问题所导致的。

必须指出的是,传统的五大核心管理功能仍然是操作系统的核心,而所出现的问题实际上是源自过于复杂的软件环境和程序开发语言,操作系统为了满足应用的多样性,牺牲了很大部分的安全控制和系统整体性控制。

我们认为,在高等院校的操作系统教学中,在进行操作系统基本理论教学的同时,应该增加讲授复杂软件和网络环境下操作系统所面临困难的内容,以及现有的解决方案,这样做有以下两个方面的好处。

1) 加深学生对操作系统基本原理的理解,同时让理论与操作系统的日常使用问题衔接。必须指出,操作系统的基本理论是没有问题的,增加的讲授内容能够加深学生对基本理论的理解并能引起有深度的思考。

2) 高等院校同时也培养学生的科研能力,通过增加现代操作系统内容的讲授,让学生明白在当前复杂的软件和网络环境中操作系统所面临的困难以及可能的解决办法,可以培养学生研究操作系统的兴趣,并打下一定的理论基础。

因此,我们在操作系统的教学中引入了一个现代操作系统研究项目,通过分析该项目,向学生讲授现代操作系统对于所面临的困难有怎样的解决思路、当前已经做了哪些工作,以及将来的发展方向。同时,在该操作系统研究项目上利用其源代码,把整个操作系统的实验迁移到其框架中进行。

1 Singularity项目

Singularity项目[3]是微软公司的一个操作系统研究项目,旨在使用高级程序设计语言创建一个有良好健壮性与可靠性的操作系统。Singularity是一个研究性质的项目,只有非常简洁的核心代码适合进行教学和研究。Singularity最主要的优点在于程序并不直接编译成机器代码运行,而是先映射到操作系统的一个抽象指令集上,再在操作系统的控制下运行。图1展示了Singularity系统的结构。

图1中的MSIL转换引擎是一个翻译器,把上层的用户程序、文件系统、驱动程序等应用相关的代码段转换为操作系统的抽象指令集,这种指令抽象层从底层限制了非法操作的执行。系统的运行核心以MSIL抽象指令集为基础编写,这从根本上解决了由于操作系统自身程序的运行而导致系统错误的这一矛盾[3]。

在进程通信方面,Singularity进行了限制,不直接允许基于共享内存的进程间信息交换,只能进行基于消息的信息交换,消息的传送通过通道(channel)进行,防止了跨进程的非法数据访问,这是很多系统安全问题的源头。

在进程管理方面,Singularity不允许在一个正在执行的进程中加载或生成额外的可运行代码,恶意程序无法以传统的方式执行。更为重要的是,系统尝试使用全局的抽象指令集映射,为系统提供一个整体且一致的配置方案,而不会产生配置的前后矛盾[4]。

内存管理方面,当前普遍采用的是段页式管理,即程序在内存中以逻辑上有意义的段进行组织,段内分页使内存的空间可以充分利用不会产生碎片[5]。Singularity采用了类似于Java语言的内存管理机制,即在堆上为进程和线程分配空间,并提供一个核心级的垃圾回收器进程,用于回收不再使用的空间。基于Java内存管理的可靠性与易用性,我们认为这种机制是有希望在操作系统的内存管理方面取得成功的。

Singularity系统结构清晰,而且基本不含有为了适应不同的软件配置而编写的代码,在教学中学生能够着眼于其核心部分,并能自行编写相应的管理程序,通过扩展接口能为操作系统增加功能特性。

Singularity是使用微软的Sing#语言编写的,它是C#语言的一种扩展,支持对程序行为的定义[6]。它具有对面向对象程序设计的完整支持,并能使用XML进行配置,与主流的程序开发技术相一致,有良好的文档支持,能在课堂上进行代码级的讲解,容易设计出课程相关的实验。

2 教学实践

我们在本校自动化学院网络工程系的操作系统课程内容中进行现代操作系统相关内容的教学实践,我们在2008和2009级网络信息专业的操作系统教学中进行尝试,主要包括教学内容和实验两方面的内容。

2.1 教学内容上的改进

课程原先设置了操作系统结构、进程管理、处理机调度、存储管理、设备管理、文件系统、操作系统产品介绍和安全管理这七个部分的内容,我们在各部分增加了Singularity相关的理论内容讲授。

在操作系统结构部分,我们在分层操作系统的结构设计基础上,增加了应用程序抽象层的介绍,这是Singularity中的一个重要特性,通过MSIL把应用程序的代码映射为一个统一的抽象指令集[7],操作系统本身的执行机制保证了该指令集的执行是绝对安全的,并通过例子讲解当前操作系统的不安全性和不可靠性的原因。增加了MSIL的映射机制的介绍,通过Singularity的实现,从代码级向学生展示如何构造一个可扩展的抽象指令集,并与Java语言的虚拟机机制进行比较。

在进程管理部分,加强了进程数据空间独立性的介绍,从数据通信的角度分析进程间通信的手段,分析哪些通信方式存在安全的隐患。介绍Singularity的进程管理机制,详细说明其禁止共享内存的方式进行消息通信的原因。

在处理机调度方面,引入了多处理机调度的介绍。随着CPU的多核化,多处理机调度将成为操作系统的一个重要内容。在介绍传统的处理机调度算法的同时,用流程图结合程序讲授这些算法的多处理机版本实现,并以Sing#语言[6]在Singularity中的程序实现作为课堂例子。

存储管理部分,在段式、页式和段页式管理的基础上,增加堆中分配空间和内存垃圾回收器的介绍,通过代码例子讲解在Singularity中如何实现内存空间的动态回收,并与Java的垃圾回收器进行对比。

在文件系统部分,分析Singularity的文件系统的代码实现,其实质是一个优化的B+树实现,并让学生懂得如何根据快速更新和查找的原理,创建适合自己使用的文件系统。

在操作系统产品介绍部分,着重介绍Windows系统以及它的配置管理,分析注册表和DLL中的配置错误出现的根本原因,进而介绍在Singularity中的系统配置的实现方案,主要让学生理解何为操作系统配置的一致性,要达到这种一致性需要怎样做。通过分析Singularity的代码抽象层和全局配置模块帮助学生解决这些问题。

在安全管理部分,着眼于操作系统自身的安全,讲授操作系统执行自身正常的操作应该能够保持稳定性这种理念,让学生理解安全性问题的根源在于软件环境的复杂性和当前操作系统实现对于执行效率的妥协,进一步分析MSIL抽象映射层对系统安全性的重要作用。

增加程序运行的内在机理部分类容的讲授,分析Windows系统的程序运行方式,解释动态链接库的工作原理,并分析由于程序的动态加载组件或程序段所带来的风险,讲解Singularity系统在程序运行控制方面的机制。

2.2 实验内容的改进

本系的操作系统课程有相应的实验内容,由于理论教学中增加了Singularity的内容,同时考虑到Singularity有良好的编程界面和技术文档支持,我们尝试把整个操作系统的实验迁移动Singularity系统上进行。我们设置如下的实验。

1) Singularity基础实验。

让学生熟悉Singularity项目的基本结构,安装系统开发包和查阅技术文档的方法。

2) 进程间基于消息的通信实验。

实现channel方式的进程间通信实验,让学生掌握Singularity的进程间数据交换机制。

3) 进程数据空间的独立性验证实验。

设计特定的具有交叉数据空间访问行为的实验程序,以验证操作系统对于进程数据空间的独立性有完整的保护能力。

4) 处理机调度算法实验。

在Singularity SDK框架中实现经典的处理机调度算法,并编写基于泊松分布的概率程序进行验证。

5) 简单文件系统实验。

参照DOS系统的FAT文件系统,利用SDK所提供的功能实现一个简单的基于哈希表的文件系统。

6) MSIL抽象层实验。

通过SDK的接口方法展示把一个第三方编写的程序映射到操作系统抽象指令集的完整过程。

7) 操作系统命名空间实验.

在Singularity系统的开发框架中,我们在实验学时不变的情况下,大大扩充了操作系统的实验内容,原因在于Singularity提供了一个功能完善的SDK[8],学生在该框架中可以专注于只与操作系统核心相关的代码的编写,且这些代码都是以C#和XML为基础的,适合于实验教学。在以往的实验中,均使用C++语言进行实验,学生需要花费较多的精力编写一些与核心不相关的框架性代码,限制了实验的规模和深度。

3 结语

操作系统课程是高等院校计算机相关专业的重要教学内容,但传统的基于五大管理的操作系统理论教学已不能很好地适应当前操作系统的发展趋势,更难以回答复杂软件与网络环境下所出现的一系列操作系统应用上的问题。教学实践表明,引入Singularity到操作系统教学和实验中,提高了学生的学习兴趣,有一定的教学效果。

参考文献:

[1] Martin Abadi. Access control in a world of software diversity[C]//Proceedings of the 10th conference on Hot Topics in Operating Systems, 2005, Volume 10. Santa Fe, NM, USENIX Association: 22-25.

[2] Hunt G C, J R Larus. Broad new OS research: challenges and opportunities[C]//Proceedings of the 10th conference on Hot Topics in Operating Systems , 2005, Volume 10. Santa Fe, NM, USENIX Association: 15-19.

[3] Microsoft. Singularity Project[EB/OL]. [2011-09-12]. /os/singularity.

[4] Swift M M, B N Bershad. Improving the reliability of commodity operating systems[J]. ACM Trans. Comput. Syst, 2005, 23(1): 77-110.

[5] Chen H, N Li. Towards analyzing complex operating system access control configurations[C]//Proceeding of the 15th ACM symposium on Access control models and technologies, 2010, Pittsburgh, Pennsylvania, USA, ACM: 13-22.

[6] Barnett M, Leino, KRM,et al. The Spec# programming system: An overview[C]. In CASSIS 2004. LNCS, vol. 3362, 49C69.

[7] Chen H, Li N, Mao Z. Analyzing and Comparing the Protection Quality of Security Enhanced Operating Systems[C]. In NDSS, 2009: 11-16.

[8] Microsoft. Singularity SDK[EB/OL]. [2011-10-16]. /.

Thinking of Modern Operating System and Teaching Practice

ZHANG Gang , HE Xiaomin, ZHONG Ling , LIU Hongtao

(Faculty of Automation, Guangdong University of Technology, Guangzhou 510006,China)

操作系统范文第3篇

1、Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

2、它主要用于基于Intelx86系列CPU的计算机上。这个系统是由全世界各地的成千上万的程序员设计和实现的。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品。

(来源:文章屋网 )

操作系统范文第4篇

图1 地址转换模拟算法 如果作业依次执行的指令序列为: 操作 页号 单元号 操作 页号 单元号 + 0 070 移位 4 053 + 1 050 + 5 023 ´ 2 015 存 1 037 存 3 021 取 2 078 取 0 056 + 4 001 - 6 040 存 6 084 运行设计的地址转换程序,显示或打印运行结果。因仅模拟地址转换,并不模拟指令的执行,故可不考虑上述指令序列中的操作。第二题:用先进先出(FIFO)页面调度算法处理缺页中断。[设计思路、数据结构、流程图]:(1) 在分页式虚拟存储系统中,当硬件发出“缺页中断”后,引出操作系统来处理这个中断事件。如果主存中已经没有空闲块,则可用FIFO页面调度算法把该作业中最先进入主存的一页调出,存放到磁盘上。然后再把当前要访问的页装入该块。调出和装入后都要修改页表中对应页的标志。(2) FIFO页面调度算法总是淘汰该作业中最先进入主存的那一页,因此可以用一个数组来表示该作业已在主存的页面。假定作业被选中时,把开始的m个页面装入主存,则数组的元素可定为m个。例如:P[0],P[1]…,P[m-1]其中每一个P[i] (I=0, 1, …, m-1) 表示一个在主存中的页面号。它们的初值为:P[0]: =0, P[1]: =1, …, P[m-1]: =m-1用一指针K指示当要装入新页时,应淘汰的页在数组中的位置,K的初值为“0”。当产生缺页中断后,操作系统选择P[k]所指出的页面调出,然后执行:P[k]: =要装入页的页号k: = (k+1) mod m再由装入程序把要访问的一页信息装入到主存中。重新启动刚才那条指令执行。(3) 编制一个FIFO页面调度程序,为了提高系统效率,如果应淘汰的页在执行中没有修改过,则可不必把该页调出(因在磁盘上已有副本)而直接装入一个新页将其覆盖。因此在页表中增加是否修改过的标志,为“1”表示修改过,为“0”表示未修改过,格式为: 页号 标志 主存块号 修改标志 在磁盘上的位置 由于是模拟调度算法,所以,不实际地启动调出一页和装入一页的程序,而用输出调出的页号和装入的页号来代替一次调出和装入的过程。

把第一题中程序稍作改动,与本题结合起来,FIFO页面调度模拟算法如图2。 图2 FIFO页面调度模拟算法 (4) 如果一个作业的副本已在磁盘上,在磁盘上的存放地址以及已装入主存的页和作业依次执行的指令序列都同第一题中(4)所示。于是增加了“修改标志”后的初始页表为: 页号 标志 主存块号 修改标志 在磁盘上的位置 0 1 5 0 011 1 1 8 0 012 2 1 9 0 013 3 1 1 0 021 4 0 0 022 5 0 0 023 6 0 0 121 按依次执行的指令序列,运行你所设计的程序,显示或打印每次调出和装入的页号,以及执行了最后一条指令后的数组P的值。(5) 为了检查程序的正确性,可再任意确定一组指令序列,运行设计的程序,核对执行的结果。第三题:用最近最少用(LRU)页面调度算法处理缺页中断。[设计思路、数据结构、流程图]:(1) 在分页式虚拟存储系统中,当硬件发出“缺页中断”后,引出操作系统来处理这个中断事件。如果主存中已经没有空闲块,则可用LRU页面调度算法把该作业中距现在最久没有被访问过的一页调出,存放到磁盘上。然后再把当前要访问的页装入该块。调出和装入后都要修改页表中对应页的标志。(2) LRU页面调度算法总是淘汰该作业中距现在最久没被访问过的那页,因此可以用一个数组来表示该作业已在主存的页面。数组中的第一个元素总是指出当前刚访问的页号,因此最久没被访问过的页总是由最后一个元素指出。如果主存只有四块空闲块且执行第一题中提示(4)假设的指令序列,采用LRU页面调度算法,那么在主存中的页面变化情况如下: 3 0 6 4 5 1 2 4 6 2 3 0 6 4 5 1 2 4 1 2 3 0 6 4 5 1 2 0 1 2 3 0 6 4 5 1 当产生缺页中断后,操作系统总是淘汰由最后一个元素所指示的页,再把要访问的页装入淘汰页所占的主存块中,页号登记到数组的第一个元素中,重新启动刚才那条指令执行。(3) 编制一个LRU页面调度程序,为了提高系统效率,如果淘汰的页在执行中没有修改过,则可不必把该页调出。参看第二题中提示(3)。模拟调度算法不实际地启动调出一页和装入一页的程序而用输出调出的页号和装入的页号来代替。把第一题中程序稍作改动,与本题结合起来,LRU页面调度模拟算法如图3。(4) 按第一题中提示(4)的要求,建立一张初始页表,页表中为每一页增加“修改标志”位(参考第二题中提示(4))。然后按依次执行的指令序列,运行设计的程序,显示或打印每次调出和装入的页号,以及执行了最后一条指令后数组中的值。(5) 为了检查程序的正确性,可再任意确定一组指令序列,运行设计的程序,核对执行的结果。

图3 LRU页面调度模拟算法 四 打印的源程序及附上的注释 略五 打印的程序运行时初值和运行结果 略 样本2一、实习内容模拟电梯调度算法,实现对磁盘的驱动调度。二、实习目的磁盘是一种高速、大容量、旋转型、可直接存取的存储设备。它作为计算机系统的辅助存储器,担负着繁重的输入输出任务,在多道程序设计系统中,往往同时会有若干个要求访问磁盘的输入输出请求等待处理。系统可采用一种策略,尽可能按最佳次序执行要求访问磁盘的诸输入输出请求,这就叫驱动调度,使用的算法称驱动调度算法。驱动调度能降低为若干个输入输出请求服务所需的总时间,从而提高系统效率。本实习模拟设计一个驱动调度程序,观察驱动调度程序的动态运行过程。三、实习题目模拟电梯调度算法,对磁盘进行移臂调度和旋转调度。[设计思路、数据结构、流程图]:(1) 磁盘是可供多个进程共享的存储设备,但一个磁盘每个时刻只能为一个进程服务。当有进程在访问某个磁盘时,其它想访问该磁盘的进程必须等待,直到磁盘一次工作结束。当有多个进程提出输入输出请求而处于等待状态时,可用电梯调度算法从若干个等待访问者中选择一个进程,让它访问磁盘。选择访问者的工作由“驱动调度”进程来完成。由于磁盘与处理器是可以并行工作的,所以当磁盘在为一个进程服务时,占有处理器的另一进程可以提出使用磁盘的要求,也就是说,系统能动态地接收新的输入输出请求。为了模拟这种情况,在本实习中设置一个“接收请求”进程。“驱动调度”进程和“接收请求”进程能否占有处理器运行,取决于磁盘的结束中断信号和处理器调度策略。在实习中可用随机数来模拟确定这两个进程的运行顺序,以代替中断处理和处理器调度选择进程的过程。因而,程序的结构可参考图1。

图1 程序结构(2) “接收请求”进程建立一张“请求I/O”表,指出等待访问磁盘的进程要求访问的物理地址,表的格式为: 进程名 柱面号 磁道号 物理记录号 M M M M M M M M 假定某个磁盘组共有200个柱面,由外向里顺序编号(0-199),每个柱面上有20个磁道,编号为0-19,每个磁道分成8个物理记录,编号0-7。进程访问磁盘的物理地址可以用键盘输入的方法模拟得到。图2是“接收请求”进程的模拟算法。

操作系统范文第5篇

关键词: 操作系统 存在问题 解决方案

前言

为适应当今社会对宽口径复合型人才的要求,各学校都普遍调整专业培养方案,增加了一些新的课程,并压缩了许多课程的课时。如何在被压缩的课时内完成课程预定任务是我们面临的一个挑战。下面笔者结合自己的教学感受、改革思路及成效谈谈个人的体验。

1.存在问题

1.1操作系统自身现状

1.1.1操作系统课程讲述操作系统核心的基本设计原理,由于不涉及具体的实现细节,学生学习起来可能会觉得比较空泛。

1.1.2课程内容陈旧,更新较慢。笔者认为操作系统的发展日新月异,课程内容应该反映当前最新的研究热点及新技术,如计算机安全、多处理机操作系统、分布式系统、Linux系统研究与应用、嵌入式系统等。

1.1.3课程内容枯燥难懂。由于很多教材的内容与课堂的讲解都很少与实际应用相联系,因此学生往往觉得课程中大量的概念、原理抽象而且苦涩难懂,从而对课程学习缺乏兴趣,最后死记硬背应付了事。

1.2教学过程中存在的问题

1.2.1教学方法、教学手段比较单一。主要采用课堂授课方式,以课堂讲授为主,形成一种“灌输式”教学方法,注重教师教,而学生思考比较少,实践更少。至于启发式、讨论式的教学方法采用得就更少,课堂缺乏互动,课后缺乏实践。

1.2.2理论与实际脱节,缺少实例分析。目前教科书的基本结构多为计算机操作系统的基本原理及五大组成部分。教科书与实际操作系统的结合存在一定距离,学生学与用之间缺乏联系。在实际教学过程中,由于课时及上机机时数不足,一些教师对教材所列的Unix操作系统的实例分析部分基本略去不讲;同时由于得不到Unix的源代码,一些教师没有对操作系统进行过实际分析;此外,师生往往没有实际上机环境。

1.2.3实践性环节薄弱。长期以来,操作系统实验主要是一些验证性实验,实验教学内容老化,手段单一,学生觉得枯燥无味,实验兴趣不大,而且实验教学内容学时数偏少,学生只是接触了一些皮毛,根本达不到培养学生的科研能力和探索精神的目的。

2.相关解决方案

2.1课程本身改革

2.1.1优化教学内容,合理选择教材。操作系统课程教材的内容应覆盖CC2004对操作系统课程知识领域的的基本要求。其中有些知识点是操作系统的经典内容,所有有关操作系统原理的教材都有涉及,但其深度不一。笔者推荐汤小丹的《计算机操作系统(第三版)》和魏迎梅等译的《操作系统:内核与设计原理(第四版)》教材。它们全面系统地讲述了操作系统的基本概念、原理和方法,以当代最流行的两个操作系统――Windows 2000和Unix为例,全面清楚地展现了当代操作系统的本质和特点,内容具有先进性和适应性,注重对操作系统的经典内容的论述,又紧密联系当代流行的设计问题,以及当前操作系统的发展方向。

2.1.2结合当代操作系统的最新成果。除了讲授经典内容外,教师应尽快、准确、全面地将国内外操作系统研究的最新成果组织到教学内容中,以拓宽学生的视野;也可适当补充学生课后的文献读物,或让学生自行查找相关文献来时刻与最前端技术保持同步。

2.1.3结合主流操作系统,实例讲解。在讲解相关原理时,可以结合几个学生熟悉的主流操作系统的具体实现方案,让学生获得更多的感性认识。例如用Linux作为实例讲解效果非常好,首先Linux的源代码是公开的,并且它是用C语言和汇编语言实现,教师讲解起来就可以把一部分源代码拿出来进行分析。

2.2教学方法的改进

2.2.1学生带着问题来听课。教师可以在上课之前先把本章中的重点和难点以问题的形式传达给学生,让学生带着这些问题来听课,让学生找出各个问题的答案并自己组织起来,本章内容讲述完毕后,教师和学生一起探讨问题答案。这样学生在听课过程中就能够把握本章的重、难点。

2.2.2利用现代教育技术手段,丰富教学模式,激发学生的学习兴趣。在多媒体教学中教师可利用幻灯片、影片展示、讲座及图片模型等形式,围绕教材尽可能地引用有趣的操作系统知识来激发学生的兴趣,这样不但能加深学生对教材的理解、记忆,保持学生的注意力,而且可以活跃课堂气氛,使学生在轻松愉快的氛围中学到知识。

2.2.3在授课过程中,教师可以针对先行课程中的已有知识点,在课堂中通过串讲和学生共同回顾,同时结合课程内容提出新问题来触发大家的思考。

2.2.4改变传统教学方法,实现教学手段多元化。通过传统课堂讲授与电子教案和多媒体教学辅助课件,扩大课堂教学知识容量,提高课堂教学和多媒体教学的质量及利用率。作为课堂教学的必要补充,教师应开发操作系统教学网站,使学生可以远程访问,为学生提供一个良好与快捷的学习平台。

2.2.5加强实践教学环节。建议针对Linux操作系统设计一组系统、全面的实验题目,监督学生切实完成各个实验,并适当组织学生进行实验总结和交流,以确保每个学生都能掌握并熟练应用Linux操作系统实例。另外也可考虑组织学生对Linux公开源码的操作系统内核进行代码分析。

3.结语

计算机应用型紧缺人才培养的主要目标是培养计算机操作系统的应用型人才,而不是培养研制计算机操作系统的特殊人才。因此教师必须打破传统计算机操作系统的教学方法,建立一套有效的计算机操作系统教学模式,形成新的计算机操作系统课程教学体系结构。故计算机操作系统教学改革的主要目标是:探索出满足应用型紧缺人才培养的有效途径、措施、手段和方法,提出计算机操作系统应用型紧缺人才培养的全新教学模式。计算机操作系统的全新教学模式应贯穿“原理―应用―实训”这一主线,将计算机操作系统的原理与应用兼收并举。

参考文献:

[1]郭玉华.操作系统原理课程教学内容体系研究[J].安徽工业大学学报,2008(增刊).

操作系统范文第6篇

2000年操作系统课程的改革已经在国内高校逐步开展,部分高校开始采用国际一流的操作系统教材。与国际一流大学操作系统课程相比较,当时国内操作系统课程存在的突出的问题是,在操作系统课程教学中偏重原理,对实践内容缺乏关注。造成这种状况的原因是多方面的:缺乏合适的操作系统实践教材和参考资料是一个方面,另一方面是当时普遍缺乏对主流操作系统代码进行深入研究的条件。

纵观历史,操作系统本身是一个理论与实践结合极为紧密的学科。操作系统不仅要管理计算机系统的所有资源,而且还要为用户提供良好的应用接口和编程环境。为了实现这个目标,设计人员几乎使用了所有的软件设计原理和技术。如果你研究和设计过操作系统,那么无论是多么困难、多么复杂的软件应用系统,你也会感到游刃有余。要想成为一个出色的软件工程师,就应该拥有研发操作系统的经历。由于意识到操作系统实践的重要性,我们一直在寻找一些能够适合本科教学使用的操作系统实践案例。我们在组织学生进行操作系统实习的过程中,使用和尝试过多个操作系统,比如Little OS, RoadRunner,eCos, OSKit, Nacho等。这些操作系统各有特点,不过都不是真实的主流操作系统案例。

值得注意的是,真实的操作系统案例与教学的需要之间是存在矛盾的。从教学角度看,教师当然希望要有基于真实操作系统的实习,但是真实的操作系统,系统规模大、复杂,显然不便于教学。所以,要想在操作系统课程教学的过程中采用真实的操作系统作为案例,必须解决两个问题:

得到该操作系统的源代码;

从便于教学出发,在该操作系统大量的源代码中进行取舍,选取真正代表该操作系统技术精华的源代码部分。

采用Linux作为操作系统课程教学的一个真实案例,当然是一个不错的选择。但是如果考虑到多数用户的使用实际,当代使用最广泛、最普及的计算机操作系统是Windows 操作系统。如果不能在操作系统的教学过程中把Windows作为一个真实的案例,不能介绍Windows的内部实现,无论如何也是一个缺憾。

2000年8月,在由微软亚洲研究院主办的首届高等院校计算机系系主任座谈会上,很多系主任提出希望能有一本讲解Windows操作系统原理的教材。2000年10月,在第六届全国操作系统课程教学研讨会上,许多主讲操作系统课程的教师也提出希望更多地了解Windows内核原理,以供教学需要。正是在这样的大环境下,写作一本结合当代Windows操作系统教科书的构想产生了。思想的火花在微软中国研究院(微软亚洲研究院的前身)的支持下,很快燃成了一支火炬。

我很荣幸地加入了Windows操作系统教材写作小组,这个小组的成员还包括:清华大学计算机系的史美林、向勇、清华大学电子工程系的马洪兵、北京航空航天大学计算机系的王雷、浙江大学计算机系的郑扣根、上海交通大学计算机系的尤晋元和陈英。他们都是所在高校操作系统课程的主讲教师,曾写作、编辑和翻译出版过多本有关操作系统原理的教科书,而且当时都在主持有关操作系统的科研工作。毫无疑问,这个写作小组的阵容是相当豪华的。

详细的写作提纲出来后,困难也接踵而至。要剖析Windows操作系统原理,不能不了解Windows 操作系统的内部结构,也不能不去阅读Windows操作系统的源代码。但是,当时国内外已出版的计算机书籍和资料,包括微软出版社出版的书籍中,没有一本书能够提供这方面的参考资料。怎么办?问题很快通过微软中国研究院高校关系部反映到微软公司总部。经过微软中国研究院的努力,在Windows开发组工程师Dave Probert的大力支持下,微软公司总部作出决定,授权写作组的老师们阅读Windows 操作系统的源代码,并提供有关Windows 操作系统的参考资料。这一消息让我们感到非常高兴。可是好事多磨,由于中美法律上的差异,美国微软公司不能在中国本土向老师们提供阅读Windows操作系统源代码的条件。正当我们为之苦恼的时候,接着发生的事情超出了我们的意料:微软公司决定,邀请全体写作组成员到微软公司总部阅读Windows 操作系统的源代码,并由主持Windows 2000操作系统设计的高级技术人员,向中国写作组专门讲解Windows操作系统的内部体系结构。据微软中国研究院介绍,这是微软公司第一次在亚洲地区开放Windows 操作系统的源代码。他们给予我们的支持让我们吃惊,也让我们非常感激。

2000年4月,西雅图风光秀丽,景色宜人。微软公司总部就坐落在西雅图的雷德蒙镇上。公司总部的办公楼,一半被浓密的森林包围着,另一半则是波光粼粼的湖泊。

写作组在西雅图的工作是紧张而高效的。我们每天一半的时间用来阅读Windows操作系统的源代码,另一半时间听取Windows 2000设计师Dave Probert组织的讲课,晚上时间则用来讨论问题或者整理技术资料。为了能够更深入地了解内部技术细节,上海交通大学的尤晋元老师在出行前就组织研究生专门列出有关Windows的内部技术问题,以便充分利用这次宝贵机会和微软总部的技术人员进行探讨。由于工作安排上的原因,整个写作组的八名成员,有四位未能去西雅图访问。但是他们也随时和赴美访问的老师保持着热线联系。史美林老师当时正在欧洲访问,也不断通过电话和电子邮件关心写作小组工作的进展情况。给写作组讲课的Dave Probert,曾经是美国Unix技术公司的主要研发人员,从事Unix操作系统的设计和开发长达二十年,对Unix系统有着极其深刻的认识。目前,他是Windows内核开发组骨干成员。微软公司拥有一大批像Dave Probert这样经验丰富的操作系统研究和设计人员,他们中有许多曾经从事过Unix操作系统、DEC VAX 机操作系统、Sun工作站操作系统。

毫无疑问,我们在微软公司总部的有关工作,对我们团队以后取得的成绩起到了关键的作用。我们先后与Dave Probert 合著了《Windows 操作系统原理》、《Windows 内核实验教程》。真诚的合作精神一直贯穿在我们的团队之中,每个人都为编写出优秀教材这一目标而努力。在形式上我们是一个地理位置分散的团队,但是无论每个成员在地球的哪个地方,我们始终保持着彼此之间的及时沟通和友谊。到目前,《Windows 操作系统原理》已经再版发行,我们也得到了许多老师肯定的反馈,这让我们非常开心。

在详细、深入地了解了Windows内核之后,我们的团队针对中国高校的教学实际安排设计了一系列难度不同的操作系统实验,真正将Windows操作系统引入到实际的教学环境中。通过“教育部微软精品课程”的网站,教师们分享了相关的课件以及案例。为持续推广该项目,微软亚洲研究院在2008年组织了亚太区的操作系统研讨会。在该次研讨会上,我们的团队得以和亚太地区的操作系统教师交流经验,分享教学案例。

操作系统范文第7篇

VDC-OS可控制整个数据中心和云系统,包括所有硬件、软件和虚拟机。通过VDC-OS,用户可以实现按需增加计算能力的目标。数据中心的计算能力不会因为操作系统的限制而成为瓶颈。传统的操作系统对于系统内的CPU数目是有一定限制的,而通过虚拟化技术,这种限制会被排除,数据中心在扩展计算能力的同时,可用性和安全性也能得到显著提高。VDC-OS采用的创新技术能够帮助企业实现企业级云计算的梦想。

VDC-OS处于CPU之上、操作系统和应用软件之下。它对虚拟架构进行了拓展,主要表现在以下三个方面:第一,VDC-OS提供了一组基础架构服务,可将服务器、存储设备和网络无缝聚合为按需使用的云资源池,并分配给应用程序;第二,VDC-OS提供了一组应用程序服务,无论应用程序是针对哪些操作系统、开发框架或架构设计的,都可确保其可用性、安全性和扩展性;第三,VDC-OS提供了一组云服务,可以按需使用云和备用云的计算容量。传统操作系统仅能针对单个服务器进行优化,并且只支持写入其接口的应用程序。与此不同,VDC-OS可作为整个数据中心的“操作系统”,支持所有应用程序。

VDC-OS有两个突出的特点:其一,将所有硬件(包括服务器、存储器和网络)整合成单一的逻辑资源;其二,VDC-OS提高了应用软件的可用性及可测量性。

操作系统范文第8篇

摘要:“操作系统”是必修的专业基础课,实验课设计的好坏对于学生能否真正掌握这门理论性很强的课程非常重要。本文结合笔者多年的实验课程设计的经验,探讨了如何提高师生的积极性,让学生真正掌握这门课程的方法。

关键词:操作系统;实验设计;课程设计

中图分类号:G642

文献标识码:B

“操作系统”课程是公认难教难学的课程,难教的原因是其理论性强且比较抽象,内容多且比较散杂。难学的原因是理论与实践脱节、看不见摸不到,较难理解和掌握。因此,传统的“重理论,轻实践”的教学模式已不满足师生的要求。合理的设计实验课将对教学起到事半功倍的作用。本文结合多年的实验教学经验探讨如何才能更合理的设计操作系统的实验课程,提高实验教学的质量,培养学生的实践能力和创新能力。

1用Windows和Linux做相同实验

考虑到学生对Windows操作系统比较熟悉,因此为了让学生能习惯Linux平台,在设计实验时可用Windows系统作为引子抛砖引玉,这样即能同时熟悉两个系统的操作又能加深对操作系统的理解。例如在第一次实验课、先要求学生启动Windows 2000命令解释器Cmd.exe,并在这个命令模式下进行相关命令操作如dir、del、cd、date、telnet、ftp等,并在图形界面上观察操作结果。然后再让学生进入Linux平台作相同功能的命令操作。这样在不同操作系统做相同的操作,在不断相互比较中掌握不同操作系统的基本操作,使得认识学生更能认识操作系统能做什么不能做什么。

在一些实验环节中加上有趣的东西,可引起学生对这门课的学习热情。例如在实验命令时,设计一个简单的C语言调用外部程序shutdown.exe关机程序,实现简单的注销和关机的程序,然后用shutdown.exe -a取消关机。再给出shutdown的参数说明让学生自行实验。

程序如下:

main()

{

system("shutdown -s -t 3600");

}

这个实验虽然程序简单但因运行结果会弹出一个显示离关机时间还有多少秒的窗口,这和前几年系统中了冲击波产生的对话框一样。学生在通过对这个简单程序的运行调试,一下子觉得学习操作系统是很有趣和很有用的。与此同时老师可以提出一些问题让学生在课后思考,例如病毒和木马是如何攻击操作系统使之瘫痪的?如何终止正常的进程?为什么病毒进程无法被终止?因为提的问题切合实际应用,所以学生在上完实验后很乐意去思考和查找以上问题的答案。有的同学还选这些题作为毕业设计的内容。实践证明,如果在实验中设计1/4贴近实际应用的知识,会很大程度提高学生做实验的兴趣,学生会更乐于去动手找出解决的方法。以上对实验的安排,相对于让学生死板地按部就班学习Linux系统要容易接受得多。

2总体把握操作系统的内容,实验课程自成体系

教师在设计实验时应先做一个总体规划,以实际实验环境设计为基础来设计实验内容,而不是单纯依附于理论课。首先要确定学生应将这门课程学习到什么层次、做几次实验,先把每个重要知识点作为阶段性的实验目的,然后将分散的相关知识点组织成线,再到面。实验也要贴进课本使教学双方随时知道实验针对的理论知识点,并能找到它在整门课程知识体系中的准确位置,及与其他知识点的清晰联系。点线面的教学方法遵循了教学的基本规律。

在实验设计中为了能让学生更进一步的理解理论知识。实验课的设计不应只停留在检验理论知识的基础上,而应该在每个阶段的实验中分级分层,从基础到综合,再到设计与创新。所以必须做3个层次的实验。

(1) 观察性实验或验证性实验。这是一个实验开始的基础部分,也是和理论课联系较大的,是对理论课或新操作系统的初级使用,所以不应在上完理论课后再去做实验,而应先做实验后上理论课,这样理论课的授课才不会显得太空。这种实验看情况而定,一般安排在每一阶段实验开始的第一、二次实验中,这样能让学生尽快熟悉新操作系统的操作。只有在学生掌握了相关的基础操作后,才能为后面的设计性实验做好铺垫。例如,学生必须先学习如何在Linux的vi编辑器中用GCC编译程序,才能进行C语言的编程。这些都是这门课的实验基础,所以必须安排一次课让学生熟悉它。

(2) 设计性实验。这是实验中最重要的内容,用以培养学生的设计能力和独立思考的能力。如果设计过多的观察性和验证性实验,势必造成学生误认为本课程没有什么深度难度,因此不深入思考,造成实验报告内容雷同。所以实验课中必须至少有一个设计性实验,难度也要设计合理,既要留给学生思考的空间,也要让学生有能力完成。例如在进程创建、撤消、同步、互斥、通信实验中,要求学生用C语言调用相关的函数设计其中一种状态。

(3) 综合性实验或研究性实验。不仅能验证学生掌握知识的程度,而且能培养学生的自学能力和创新能力。尽管这种实验的难度较大,但在实验设计中必须包括这种实验。因为只有让学生带着问题,做实验才有效果。教师可以在学期开始先给出几个这样的实验问题并分组自选,然后在后来涉及到的时候就提醒学生注意,让学生带着问题不断探索、不断总结,最后自行完成。例如在做进程管理实验前,让学生思考如何编制一个程序来模拟一个简单的进程管理系统,或者让学生思考关于病毒进程是如何隐藏于OS中并能让用户无法终止的。又例如在内存管理实验阶段,让学生思考为什么系统有时出现内存不能读的现象,以及如何合理设置虚拟内存的问题。在学生通过对进程和内存管理的学习后还是无法完成的情况下,教师应可以引导他们去参考相关的书籍,这样学生会更乐于思考。

3师生共同挖掘教学资源

设计一些更具体的实验内容,为后面的教学工作能不断发展打下基础,同时提高教师的教学和实验水平。例如,可以将上一级学生完成或未完成的实验放到下一级学生手里,让其进行改进或修改完成。例如在设备管理实验中,书中大多是观察性实验,这样只按书本要求做实验学生会很没有耐心。有一组同学对USB驱动很感兴趣,因此我就给他提供相关的书目和网络资料。后来这组学生通过相关知识的学习,尝试用WDM(Window Driver Model)开发了一个简单的USB驱动,虽然因时间关系未能完成。但在此过程中他对操作系统设计思想有了新的认识,同时也给老师提供了很多这方面的相关信息,也从中受益匪浅。

4结束语

以上是本人在操作系统实验教学中的一点体会,但笔者总体感觉想真正上好这门课对教师本身也是一个挑战,如何培养出理论知识扎实,动手能力强的人才,还有待进一步的探索。

参考文献

[1] 宋广华等. 边学边干:操作系统课程教学改革的探索与实践[J]. 计算机教育,2007,(7).

[2] 高宝立. 论大学生创新精神和创新能力的培养[J]. 江苏高教,2003,(4).