超线程和并行性

时间:2018-11-30 17:39:57

标签: multithreading parallel-processing

超线程是否会更改已编译程序的二进制代码序列? 如果我们有一个编译后的二进制代码,例如: 10100011100011100101010010011111100011111110010111 如果启用了超线程,线程将代表什么? 只是该二进制代码的一部分吗? 操作系统如何为这些线程分配时间间隔?

对于并行性: 编译后的二进制代码会有所不同吗? 内核如何处理此二进制序列? 只是在不同的内核中执行代码的某些部分? 操作系统如何分配并行任务?有什么具体的结构吗?

谢谢

1 个答案:

答案 0 :(得分:0)

大多数程序被编译为由特定的操作系统运行,并且可以在广泛的处理器家族中的任何成员上运行(例如,在Windows中,对于x86-64系列)。在给定的CPU系列中,CPU可能具有不同数量的内核,并且可能存在具有或不具有超线程的内核。

这些都不会更改二进制代码。该程序通常可以在CPU系列的任何成员上运行,而无需进行任何更改。

运行该程序的操作系统可能会或可能不会针对处理器家族的不同成员进行不同的配置。


有时,可以编译程序 以利用特定CPU的功能,但是以这种方式编译的程序不适合分发到不同的站点和/或PC。


  

如果我们有一个编译后的二进制代码,例如:101000111000 ...如果启用了超线程,那么一个线程代表什么?只是该二进制代码的一部分吗?

这是一个无法回答的问题。通过阅读有关计算机体系结构的入门书籍,您可以了解有关“二进制代码”的含义的更多信息。例如https://www.amazon.com/Elements-Computing-Systems-Building-Principles/dp/0262640686/