如果一个进程优先级很高,而且线程较多,十分繁忙,那么低优先级的是否已经死掉。
6 个解决方案
#1
好像OS可以将低优先级的线程将其优先级暂时提升, 以避免饥饿.
#2
顶一个。
#3
大体上是按优先级来的,然后会动态提升优先级,不过Windows不对外公开此算法。
#4
如果是windows的话
进程是不具有时间片的,系统调度的只是线程而已,进程只是线程的容器
进程是不具有时间片的,系统调度的只是线程而已,进程只是线程的容器
#5
谢谢各位,期望说得更具体些。
#6
对于windows系统来说
进程是线程的容器,内核调度的对象是线程而不是进程
进程的优先级,只是用来描述进程内的线程在调度时可能的优先级的一个抽象概念。
线程的相对优先级于它所在的进程相关。线程的绝对优先级与线程所在的进程的优先级和线程的相对优先级相关。
线程的绝对优先级有32级,一般情况,windows内核总是优先调度高优先级的线程,将时间片分配给
它们。
据说(因为这些算法微软都不公开且不保证以后不会改变),windows内核会动态调整线程的绝对优先级,比如:
当一个线程获得时间片以后,它的绝对优先级会被降低一级,但是绝对优先级不会降低到它的基本优先级以下。
或者,当一个线程长时间处于就绪状态,却没有获得时间片,内核会动态增加它的优先级,或许是当前优先级的2倍,并让它立刻被调度获得几个时间片。
进程是线程的容器,内核调度的对象是线程而不是进程
进程的优先级,只是用来描述进程内的线程在调度时可能的优先级的一个抽象概念。
线程的相对优先级于它所在的进程相关。线程的绝对优先级与线程所在的进程的优先级和线程的相对优先级相关。
线程的绝对优先级有32级,一般情况,windows内核总是优先调度高优先级的线程,将时间片分配给
它们。
据说(因为这些算法微软都不公开且不保证以后不会改变),windows内核会动态调整线程的绝对优先级,比如:
当一个线程获得时间片以后,它的绝对优先级会被降低一级,但是绝对优先级不会降低到它的基本优先级以下。
或者,当一个线程长时间处于就绪状态,却没有获得时间片,内核会动态增加它的优先级,或许是当前优先级的2倍,并让它立刻被调度获得几个时间片。
#1
好像OS可以将低优先级的线程将其优先级暂时提升, 以避免饥饿.
#2
顶一个。
#3
大体上是按优先级来的,然后会动态提升优先级,不过Windows不对外公开此算法。
#4
如果是windows的话
进程是不具有时间片的,系统调度的只是线程而已,进程只是线程的容器
进程是不具有时间片的,系统调度的只是线程而已,进程只是线程的容器
#5
谢谢各位,期望说得更具体些。
#6
对于windows系统来说
进程是线程的容器,内核调度的对象是线程而不是进程
进程的优先级,只是用来描述进程内的线程在调度时可能的优先级的一个抽象概念。
线程的相对优先级于它所在的进程相关。线程的绝对优先级与线程所在的进程的优先级和线程的相对优先级相关。
线程的绝对优先级有32级,一般情况,windows内核总是优先调度高优先级的线程,将时间片分配给
它们。
据说(因为这些算法微软都不公开且不保证以后不会改变),windows内核会动态调整线程的绝对优先级,比如:
当一个线程获得时间片以后,它的绝对优先级会被降低一级,但是绝对优先级不会降低到它的基本优先级以下。
或者,当一个线程长时间处于就绪状态,却没有获得时间片,内核会动态增加它的优先级,或许是当前优先级的2倍,并让它立刻被调度获得几个时间片。
进程是线程的容器,内核调度的对象是线程而不是进程
进程的优先级,只是用来描述进程内的线程在调度时可能的优先级的一个抽象概念。
线程的相对优先级于它所在的进程相关。线程的绝对优先级与线程所在的进程的优先级和线程的相对优先级相关。
线程的绝对优先级有32级,一般情况,windows内核总是优先调度高优先级的线程,将时间片分配给
它们。
据说(因为这些算法微软都不公开且不保证以后不会改变),windows内核会动态调整线程的绝对优先级,比如:
当一个线程获得时间片以后,它的绝对优先级会被降低一级,但是绝对优先级不会降低到它的基本优先级以下。
或者,当一个线程长时间处于就绪状态,却没有获得时间片,内核会动态增加它的优先级,或许是当前优先级的2倍,并让它立刻被调度获得几个时间片。