address-space相关内容

为什么操作系统不能使用整个 64 位进行寻址?为什么只有 48 位?

我正在阅读“了解 Linux 内核". 64 位架构的分页 正如我们在前面看到的部分,通常采用两级分页由 32 位微处理器使用.然而,两级分页不是适用于采用64 位架构.让我们用一个解释原因的思想实验: 首先假设标准页面大小4 KB.因为 1 KB 涵盖了一个范围210 个地址,4 KB 覆盖 212地址,因此 Offset 字段为 12位.这留下了多达 52 位的要分配的线性地 ..
发布时间:2021-11-25 05:28:33 C#

AppDomain地址空间

首先,问题是:CLR 规范是否保证在同一进程内的多个应用程序域中执行的代码将共享相同的地址空间?“共享地址空间"是指指向在一个应用程序域中分配的内存的指针对于在同一进程内托管的所有应用程序域之间进行读写是有效的. 考虑这个说明问题的独立示例:程序在单独的应用程序域中分配一个 Worker 对象.Worker 为 10,000 个整数分配一个内存块,并用数据填充它.然后程序跨应用域边界调用以获 ..
发布时间:2021-11-16 19:10:20 C#/.NET

线性地址和物理地址

什么是线性地址?它与物理地址有何不同? 解决方案 Linear address is generated after before page表映射.物理地址是生成before after页表映射(即分页). 线性地址,通过添加创建基址的逻辑地址段、CS、DS、ES、SS、FS 或 GS​​. 启用分页时,页面表格用于翻译线性地址到物理地址. 另一方面,物理地址是只不过,地 ..

给定16条地址线(总线)和8位字长的寻址能力是什么?

计算机具有16条地址线(地址总线?)和8位字长.什么是寻址能力? 我发现地址空间是2 ^ 16 = 65536,但是我仍然不知道如何计算可寻址性. 我知道可寻址性是每个空间占用的字节数,但是如何计算呢?任何帮助将不胜感激,尤其是一些将字长/地址总线与可寻址性相关联的通用公式. 对不起,这个问题太简单了. 解决方案 由于可以在地址总线上放置2 ^ 16个唯一值,并且希望能够 ..
发布时间:2020-07-16 19:21:45 其他开发

x86-64:规范地址和实际可用范围

Intel和AMD文档说,对于64位模式,实际上只有48位可用于虚拟地址,并且从48到63的位必须复制第47位(符号扩展).据我所知,目前所有的CPU都是以这种方式实现的,但是从理论上讲,没有任何事情可以扩展以后的实现中的可用空间(这不会破坏二进制兼容性). 是否存在一种标准方式以编程方式确定有意义的位数? (即某些特定的CPUID,就像物理地址一样). 我知道实际上48位对于任何合理 ..
发布时间:2020-07-13 22:14:14 其他开发

使用fork时如何映射内存?

我是"fork()"的新手,我到处都读到,当fork()被调用时,当前(调用)进程的精确副本已启动.有两个不同的内存位置分配给它们的变量和函数. #include int i=10; int pid; int main(){ if((pid=fork())==0){ i++;//somewhere I read that separate memory spa ..
发布时间:2020-05-01 10:14:21 服务器开发

如何检查exe文件设置为LARGEADDRESSAWARE

我开发一个C#程序,将加载文件并获取信息,如加载文件创建日期,修改日期,大小等,我需要知道的另一件事是,是否加载的文件(可执行文件。 exe文件)与 LARGEADDRESSAWARE 标志联系在一起。 FileInfo类不提供此信息。 有谁知道我是如何在C#中可以找出是否一个给定的executable.exe与 LARGEADDRESSAWARE 标志(办理地址大于2 GB)? 解决 ..
发布时间:2016-09-26 11:23:11 C#/.NET

你如何处理比UINT64较大的数字(C#)

在C#中,怎么能存储和与显著超过UINT64的最大值(18,446,744,073,709,551,615)的数值来计算? 解决方案 通过使用一个BigInteger类;有一个在的J#库(从C#绝对访问),另一个在F#(需要测试这一项),并有独立实现如在纯C#这一个。 ..
发布时间:2016-09-07 11:43:39 C#/.NET

映射到内存的文件名库OSX

我需要获得当前应用程序的所有内存映射库的文件名。目前我通过vm_region经历的所有映射库。不幸的是它不提供有关当前区域的文件名的信息。有没有办法让在C此信息,而不对的VMMap做的popen? 解决方案 对于经常 MMAP -ed文件,你可以使用 proc_regionfilename() 请注意,您必须提供一个MAX_PATH大小的缓冲区来了。 在苹果的libc中实现 - ..
发布时间:2016-08-23 10:04:05 C/C++

为什么不能OS使用全64位寻址?为什么只有48位?

我在读“理解Linux内核”。 分页的64位架构 正如我们已经看到在previous 段,两级寻呼是常用 所使用的32位微处理器。 两级寻呼,然而,这不是 适合于采用电脑 64位架构。让我们用一个 思想实验来解释为什么: 首先,假设一个标准的页面大小 4 KB。由于1 KB的覆盖范围 2 10 地址,4 KB占地面积2 12 地址,因此偏移字段是12 位。这使得高达52比特的 线性地址要 ..

AppDomain的地址空间

首先,这个问题:做CLR规范保证code执行多个应用程序域在同一进程内将共享相同的地址空间?通过“共享地址空间”我的意思是指向分配的应用程序域的一个存储器将是有效的阅读和写作在相同的进程中承载的所有应用程序域。 考虑这种自成一体的例子,说明了一个问题:该方案在一个单独的应用程序域分配工人对象。该工人分配10000整数的内存块,并用数据填充入。然后程序跨应用程序域边界来电索取指针分配的内存块,并验 ..
发布时间:2015-11-25 23:52:39 C#/.NET