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即可