当前位置: 首页 > news >正文

万网空间登录网站优化排名首页

万网空间登录,网站优化排名首页,网站关键词 公司,做网站的前途怎么样全部学习汇总: GreyZhang/g_unix: some basic learning about unix operating system. (github.com) 在计划表中看到了这样一份作业,做一个简单的翻译整理。原来的页面:Homework: xv6 lazy page allocation (mit.edu) 家庭作业:x…

         全部学习汇总: GreyZhang/g_unix: some basic learning about unix operating system. (github.com)

         在计划表中看到了这样一份作业,做一个简单的翻译整理。原来的页面:Homework: xv6 lazy page allocation (mit.edu)

家庭作业:xv6延迟页面分配

在下一堂课开始前,将您的解决方案提交到提交网站。

O/S在使用页表硬件时可以使用的许多巧妙技巧之一是延迟分配堆内存。Xv6应用程序使用sbrk()系统调用向内核请求堆内存。在我们给您的内核中,sbrk()分配物理内存并将其映射到进程的虚拟地址空间。有些程序分配内存,但从不使用内存,例如用于实现大型稀疏阵列。复杂的内核会延迟每一页内存的分配,直到应用程序尝试使用该页——这是由页面错误发出的信号。在本练习中,您将把这个延迟分配功能添加到xv6中。

第一部分:消除sbrk()中的分配

         您的第一个任务是从sbrk(n)系统调用实现中删除页面分配,这是sysproc.c中的函数sys_sbrk()。sbrk(n)系统调用将进程的内存大小增加n个字节,然后返回新分配区域的起始位置(即旧大小)。新的sbrk(n)应该只将进程的大小(myproc()->sz)增加n,然后返回旧的大小。它不应该分配内存,所以应该删除对growtproc()的调用(但仍然需要增加进程的大小!)。

         试着猜测这次修改的结果是什么:什么会坏?

         进行此修改,启动xv6,并在shell中键入echo-hi。你应该看到这样的东西:

 

         “pid 3 sh:trap…”消息来自trap.c中的内核陷阱处理程序;它发现了一个页面错误(陷阱14,或T_PGFLT),xv6内核不知道如何处理。请确保您理解出现此页面错误的原因。“addr 0x4004”表示导致页面错误的虚拟地址是0x4004。

第二部分: 延迟分配

         修改trap.c中的代码以响应来自用户空间的页面错误,方法是在错误地址映射新分配的物理内存页面,然后返回到用户空间,让进程继续执行。您应该在生成“pid 3 sh:trap 14”消息的cprintf调用之前添加代码。您的代码不需要涵盖所有角落情况和错误情况;它只需要足够好,就可以让sh运行echo和ls之类的简单命令。

         提示:查看cprintf参数,了解如何查找导致页面错误的虚拟地址。

提示:从vm.c中的allocuvm()中找到参考代码,这是sbrk()调用的(通过growtproc())。

提示:使用PGROUNDDOWN(va)将出现错误的虚拟地址向下舍入到页面边界。

提示:中断或返回以避免printf和myproc()->killed=1。

         提示:您需要调用mappages()。为了做到这一点,您需要删除vm.c中mappages()声明中的static,并且需要在trap.c中声明mappages:

        

 

         提示:您可以通过检查trap()中的tf->trapno是否等于T_PGFLT来检查故障是否为页面故障。

         如果一切顺利,您的延迟分配代码应该会导致echo-hi工作。您应该在shell中至少得到一个页面错误(从而得到延迟分配),也许还有两个。

         顺便说一句,这不是一个完全正确的实现。请参阅下面的挑战,以获取我们意识到的问题列表。

         可选挑战:处理负的sbrk()参数。处理错误情况,如sbrk()参数过大。

验证fork()和exit()是否工作,即使某些sbrk()地址没有为它们分配内存。正确处理堆栈下方无效页面上的错误。确保内核对尚未分配的用户地址的使用有效——例如,如果程序将sbrk()分配的地址传递给read()。

http://www.hkea.cn/news/741829/

相关文章:

  • 网站建设课后感营销型网站有哪些平台
  • 哪个网站做生鲜配送厦门seo外包公司
  • 水电行业公司设计logo重庆seo排名扣费
  • 可信赖的南昌网站制作站长工具网站
  • 济南建站公司电话成都关键词自然排名
  • 门户网站开发公司推广网页
  • 如何做网站认证实时军事热点
  • 上海的网站建设公司哪家好企业网站建设
  • 专业b2c电商网站制作网站推广要点
  • 现在的网站用什么程序做百度云官网登录入口
  • vs做网站怎样加数据库新闻小学生摘抄
  • 广州做网站mxszpt小说排行榜
  • 有什么网站是python做的网站营销策划公司
  • 长春有什么好的网站制作公司链接购买
  • 毕设网站佛山网站建设十年乐云seo
  • 北京做网站建设的公司哪家好手机怎么创建网站
  • winforms做网站注册百度账号
  • 玉泉路网站建设营销培训课程有哪些
  • 渭南做网站费用搜索引擎排名优化是什么意思
  • 做网站开发需要学什么软件微信公众平台开发
  • 网站整体营销方案网络营销的特点是什么?
  • 国内知名的网站建设公司有哪些百度指数专业版app
  • 画画外包网站如何推广一个网站
  • 互联网公司响应式网站深圳google推广
  • 深圳网站设计哪好什么推广平台比较好
  • 打开英文网站字体不对教程seo推广排名网站
  • 昭通市建设局网站太原百度关键词优化
  • 个人建网站允许吗seo职位要求
  • 环保网站设计网络营销优化推广
  • 网页设计网站制作公司冯耀宗seo视频教程