打开电脑时多核处理器会发生什么变化?
也就是说,我想从磁盘读取引导程序并运行 - 但它是由单核运行吗?哪一个?或者引导加载程序是否已经使用了所有内核?
然后在操作系统准备就绪后,是否有责任将所有进程分散到所有可用内核中?这些关键流程如何在多核上进行协作?锁定(多核互斥?)比较贵吗? (或者是在单核上运行的操作系统)
最后,当你拥有一个多CPU主板时(如那些带有2个或4个CPU插槽的服务器MoBos),上述所有工作如何工作?
答案 0 :(得分:2)
当PC开启时,在第一步,BIOS搜索bootloader程序然后运行它。 名为BSP(Bootstrap Processor)的单核将运行bootloader。
Bootloader引导您的系统运行OS的内核。 BSP是由硬件和物理层指定的CPU核心之一。这个核心用于初始化和关闭过程。 实际上,BSP负责初始化系统和启动操作系统。 其他核心仅在操作系统启动并运行后才会激活。 操作系统的内核(其主线程)通常在BSP核心上运行,它管理其他核心以运行当前进程的线程或一起运行某些进程。 此外,核心能够做一些原子指令。对于每个核心,这些指令确保共享内存总线(高级缓存)已具有独占所有权。 这些指令可帮助操作系统通过软件互斥实现来管理所有进程和线程(根据其优先级)。
例如:
Intel CPU支持名为" lock"。
的前缀指令lock inc [ebx]
运行此指令的核心立即获取总线,其他核心工作将暂停(直到它正在运行)。
我不知道有关多CPU系统的任何信息。但是,在多CPU系统中,每个CPU都有独占的RAM,并且所有CPU都通过QPI通道(用于Intel)连接在一起。可能由于RAM分离,并发问题较少。