<i id='wu8le'></i>

      <ins id='wu8le'></ins><i id='wu8le'><div id='wu8le'><ins id='wu8le'></ins></div></i>

      <code id='wu8le'><strong id='wu8le'></strong></code>
      <fieldset id='wu8le'></fieldset>

    1. <tr id='wu8le'><strong id='wu8le'></strong><small id='wu8le'></small><button id='wu8le'></button><li id='wu8le'><noscript id='wu8le'><big id='wu8le'></big><dt id='wu8le'></dt></noscript></li></tr><ol id='wu8le'><table id='wu8le'><blockquote id='wu8le'><tbody id='wu8le'></tbody></blockquote></table></ol><u id='wu8le'></u><kbd id='wu8le'><kbd id='wu8le'></kbd></kbd>
      1. <dl id='wu8le'></dl>
        <span id='wu8le'></span>

        1. <acronym id='wu8le'><em id='wu8le'></em><td id='wu8le'><div id='wu8le'></div></td></acronym><address id='wu8le'><big id='wu8le'><big id='wu8le'></big><legend id='wu8le'></legend></big></address>

          Linux内核调度策略介绍

          • 时间:
          • 浏览:5
          • 来源:124软件资讯网

             Linux内核的三种调理计谋:

              1  ,SCHED_OTHER 分时调理计谋  ,

              2  ,SCHED_FIFO实时调理计谋  ,先到先服务  。一旦占用cpu则一直运行  。一直运行直到有更高优先级使命到达或自己放弃

              3  ,SCHED_RR实时调理计谋 ,时间片轮转  。当历程的时间片用完 ,系统将重新分配时间片  ,并置于停当行列尾  。放在行列尾保证了所有具有相同优先级的RR使命的调理公正

              Linux线程优先级设置

              首先 ,可以通过以下两个函数来获得线程可以设置的最高和最低优先级 ,函数中的计谋即上述三种计谋的宏界说:

              int sched_get_priority_max(int policy);

              int sched_get_priority_min(int policy);

              SCHED_OTHER是不支持优先级使用的  ,而SCHED_FIFO和SCHED_RR支持优先级的使用  ,他们划分为1和99  ,数值越大优先级越高  。

              设置和获取优先级通过以下两个函数:

              int pthread_attr_setschedparam(pthread_attr_t *attr, const struct sched_param *param);

              int pthread_attr_getschedparam(const pthread_attr_t *attr, struct sched_param *param);

              例如以下代码建立了一个优先级为10的线程:

              struct sched_param

              {

              int __sched_priority; //所要设定的线程优先级

              };

              例:建立优先级为10的线程

              pthread_attr_t attr;

              struct sched_param param;

              pthread_attr_init(&attr);

              pthread_attr_setschedpolicy(&attr, SCHED_RR);

              param.sched_priority = 10;

              pthread_attr_setschedparam(&attr, ¶m);

              pthread_create(xxx , &attr , xxx , xxx);

              pthread_attr_destroy(&attr);