none
多核CPU同一时刻能调度多个进程吗? RRS feed

  • 问题

  • windows进程得到调度后会得到一定的时间片用来执行代码,那么同一时刻,即同一个时间片能调度多个进程吗?

    多核cpu已经非常普及,i7的四核八线程已经是家用级别的cpu了,安卓都在堆八核cpu。可是进程的线程数有可能少于cpu支持的线程数。比如一个四核八线程的i7cpu,我的进程总共只有三个线程。我的进程得到调度后可以执行n个时间片,那么这n个时间片内cpu支持的三个线程有任务,而另外五个线程是空闲的。cpu是同是再去调度另外的线程呢?还是让只调度我的这一个进程,让多余的资源空闲着?

    2015年7月20日 13:22

答案

  • 参考 第5章 CPU调度

    http://blog.sina.com.cn/s/blog_630c97f20100vhc9.html

    希望这些能帮助你。


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.


    • 已标记为答案 潇羽 2015年7月21日 12:31
    • 取消答案标记 潇羽 2015年7月22日 2:43
    • 已编辑 Shu 2017 2015年7月22日 9:48
    • 已标记为答案 潇羽 2016年5月16日 4:52
    2015年7月21日 9:14

全部回复

  • 参考 第5章 CPU调度

    http://blog.sina.com.cn/s/blog_630c97f20100vhc9.html

    希望这些能帮助你。


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.


    • 已标记为答案 潇羽 2015年7月21日 12:31
    • 取消答案标记 潇羽 2015年7月22日 2:43
    • 已编辑 Shu 2017 2015年7月22日 9:48
    • 已标记为答案 潇羽 2016年5月16日 4:52
    2015年7月21日 9:14
  • 多cpu和多核单cpu不同吧。多cpu环境下,当然可以用某一个cpu作为负载均衡的调度器,同一时刻将多个进程调度到不同的cpu上。但是多核单cpu呢?比如四核八线程的i7,只有一个cpu,但有四个核,难道用一个核做负载吗?仍然是问题中的例子,我的进程总共使用三个线程,那么只要调度给我两个物理核,一个(或者两个)逻辑核就够了。如果同时调度其他进程呢?同一时刻能够调度的其他进程,需要的cpu资源不应该超过2个物理核外加三个(或者两个)逻辑核。由此可知,调度队列不能够使用FIFO模式的队列。操作系统能够智能到这样的调度吗?

    另外,不是所有程序都会在启动时开启线程池,更多时候是进程进入运行态后才会动态启动多个线程,数量未知(但可以确定不会超过cpu支持的最大线程数*2)。也就是说在多核单cpu的系统中,我的最大线程数为3的进程进入运行态后,os根本无法挑一个合适的进程进行调度?不是吗?

    2015年7月22日 2:54