免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3597 | 回复: 12

[CPU及多核] 单处理器 多核系统是SMP系统吗? [复制链接]

论坛徽章:
0
发表于 2013-07-25 15:06 |显示全部楼层
本帖最后由 runrun_snail 于 2013-07-25 15:11 编辑

假设系统只有一个处理器, 但是 是 双核处理器。 该系统可以 看作 SMP(多处理器)系统吗?
更详细的来说  

Core1 在执行 进程1 的同时, Core2 上面可以同时 进程2的 代码吗?

或者说 Core1 和 Core2 在同一个时间内, 只能执行同一个 进程的 代码,
如果该进程是一个多线程程序, 可以同时执行 该进程的不同 线程???

其实对于用户级别的多线程,对操作系统而言只有一个调度单位,不可能同时执行 一个 进程中 的多个 用户级别的线程。。。
所有只考虑 内核级别的 线程。。
但是从调度的观点来看, 其实多线程跟多进程 是一样的。。。没有区别。

把这个问题深入一点 ,对于一个单 处理器 单核 的系统, 但是这个core 是超线程的(hyper-thread), 这个系统可以看成 SMP 系统吗?

说的有点乱,不知道各位大神看懂了没。。。。

求回复。

论坛徽章:
0
发表于 2013-07-25 15:10 |显示全部楼层
求回复。。。

论坛徽章:
0
发表于 2013-07-25 16:39 |显示全部楼层
坚持顶上去。。。一定会有大神回复的

论坛徽章:
9
程序设计版块每日发帖之星
日期:2016-02-13 06:20:00数据库技术版块每日发帖之星
日期:2016-06-15 06:20:00数据库技术版块每日发帖之星
日期:2016-06-16 06:20:00数据库技术版块每日发帖之星
日期:2016-06-18 06:20:00程序设计版块每日发帖之星
日期:2016-06-27 06:20:00程序设计版块每日发帖之星
日期:2016-07-09 06:20:00IT运维版块每日发帖之星
日期:2016-07-15 06:20:00IT运维版块每日发帖之星
日期:2016-07-27 06:20:00程序设计版块每日发帖之星
日期:2016-08-18 06:20:00
发表于 2013-07-26 12:13 |显示全部楼层
是,连超线程都是

论坛徽章:
0
发表于 2013-07-26 13:36 |显示全部楼层
mordorwww 发表于 2013-07-26 12:13
是,连超线程都是


也就是 说 内核里面的

#ifdef CONFIG_SMP
#define NR_CPUS                CONFIG_NR_CPUS
#else
#define NR_CPUS                1
#endif

NR_CPUS 应该配置成 处理器数 *(每个处理器的 core 数目)  * 2 (每个核 可以 超线程的话 ?)

站在软件的角度 每个超线程 可以看作 一个单独的物理 处理器 ???

论坛徽章:
1
程序设计版块每日发帖之星
日期:2015-09-23 06:20:00
发表于 2013-07-26 20:34 |显示全部楼层
是。两个就不一定了,可能是ccNUMA, 现在很常见。

论坛徽章:
0
发表于 2013-07-30 12:09 |显示全部楼层
irp 发表于 2013-07-26 20:34
是。两个就不一定了,可能是ccNUMA, 现在很常见。


可以再解释一下吗???
两个就不一定了  两个具体是指什么情况???

ccNUMA 具体是什么情况? 可以详细说一下吗????

难道是这个话题没有讨论价值。。。
为什么没有人回复

论坛徽章:
0
发表于 2013-07-31 15:11 |显示全部楼层
这么基本的一个问题 就没人回复吗

论坛徽章:
6
金牛座
日期:2013-10-08 10:19:10技术图书徽章
日期:2013-10-14 16:24:09CU十二周年纪念徽章
日期:2013-10-24 15:41:34狮子座
日期:2013-11-24 19:26:19未羊
日期:2014-01-23 15:50:002015年亚洲杯之阿联酋
日期:2015-05-09 14:36:15
发表于 2013-08-01 14:43 |显示全部楼层
回复 1# runrun_snail

本帖最后由 runrun_snail 于 2013-07-25 15:11 编辑


假设系统只有一个处理器, 但是 是 双核处理器。 该系统可以 看作 SMP(多处理器)系统吗?
更详细的来说  

Core1 在执行 进程1 的同时, Core2 上面可以同时 进程2的 代码吗?

或者说 Core1 和 Core2 在同一个时间内, 只能执行同一个 进程的 代码,
如果该进程是一个多线程程序, 可以同时执行 该进程的不同 线程???

其实对于用户级别的多线程,对操作系统而言只有一个调度单位,不可能同时执行 一个 进程中 的多个 用户级别的线程。。。
所有只考虑 内核级别的 线程。。
但是从调度的观点来看, 其实多线程跟多进程 是一样的。。。没有区别。

把这个问题深入一点 ,对于一个单 处理器 单核 的系统, 但是这个core 是超线程的(hyper-thread), 这个系统可以看成 SMP 系统吗?


1. 双核处理器是SMP
2. 单核超线程的处理器同样是SMP
3. 可以同时执行同一个进程的两个线程
   

论坛徽章:
0
发表于 2013-08-02 16:31 |显示全部楼层
瀚海书香 发表于 2013-08-01 14:43
回复 1# runrun_snail


单处理器的两个核 不能同时执行 两个 不同的 进程吗?

哪里有这方面的资料啊?
比如 搜索关键字。。。用谷歌搜索了,没搜出来。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP