近日,我一直在看Linux0.11内核源代码,尽管还没有学习操作系统的相关知识,但我很感兴趣,于是自己下来看了看这方面的书籍。当我了解到386的保护模式的相关知识时,感觉386的设计很不错,它在多任务方面有着出色的表现。
在任务切换这一方面,我看到Linux0.11是通过时间中断来调度任务轮流运行的。但是如果一个任务是一个死循环,并且浪费着CPU的时间。如果终止该任务,其实死循环也可能是为了接受某个消息而设计的,所以不能终止长时间死循环的程序。因此我在想能否通过判断跳转指令的频度来实现判断该任务的优先级,假如一个任务的跳转指令过多,这也就意味着这个任务并没有进行实际的计算。要是处理器能够给出任务的跳转指令执行的频度,这对操作系统的调度应该是有帮助的。有些任务并不需要过多CPU时间,他们一般是闲置的,因此在等待io等耗时的操作时使它进入睡眠是不错的。无论如何,计算机总有我不太满意的地方,学会编写程序则是让这种不满足感降低,这样我们才能更好的控制计算机工作。