在操作系统中,低优先级任务想要得到CPU的使用权,是建立在高优先级任务遇到阻塞语句的前提下,比如等待事件标志、等待消息、等待信号量、遇见延迟函数等
而在低优先级任务执行过程中,高优先级任务在干什么,或者说CPU在干什么
在抢占式操作系统中,高优先级任务是不会等待低优先级任务彻底执行完毕后,通过调度器切换任务而获得CPU使用权,而是高优先级任务的就绪条件一满足就会立刻夺过CPU的使用权,暂时中断正在执行的低优先级任务,但CPU在执行低优先级任务时,是如何实时知道高优先级任务就绪了呢,由结果倒推原因,那就是CPU不是一直特别专一的只执行低优先级任务,而是有一个大扫描,会实时检测高优先级任务的运行条件是否已满足,一旦满足就会发生抢占事件,否则继续执行低优先级任务
其实仔细研究过操作系统后便知,这是操作系统的任务切换机制,操作系统跟人一样必须有一个心跳,整个系统按照这个心跳有序正确的工作,这个心跳就是系统时钟,系统时钟一般是由定时器产生,每隔一定时间便产生一次中断,系统便在这个中断里做一些事情,这当中就包括调度器的任务切换,即一次中断到来后便检测高优先级任务的就绪条件是否满足,条件满足则切换任务,不满足则继续执行当前任务,这就在现象上表现出,操作系统能实时知道高优先级任务何时就绪了,以便切换到高优先级任务而执行
时间: 2024-11-03 17:58:59