FAQ 01:合作型(coorperative)多任务与抢先式(preemptive)多任务有和区别
Micorsoft Windows的前三个版本(1,2,3)都允许同时执行多个程序,但分享CPU的是程序(而不是OS)的责任。如果有一个程序决定咬住CPU不放,其他程序就停摆了。因此,我们说windows是“合作型多任务”。在2.0和3.0那个时代,还是有许多程序拒绝与别人共享资源,慢慢地大家都进步了,也学习到如何写一个“举止良好”的程序。但这还是花费了大家许多宝贵的精力在诸如“调试”这样的工作上。
由于windows的底层依赖DOS,当格式化一张磁盘或拷贝一个文件到软盘上时,依然让任何其他人都动弹不得。
当此之时,Unix,VMS,AmigaDOS等OS都已经支持一种名为“抢先式多任务”的模式,意思是OS能够强迫应用程序把CPU分享非其他人,程序员不需要什么额外的努力。
评论