请教一个多进程、多线程、多CPU、多核的问题

codecola 2011-04-08 02:16:50
在一个多CPU多核的系统中:
1. 一个进程线程的程序,同一时刻能占用1个CPU的1个核。
2. 一个进程线程的程序,同一时刻能占用1个CPU的个核?
3. 一个进程线程的程序,同一时刻能占用个CPU的1个核?
4. 一个进程线程的程序,同一时刻能占用个CPU的个核?

我理解的对吗?
...全文
1421 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Lactoferrin 2011-04-11
  • 打赏
  • 举报
回复
你什么时候见到了一个多进程单线程的程序?拿一个没有线程的进程当摆设,或者那个线程两边来回attach?这里不要管进程的数目。
codecola 2011-04-11
  • 打赏
  • 举报
回复
在一个多CPU多核的系统中:

2. 一个单进程多线程的程序,同一时刻能占用多个CPU的多个核?
3. 一个多进程单线程的程序,同一时刻能占用多个CPU的多个核?
4. 一个多进程多线程的程序,同一时刻能占用多个CPU的多个核?
codecola 2011-04-11
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 ericming200409 的回复:]

这个要看操作系统的实现,有的操作系统只调度进程,有的以线程为单位进行调度
[/Quote]

windows调度是以线程为单位的。

在linux下,每个CPU都有着对应的可执行队列,而一个可执行状态的进程在同一时刻只能处于一个可执行队列中。

2. 一个单进程多线程的程序,同一时刻能占用1个CPU的多个核。
codecola 2011-04-11
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 lactoferrin 的回复:]

你什么时候见到了一个多进程单线程的程序?拿一个没有线程的进程当摆设,或者那个线程两边来回attach?这里不要管进程的数目。
[/Quote]

ok
我说的不明确,多进程单线程实际就是多进程,只是不再分多线程。
ericming200409 2011-04-11
  • 打赏
  • 举报
回复
这个要看操作系统的实现,有的操作系统只调度进程,有的以线程为单位进行调度
天上游的鱼 2011-04-08
  • 打赏
  • 举报
回复
楼上说的大体上是对的,只看core,不用说多个cpu


一个执行序列可以对应一个core,一个执行序列就是指基本的调度单位(线程)
Lactoferrin 2011-04-08
  • 打赏
  • 举报
回复
调度的只是线程,不是进程。
多进程单线程,那么只能有一个进程有线程,其它进程都是刚创建的没有线程的,此时只有一个线程可被调度


所以,只用看线程的个数和核的个数
pengzhixi 2011-04-08
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 codecola 的回复:]
引用 2 楼 justkk 的回复:

貌似3是不对的,不确定
一个多进程单线程的程序,貌似不能同时被调度,同一时刻能占用1个CPU的1个核


多个进程为什么不能被同时调度?这些进程间除了父子关系外,没有其他的联系。
[/Quote]因为调度是以线程为单位。
codecola 2011-04-08
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 justkk 的回复:]

貌似3是不对的,不确定
一个多进程单线程的程序,貌似不能同时被调度,同一时刻能占用1个CPU的1个核
[/Quote]

多个进程为什么不能被同时调度?这些进程间除了父子关系外,没有其他的联系。
justkk 2011-04-08
  • 打赏
  • 举报
回复
貌似3是不对的,不确定
一个多进程单线程的程序,貌似不能同时被调度,同一时刻能占用1个CPU的1个核

2,408

社区成员

发帖
与我相关
我的任务
社区描述
高性能计算
社区管理员
  • 高性能计算社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧