优先级越大并不一定先执行,。是因为:优先级低的也并非要等高优先级的线程运行完才能轮到,相对来说,轮到的机率低一些。
如果是VxWorks这样的实时系统,那么优先级高表示优先得到响应(这时候它不一定在执行,也可以在睡眠);
Linux系统优先级高表示它越倾向于IO消耗型,那么它在中断到来时肯定要尽快投入运行,但是相对CPU消耗型来说,实际上它肯定是等待的时候更多,所以优先级高和执行先后没有什么关系。
?
如果高优先级的,被堵截了,可能就不按照高低的执行了。如果低优先级的正在执行,高优先级的过来要抢占执行的话,就会出现堵截,低的退不出来,高的还要进去,这是处理机制有可能随机执行,要么还可能出现,两个程序都运行不了。
三个优先级都一样的话就跟好办了,线程分配实际就是cpu为不同的运行随机分配时间片段,但优先级高的先执行,所以说应该是随机的。
是的
输入代表的意义是:
任务ID,优先级值(值越大,优先级越高),开始时间,持续时间。共5组。
输出代表的意思:
任务ID,执行持续时间,即整个任务执行的顺序。
思路:在做这类题目时,在时间轴上先画出优先级高的时间线,再画优先级低的时间线,当优先级低的时间线被优先级高的时间线挡住的时候,依次往后延续,直到占满它的时间需求。