logo资料库

操作系统上机实验(绝对经典).doc

第1页 / 共47页
第2页 / 共47页
第3页 / 共47页
第4页 / 共47页
第5页 / 共47页
第6页 / 共47页
第7页 / 共47页
第8页 / 共47页
资料共47页,剩余部分请下载后查看
第一章试验环境介绍
1.1引言
1.2Nachos平台的功能特点简介
1.2.1 什么是Nachos
1.2.2 Nachos的特点功能介绍
1.3Nachos平台的搭建与配置
1.3.1Nachos试验环境文件列表
1.3.2Nachos试验环境搭建步骤
1.3.2.1Vmware的安装
1.3.2.2虚拟机的创建
1.3.2.3虚拟机上linux的安装
1.3.2.4虚拟机和本机之间的数据传递
1.3.2.5emacs21.3的安装配置
1.3.2.6Windows下代码阅读软件的安装
1.3.3Nachos的功能模块组成结构
1.3.4Nachos的编译运行开发环境
第二章Nachos平台技术实现说明
2.1Nachos的机器模拟机制概述
2.1.1Sysdep模块实现机制分析
2.1.2中断处理模块实现机制分析
2.1.3时钟中断模块实现机制分析
2.1.4终端设备模块实现机制分析
2.1.5磁盘设备模块实现机制分析
2.1.6系统运行情况统计
2.2Nachos中的进程/线程管理
2.2.1相关知识点回顾
2.2.1.1进程
2.2.1.2线程
2.2.2功能概述
2.2.3具体模块实现介绍
2.2.3.1工具模块(文件list.cc list.h utility.cc utility.h)
2.2.3.2线程启动和调度模块(文件switch.s switch.h)
2.2.3.2.1功能概述
2.2.3.2.2核心函数介绍
2.2.3.3线程定义模块(文件thread.cc thread.h)
2.2.3.3.1功能概述
2.2.3.3.2核心函数介绍
2.2.3.4线程调度算法模块(文件scheduler.cc scheduler.h)
2.2.3.4.1功能概述
2.2.3.4.2核心函数介绍
2.2.3.5 Nachos主控模块(文件main.cc system.cc system.h)
2.2.3.5.1功能概述
2.2.3.5.2核心函数介绍
2.3Nachos中的文件系统管理
2.3.1相关知识点回顾
2.3.1.1文件
2.3.1.2目录
2.3.2功能概述
2.3.3具体模块实现介绍
2.3.3.1同步磁盘(文件synchdisk.cc synchdisk.h)
2.3.3.1.1功能概述
2.3.3.2位图模块(文件bitmap.cc bitmap.h)
2.3.3.2.1功能概述
2.3.3.3文件系统模块(文件filesys.cc filesys.h)
2.3.3.3.1功能概述
2.3.3.3.2核心函数介绍
2.3.3.4文件头模块(文件filehdr.cc filehdr.h)
2.3.3.4.1功能概述
2.3.3.5打开文件结构(文件openfile.cc openfile.h)
2.3.3.5.1功能概述
2.3.3.5.2核心函数介绍
Read
Write
Seek
ReadAt方法
WriteAt方法
2.3.3.6目录模块(文件directory.cc directory.h)
2.3.3.6.1功能概述
2.4Nachos中的存储系统管理
2.4.1相关知识点回顾
2.4.1.1连续分配存储管理方式
2.4.1.2分页存储管理方式
2.4.1.3分段存储管理方式
2.4.1.4段页式存储管理方式
2.4.1.5虚拟存储器
2.4.2功能概述
2.4.3具体模块实现介绍
2.4.3.1相关文件介绍
2.4.3.2函数介绍
2.5Nachos中的网络系统管理
2.5.1相关知识点回顾
2.5.2现有功能分析
2.5.3具体模块实现介绍
2.5.3.1物理网络的模拟
2.5.3.2邮局协议的模拟
第三章Nachos平台上机实践项目设置
3.1实践项目1:Nachos的线程管理模块升级
3.1.1上机实践具体要求
3.1.2实践的过程和步骤
3.1.3实践结果验证方式
第四章附录
4.1Unix常用命令介绍
5.1.1目录及文件操作命令
1)more
3)mv
4)cp
5)mkdir
6)rmdir
7)cd
8)pwd
9)ls
10)tar
5.1.2设备管理命令
1)fdisk
2)mkfs
3)mount
4)umount
5.1.3系统及用户管理命令
1)shutdown –h now
2)reboot
3)passwd
5.1.4 其他命令
1)man
2)vi文本编辑器
4.2Nachos的系统调用介绍
4.3Nachos的核心源代码分析
操作系统原理上机实践指南 单位: 南开大学机器智能研究所 Institute of Machine Intelligence 日期: 二零零七年十月
Nachos 平台操作系统上机实践指南 修订记录 修订记录 修订记录 日期 修订版本 修订说明 作者 2005 年 10 月 13 日 V0.7 2005 年 10 月 17 日 V0.8 2005 年 10 月 18 日 V0.9 V0.99 2006 年 9 月 22 日 提纲完成 孙鹏、赵玉娟、安琪、史广顺 内容添加 孙鹏、赵玉娟、安琪 内容添加 孙鹏、赵玉娟、安琪 内容添加 史广顺 2007 年 10 月 1 日 V0.999 内容修订 史广顺 Page 2 of 47
Nachos 平台操作系统上机实践指南 内容目录 目 录 1.3 第二章 2.1 1.1 1.2 1.3.1 1.3.2 1.3.3 1.3.4 第一章 试验环境介绍 ....................................................................................................................4 引言 ............................................................................................................................ 4 Nachos 平台的功能特点简介...................................................................................4 1.2.1 什么是 Nachos.........................................................................................................4 1.2.2 Nachos 的特点功能介绍..........................................................................................4 Nachos 平台的搭建与配置 .......................................................................................5 Nachos 试验环境文件列表 ...............................................................................5 Nachos 试验环境搭建步骤 ...............................................................................6 Nachos 的功能模块组成结构.........................................................................22 Nachos 的编译运行开发环境.........................................................................22 Nachos 平台技术实现说明 .....................................................................................24 Nachos 的机器模拟机制概述.................................................................................24 2.1.1 Sysdep 模块实现机制分析 ............................................................................. 24 2.1.2 中断处理模块实现机制分析 ..........................................................................27 2.1.3 时钟中断模块实现机制分析 ..........................................................................28 2.1.4 终端设备模块实现机制分析 ..........................................................................29 2.1.5 磁盘设备模块实现机制分析 ..........................................................................29 2.1.6 系统运行情况统计 ..........................................................................................30 Nachos 中的进程/线程管理 ....................................................................................30 2.2.1 相关知识点回顾..............................................................................................30 2.2.2 功能概述 .......................................................................................................... 30 2.2.3 具体模块实现介绍 ..........................................................................................31 Nachos 中的文件系统管理 .....................................................................................33 2.3.1 相关知识点回顾..............................................................................................33 2.3.2 功能概述 .......................................................................................................... 34 2.3.3 具体模块实现介绍 ..........................................................................................34 Nachos 中的存储系统管理 .....................................................................................36 2.4.1 相关知识点回顾..............................................................................................36 2.4.2 功能概述 .......................................................................................................... 36 2.4.3 具体模块实现介绍 ..........................................................................................37 Nachos 中的网络系统管理 .....................................................................................37 2.5.1 相关知识点回顾..............................................................................................37 2.5.2 现有功能分析 ..................................................................................................37 2.5.3 具体模块实现介绍 ..........................................................................................38 2.2 2.3 2.4 2.5 Page 2 of 47
Nachos 平台操作系统上机实践指南 内容目录 3.1 3.2 3.3 第三章 Nachos 平台上机实践项目设置 .............................................................................40 实践项目 1:Nachos 的线程管理模块升级..........................................................40 3.1.1 上机实践具体要求 ..........................................................................................40 3.1.2 实践的过程和步骤 ..........................................................................................40 3.1.3 实践结果验证方式 ..........................................................................................41 实践项目 2:Nachos 的文件管理模块升级......................... 错误!未定义书签。 3.2.1 上机实践具体要求 ..........................................................错误!未定义书签。 3.2.2 实践的过程和步骤 ..........................................................错误!未定义书签。 3.2.3 实践结果验证说明 ..........................................................错误!未定义书签。 实践项目 3:Nachos 的内存管理模块升级......................... 错误!未定义书签。 3.3.1 上机实践具体要求 ..........................................................错误!未定义书签。 3.3.2 实践的过程和步骤 ..........................................................错误!未定义书签。 3.3.3 实践结果验证说明 ..........................................................错误!未定义书签。 Windows 平台上机实践项目设置 ......................................... 错误!未定义书签。 实践项目 1:进程管理思想与方法的系统仿真.................. 错误!未定义书签。 4.1.1 上机实践具体要求 ..........................................................错误!未定义书签。 4.1.2 实践的过程和步骤 ..........................................................错误!未定义书签。 4.1.3 实践结果验证方式 ..........................................................错误!未定义书签。 第五章 附录 .................................................................................................................................. 42 Unix 常用命令介绍 ................................................................................................. 42 5.1.1 目录及文件操作命令.............................................................................................42 5.1.2 设备管理命令 .........................................................................................................44 5.1.3 系统及用户管理命令.............................................................................................44 5.1.4 其他命令 ................................................................................................................45 Nachos 的系统调用介绍.........................................................................................45 Nachos 的核心源代码分析 .....................................................................................46 5.2 5.3 第四章 4.1 5.1 Page 3 of 47
南开大学信息技术科学学院 操作系统原理上机实践指南 1.1 引言 第一章 试验环境介绍 操作系统上机实践环节是操作系统课程的重要组成部分,对于理解操作系统课程中的相 关理论和知识点有着非常重要的作用。为帮助学生更好的完成上机实践作业,特编写此基于 Nachos 平台的操作系统上机实践指南。 1.2 Nachos 平台的功能特点简介 1.2.1 什么是 Nachos Nachos 的全称是“Not Another Completely Heuristic Operating System”,它是一个可 修改和跟踪的操作系统教学软件。它给出了一个支持多线程和虚拟存储的操作系统骨 架,可让学生在较短的时间内对操作系统中的基本原理和核心算法有一个全面和完整的 了解。 1.2.2 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 进程,各个进程可以相互 Page 4 of 47
南开大学信息技术科学学院 操作系统原理上机实践指南 通讯,作为一个全互连网络的一个节点;进程之间通过 Socket 进行通讯,模拟了一个 全互连网络。  确定性调试比较方便,随机因素使系统运行更加真实 因为操作系统的不确定性,所以在一个实际的系统中进行多线程调试是比较困难 的。由于 Nachos 是在宿主机上运行的进程,它提供了确定性调试的手段。所谓确定性 调试,就是在同样的输入顺序、输入参数的情况下,Nachos 运行的结果是完全一样的。 在多线程调试中,可以将注意力集中在某一个实际问题上,而不受操作系统不确定性的 干扰。 另外,不确定性是操作系统所必须具有的特征,Nachos 采用了随机因子模拟了真 实操作系统的不确定性。  简单而易于扩展 Nachos 是一个教学用操作系统平台,它必须简单而且有一定的扩展余地。Nachos 不是向读者展示一个成功的操作系统,而是让读者在一个框架下发挥自己的创造性进行 扩展。例如一个完整的类似于 UNIX 的文件系统是很复杂的,但是对于文件系统来说, 无非是需要实现文件的逻辑地址到物理地址的映射以及实现文件 inode、打开文件结构、 线程打开文件表等重要的数据结构以及维护它们之间的关系。Nachos 中具有所有这些 内容,但是在很多方面作了一定的限制,比如只有一级索引结构限制了系统中最大文件 的大小。读者可以应用学到的各种知识对文件系统进行扩展,逐步消除这些限制。Nachos 在每一部分给出很多课程作业,作为读者进行系统扩展的提示和检查对系统扩展的结 果。  面向对象性 Nachos 的主体是用 C++的一个子集来实现的。目前面向对象语言日渐流行,它能 够清楚地描述操作系统各个部分的接口。Nachos 没有用到面向对象语言的所有特征, 如继承性、多态性等,所以它的代码就更容易阅读和理解。 Nachos 共有五个功能模块,分别是机器模拟、线程管理、文件系统管理、用户程序和 虚拟存储以及网络系统。它们的具体实现会在第二章中进行详细介绍。 1.3 Nachos 平台的搭建与配置 1.3.1 Nachos 试验环境文件列表 在我们的教学网站可以下载到搭建 nachos 试验平台的所有软件,下面就将搭建 nachos 试验环境所需的软件作一个简要的描述: code-linux.tar.gz: nachos 的源代码压缩包,在 linux 下可以用 gzip、tar 解开,在 windows 下直接使用 winrar 就可解压开。压缩包解开后会生成两个子目录,一个目录是 nachos 的所有 源代码,另一个目录是 nachos 的交叉编译工具。 emacs-21.3.tar.gz: Page 5 of 47
南开大学信息技术科学学院 操作系统原理上机实践指南 emacs 是 linux 下编辑、调试、调试 nachos 代码的集成环境,emacs-21.3.tar.gz 包是 emacs 的源代码包,用于在 linux 系统中编译安装 emacs。 .emacs: 我们制作的 emacs 的启动配置文件,它实现了 f1-f12 的功能键与 emacs 的命令的 绑定,可以加速我们的编辑、编译、调试过程。使用这个文件时只要把它放在用户 的 home 目录下就可以了(比如 root 用户的/root 目录下)。 VMware-workstation-5.0.0-13124.exe: Vmware 虚拟机软件的安装程序,运行它就可以在我们的 Windows 安装上 vmware。 Vmwar 可以在一个物理机器上模拟出虚拟的硬件机器,进而我们就可以在这些虚 拟的硬件机器上安装我们的操作系统了。(详细使用参见后面的试验环境搭建) VMware-mount-3.1.0-9089.exe: Vmware-mount 是 vmware 的一个工具软件,它可以实现将 vmware 的硬盘文件挂载 到 windows 系统下,作为 windows 系统的一个新硬盘。这样以来就方便了虚拟机 和真实机器之间的数据传输。( 详细使用参见后面的试验环境搭建) sourceinsight35.zip: 这是一个在 windows 下进行 nachos 代码阅读的工具,使用他提供的一些功能可以 加快代码的阅读速度。 1.3.2 Nachos 试验环境搭建步骤 Nachos 最初由美国加州大学伯克利分校为其操作系统课程的教学实习而开发。这个操 作系统一开始就设计成只能在 unix like 的操作系统下运行,并没有针对 windows 平台的移 植。有鉴于国内教学实习中普遍使用 windows 平台,所以我们需要通过安装虚拟机软件, 创建 linux 虚拟机来最终实现我们的 nachos 代码的编译运行。下面我们将通过几个步骤来具 体的描述 nachos 试验环境的搭建。 1.3.2.1 Vmware 的安装 Vmware 是一个虚拟机软件,它可以在 windows 平台上虚拟出真实机器的硬件环境的, 使得我们可以在不购买新机器的情况下就可以在一个机器上运行多个操作系统。 Vmware 的安装和普通的 windows 应用程序安装没有太大的差别,是一个相当“傻瓜” 的过程,只要按照提示,依次点击“下一步”就可顺利地完成 vmware 的安装了。 1.3.2.2 虚拟机的创建 这一步的主要任务就是要告诉 vmware 我们想要虚拟什么样的硬件机器。下面将以图示 的方式一步步地讲解虚拟机的创建: 启动 vmware 程序点击如图 1-1 所示的菜单 Page 6 of 47
南开大学信息技术科学学院 操作系统原理上机实践指南 图 1-1 VMWare 程序启动 或是点击 home-tab 上的 new virtural machine(如图 1-2)就可开始虚拟机的创建过程。 图 1-2 VMWare 程序启动(二) 在接下来的对话框中选择定制创建虚拟机点击下一步按钮(如图 1-3) 图 1-3 定制虚拟机 在接下来的虚拟机格式中选择系统默认的 new-workstation5 格式即可,这样我们可以获 得一些好处比如可以抓图,但是也有一些坏处那就是创建的虚拟机文件不能在老版本的 vmware 上打开。 点击下一步后出现选择操作系统类型对话框,我们只要选择 linux-redhat linux 就行了。 点击下一步,弹出的对话框要求我们回答虚拟机名称和虚拟机文件安放的路径,只要根 据自己的情况回答就行了。(如图 1-4) Page 7 of 47
分享到:
收藏