问题标签 [systems-programming]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 以编程方式获取缓存行大小?
欢迎所有平台,请指定您回答的平台。
一个类似的问题:How to programmatically get the CPU cache page size in C++?
c - 转换:uid_t 到字符串,off_t 到字符串
我目前正在编写系统编程作业,其中一部分我需要获取目录中文件的一些信息。
对于文件的统计信息,我们有ctime()
将time_t
类型转换为string
并返回指向它的指针的函数。
但是uid_t
和off_t
类型呢?我通过互联网搜索并找不到任何功能..或者如果不存在任何功能,您能告诉我如何实现这样的功能吗?
c++ - C/C++ 如何判断一个程序是否已经在运行?
在 Windows 环境中,我不希望我的程序的两个实例同时运行。
有关的
memory-management - 关于 N 路集关联缓存步数的信息
我在 Internet 上访问的一些资源对集合关联缓存的工作方式存在分歧。
例如,硬件机密似乎相信它是这样工作的:
然后主 RAM 内存被划分为内存缓存中可用的相同数量的块。保持 512 KB 的 4 路组关联示例,主 RAM 将分为 2,048 个块,与内存高速缓存中可用的块数相同。每个内存块都链接到缓存内的一组行,就像在直接映射缓存中一样。
http://www.hardwaresecrets.com/printpage/481/8
他们似乎在说每个缓存块(4 个缓存行)映射到一个特定的连续 RAM 块。他们说不连续的系统内存(RAM)块不能映射到同一个缓存块。
这是hardwaresecrets认为它如何工作的图片 http://www.hardwaresecrets.com/fullimage.php?image=7864
与维基百科的设置关联缓存图片对比 http://upload.wikimedia.org/wikipedia/commons/9/93/Cache%2Cassociative-fill-both.png。
布朗不同意硬件秘密
考虑一下如果每个高速缓存行有两组字段会发生什么:两个有效位、两个脏位、两个标记字段和两个数据字段。一组字段可以为主内存的一个区域缓存数据,而另一组字段可以为恰好映射到同一缓存行的另一个区域缓存数据。
http://www.spsu.edu/cs/faculty/bbrown/web_lectures/cache/
也就是说,系统内存的非连续块可以映射到同一个高速缓存块。
系统内存上的非连续块和缓存块之间的关系是如何创建的。我在某处读到这些关系是基于缓存步长的,但是除了它们存在之外,我找不到任何关于缓存步长的信息。
谁是对的?如果实际使用跨步,跨步是如何工作的,我是否有正确的技术名称?如何找到特定系统的步幅?它是基于寻呼系统的吗?有人可以指出一个详细解释 N 路集关联缓存的 url 吗?
另见: http ://www.cs.umd.edu/class/sum2003/cmsc311/Notes/Memory/set.html
c - 我们必须“出于性能原因”使用 C
在这个语言众多的时代,几乎每项任务似乎都有一门很棒的语言,我发现自己在专业上与“只有 C 是快”的口头禅作斗争,其中“快”的真正意思是“足够快”。我与非常理性、思想开放的人一起工作,他们喜欢比较数字,而我所拥有的只是想法和意见。你能帮我找到超越主观意见进入“现实世界”的方法吗?
您能帮我找到有关是否可以将任何其他语言用于嵌入式和(Linux)系统编程的研究吗?我很可能会提出一个错误的假设,并且非常感谢研究向我展示这一点。您能否链接或包含好的数字,以帮助将“这只是他/她的意见”评论保持在最低限度。
所以这些是我的特殊要求
- 记忆力不是一个严重的限制
- 便携性不是一个严重的问题
- 这不是一个实时系统
windows - 64 位 Windows 是否使用 KERNEL64?
我正在查看一些带有 dumpbin 的库,我注意到所有 64 位版本都链接到 KERNEL32。64 位 Windows 上没有 KERNEL64 吗?如果不是,为什么?
我所有的操作系统都是 32 位的,所以我不能只看。谷歌搜索没有带来任何有价值的东西,所以我怀疑没有 KERNEL64,但我仍然很好奇为什么会这样。
编辑:我后来发现这非常有用。 x64 的 MSDN 指南
systems-programming - 系统编程中的工作区是什么?
我在学习链接时读过它。当程序将要执行时,它首先由链接器链接。当时它被放在工作区。现在我想现在这个工作区是什么?
linux - 如果指向的文件被移动或删除,Linux 上打开的文件句柄会发生什么
如果指向的文件同时获得,Linux 上的打开文件句柄会发生什么:
- 移开 -> 文件句柄是否保持有效?
- 已删除 -> 这是否会导致 EBADF,表明文件句柄无效?
- 替换为新文件 -> 文件句柄是否指向这个新文件?
- 替换为指向新文件的硬链接 -> 我的文件是否处理“跟随”此链接?
- 替换为指向新文件的软链接 -> 我的文件句柄现在是否命中此软链接文件?
为什么我要问这样的问题:我正在使用热插拔硬件(例如 USB 设备等)。可能会发生设备(以及它的 /dev/file)被用户或另一个 Gremlin 重新连接的情况。
处理这个问题的最佳做法是什么?