有没有办法找到你的线程运行在哪个处理器(在单个系统或多个系统上),使用Java本机线程?如果没有,是否有任何图书馆可以提供帮助?
让我们关注单处理器计算机系统.创建进程时,据我所知,页面表会被设置,将虚拟地址映射到物理内存地址空间.每个进程都有自己的页表,存储在内核地址空间中.但是MMU如何为流程选择正确的页面表,因为不仅有一个流程在运行,而且会发生许多上下文切换?
任何帮助表示赞赏!
最好,西蒙
x86 computer-science processor process computer-architecture
我从命令行运行我的注释处理器时遇到了麻烦.问题是它适用于Windows环境,但不适用于我的Linux安装.
我的处理器位于jar文件(meta-validator.jar)中.我还添加了META-INF/services/javax.annotation.processing.Processor的条目,其中包含我的处理器类的完全限定名称.
我试图用这个命令调用注释处理器:
javac -cp "./metadata-validator.jar; ... (path to annotations.jar etc.)" -processor xammt.validator.modules.ValidatorModule -proc:only " ... path to sources"
Run Code Online (Sandbox Code Playgroud)
在Windows环境中它只能工作(Windows 7 64位Pro,JDK 1.7.xx),找到处理器并执行处理方法.
在我的linux环境中(Linux Mint 13 32bit - >基本上是Ubuntu 12.04,Oracle JDK 1.7)我收到消息:
error: Annotation processor 'xammt.validator.modules.ValidatorModule' not found
warning: Annotation processing without compilation requested but no processors were found.
Run Code Online (Sandbox Code Playgroud)
也没有-processor开关我得到相同的警告(与其他冗长的东西).
什么可能导致这个问题?我想我的linux机器上的JDK安装正确,因为我能够毫无问题地运行/编译java应用程序.
谢谢你的建议.
编辑:我仍然不知道为什么这不起作用.有趣的是,它以编程方式工作 - 我设法通过Java Compiler API调用我的注释处理器而没有问题(在两个平台上),这也是因为调试而更好的解决方案.
EDIT2: 实际命令:
javac -cp "./metadata-validator.jar;./lib/common-library.jar;./Annotation source.jar"
-processor xammt.validator.modules.ValidatorModule -proc:only "SourceFile.java"
Run Code Online (Sandbox Code Playgroud)
已解决: 查看http://en.wikipedia.org/wiki/Classpath_(Java)#OS_specific_notes
我正在开发一款Android游戏,Galaxy S和双核Galaxy S2等单核手机之间的性能差异可与日夜相媲美.因此,我没有为单核和双核/四核制作不同的版本,而是考虑使用设备的处理器数来关闭某些图形功能.
但获得处理器数量的可靠性如何?有些单核手机有像英特尔超线程这样的线程,它将一个核心显示为两个吗?或者一些双核手机比Galaxy S2慢很多?
我是qemu的新手,我读到它允许单步模式仿真.这很有用,因为我试图在每个周期转储一些物理ram的地址.不幸的是,qemu文档非常糟糕.我知道如何从qemu监视器启用单步操作模式,但我不知道在每一步都放置我想要执行的代码.有没有人有这方面的信息?
每当发生缓存未命中时,是否可以知道丢失的缓存行的地址?现代处理器中是否有可以提供此类信息的硬件性能计数器?
我正在学习OpenCL编程,并注意到一些奇怪的东西.
也就是说,当我在我的机器上列出所有支持OpenCL的设备(Macbook Pro)时,我得到以下列表:
第一个是我的CPU,第二个是英特尔的板载图形解决方案,第三个是我的专用显卡.
研究表明,英特尔已将其硬件OpenCL兼容,以便我可以利用板载图形单元的强大功能.那将是Iris Pro.
考虑到这一点,CPU与OpenCL兼容的目的是什么?仅仅为了方便,内核可以在CPU上运行,因为备份不应该找到其他卡,或者当运行代码作为OpenCL内核而不是常规(C,良好线程)程序时,是否存在任何速度优势中央处理器?
它是由地址总线的大小决定的; 如果是,那么8086是一个20位处理器?如果没有什么标准可以为处理器分配像8位,16位,32位这样的位数?
我只是想知道微软是否必须等到128位procssor在他们使用128位操作系统之前出来,或者他们是否可以提前处理它.
我不太了解操作系统,但是,我喜欢你能给我的任何信息,谢谢:)
我有这么多的术语感到困惑,例如,我的教练会谈word,byte addressing和memory location.
我的印象是,对于a 32-bit processor,它可以解决2^32 bits,这是4.29 X 10^9 bits (NOT BYTES).
我现在的想法是:
的memory是像array的buckets每一个的1 byte length.
当我们说byte addressing(我猜这是最常见的)时,每个char都是1 byte从第一个桶中检索出来的(例如).为了int下一个4 bytes被放在一起来little-endian ordering计算Integer价值.
所以每一个记忆,我认为它,8 bits或者1 byte,它可以放弃2^8 locations,这远远小于cpu可以解决的问题.
在我看来,有一些非常基本的误解,如果一些专家可以用简单的术语解释一个CS-专业的学生可以永远这样做.
我已阅读各种网页,包括这一项上的字,并在这里unit of address resolution给出8b的ARM,它增加了更多的我的困惑.