47、多处理器系统与软件管理技术详解

多处理器系统与软件管理技术详解

1. 早期SMP技术及其局限性

早期有一种名为Giant的系统,在该系统下,内核能确保数据不会在其运行过程中发生改变。本质上,Giant保证了内核仅在一个CPU上运行,就像以往一样。

这种策略在双CPU系统中能有一定的效果。例如,在双CPU机器上同时运行一个中级数据库和一个Web服务器时,你可以确信CPU不会成为瓶颈。若一个CPU忙于处理网页请求,另一个则可自由响应数据库查询。然而,当使用八CPU机器时,问题就出现了,系统会花费大量时间等待Giant可用。

这种简单的对称多处理(SMP)技术既不高效也缺乏可扩展性。标准的SMP教科书很少提及这种方法,因为它太过笨拙。还有一些其他的SMP处理方法更糟糕,比如早期微软服务器操作系统的某些版本,将一个处理器专门用于用户界面,另一个用于其他所有任务。这种方法虽然能让鼠标响应更灵敏,但也很少在教科书中出现。

2. 现代SMP技术

如今,当你对内核加锁后,可以对锁进行细分。FreeBSD将Giant锁拆分成了许多更小的锁,现在内核的每个部分都使用尽可能小的锁来执行任务。最初,这些锁应用于核心内核基础设施,如调度器(内核中决定哪些任务可以使用哪些时间片的部分)、网络栈、磁盘I/O栈等。这样做立即提升了性能,因为当一个CPU在调度任务时,另一个可以处理网络流量。随后,锁进一步深入到各个内核组件中。网络栈的每个部分、I/O子系统的每个部分都有了自己的锁,这使得内核能够利用多个处理器同时执行多项任务。这些独立的内核子进程被称为线程。

不同类型的锁有不同的要求,常见的锁包括互斥锁(mutexes)、sx锁、读写锁(rw locks)、自旋互斥锁(spin m

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值