[感受]:
这次操作系统实验感觉还是比较难的,除了因为助教老师笔误引发的2个错误外,还有一些关键性的理解的地方感觉还没有很到位,这些天一直在不断地消化、理解Lab3里的内容,到现在感觉比Lab2里面所蕴含的内容丰富很多,也算是有所收获,和大家分享一下我个人的一些看法与思路,如果有错误的话请指正。
[关键函数理解]:
首先第一部分我觉得比较关键的是对于一些非常关键的函数的理解与把握,这些函数是我们本次实验的精华所在,虽然好几个实验都不需要我们自己实现,但是这些函数真的是非常厉害!有多厉害,呆会就知道了。
首先是从第一个我们要填的函数说起吧:
env_init
1 void env_init(void) 2 { 3 int i; 4 5 /*precondition: envs pointer has been initialized at mips_vm_init, called by mips_init*/ 6 /*1. initial env_free_list*/ 7 LIST_INIT(&env_free_list); 8 //step 1; 9 /*2. travel the elements in ‘envs‘, initial every element(mainly initial its status, mark it as free) and inserts them into 10 the env_free_list. attention :Insert in reverse order */ 11 for(i=NENV-1;i>=0;i--){ 12 envs[i].env_status = ENV_FREE; 13 LIST_INSERT_HEAD(&env_free_list,envs+i,env_link); 14 } 15 16 }
时间: 2024-11-15 00:09:38