正在学rtos,有些初级问题请教,哪位高手帮下忙,谢谢 os是利用定时器溢出中断作为系统时间,若干个系统时间为一个时间片. 如果是用时间片轮转方式的话,时间片长2ms 一个任务执行一次需要1ms,那么它执行完一次只用了1ms,在一个时间片里是立即切换到下一个任务还是执行两次? 如果是立即切换的话,是不是会将系统时间复位既立即重新计算时间片?这样的话,就不可能利用系统时间来做时钟了. 一个任务一次要3ms,执行1ms时要等待一个信号,这个时候,2ms没有耗完,是立即切换还是把时间片空闲耗完? 用时间片的话,有些程序是不是有潜在的危险,比如软件模拟iic,串口之类,如果刚发生在一个字节传送时候,比如某字节刚发送4个位就被切换了. 还有延时问题: 四个任务,每个任务>10ms,任务1--任务2--任务3--任务4--任务1-- 其中任务1有一个延时4ms,具体如何执行呢?这个4ms是系统时间还是任务的时间?如果是系统的时间,把所有任务轮转要8ms,怎么做的呢?如果延时是任务时间,是把任务1应该执行的两个时间片空闲还是删去 如果有四个任务,每个任务>10ms,任务1--任务2--任务3--任务4--任务1-- 其中任务1中有一个延时3ms,具体会如何执行呢?
|