BUAAOS-guide-book
BUAAOS-guide-book copied to clipboard
北航小操作系统实验指导书
还是感觉改为PNG以后图片质量下降了。特别是封面、还有带字的图片,感觉字体在(1920*1080)这种分辨率下明显清晰度下降了。EPS根据之前的讨论会在咱们的持续集成环境下编译通不过,且解决了很久也解决不掉。可以考虑采用PDF格式的图片。EPS到PDF的转换有工具可以做,可以用命令行工具批量转换。也可以试试[这里](http://tex.stackexchange.com/questions/383/why-cant-pdflatex-print-eps-figures)说的这种方法。转换为PDF后也许就能正确地在持续集成环境下编译通过了。
我在进行操作系统实验的时候,发现了一个会经常发生但又十分难以找到具体原因的bug,我觉得这个bug很可能和writef(“”),bug的产生有关。 我们知道,我们在sys_env_alloc之后,需要为父进程和子进程添加COW保护。但是,在sys_env_alloc函数跳回和执行sys_mem_map函数的过程中,会有大量的栈存储读取操作。而此时用户栈尚未被打上COW标志位,这就导致了子进程和父进程共用的用户栈被改变。而等到子进程执行的时候,子进程调取的用户栈已经不是从sys_env_alloc跳回之后的那个用户栈了,这很可能导致子进程无法正确的运行(尤其是子进程可能无法正常的跳转)。 我猜测,writef(“”)可以多保存几次现场,使得子进程可以正常跳转。但是,用户栈仍然还是被改变了。 这个BUG不仅仅是针对用户栈区域,而且还有可能发生在数据段 Bug的解决方式: 解决方法有很多,我认为最合理的解决方式是:在sys_env_alloc执行时,为父子进程添加COW保护。
不少14级的助教是为这个指导书贡献了内容的,我建议各位参与了指导书项目,为指导书贡献了内容的助教们或同学们把自己的名字和一句话寄语添加在编者寄语那部分里。让后面做实验的同学都能看到大家的贡献。
> Exercise 6.3 修改 user/pipe.c 中的 pipeclose 与 user/fd.c 中的 dup 函数以避免上 > 述情景中的进程竞争情况。 其中 user/pipe.c 中的 `pipeclose` 实际上为一条语句的函数,无所谓的顺序问题,应改为user/fd.c 中的 `close`函数
1、是否有必要增加预备知识一节?即我们在填写某个函数之前,是否要明确指示学生必须先看懂哪个文件里的宏定义用法?比如lab2的`include/queue.h`里的这些用法。 2、我们是否要针对这些`必须看会的`预备知识进行`thinking`的设置?
增设Gxemul的基本用法的介绍,如: - 单步调试(-c) - 查看内存 - 跟踪函数调用(-t) - 增设断点(`breakpoint add function_name`)