Advertisement

进程运行状态与线程时间片分配

阅读量:

学无止境

  • 环境

  • 线程的时间片分配

    • 线程优先级
  • 线程的执行

  • 进程的状态

    • 三个状态
    • 状态的迁移
    • 进程标识符
  • 内核调度

    • 参考网址

环境

无特殊指明,本文基于linux

线程的时间片分配

对Linux系统来说,在用户生成一个新进程后,CPU的时间片分配单位实际上是根据线程划分的。如果程序中没有生成线程,那么可以将其视为单线程程序,Linux内核实际上并不区分进程与线程,它会将执行单元称为"任务"(task),而将最小的工作单元称为"线程"(thread)。当一个进程被其父进程fork生成时,其获得的时间片会被平分剩余父进程的时间片资源,而这个时间片在执行完毕后会根据该进程最初设定的优先级重新进行重新分配。
Linux的时间片无法直接进行修改,可以通过调节进程优先级来间接实现这一目标。调度程序会根据优先级动态地调整相应的时间片资源数量。为了修改进程的优先级从而影响时间片资源的数量,可以使用系统调用(如终端命令行输入)nice()函数进行操作,nice()函数的取值范围为-20到+19,-20表示赋予该进程最高优先权,+19表示赋予该进程中最低优先权.需要注意的是只有拥有超级用户权限的人才能在调用nice()函数时指定负值。

根据不同的优先级等级划分的时间片

全部评论 (0)

还没有任何评论哟~