关于临界资源保护,请大家帮忙
所谓非抢占内核就是,当中断完成后,系统就调度原来被中断的任务运行,
即使此时有优先级更高的任务,也要等原被中断的任务完成后,才能参与调度。
那么在 非抢占内核中,临界资源就不需要保护了?
[解决办法]
非抢占内核是等到当前任务主动让出CPU或者运行时间到达时才进行任务切换,并不是等到任务终止才切换,所以需要临界资源保护
[解决办法]
非抢占式调度,是当前任务时间片结束或者让出CPU或者状态切换时,另一个任务才调度,哪怕是个高优先级任务。
抢占式调度,是有高优先级任务就绪,就立刻停止当前任务(用户态)。
抢占式调度的非抢占内核,是指任务在核态运行时,就算有个高优先级任务就绪,也要等到当前任务退出核态才能抢占。
临界资源不一定只是在核态比如说中断中访问。就算只在核态访问的临界资源,可能前后多次进入核态访问之间存在语义上的相互关系,还是需要保护。