草庐IT

中央处理器

全部标签

c - 如何在 Linux 中用 C 获取当前进程的处理器 ID?

这个问题在这里已经有了答案:Howtoknowonwhichphysicalprocessorandonwhichphysicalcoremycodeisrunning(5个答案)关闭3年前。我正在编写一个程序,它需要知道它在哪个逻辑处理器上运行。Thisquestion告诉我如何在汇编中执行此操作,同时thisquestion告诉我如何在不将其转换为AT&T语法的情况下在汇编中使用此代码。是否有更简单的方法使用现有的Linux系统调用或库函数来执行此操作,或者我是否有必要重新发明轮子?

c - 如何使用 u-boot 为 ARM 处理器加载应用程序

我目前正在64位Linux机器上编写一个应用程序(非常简单和基本的C语言helloworld程序)。我使用Linero的ARM嵌入式gcc工具链按应用程序进行编译,以将应用程序交叉编译到我的板上。有关信息,我使用的是带有ATMELAT91SAM9G20处理器的FOXG20V板。因此,我使用arm-none-eabi-gcc编译了我的应用程序,同时添加了一些允许我使用标准C函数(例如printf等)的选项。编译成功,我能够获得二进制文件,准备加载到我的板上。因此,下一步是编译和构建U-Boot,以便能够将我的应用程序加载到我的板上。我按照编译和构建使用makeARCH=armCROSS_

c - 如何使用 u-boot 为 ARM 处理器加载应用程序

我目前正在64位Linux机器上编写一个应用程序(非常简单和基本的C语言helloworld程序)。我使用Linero的ARM嵌入式gcc工具链按应用程序进行编译,以将应用程序交叉编译到我的板上。有关信息,我使用的是带有ATMELAT91SAM9G20处理器的FOXG20V板。因此,我使用arm-none-eabi-gcc编译了我的应用程序,同时添加了一些允许我使用标准C函数(例如printf等)的选项。编译成功,我能够获得二进制文件,准备加载到我的板上。因此,下一步是编译和构建U-Boot,以便能够将我的应用程序加载到我的板上。我按照编译和构建使用makeARCH=armCROSS_

Linux 为一组进程保留一个处理器(动态地)

有没有办法将处理器排除在正常调度之外?也就是说,使用sched_setaffinity我可以指示线程应该在哪个处理器上运行,但我正在寻找相反的情况。也就是说,我想从正常调度中排除给定的处理器,这样只有明确调度在那里的进程才能在那里运行。我也知道在引导期间我可以限制init进程使用的处理器,因此所有继承的进程。然而,我希望有比这更动态的解决方案——我可以在启动后更改的内容。请注意,我正在寻找调度线程,而不仅仅是高级进程(这在某些情况下可能会有所不同)。 最佳答案 cgroups,或者具体来说,cgroups基础设施的cpuset部分是

Linux 为一组进程保留一个处理器(动态地)

有没有办法将处理器排除在正常调度之外?也就是说,使用sched_setaffinity我可以指示线程应该在哪个处理器上运行,但我正在寻找相反的情况。也就是说,我想从正常调度中排除给定的处理器,这样只有明确调度在那里的进程才能在那里运行。我也知道在引导期间我可以限制init进程使用的处理器,因此所有继承的进程。然而,我希望有比这更动态的解决方案——我可以在启动后更改的内容。请注意,我正在寻找调度线程,而不仅仅是高级进程(这在某些情况下可能会有所不同)。 最佳答案 cgroups,或者具体来说,cgroups基础设施的cpuset部分是

linux - 运行多线程应用程序的新四核处理器中的 linux 内核有多好

这里有人对在新的四核处理器上运行多线程应用程序的linux线程调度程序有经验吗?如果有这样的人,您能否在这里写下您关于内核如何管理不同线程的性能的经验,您是否经历过任何线程饥饿或其中一个内核饥饿?谢谢。 最佳答案 考虑到像ChristophLameter(和调度程序上的IngoMolnar)这样的内核开发人员已经调整了内核以在4096处理器上运行良好,并且考虑到英特尔本身在这个问题上投入的优化量,多核特定调整既可以提高性能和节能,我敢打赌内核比我们任何人在用户空间中编写的任何东西都要优化得多。线程库也一样;目前只有一个线程库,NPT

linux - 运行多线程应用程序的新四核处理器中的 linux 内核有多好

这里有人对在新的四核处理器上运行多线程应用程序的linux线程调度程序有经验吗?如果有这样的人,您能否在这里写下您关于内核如何管理不同线程的性能的经验,您是否经历过任何线程饥饿或其中一个内核饥饿?谢谢。 最佳答案 考虑到像ChristophLameter(和调度程序上的IngoMolnar)这样的内核开发人员已经调整了内核以在4096处理器上运行良好,并且考虑到英特尔本身在这个问题上投入的优化量,多核特定调整既可以提高性能和节能,我敢打赌内核比我们任何人在用户空间中编写的任何东西都要优化得多。线程库也一样;目前只有一个线程库,NPT

linux - 英特尔处理器如何访问 Branch Trace Store 缓冲区?

intel处理器具有BranchTraceStore(BTS)功能,记录分支并将它们存储在用户/程序指定的缓冲区中。其实我想知道处理器是通过MMU单元(页表)访问BTS缓冲区还是直接物理访问BTS缓冲区? 最佳答案 来自IntelManualVolume3,Chapter17.4.9(BTSandDSSaveArea)DebugStore区域的32位版本的图像BTSbufferbase—LinearaddressofthefirstbyteoftheBTSbuffer.Thisaddressshouldpointtoanatural

linux - 英特尔处理器如何访问 Branch Trace Store 缓冲区?

intel处理器具有BranchTraceStore(BTS)功能,记录分支并将它们存储在用户/程序指定的缓冲区中。其实我想知道处理器是通过MMU单元(页表)访问BTS缓冲区还是直接物理访问BTS缓冲区? 最佳答案 来自IntelManualVolume3,Chapter17.4.9(BTSandDSSaveArea)DebugStore区域的32位版本的图像BTSbufferbase—LinearaddressofthefirstbyteoftheBTSbuffer.Thisaddressshouldpointtoanatural

linux - 多处理器机器中posix线程的并发

我对多处理器机器中posix线程的并发性有一些疑问。我在SO中发现了类似的问题,但没有找到决定性的答案。以下是我的理解。我想知道我是否正确。Posix线程是用户级线程,内核不知道它。内核调度程序会将进程(及其所有线程)视为一个实体进行调度。是线程库依次选择运行哪个线程。它可以在可运行线程中分割内核给定的cpu时间。用户线程可以在不同的cpu内核上运行。即让线程T1和T2由Process(T)创建,然后T1可以在Cpu1中运行,T2可以在Cpu2中运行,但它们不能同时运行。请让我知道我的理解是否正确。谢谢... 最佳答案 既然你用“L