实验7冯文博201308130012

实验7冯文博201308130012

ID:22281112

大小:129.19 KB

页数:6页

时间:2018-10-28

实验7冯文博201308130012_第1页
实验7冯文博201308130012_第2页
实验7冯文博201308130012_第3页
实验7冯文博201308130012_第4页
实验7冯文博201308130012_第5页
资源描述:

《实验7冯文博201308130012》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、实验七ExtensionofAddrSpace一、实验目的扩展现有的classAddrSpace的实现,使得Nachos可以实现多用户程序,完成系统调用Exe,使Nachos按页分配内存空间二、实验环境主机Win7搭载虚拟机VMwave下的Ubuntu14.04三、实验步骤及调试结果1.进入test文件夹,编写一个exec.c的源码,然后编译生成一个可执行文件exec.c/♦include"syscall.h"intmain(){Spaceldpid;pid=Exec("../test/halt.noff");Halt();}打开

2、Makefile文件,修改../test/Makefile文件,将exec加入到targets定义中:targets=haltshellmatmultsortexec。在../test中重新make生成exec.noff可执行文件执行make命令,生成用户执行文件exec.noff2.复制usergrog其余文件到lab7-8中3.Nachos原来实现AddressSpace分配的时候没有使用bitmap来寻找空闲页,而是直接的从0号内存空间开始分配,因而需要修改成使用bitmap的find函数分配A存空间在进入addrspace

3、.cc中在头文件中加入/tinclude"bitmap.h"在构造函数开头加入staticBitMap*mbitmap=newBitMap(NumPhysPages);修改//howbigisaddressspace?size=noffH.code.size+noffH.initData.size+noffH.uninitData.size+UserStackSize;为size=divRoundUp(noffH.code.size,PageSize)*PageSize+divRoundUp(noffH.initData.size

4、,PageSize)*PageSize+noffH.uninitData.size+UserStackSize;然后//first,setupthetranslationpageTable=newTranslationEntry[numPages];for(i=0;iFind();pageTable[i].valid=

5、TRUE;pageTable[i].use=FALSE;pageTable[i].dirty=FALSE;pageTable[i].readonly=FALSE;//ifthecodesegmentwasentirelyon//aseparatepage,wecouldsetits//pagestoberead-only}修改if(noffH.code.size>0){DEBUG(’a',"Initializingcodesegment,at0x%x,size%d",noffH.code.virtualAddr,noffH.c

6、ode.size);executable->ReadAt(&(machine->mainMemory[noffH.code.virtualAddr]),noffH.code.size,noffH.code.inFileAddr);}为if(noffH.code.size>0){DEBL)G('a',"Initializingcodesegment,at0x%x,size%d",noffH.code.virtualAddr,noffH.code.size);intnumberofPages;numberofPages=divRo

7、undUp(noffH.code.size,PageSize);for(i=0;iRead

8、At(&(machine->mainMemory[pageTable[i].physicalPage*PageSize]),PageSize,noffH.code.inFileAddr+i*PageSize);}}修改if(noffH.initDa

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。