Nachos线程通信和调度分析操作系统课程设计.docVIP

Nachos线程通信和调度分析操作系统课程设计.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Nachos线程通信和调度分析操作系统课程设计

操作系统课程设计 说 明 书 学 院: 信息科学与工程学院 一、 理解Nachos模拟的物理机的运行机制 3 1. Sysdep模块分析(文件sysdep.cc sysdep.h) 5 2. 中断模块分析(文件interrupt.cc interrupt.h) 10 3. 时钟中断模块分析(文件timer.cc timer.h) 16 4. 终端设备模块分析(文件console.cc console.h) 18 二、 理解Nachos中线程运行机制 19 1. 工具模块分析(文件list.cc list.h utility.cc utility.h) 20 2. 线程启动和调度模块分析(文件switch.s switch.h) 21 3. 线程模块分析(文件thread.cc thread.h) 22 4. 线程调度算法模块分析(文件scheduler.cc scheduler.h) 26 5. Nachos主控模块分析(文件main.cc system.cc system.h) 27 6. 同步机制模块分析(文件synch.cc synch.h) 28 三、 理解Nachos中支持用户进程的机制 30 一、用户程序空间(文件address.cc, address.h) 35 二、系统调用(文件exception.cc, syscall.h, start.s) 36 理解Nachos模拟的物理机的运行机制 Machine类用来模拟计算机主机。它提供的功能有:读写寄存器。读写主存、运行一条用户程序的汇编指令、运行用户程序、单步调试用户程序、显示主存和寄存器状态、将虚拟内存地址转换为物理内存地址、陷入 Nachos 内核等等。 Machine类实现方法是在宿主机上分配两块内存分别作为虚拟机的寄存器和物理内存。运行用户程序时,先将用户程序从 Nachos 文件系统中读出,写入模拟的物理内存中,然后调用指令模拟模块对每一条用户指令解释执行。将用户程序的读写内存要求,转变为对物理内存地址的读写。Machine类提供了单步调试用户程序的功能,执行一条指令后会自动停下来,让用户查看系统状态,不过这里的单步调试是汇编指令级的,需要读者对R2/3000指令比较熟悉。如果用户程序想使用操作系统提供的功能或者发出异常信号时,Machine调用系统异常陷入功能,进入Nachos的核心部分。 Interrupt类用来模拟硬件中断系统。在这个中断系统中,中断状态有开,关两种,中断类型有时钟中断、磁盘中断、控制台写中断、控制台读中断、网络发送中断以及网络接收中断。机器状态有用户态,核心态和空闲态。中断系统提供的功能有开/关中断,读/写机器状态,将一个即将发生中断放入中断队列,以及使机器时钟前进一步。 在Interrupt类中有一个记录即将发生中断的队列,称为中断等待队列。中断等待队列中每个等待处理的中断包含中断类型、中断处理程序的地址及参数、中断应当发生的时间等信息。一般是由硬件设备模拟程序把将要发生的中断放入中断队列。中断系统提供了一个模拟机器时钟,机器时钟在下列情况下前进: 用户程序打开中断 执行一条用户指令 处理机没有进程正在运行 机器时钟前进时,中断处理的过程如下图所示: 中断系统成为整个Nachos虚拟机的基础,其它的模拟硬件设备都是建立在中断系统之上的。在此之上,加上Machine类模拟的指令解释器,可以实现Nachos的线程管理、文件系统管理、虚拟内存、用户程序和网络管理等所有操作系统功能。下图展示了Nachos系统的整体结构。 用 户 程 序 线程管理 网络协议 文件系统 虚拟内存 终端设备 时钟 网络 磁盘 中 断 系 统 指令解释和内存模拟 Nachos系统的整体结构 机器模拟的实现: 1. Sysdep模块分析(文件sysdep.cc sysdep.h) Nachos的运行环境可以是多种操作系统,由于每种操作系统所提供的系统调用或函数调用在形式和内容上可能有细微的差别。sysdep模块的作用是屏蔽掉这些差别。 1.1 PoolFile 函数 语法: bool PoolFile (int fd) 参数: fd:文件描述符,也可以是一个套接字 (socket) 功能: 测试一个打开文件 fd 是否有内容可以读,如果有则返回TRUE,否则返回FALSE。 当Nachos系统处于IDLE状态时,测试过程有一个延时,也就是在一定时间范围内如果有内容可读的话,同样返回TRUE。 实现: 通过 select 系统调用。 返回: 打开文件是否有内容供读取。 1.2 OpenForWrite 函数 语法: int OpenForWrite (char *name) 参数

文档评论(0)

2017meng + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档