第18章 多核环境下进程的同步与调度

本文主要探讨了多核环境下的进程调度和同步问题,包括旋锁的概念以及多核操作系统的调度策略。在Linux系统中,可以利用irqbalance服务实现线程的负载均衡分配,或者通过cgroup机制和pthread库的线程亲和性设置将线程固定在特定的CPU核心上。
摘要由CSDN通过智能技术生成

18.1 多核环境下进程的调度和同步

对于多核计算机,不同的进程会允许到不同的CPU或者执行core上,所以” 同步“  不仅仅是线程之间的同步,而有可能是执行core或者CPU之间的同步,而进程的调度也会涉及到哪个进程分配到哪个cpu或者执行core上,比之前进程的调度复杂了许多!
再加上多核系统对内存访问方式的复杂行,那多核计算机对进行、内存的调度、管理更加复杂,这无疑也增加了操作系统的能耗!

18.2 多核进程同步

在多核计算机中因为多个cpu和执行core 存在,所以多个程序可以真正的同时执行。这时又会产生单核时的冲突(原子操作);2个进程会同时访问一个数据或者内存,需要每个一个操作都是原子操作


18.3 旋锁

旋锁是多核操作系统中最常见的cpu 互斥机制,是操作系统用于CPU 互斥的机制,一帮用旋锁来保护全局数据,用户程序不能使用旋锁。


18.4 多核操作系统的调度

多核操作系统有多个同时执行的单元,多个程序可以同时进行;这就存在一个调度;一个物理cpu 都有自己的就绪队列,该就绪队列里面又有许多优先级不同的子队列;一般操作系统会让所有的cpu 负载均衡,就是保持所有的c铺忙碌程度均等;如果发现有些cpu 忙、有些cpu闲就会触发负载均衡,让忙的cpu 减少一些task,闲的cpu 加上一些task即可

18.5 一台LINUX 多核的机器,单个进程怎么实现多线程分配到多个cor

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值