多处理器操作系统的性能分析(4)
发布时间:2021-06-07
发布时间:2021-06-07
操作系统
第!期何莉等’多处理器操作系统的性能分析!!"!
!!!!在双处理器系统上运行多线程程序比相应的
单处理器系统运行单线程程序要快!当程序处理大量数据时所获得的性能是最高的"最大的加速度是!"#!"在$%&’(系统中获得的加速度相应地比在)%&*+,-./中的加速度要低"
0"!"!$%&’(系统
$%&’(线程库用内核调度程序安排程序中所
有运行的线程"我们注意到性能增加了!但意义并不大"最大加速度是!"12!比设想的要低!这主要有两个方面的原因"首先!在第!节中提到过!
$%&’(不允许线程绑定!将要运行的线程安排到任
意可获得的处理器上运行!那么!它们有可能不在上一次运行过的处理器上执行同一个线程"发生这种迁移时!正在执行的线程要移动处理器缓存中的指令和数据!这种移动的花费大!且又削减了系统的性能"其次!$%&’(线程是被修改过并在内核里运行的"工业研究显示!创建和修改一个程序比线程花费大很多"在同一台计算机中!在$%&’(创建一个新程序比创建一个新线程所花的时间多
!!倍"同样的执行环境!在$%&’(中程序转换比线程转换所花的时间要多3倍"0"!"4)%&*+,-./系统
)%&*+,-./中做的实验说明由第二个处理器增加的性能与$%&’(系统相似!最大的加速度是!"#!"两个系统增加的性能不同是因为)%&5*+,-./内核是线程导向!而$%&’(内核是程序导向")%&*+,-./操作系统固有的支持线程并按它
的安排执行"内核把每一个线程分配给一个时间段!程序员通过修改优先级来改变分配给每一个线程的时间!实验用普通优先级的线程来运行"我们做了个尝试!用高优先级线程来运行程序!遗憾的是!程序执行时间比普通优先级的执行时间要长"
)%&*+,-./之所以比$%&’(中的执行时间要
长!是由于两种操作系统的性质以及所使用的编
万方数据
译器不同"$%&’(用的编译器是6774"#!!而
)%&*+,-./用的是8%-’9:;<<"
0"4
双处理器上运行单线程程序0"4"!$%&’(系统
正如前面提过的!单线程程序在第二个处理器上毫无收益"事实上!单线程程序在双处理器计算机上的运行时间比在单处理器计算机上的运行时间长"在多处理器计算机上!内核调度程序在最先获得的处理器上运行"当最先获得的处理器不是该程序上一次运行的处理器时!处理器缓存必须更新数据和指令"频繁地更新处理器缓存会增加执行时间"通常!在$%&’(系统里不会把一个程序限制在某个特定的处理器上运行"
0"4"4
)%&*+,-./系统
与$%&’(系统一样!在)%&*+,-./系统中!
单线程程序在第二个处理器上毫无收益"内核有时会安排程序运行在一个处理器上!这个处理器并不是上次运行过该程序的处理器"同$%&’(一样!处理器缓存必须更新数据和指令!这样会增加执行时间"
3结论
多处理器计算机的运算能力比单处理器计算
机强!但只有支持多线程程序才能在多处理器上受益"由于额外处理器产生的效益因不同的系统而不同"在实际应用中!由第二个处理器产生的效益在4=>?@=>不等"参考文献!
#!$
AB+C6BDE!D:9&A"F%6G:HI9C9::B:;+JK’L%&6#M$"/GBNB&O9J%&:;’JJ%&6-I’P:%%G%&6;+JK9&HQ&7"电子和计算机工程!4==4%R&’
#4$梁红兵!汤小丹"计算机操作系统%第4版&#M$"西安’西安电子科技大学出版社!4==!"
#R$
EL9::%&6-"操作系统())
内核与设计原理%第0版&#M$"魏迎梅!王涌!等译"北京’电子工业出版社!4==!"
上一篇:温室CO2浓度监测系统设计
下一篇:新二十四式太极拳教案9