Linux调度的实时性
扫描二维码
随时随地手机看文章
由于Linux本身是一个面向桌面系统的操作系统,因此将它应用于实时系统中会存在如下一些问题:
●Linux系统中的系统时钟周期为10 ms,对于实时系统来说,这个周期比较长,所以它不能提供精确的定时,满足不了实时系统精确定时的要求。
●对于Linux 2.4版本的操作系统,当一个进程因调用系统调用而进人内核态运行后,它在某些情况下属于有条件剥夺型内核,从雨使得调度延时不可预测,所以它不能满足硬实时的要求。
●由于使用虚拟内存技术,当发生页出错时,需要从硬盘中读取交换数据,但硬盘读/写因存储位置的随机性会导致随机的读/写时间,这在某些情况下会影响一些实时任务 的截止期限。
●在2.4版的内核里,查找最佳候选就绪进程的过程是在调度器调用函数schedule()时来进行的,每一次调度都要在for()循环中遍历就绪进程并调用函数goodness(),所以 这种查找过程与当前就绪进程的个数相关。因此,查找所耗费的时间是当前就绪进程个数有关的,这与实时系统的要求相违背。