2019.1.10 hw4 lazy page allocation

看了看xv6 book的chapter 2,说是看其实就是过一遍,毕竟看不太懂,整体的概念性内容本来就已经明白了,细节性的代码分析看不懂,所以就很僵硬。。。

然后做了hw4,好在homework还是很简单的,毕竟已经提示的不能更明白了。

不过虽然简单,对于malloc的理解还是有加深的,基本上就是说malloc执行sbrk的时候并没有去alloc,等到page fault再去alloc,代码的部分我也是瞎j8写的,任何边界条件都没加,最后能通过也是走运。

    if(tf->trapno == T_PGFLT){
      uint a,b;
      char *mem;
      b = rcr2();
      a = PGROUNDDOWN(b);
      mem = kalloc();
      memset(mem, 0, PGSIZE);
      mappages(myproc()->pgdir, (char*)a, PGSIZE, V2P(mem), PTE_W|PTE_U) ;
      break;
    }

  

猜你喜欢

转载自www.cnblogs.com/dynasty919/p/10253352.html