多核CPU 跟 进程/线程

多核CPU 跟 进程/线程

概述

现在大家使用的基本上都是多核cpu,一般是4核的。平时应用程序在运行时都是由操作系统管理的。操作系统对应用进程进行调度,使其在不同的核上轮番运行。

对于普通的应用,操作系统的默认调度机制是没有问题的。但是,当某个进程需要较高的运行效率时,就有必要考虑将其绑定到单独的核上运行,以减小由于在不同的核上调度造成的开销。

把某个进程/线程绑定到特定的cpu核上后,该进程就会一直在此核上运行,不会再被操作系统调度到其他核上。但绑定的这个核上还是可能会被调度运行其他应用程序的。

操作系统对多核cpu的调度

目前windows和linux都支持对多核cpu进行调度管理。

软件开发在多核环境下的核心是多线程开发。这个多线程不仅代表了软件实现上多线程,要求在硬件上也采用多线程技术。

多核操作系统的关注点在于进程的分配和调度。进程的分配将进程分配到合理的物理核上,因为不同的核在共享性和历史运行情况都是不同的。有的物理核能够共享二级cache,而有的却是独立的。如果将有数据共享的进程分配给有共享二级cache的核上,将大大提升性能;反之,就有可能影响性能。

进程调度会涉及实时性、负载均衡等问题,目前研究的热点问题主要集中在以下方面:

  • 程序的并行开发设计
  • 多进程的时间相关性
  • 任务的分配和调度
  • 缓存的错误共享
  • 一致性访问问题
  • 进程间通信
  • 多处理器核内部资源竞争

多进程和多线程在cpu核上运行时情况如下:

  • 多个 CPU 核运行一个进程的时候,由于每个进程的资源都独立,所以 CPU 核心之间切换的时候无需考虑上下文
  • 多个 CPU 核运行一个线程的时候,有时线程之间需要共享资源,所以这些资源必须从 CPU 的一个核心被复制到另外一个核心,这会造成额外的开销
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值