Nachos源码分析与补充完善

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

山东科技大学信息学院eagle_ 姓名XXX 学号20060105XXXX 班级计算机(计算机科学方向)06-2班指导教师X X 撰写日期2009年1月1日山东科技大学信息学院

eagle_ ........................................................................ .................................................. 31、概述................................................................................................. ................................ 32机器模拟................................................................................................. ........................... 43进程管理................................................................................................. ........................... 83.1 Nachos进程概述................................................................................................. ........ 83.2 线程运行与切换................................................................................................. ..... 124. CPU调度................................................................................................. ......................... 145. 用户程序的运行................................................................................................. ........... 166.系统调用................................................................................................. .........................

18Nachos ...................................................................................... ................... 201.系统调用部分................................................................................................. ................. 202. 进程调度部分................................................................................................. ............... 24 山东科技大学信息学院eagle_ 一、1 Nachos(全称为Not Another Completely Heuristic Operating System)是加州大学伯克利分校开发的教学用操作系统。作为教学用操作系统,Nachos实现简单并且尽量缩小与实际操作系统之间的差距,目的是为了向学生展示一个相对真实的操作系统的内部结构及其实现方式。它有几个突出的特点:�8�5 采用虚拟机实现Nachos是建立在一个软件模拟的虚拟机之上的,模拟了MIPS R2/3000的指令集、主存、中断系统、网络以及磁盘系统等操作系统所必须的硬件系统。许多现代操作系统大多是先在用软件模拟的硬件上建立并调试,最后才在真正的硬件上运行。用软件模拟硬件的可靠性比真实硬件高得多,不会因为硬件故障而导致系统出错,便于调试。虚拟机可以在运行时报告详尽的出错信息并统计系统运行情况。�8�5 可以方便扩展Nachos不是向学生展示一个成功的操作系统,而是让学生在一个框架下进行扩展。例如一个完整操作(例如Unix)的进程管理机制是很复杂的,但是总的来说,就是需要实现进程调度以及进程同步和互

斥、进程间通信等机制以及与其有关的重要数据结构的维护。Nachos中实现这些内容的大部分,但是在很多方面作了一定的限制,比如只实现了FIFO的调度算法、缺乏进程间通信等,学生可以运用操作系统的相关知识去完善Nachos,逐步消除这些限制。易于理解Nachos的主体是用C实现的。利用面向对象语言的抽象性,它能够清楚地描述操作系统各个部分的接口。Nachos没有用到面向对象语言的所有特征,如继承性、多态性等,所以它的代码就更容易阅读和理解。除了运行在虚拟机上以外,Nachos和真实的操作系统相比还有几点不同。首先是不确定性,Nachos是在宿主机上运行的进程,在本质上是一个程序,因此在同样的输入顺序、输入参数的情况下,Nachos运行的结果是完全一样的,山东科技大学信息学院eagle_ 不会有硬件错误的干扰。这样可以让使用者将注意力集中在程序代码上,而不受操作系统不确定性的干扰。但是不确定性是操作系统所必须具有的特征,Nachos采用了随机因子模拟了真实操作系统的不确定性。其次,Nachos中的时间是虚拟的,它利用一个Timer类模拟了真正的时间,通过增加计数变量的值实现时钟的前进,它的时间是跳跃的,而真实操作系统中的时间利用了石英晶振,因而是连续的(相对于我们的感受而言)。图1.1是Nachos的基本结构,下面分别介绍Nachos的架构和已实现的功能,包括机器模拟、进程管理、系统调用、虚

相关文档
最新文档