没有合适的资源?快使用搜索试试~ 我知道了~
Nachos中文教程.pdf
5星 · 超过95%的资源 需积分: 13 55 下载量 179 浏览量
2012-04-16
15:26:26
上传
评论 2
收藏 1.76MB PDF 举报
温馨提示
试读
103页
Nachos学习资料,对Nachos的代码函数做了细致的讲解,并对Nachos实习的作业有一定的讲解
资源推荐
资源详情
资源评论
目 录
i
第一章 绪论 ..................................................................................................................................... 1
第一节 NACHOS 概述 ................................................................................................................. 1
一、引言 ................................................................................................................................... 1
二、Nachos 教学用操作系统 .................................................................................................. 1
第二节 NACHOS 的实验环境 ..................................................................................................... 4
一、Nachos 的安装 .................................................................................................................. 4
二、Nachos 的目录结构 .......................................................................................................... 4
三、各个部分的编译运行 ....................................................................................................... 4
四、应用程序的编译 ............................................................................................................... 5
第二章 机器模拟 ............................................................................................................................. 6
第一节 概述 .............................................................................................................................. 6
第二节 机器模拟的实现 ......................................................................................................... 10
1. Sysdep 模块分析(文件 sysdep.cc sysdep.h) ................................................................. 10
1.1 PoolFile 函数 ............................................................................................................... 10
1.2 OpenForWrite 函数 ...................................................................................................... 10
1.3 OpenForReadWrite 函数 ............................................................................................. 10
1.4 Read 函数 .................................................................................................................... 10
1.5 ReadPartial 函数 .......................................................................................................... 11
1.6 WriteFile 函数 .............................................................................................................. 11
1.7 Lseek 函数 ................................................................................................................... 11
1.8 Tell 函数 ....................................................................................................................... 11
1.9 Close 函数 .................................................................................................................... 11
1.10 Unlink 函数 ................................................................................................................ 12
1.11 OpenSocket 函数 ....................................................................................................... 12
1.12 CloseSocket 函数 ....................................................................................................... 12
1.13 AssignNameToSocket 函数 ....................................................................................... 12
1.14 DeAssignNameToSocket 函数 .................................................................................. 12
1.15 PoolSocket 函数......................................................................................................... 12
1.16 ReadFromSocket 函数 ............................................................................................... 13
1.17 SendToSocket 函数 .................................................................................................... 13
1.18 CallOnUserAbort 函数 .............................................................................................. 13
1.19 Delay 函数 ................................................................................................................. 13
1.20 Abort 函数 .................................................................................................................. 13
1.21 Exit 函数 .................................................................................................................... 14
1.22 RandomInit 函数 ........................................................................................................ 14
1.23 Random 函数 ............................................................................................................. 14
1.24 AllocBoundedArray 函数 .......................................................................................... 14
1.25 DeallocBoundedArray 函数 ....................................................................................... 14
2. 中断模块分析(文件 interrupt.cc interrupt.h) ............................................................... 14
2.1 PendingInterrupt 类 ....................................................................................................... 16
2.2 Interrupt 类 .................................................................................................................... 17
2.2.1 内部使用方法 ....................................................................................................... 18
2.2.2 内部使用函数 ....................................................................................................... 18
2.2.3 对外接口 ............................................................................................................... 18
3. 时钟中断模块分析(文件 timer.cc timer.h) .................................................................. 20
目 录
ii
4. 终端设备模块分析(文件 console.cc console.h) .......................................................... 22
5. 磁盘设备模块分析(文件 disk.cc disk.h) ..................................................................... 24
6. Nachos 运行情况统计(文件 stats.cc stats.h) ................................................................ 25
第三章 线程管理系统 ................................................................................................................. 26
第一节 进程与线程 ................................................................................................................. 26
一、进程 ................................................................................................................................. 26
1. 进程概念 ........................................................................................................................ 26
2. 进程的状态及状态变化 ................................................................................................ 26
3. 进程调度 ........................................................................................................................ 27
4. 进程之间的同步和互斥 ................................................................................................ 28
5. 进程的实施 .................................................................................................................... 29
6. 进程的创建 .................................................................................................................... 29
二、线程 ................................................................................................................................. 29
1. 线程概念 ........................................................................................................................ 29
2. 进程和线程的关系 ........................................................................................................ 31
第二节 NACHOS 的线程管理 ................................................................................................... 32
一、Nachos 的线程管理 ........................................................................................................ 32
二、Nachos 线程管理同实际进程管理的不同 .................................................................... 34
第三节 NACHOS 线程管理系统的初步实现 ........................................................................... 35
1. 工具模块分析(文件 list.cc list.h utility.cc utility.h)..................................................... 35
2. 线程启动和调度模块分析(文件 switch.s switch.h) .................................................... 35
2.1 ThreadRoot 函数 ........................................................................................................... 36
2.2 SWITCH 函数 .............................................................................................................. 36
3. 线程模块分析(文件 thread.cc thread.h) ...................................................................... 36
3.1 Fork 方法 ..................................................................................................................... 38
3.2 StackAllocate 方法 ...................................................................................................... 39
3.3 Yield 方法 .................................................................................................................... 40
3.4 Sleep 方法 .................................................................................................................... 41
4. 线程调度算法模块分析(文件 scheduler.cc scheduler.h) ............................................ 41
4.1 Run 方法 ....................................................................................................................... 42
5. Nachos 主控模块分析(文件 main.cc system.cc system.h) ........................................... 42
6. 同步机制模块分析(文件 synch.cc synch.h) ................................................................ 44
6.1 信号量 ( Semaphore ) ................................................................................................. 44
6.2 锁机制 .......................................................................................................................... 45
6.3 条件变量 ...................................................................................................................... 45
第四节 线程管理系统作业 ..................................................................................................... 47
第五节 实现实例 ..................................................................................................................... 49
4.1 对线程的改进 .................................................................................................................. 49
4.2 对线程调度的改进 .......................................................................................................... 50
第四章 文件管理系统 ................................................................................................................... 53
第一节 文件管理系统概述 ..................................................................................................... 53
一、文件 ................................................................................................................................. 53
1. 文件结构 ........................................................................................................................ 53
2. 文件访问 ........................................................................................................................ 54
3. 文件类型 ........................................................................................................................ 54
目 录
iii
4. 文件属性 ........................................................................................................................ 55
5. 文件操作 ........................................................................................................................ 55
二、目录 ................................................................................................................................. 56
1. 目录结构 ........................................................................................................................ 56
2. 多级目录结构 ................................................................................................................ 57
3. 文件路径名 .................................................................................................................... 57
4. 工作目录 ........................................................................................................................ 57
5. 目录结构的勾连 ............................................................................................................ 57
6. 目录项 ............................................................................................................................ 58
三、UNIX 文件系统的实现 .................................................................................................. 58
1. UNIX 文件系统中的主要结构 ...................................................................................... 58
2. UNIX 文件系统存储资源的分配和回收 ...................................................................... 60
第二节 NACHOS 文件管理系统 ............................................................................................... 63
第三节 NACHOS 文件系统的实现 ........................................................................................... 65
1. 同步磁盘分析(文件 synchdisk.cc 、synchdisk.h) ..................................................... 65
2. 位图模块分析(文件 bitmap.cc、bitmap.h) ................................................................. 66
3. 文件系统模块分析(文件 filesys.cc、filesys.h) ........................................................... 66
3.1 生成方法 ...................................................................................................................... 67
3.2 Create 方法 ................................................................................................................... 68
3.3 Open 方法 ..................................................................................................................... 68
3.4 Remove 方法 ................................................................................................................ 68
4. 文件头模块分析(文件 filehdr.cc、filehdr.h) ............................................................... 68
5. 打开文件结构分析(文件 openfile.cc、openfile.h) ..................................................... 69
5.1 ReadAt 方法 ................................................................................................................. 70
5.2 WriteAt 方法 ................................................................................................................. 70
6. 目录模块分析(文件 directory.cc directory.h) .............................................................. 71
第四节 文件管理系统作业 ..................................................................................................... 72
第五章 用户程序和虚拟内存 ....................................................................................................... 73
第一节 NACHOS 对内存、寄存器以及 CPU 的模拟 .................................................................. 73
1 RaiseException 方法 ....................................................................................................... 76
2 ReadMem 方法 ............................................................................................................... 76
3 WriteMem 方法 .............................................................................................................. 76
4 Translate 方法 .................................................................................................................. 77
5 Run 方法 ......................................................................................................................... 77
第二节 NACHOS 用户进程运行机制 ........................................................................................... 79
一、用户程序空间(文件 address.cc, address.h) .............................................................. 79
1.1 生成方法 ...................................................................................................................... 79
1.2 InitRegisters 方法 ......................................................................................................... 80
1.3 SaveState 方法 .............................................................................................................. 80
1.4 RestoreState 方法 .......................................................................................................... 80
二、系统调用(文件 exception.cc, syscall.h, start.s) ......................................................... 80
第三节 虚存管理的设计和实现.............................................................................................. 83
一、Nachos 存储管理的改进要求 ........................................................................................ 83
二、一个虚拟存储管理实现的实例 ..................................................................................... 83
2.1 虚拟存储系统的总体设计 .......................................................................................... 83
2.2 缺页中断陷入及其调度算法 ...................................................................................... 86
目 录
iv
2.3 虚存的存储分配 .......................................................................................................... 88
2.4 存储保护 ...................................................................................................................... 88
2.5 实现中的一些细节 ...................................................................................................... 88
第四节 用户程序和虚拟存储作业 .......................................................................................... 90
第六章 NACHOS 的网络系统 ..................................................................................................... 91
第一节 NACHOS 对物理网络的模拟 ........................................................................................... 91
第二节 NACHOS 的邮局协议 ....................................................................................................... 95
2.1 PostalDelivery 方法 .......................................................................................................... 96
2.2 Send 方法 .......................................................................................................................... 98
第三节 网络部分作业 ............................................................................................................. 99
第一章 绪论 第一节 Nachos概述
1
第一章 绪论
第一节 Nachos概述
一、引言
计算机操作系统是一门实践性很强的课程。一般地阐述其工作原理,很可能使本来具体生动
的内容变得十分抽象、枯燥并难以理解。解决好理论与实践相结合的问题是提高操作系统教
学质量的关键。一门好的操作系统实践课将使读者更加形象和深刻地理解课堂中讲述的概
念、原理和它们的应用。
国内外许多著名的大学都在操作系统教学实践方面作了大量研究,比较突出的有著名计算机
专家 A.S.Tanenbaum 设计和实现的 MINIX。MINIX 是一个比较完整的操作系统,它的用户
界面类似于 UNIX。说它比较完整,是因为它包括了进程管理、文件系统管理、存储管理、
设备管理以及 I/O 管理等操作系统的所有重要内容,而且还包含了系统启动和 Shell 等实际
操作系统不可缺少的部分。由于 MINIX 较 UNIX 的出现晚十年,所以在程序风格上较原来
的 UNIX 要好得多,更加结构化和模块化。包含有 3000 行注释的 12000 行源代码使整个系
统较为容易阅读和理解。但是 MINIX 作为教学用操作系统有它的不足之处,就是由于它的
目标是一个完整的操作系统,必然要和具体的设备打交道;而且不同的机器指令集需要有不
同的编译器,所以 MINIX 的移植性并不令人满意。一个 MINIX 操作系统需要占据一台独立
的主机,所以在网络的配置和实现上比较复杂,读者需要有一定的实践经验才能完成。
上海交通大学开发的 MOS 操作系统是另一个较成功的教学用操作系统。它是一个小型而功
能较齐全的多道程序的操作系统,主要包括作业调度管理和文件系统管理,建立在一个只包
含十几条指令的指令集虚拟机基础之上。由于 MOS 比较简单,读者可以非常容易地理解操
作系统课程中讲述的进程调度和文件系统等部分原理。MOS 的不足是过于简单,不能涵盖
操作系统的大部分功能。MOS 的虚拟机指令集是自定义的,没有现成的编译器,所以读者
必须直接编写汇编程序才能在 MOS 虚拟机上运行。这样就缺乏开发大型应用程序的能力。
但是 MOS 毕竟给了读者一个自由发挥的空间,在 MOS 的基础上衍生出 TOS 等学生自己定
义和实现的相对完整的操作系统。
二、Nachos教学用操作系统
作为教学用操作系统,需要实现简单并且尽量缩小与实际操作系统之间的差距,所以我们采
用 Nachos 作为操作系统课程的教学实践平台。Nachos 是美国加州大学伯克莱分校在操作系
统课程中已多次使用的操作系统课程设计平台,在美国很多大学中得到了应用,它在操作系
统教学方面具有一下几个突出的优点:
采用通用虚拟机
Nachos 是建立在一个软件模拟的虚拟机之上的,模拟了 MIPS R2/3000 的指令集、主存、
中断系统、网络以及磁盘系统等操作系统所必须的硬件系统。许多现代操作系统大多是
先在用软件模拟的硬件上建立并调试,最后才在真正的硬件上运行。用软件模拟硬件的
可靠性比真实硬件高得多,不会因为硬件故障而导致系统出错,便于调试。虚拟机可以
在运行时报告详尽的出错信息,更重要的是采用虚拟机使 Nachos 的移植变得非常容易,
在不同机器上移植 Nachos,只需对虚拟机部分作移植即可。
剩余102页未读,继续阅读
资源评论
- Teddyeat2013-12-11如果代码更多一点就好了
- nathanbk2013-01-10资源很不错,解决了我很多疑惑,虽然不够详尽
- lujingwei_906152014-03-02很好用,看了之后对Nachos了解的很透彻,函数解释的也很详细,但是里面的作业没有参考答案。。
jasonxcj
- 粉丝: 0
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- database-project-massunaAi笔记
- 2%EF%BC%9A%E9%99%95%E8%A5%BF%E
- yyspdz62_944.apk
- SAP公司间采购EDI配置-如何触发自动MIRO.docx
- python197基于图像识别的仪表实时监控系统.rar
- python196基于循环神经网络的情感分类系统.rar
- I2C驱动SHT30温湿度传感器和LCD12864使用例程(RSCG12864B)
- python193中学地理-中国的江河湖泊教学网(django).rar
- python191基于时间序列分析的大气污染预测软件(django).rar
- python190基于人脸识别智能化小区门禁管理系统.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功