当前位置首页 > 百科> 正文

Nachos(Nachos作业系统)

2019-12-23 18:08:13 百科

Nachos(Nachos作业系统)

Nachos的特点功能介绍
在本科的作业系统教学中,能够提供一个展示真实作业系统是如何工作的工程环境是很重要的,但同时也要求这个工程环境便于学生的理解和修改,所以我们採用Nachos作为作业系统课程的教学实践平台。Nachos是美国加州大学伯克莱分校在作业系统课程中已多次使用的作业系统课程设计平台,在美国很多大学中得到了套用,它在作业系统教学方面具有以下几个突出的优点:
 採用通用虚拟机
Nachos是建立在一个软体模拟的虚拟机之上的,模拟了MIPS R2/3000的指令集、主存、中断系统、网路以及磁碟系统等作业系统所必须的硬体系统。许多现代作业系统大多是先在用软体模拟的硬体上建立并调试,最后才在真正的硬体上运行。用软体模拟硬体的可靠性比真实硬体高得多,不会因为硬体故障而导致系统出错,便于调试。虚拟机可以在运行时报告详尽的出错信息,更重要的是採用虚拟机使Nachos的移植变得非常容易,在不同机器上移植Nachos,只需对虚拟机部分作移植即可。
採用R2/3000指令集的原因是该指令集为RISC指令集,其指令数目比较少。Nachos虚拟机模拟了其中的63条指令。由于R2/3000指令集是一个比较常用的指令集,许多现有的编译器如gc++能够直接将C或C++源程式编译成该指令集的目标代码,于是就不必编写编译器,读者就可以直接用C/C++语言编写应用程式,使得在Nachos上开发大型的应用程式也成为可能。
 使用并实现了作业系统中的一些新的概念
随着计算机技术和作业系统技术的不断发展,产生了很多新的概念。Nachos将这些新概念融入作业系统教学中,包括网路、执行绪和分散式套用。而且Nachos以执行绪作为一个基本概念讲述,取代了进程在以前作业系统教学中的地位。
Nachos的虚拟机使得网路的实现相当简单。与MINIX不同,Nachos只是一个在宿主机上运行的一个进程。在同一个宿主机上可以运行多个Nachos进程,各个进程可以相互通讯,作为一个全互连网路的一个节点;进程之间通过Socket进行通讯,模拟了一个全互连网路。
 确定性调试比较方便,随机因素使系统运行更加真实
因为作业系统的不确定性,所以在一个实际的系统中进行多执行绪调试是比较困难的。由于Nachos是在宿主机上运行的进程,它提供了确定性调试的手段。所谓确定性调试,就是在同样的输入顺序、输入参数的情况下,Nachos运行的结果是完全一样的。在多执行绪调试中,可以将注意力集中在某一个实际问题上,而不受作业系统不确定性的干扰。
另外,不确定性是作业系统所必须具有的特徵,Nachos採用了随机因子模拟了真实作业系统的不确定性。
 简单而易于扩展
Nachos是一个教学用作业系统平台,它必须简单而且有一定的扩展余地。Nachos不是向读者展示一个成功的作业系统,而是让读者在一个框架下发挥自己的创造性进行扩展。例如一个完整的类似于UNIX的档案系统是很複杂的,但是对于档案系统来说,无非是需要实现档案的逻辑地址到物理地址的映射以及实现档案inode、打开档案结构、执行绪打开档案表等重要的数据结构以及维护它们之间的关係。Nachos中具有所有这些内容,但是在很多方面作了一定的限制,比如只有一级索引结构限制了系统中最大档案的大小。读者可以套用学到的各种知识对档案系统进行扩展,逐步消除这些限制。Nachos在每一部分给出很多课程作业,作为读者进行系统扩展的提示和检查对系统扩展的结果。
 面向对象性
Nachos的主体是用C++的一个子集来实现的。目前面向对象语言日渐流行,它能够清楚地描述作业系统各个部分的接口。Nachos没有用到面向对象语言的所有特徵,如继承性、多态性等,所以它的代码就更容易阅读和理解。
Nachos共有五个功能模组,分别是机器模拟、执行绪管理、档案系统管理、用户程式和虚拟存储以及网路系统。
声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:baisebaisebaise@yeah.net