Nachos系统调用实验Nachos线程模块升级实验Nachos内存管理扩展实验.doc

Nachos系统调用实验Nachos线程模块升级实验Nachos内存管理扩展实验.doc

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
四 川 大 学 操作系统课程设计报告 学 院: 软 件 学 院 专 业: 软 件 工 程 年 级: 2009 级 组 编 号: 组 成 员: 指导教师评阅意见: 指导教师评阅成绩: 提交时间 二〇一一 年 五 月 三十 日 目录 实验项目一 ……………………………………………………………3 实验项目二 ……………………………………………………………9 实验项目三 ……………………………………………………………15 实验项目一 项目名称:Nachos系统调用实验 实验目的:实现Nachos的基本系统调用: Write, Read, Exec, Join 实验时间:2011年4月 人员分工:单独完成 实验环境:软件环境:Vmware版本:7.1.2中文版 虚拟机操作系统: Red hat Linux 选用的操作系统:win7 实验内容: 1.在exception.cc中实现对SC_Write,SC_Read,SC_Exec和SC_Join进行系统调用。 SC_Write: SC_Read: SC_Exec: SC_Join: 2.在ksyscall.h中,根据Nachos_syscall.c,写出SysWrite(),SysRead(),SysExc(),SysJoin()。 SysWrite(): 从内存Addr中每次读取一个字符放入ch中,调用系统的write将ch写出来。 SysRead(): 系统的read每次读入一个字符放入才会中,再将它写入在内存的Addr中。 SysExec(): 先将Addr中的命令语句读出放入exec_name字符数组中,再参考achos_syscall.c中Exec方法产生新的子进程调用系统的execl执行该命令。 SysJoin(): 参考achos_syscall.c中Join方法返回子进程的结束状态。 实验结果: 实验总结: 基本达到实验目的,实现了Nachos的基本系统调用:Write, Read, Exec, Join 参考文献: 实验课件ppt 利用nachos机理实现一个shell(课程资料) 实验项目二 项目名称:Nachos线程模块升级实验 实验目的: 扩展Nachos线程管理模式,限制线程的数量(最多128个用户线程) 修改扩充Nachos的线程调度机制,改为“优先级调度”的抢占式调度 实验时间:2011年5月 人员分工:单独完成 实验环境: 软件环境:Vmware版本:7.1.2中文版 虚拟机操作系统:Red hat Linux 选用的操作系统:Win XP SSH Client;Nachos操作系统 实验结果: 扩展Nachos线程管理模式,限制线程的数量(最多128个用户线程) 1.对Thread的构造函数进行修改。设置静态变量n作为计数器,同时对线程树木进行判断,超过128则进行删除。 2.对Threadtestself进行修改。重点在于要创建大于128个线程以检验多余的线程是否删除。 运行结果: 修改扩充Nachos的线程调度机制,改为“优先级调度”的抢占式调度 在thread类中加入priority属性,描述每个线程的优先级,并加入int getPriority(),void setPriority(int p)进行priority的设置和获取thread.h的中: 添加Thread(char* debugName,int p)构造函数,设置优先级 添加priority属性 添加函数getPriority(),setPriority() thread.cc的中: 对于新的线程将它的priority设为0 实现线程的按序入队,则在Schedular的构造函数中需要将readyList实例化SortedList 并按新线程的priority排序。 在Schedular.cc中: 添加compare函数,比较两个线程的优先级大小,在构造函数中调用compare函数,使得队列按优先级大小排列 测试 在Thread.cc中编写测试函数Thread::Se

文档评论(0)

beifanglei + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档