主观题:h513.Linux中的线程调度算法有几种,简述之?
Linux中的线程调度算法有几种,简述之?
答案:解:调度策略有三种:
(1)SCHED_OTHER(普通分时调度策略):它是缺省调度策略,适用于优先级为0的线程,它为链表中的每个线程分配时间片,保证链表中的每个线程有公平的执行时间。(3分)
(2)SCHED_FIFO(先进先出调度策略):适用于优先级高于0的线程,当SCHED_FIFO中有可运行线程时,该线程会抢先任何当前运行的SCHED_OTHER线程称为当前运行线程。当有优先级更高的线程抢先时,该进程保留在对应链表的头部,在高优先级线程结束后立即投入运行。(4分)
(3)SCHED_RR(循环调度策略):它是SCHED_FIFO策略的简单增强,增加了时间片限制。如果某个SCHED_RR 运行的线程等于或超过分配给它时间片,结束运行,排到对应链表的尾部。(3分)
答案:解:调度策略有三种:
(1)SCHED_OTHER(普通分时调度策略):它是缺省调度策略,适用于优先级为0的线程,它为链表中的每个线程分配时间片,保证链表中的每个线程有公平的执行时间。(3分)
(2)SCHED_FIFO(先进先出调度策略):适用于优先级高于0的线程,当SCHED_FIFO中有可运行线程时,该线程会抢先任何当前运行的SCHED_OTHER线程称为当前运行线程。当有优先级更高的线程抢先时,该进程保留在对应链表的头部,在高优先级线程结束后立即投入运行。(4分)
(3)SCHED_RR(循环调度策略):它是SCHED_FIFO策略的简单增强,增加了时间片限制。如果某个SCHED_RR 运行的线程等于或超过分配给它时间片,结束运行,排到对应链表的尾部。(3分)