xv6-6.S081
xv6-6.S081 copied to clipboard
sys_munmap中为什么如果是munmap结尾的时候不writeback
您好,大佬,我这里关于您的mmap lab中的sys_munmap函数有一个问题
if(addr == v->start){
writeback(v, addr, length);
uvmunmap(p->pagetable, addr, length / PGSIZE, 1);
if(length == v->length){
// free all
fileclose(v->file);
if(pre == 0){
p->vma = v->next; // head
}else{
pre->next = v->next;
v->next = 0;
}
acquire(&v->lock);
v->length = 0;
release(&v->lock);
}else{
// free head
v->start -= length;
v->off += length;
v->length -= length;
}
}else{ //这里如果是unmap尾部地址(addr,vma->end)这种情况的话为什么writeback
// free tail
v->length -= length;
v->end -= length;
}