内核基础 - 进程(十六) - 调度相关系统调用

690阅读 0评论2016-10-09 zhanglong71
分类:LINUX

内核资料收集

1. 
    nice()
        改变当前进程的基本优先级

    getpriority()
        返回20减去给定组中所有进程之中最低nice字段的值;
    setpriority()
        将给定组中所有进程的基本优先级设置为一个给定值.
    
    sched_getaffinity()/sched_setaffinity()
        返回和设置CPU进程亲和力掩码, 也就是允许执行进程的CPU的位掩码(进程描述符的cpus_allowed字段中).

2.实时进程相关系统调用
    sched_getscheduler()
        查询由pid参数所表示的进程当前所用的调度策略(进程描述符policy字段的值).
    sched_setscheduler()
        设置调度策略, 也设置由参数pid所表示进程的相关参数. 如果pid等于0, 调用进程的调度程序参数将被设置.

    sched_getparam()
        检索调度参数
    sched_setparam()
         类似sched_setscheduler(), 不同者在于不让调用者设置policy字段值.

    sched_yield()
            允许进程在不被挂起的情况下自愿放弃CPU, 进程仍然处于TASK_RUNNING状态, 但调度程序把它放在运行队列的
        过期进程集中, 或放在运行队列链表的末尾. 在此情景下, 具有相同动态优先级的其它进程将有机会运行. 
        sched_FIFO实时进程使用

    sched_get_priority_min()sched_get_priority_max()    
  返回最大和最小实时静态优先级的值

    sched_rr_get_interval()
        把参数pid表示的实时进程的轮转时间片写入用户态地址空间的一个结构中. 如果pid等于0, 系统调用就写当前进程的时间片.
上一篇:内核基础 - 进程(十四) - 调度相关的函数
下一篇: 内核基础 - 进程(十七) - 进程地址空间