1. 程式人生 > >2019.1.10 hw4 lazy page allocation

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;
    }