多处理器操作系统的性能分析(2)

发布时间: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.

多处理器操作系统的性能分析(2).doc 将本文的Word文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:7 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219