一学期没听课,看到lab7的内容的时候,当时就跪了,信号量和管程完全就没听过,无奈之下只有先去看下PPT了。
看PPT的时候看的真的是头都是大的,进程同步与互斥果然是个要命的事,不过好在最终要补全的程序并不复杂。
不过比较蛋疼的是,这次的PDF也是忽悠的飞起,首先说是要改lab1-lab6的代码,可以到头来根本不用改,完全拷过来即可,然后号称make grade在填充完前面的lab之后并不能得满分,可实际是直接就满分了,于是乎为了测试最后完成lab7后哲学家问题是否正确了需要自己盯着make qemu的结果慢慢看……
这次的程序基本也没有什么坑,就是要分清楚信号量的signal和wait操作分别对应哪个函数。大概最难理解的地方就是哲学家问题的实现了,不过实际上其实就算不理解,直接翻译伪代码也可以做……
最后,还是老规矩,附上lab7的实验报告和修改的代码。