第二种方法完成杨X伟交给的不可能的任务
昨天发现,父子进程之间共享的打开文件的文件读写指针也是共享的。在读文件时,这个指针会自动向后移动。文件读与指针向后移是一个“原子”操作,可以用来作为“信号灯”用。程序见附件。
这个“信号灯”方案的效率比那个“过山车协议”方案的效率高太多了,必须在打印语句之后加上很大的延时才能看到好看的进程切换花纹。这个是因为UnixV6的优先权设定是刚响应过外设的进程有极高的优先权,总是能抢占处理机,然后又打印,又响应外设。这样他就永远是很高优先权的进程,永远先占用处理机。只有给它加很长的延时让它占用处理机较长时间后其优先权才降下来别的进程才有机会占用处理机。这一点有几个中国著名的操作系统专家就显得狗屁不通了,以前看过一本解释微软瘟痘士的书,自吹那书是微软请他们到洗丫头看源代码而作的。结果连这种优先权的设定方法都没看懂。太丢中国人的脸了。
我上边的说法没错。那个刚执行打印语句的进程进入睡眠等待外设完成操作时,是带“信号灯”入睡的。而那个没拿到“信号灯”的进程则在不断请求“信号灯”,占用大量处理机时间,但没“信号灯”又不能往下走,只使其优先权不断下降。那个打印语句的进程一被外设唤醒,立即以极高的优先权占用处理机,又执行下一条打印语句,又带着“信号灯”入睡。如此恶性循环,贫者逾贫富者逾富。
能用两种方法做出这个不可能的任务,算不算《计算机操作系统课实验课》的附加题给附加分啊。岑某文书记说我的学习成绩又不是“很”好,我实在需要拿些附加分才能领到纱纸啊。
哈哈。
据网上考古,岑某文书记现在已经是“计算机科学与技术学院”的副院长了。哈哈。有牠在,我看习主席的“中国梦”要成为“南柯梦”“黄粱梦”了。也许是“包子梦”“糭子梦”“烤鸭梦”。反正不是“牛油果梦”。
https://groups.google.com/forum/#!topic/chanzhaiming/GbHao5Jyzbs
我的新屎坑:https://groups.google.com/d/forum/chanzhaiming