多处理器操作系统的性能分析(2)
发布时间:2021-06-07
发布时间:2021-06-07
操作系统
第!期何莉等’多处理器操作系统的性能分析!!!!
持多线程程序!
!"!#$%&’
早期的!"#$%并不向用户提供线程支持"然而小红帽&’(版本包括了!"#$%线程库"而且已经成为最近!"#$%分类的标准线程库!!"#$%线程库是)*+",-!,-./提出的0123455674线程包的补充!!"#$%线程提供了内核线程"新的克隆系统产生线程"所有的时序都在内核里完成!这种方法的主体思想完全利用了多处理器的优点!
!"#$%线程遵循所谓的#一对一$模式"即在
内核中"每一个线程实际上是一个单独的进程%内核调度会好好地安排这些线程"就像处理常规进程一样!
&一对一$模式的优点包括’将809密集型多处理器的开支最小化(大约每个处理器一个线程)"将:;1操作的开支最小化"简化一些强行执行的操作%主要缺点是操作环境的花费过于昂贵"它必须使用内核"在这一点上!"#$%系统线程不能绑定809"系统运行很稳定%
!"()$%*+,-./0(111234
<"#=.>?@A支持本地线程"任何多线程程序
可使用系统中所有可获得的809%<"#=.>?@A和
!"#$%一样"用一个调度程序来安排系统线程和进程的运行%主要的不同之处在于’在@A中"基本时序单元是一个线程"相反"在!"#$%中则是一个进程%@A进程中有实际的地址空间"包括可执行
指令*文件句柄等资源"还有一些在其它地址空间内执行的线程%
调度程序在不同的进程和线程中并没有什么差别"相反"它会检查那些将要在同一时刻运行的线程的优先级"然后决定执行哪一个%也就是说"调度程序试图将线程分配给上一次执行过它的处理器%一些线程的数据会驻留在它上一次运行的处理器缓存中"<"#=.>?@A工具软件可以利用这一优势%在大多数情况下"下一个线程的数据将占据缓存"这就不容乐观了%当有一个线程准备执行"它的优先级比正在运行线程的优先级高"调度程序会依据协定做出该执行哪一个程序的决定"调度程序会权衡利弊"是否该安排处理器执行新线程"把刚才正在执行的线程转向另一个处理器而丢失缓存数据%
万方数据
B应用
快速傅立叶变换常被应用于测试系统性能的
优劣%在这里"我们选择快速傅立叶变换以测试双处理器计算机的性能"其目的是要了解增加了第二个处理器后的系统性能是否会有所增加%快速傅立叶变换很适合这种测试"它只需要少数几个
:;1便可计算大量数据(所有数据在主存中)%我
们采用快速傅立叶变换算法将其从单线程转换到多线程%
B74快速傅立叶变换和CA变换
应用CA变换和快速傅立叶变换能高效地运
算%CA变换的定义同快速傅立叶变换相似%它用简单的式子(D.?(%)E?"#(%))代替快速傅立叶变换复杂的式子(D.?(%)E"F?"#(%))"如果我们将GHC+*,转换成CA变换"则’
#IJ
(D.?B!
L%
E?"#B!L%#HK)
B7B
单线程应用快速傅立叶变换算法快速傅立叶变换算法步骤如下’
:#"M"*N"O,P,*NQ*M*G--*/
:#"M"*N"O,:R*S"#*-/Q*M*G--*/8*ND$N*M,TCA.UP,*NQ*M*
8*ND$N*M,TCA.U:R*S"#*-/Q*M*T.-3+,-/0*"-.UQ*M*Q.
P,*--*#S,=*M*3#=Q.
B76多线程应用快速傅立叶变换算法
单线程算法并没有利用系统中第二个处理器
的优势%我们知道CA变换可以简化复杂的快速傅立叶变换"即通过计算傅立叶变换的输入数据直接把结果相加即可%多线程快速傅立叶变换算法步骤如下’
:#"M"*N"O,Q*M*G--*/VV2M*-MU"-?MMW-,*=:#"M"*N"O,
Q*M*G--*/VV2M*-M?,D.#=MW-,*=
<*"MU.-AW-,*=?M.T"#"?W8*ND$N*M,TCA.UQ*M*VVTCA.U
=*M*MW-,*=
8*ND$N*M,TCA.U
Q*M*VVTCA.U=*M*MW-,*=
<*"MU.-MW-,*=?M.U"#"?WT.-3+,-/0*"-.UQ*M*Q.Q*M*G--*/VV2M*-M?,D.#=MW-,*=
P,*--*#S,=*M*3#=Q.
上一篇:温室CO2浓度监测系统设计
下一篇:新二十四式太极拳教案9