欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2023年山东大学操作系统实验七实验报告.docx

    • 资源ID:72787215       资源大小:21.71KB        全文页数:6页
    • 资源格式: DOCX        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2023年山东大学操作系统实验七实验报告.docx

    计算机科学与技术学院实验报告实验题目:Extens i on o f AddrSp a ce学号:日期:20237 1 -25 班级:2023-3姓名:陶旭涛Ema i I:实验目的:在了解了 Nac h o s装入并执行单个用户进程的情况后,我们就需要进一步完 毕用户内存空间的扩充以便多用户程序同时驻留内存,进而使多用户进程并发执行。硬件环境:Mem: 3.9GCPU: I n tel® Co r e tm 2 Quad CPU Q95 0 0 2.83G Hz x 4Di s k: 15. 5 GB软件环境:System: ubu n tu12. O4LST i 3 8 6g c c: (Ubuntu 4.6.3 1 ubuntu5) 4. 6. 3n a chos sy s t e m实验环节:要在Nachos中实现多用户程序同时驻留内存并发执行,一方面涉及到Nac h o s 的两个系统调用:Exec ()和Ex it ()o这两个系统调用也是构造父子进程并发执行的 基础。假设我们有以卜两个用户程序:./ test/exec. c和./ t est/ha 11. c./test/ha1t.c第65页用户进程管理设计1 #i nc I ude " s y s c a I I. h"2 i nt3 ma i n ()4 (5 HaltO6 ./test/ex e c. c1 # i n c I u d e "sy s ca I I. h"2 i n t3 mai n 04 (5 S p acid pid;6 pid = Exec(". . / test/h a I t.nof f ");7 Ha I t 08 )在文献. . / t e st / exec, c第5行上的语句Exec是一条N a c h os的系统功 能调用,它的功能为装入并执行以其参数为名的可执行文献,即创建一个新的 用户进程。假设我们先执行. /t e st/ex ec. n off程序,则./test/ e xec. no f f会在它还没有执行结束时又装入并执行此外一个程序halt, n。开,并与 它同时驻留内存.DEBUG( ,ddn ,numPages, size);trst, set up the translation pageTable = new TranslationEntrynumPages;for (t = ; t < numPages; t+) pageTablet.vtrtualPage = t;pageTablei.physicalPage = usermap->Find();pageTablet.valid = TRUE;pageTablet.use = FALSE;pageTablei.dirty = FALSE;pageTablet.readonly = FALSE;/ a separate page, we could set its / pages to be read-onlyp a geTab lei. p hys i c a I Pa g e = us erm ap> F i n d ();避免从头开始物 理存储覆盖了前一个用户程序的内存内容运用 N a c h os 在./ u ser pro g /b i tmap. h 中文献定义的 Bi t map 类。 运用bitma p记录和申请内存物理帧,使不同的程序装入到不同的物理空间中 去,下面是对新的内存分派存储算法,改善了对多个用户程序的同时进驻内存 的支持if (noffH.code.size > ) DEBUG( ,'>. Wn ,noffH.code.vtrtualAddr, noffH.code.size);int nunberofPages;nunberofPdgesMltvRoundUp(noffH.code.size,Pagesize);for(i= ;t<nunberofPages;t*)prtntf(,pageTablet.phystcalPage , PageStze);print",noffH.code. InFUeAddr+VPageStze);print”.PageStze);executable->ReadAt(«(Mchtne->natnMe«)rypdgeTablet.phy$kalPage * PageStze),PdgeSUe,noffH.code.tnFt.leAd<Jr*t*Pagestze);)if (noffH.tnttData.size > ) DEBUG( , noffH.tnttData.vtrtualAddr,noffH.tnttData.size);executable->fleadAt(4(Mchtne->nainHe«)ryfK>ffH.tnttData.vtrtuaUddr),noffH.initData.size,rx>ffH.tnttOata.tnFUeAddr);int nunberofP.firstP;nunberofP=dtvRoundup(noffH.tnttData.size,PageSlze);(Wr,PageStze);for(t«firstP;t<nuHl)erofP;t+)prtntf(,pageTablet.phystcalPage , PageSlze);prtntf(,i)offH. tnttData. InFUeAddr+VPageSize);printf();executable->ReadAt(t(Aachtne->NtnNeRorypageTable(t.phystcdlPage * PageStze),PageStze,noffH.tnttData.tnFUeAddr+t*PageStze);)Print();)这是对B i (Map的代码修改,每次分派的时候要找到bitmap中的空闲页进行分派,而不能 从0页开始分派在AddressS p ace类中声明b i (m a p对象static Bi t Ma p *mbi tma p=new Bi t Map(N u m P hysPa g e s );voidBitMap:Prtnt() (printf(n );for (int i = ; i < numBits; t+) if (Test(t)prtntf( , t);prtntf( );)/ These aren't needed until the FILESYS assignment/ BitMap:FetchFromFile/ Initialize the contents of a bitmap from a Nachos file. / "file" is the place to read the bitmap from /voidBitMap:FetchFrom(OpenFtle *file) (file->ReadAt(char *)map, numWords * sizeof(unsigned),); )/ BitMap:WrtteBack/ Store the contents of a bitmap to a Nachos file./ "file" is the place to write the bitmap to/voidBttMap:WriteBack(OpenFtle *file)Ifile->WrtteAt(char *)map, numWords * sizeof(unsigned),);运营./nachos - x . . / t est /ex e c. nof fkingkingvm:/nachos-3.4/code/lab7-8$ ./nachos -x ./test/exec.noff thread0looped0times*thread1looped0times thread0looped1times thread1looped1times thread0looped2times thread1looped2times*thread0looped3times thread1looped3times thread1looped4times thread0looped4timesthe allocated physical Address:© the address in the executable file:40 copy size 128the allocated physical Address:128the address tn the executable file:168copy size 128the allocated physical Address:256 the address in the executable file:296 copy size 128page table dump:12 pages tn totalVtrPage,PhysPagee,01,12,23,34,45,56,67,78,89,910,1011,11Exec 调用the allocated physical Address:1536the address in the executable file:40copy size 128the allocated physical Address:1664the address in the executable file:168copy size 128page table dump:10 pages in totalVirPage,PhysPage0,121,132,143,154,165,176,187,198,209,21Machine halting!Ticks: total 165, idle 0, system 140, user 25Disk I/O: reads 0, writes 0Console I/O: reads 0, writes 0Paging: faults 0Network I/O: packets received 0, sent 0Cleaning up.ktngktngvm:/nachos- 3.4/code/lab7-8$ |结论分析与体会: nach o s无法运营多个用户程序的因素在于物理页的分派,那么改变物理页的分 派,使多个程序的物理页不会互相覆盖,每个程序都能分派到相应的独立的物理 页,那么不就可以同时执行多个用户程序了吗。物理页的分派算法在BitMap类 中有实现,使用一个数组作为物理页的数据结构。在给用户程序分派物理页时, 不再使用与逻辑页相同的数值,而是使用Find。方法查找下一个可用的物理 页

    注意事项

    本文(2023年山东大学操作系统实验七实验报告.docx)为本站会员(太**)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开