我觉得你说的不准确,不能说任务的完成时间,只能说任务的切换时间是可确定的。在多任务环境下,任务启动后,一般是只有阻塞和运行的区分,完成了岂不是任务退出了。多任务环境下,硬实时操作系统可以确保最高优先级的任务在预期时间内得到CPU控制权,但如果软件本身设计不合理,那么是不可能正常执行的。 举个例子: 时间片为10ms,只用了2个优先级,高、低优先级各有5个任务,高优先级可以抢占低优先级,同等优先级之间轮转。如果每个高优先级任务没有交出CPU的时间(比如调用个sleep或阻塞等待信号量之类的函数),那么这5个高优先级将会每个使用10ms轮流运行一次,然后再运行第二次,……,低优先级永远得不到机会运行。在这个例子里没有完成的概念,只有切换时机是确定的。 一般要的可确定是指,比如硬件中断发生时,从任何一个任务或低优先级中断切到高优先级中断的时间是可确定的,这样就能保证实时响应,所以系统设计是关键!
21,595
社区成员
21,708
社区内容
加载中
试试用AI创作助手写篇文章吧