gpt4 book ai didi

linux - Linux内核中使用的三个优先级有什么区别?

转载 作者:IT王子 更新时间:2023-10-29 01:26:54 27 4
gpt4 key购买 nike

我是 Linux 内核的新手,现在我正在研究 Linux 内核中的进程调度。 Linux 中有三种优先级:

  1. 静态优先级
  2. 动态优先级
  3. 实时优先

现在我的理解是:

  • 静态优先级和动态优先级仅为常规进程定义,它们只能取 100 到 139 之间的值。
  • 静态优先级用于确定进程的基本时间片
  • 动态优先级用于选择下一个要执行的进程。

  • 实时优先级仅为实时进程定义,其值范围为 0 到 99

现在我的问题是:

  1. 如果我错了请纠正我,也请告诉我我们为什么使用 Linux 中的三种优先级及其区别 在这些优先事项中?
  2. 是否根据优先级(如果优先级在 100 到 139 之间)将流程区分为实时或传统那么过程是常规过程,否则是实时的流程?
  3. 优先级在 Linux 中是如何改变的,我的意思是,我们知道进程的优先级在整个执行过程中不会保持不变?

最佳答案

免责声明:以下内容适用于 linux 中的调度(我不确定 windows 或其他操作系统)。线程和进程在这里可以互换使用,尽管它们之间存在差异。

优先级和差异

1.静态优先级:这些是在创建新线程时设置的默认优先级(常规进程也称为非实时进程,即当不使用实时调度时,值为 0)。您可以使用以下方式更改它们:

`pthread_setschedparam(pthread_t thread, int policy, const struct sched_param *param);`

其中,sched_pa​​ram 包含优先级:

struct sched_param 
{
int sched_priority; /* Scheduling priority */
};

2 动态优先级:当线程开始饿死时,因为更高优先级的线程一直被调度,就需要使用 various mechanism 来提高此类线程的优先级。秒。这种提高/降低(是的,这种情况也会发生)的优先级被称为动态优先级,因为它会不断变化。在 Linux 中,即使是胖 child 也可以玩。

3.实时优先级:只有当线程(进程)根据其中一种实时策略(SCHED_FIFO、SCHED_RR)进行调度并且 sched_priority 值在 1 范围内时,才会出现这种情况(低)到 99(高)。与非实时进程的静态/动态优先级相比,这是最高的。

更多信息:http://man7.org/linux/man-pages/man3/pthread_getschedparam.3.html

现在,回答您的问题:

Correct me if i am wrong and please also tell me why we are using three types of priorities in Linux and what are the differences among these priorities?

因此,对于非实时调度策略,每个进程都有一些静态优先级,更高的优先级给线程一个启动,后来为了避免任何不公平,优先级被提升/降低成为动态优先级。

Are the processes are differentiated as Real time or Conventional on the basis of priorities that is if priority is between 100 to 139 then processes are Conventional processes otherwise Real time processes?

不一定,这取决于适当的调度机制。

How the priorities are changed in Linux , i mean , we know that priority of a process does not remain constant through out the execution ?

这就是动态性发挥作用的时候了。阅读给定链接中的“不错的值(value)”。

关于linux - Linux内核中使用的三个优先级有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22163722/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com