cost 93 ms
多重映射地址上的 AArch64 内存同步操作 - AArch64 memory synchronization operations on multiply-mapped addresses

假设我有两个页面映射到相同的物理内存。 一个页面中虚拟地址上的获取操作(或围栏)是否会与另一页面中虚拟地址上的释放操作(或围栏)正确同步? 其次,缓存维护操作( dc , ic )也可以使用这种多重映射内存吗? 换句话说... ...一个核心上的stlr (或dmb ishst ,如果栅栏 ...

一个64bit的Linux Kernel占多少memory? - How much memory does a 64bit Linux Kernel take up?

尽管主要使用 48 位地址,但 x86-64 的地址空间很大。 在 x86 32 位机器上,很清楚 kernel 占用了多少 RAM。 通常大约 1 GB 的ZONE_NORMAL位于 memory 的底部,而物理(非虚拟)地址中 1GB 以上的所有其他内容用于ZONE_HIGHMEM (用于用户 ...

为什么虚拟地址空间的分配不会抢走你所有的虚拟memory? - How come the allocation of virtual address spaces doesn't rob you of all virtual memory?

在 32 位计算机上,虚拟 memory 地址表示为 0 到 2^32 之间的 integer。 由于是 32 位系统,不能表示低于 0 或高于 2^32 的地址,因此我们总共有 4 GiB(2^32 字节)的虚拟 memory 可用。 我们还知道地址空间是 memory 保护的; 他们不能接触, ...

Windows map DLL 是否指向不同进程中的相同虚拟地址? - Does Windows map DLLs to the same virtual address in different processes?

假设两个进程正在使用 Kernel32.dll,那么 Windows map DLL 是否指向两个进程中的相同虚拟地址空间? 如果不是,分页机制如何最终使用相同的物理地址,实际上为两个进程加载了 DLL? 我尝试在 windows internals book 中找到此信息,但没有找到任何信息 ...

内核的物理内存映射在所有虚拟地址空间之间是否相同? - Is the kernel's physical memory mapping the same between all virtual address spaces?

在启动时,我了解内核已加载到主内存中。 当我们生成进程时,一部分虚拟地址空间是为内核保留的。 如果每个进程的虚拟地址空间都包含到内核的映射,并且每个进程中内核的虚拟地址空间始终相同:这是否意味着每个进程/虚拟地址空间都映射到内核所在的主内存的相同部分居住? 这也意味着系统调用接口对所有进程都可用,并 ...

如何遍历xv6中进程的所有页表条目? - How to loop through all page table entries of a process in xv6?

我正在尝试遍历 xv6 中进程的所有页面。 我查看了这张图以了解它是如何工作的: 但我的代码得到: 代码: 这是在 proc.c 中的一些自定义 function 中,在其他地方被调用。 p 是进程指针。 据我了解,cr3 包含当前进程的物理地址。 但是在我的情况下,我需要获取给定进程指针的页 ...

英特尔缓存地址 - Intel cache Address

这是我的Intel Xeon Silver 4210R CPU 上的 L3 缓存(共享)配置- 此配置意味着缓存中的集合数是- 现在我试图了解 缓存的寻址。 这里,高速缓存行(或块)大小为 64 字节,intel 使用字节寻址系统。 因此,最少 缓存地址的有效位应用于块偏移。 通过类似的计算,应该 ...

如何找到在 Linux 环境中可用的用户空间内存量? - How to find how much userspace memory available to use in Linux environment?

我在我的 32 位 Linux 映像中使用CONFIG_VMSPLIT_1G配置。 所以3GB的虚拟地址空间分配给内核,1GB的虚拟地址空间分配给用户空间。 现在,如果我在使用 cat /proc/meminfo显示的可用内存的 80% 的用户空间中运行 stressapptest,它会抛出一个错误 ...

虚拟内存到物理转换? - Virtual Memory To Physical Translation?

我的书有以下图片: 关于 L2(或 L1)中有多少个 PTE 的问题,答案是 16 = 2^4 但这是为什么呢? 在问题中,给出每个 PTE 大小为 2 个字节,因此答案应该是 2^4/2 = 8 因为 L2 索引保存我们将指向的位置。 例如,如果它是 2,那么它指向第一个 PTE 的后半部 ...

虚拟地址空间和虚拟内存有什么区别? - What is the difference between virtual address space and virtual memory?

当用户创建一个进程时,会创建一个虚拟空间地址,它是 32 位操作系统(0 到 2^32-1)的 4g 大小? 进程认为它有整个内存可以使用,但虚拟地址被转换为物理地址并存储在进程的页表中。 我很困惑什么是虚拟内存? 它与虚拟地址空间相同吗? ...

将虚拟地址(逻辑地址)映射到物理地址 - mapping virtual address (logical address) to physical address

这个问题是指使用分段和分页的架构。 在此架构中,32 位虚拟地址分为以下字段: 4位段数| 12 位页码 | 16 位偏移找到以下每个虚拟地址对应的物理地址(如果虚拟地址无效,请回答“bad virtual address”)。 1.00000000 2.20022002 3.10015 ...

虚拟地址空间的较低保留部分 - Lower reserved portion of virtual address space

我一直在研究 x86-64 汇编和程序的 memory 布局。 我遇到了一个程序的虚拟地址空间示例,其中较低部分(0x00000000-0x00010000)被标记为保留。 但我找不到对此的解释。 我有两个问题为什么保留这部分。 我真的不能从我的程序中访问它吗? 这个较低的部分算作用户空间 memo ...

如何从用户空间获取 FreeBSD 中任何地址的物理地址? - How to get physical address for any address in FreeBSD from userspace?

对于某些调查,我需要在 FreeBSD 12 上找出指针的物理地址。在 Linux 上,我会使用/proc/self/pagemap来做到这一点,但在 FreeBSD 上,我还没有找到一种方法来做到这一点。 那么,有没有办法从 FreeBSD 中的用户空间获取任何虚拟地址的物理地址? ...

操作系统如何为每个进程生成页表? - How are page tables generated by the operating system, per process?

我知道每个进程都有自己的虚拟地址空间。 每个进程都会生成一个表,将虚拟地址映射到驻留在物理内存中的物理地址(称为页面)。 当尝试访问地址时,例如0x123 ,将使用该表查找该地址。 如果没有找到翻译,然后一个segfault产生。 否则返回转换后的地址。 (为了简单起见,我没有提到 TLB 和页 ...

了解 64 位 Linux 上的 kmap - Understanding kmap on 64-bit Linux

让我首先承认,即使在阅读了几篇相关资源后,我仍然不完全清楚 Linux 上的高 memory 和低 memory 的概念。 但是,据我对 64 位 Linux 的了解,无论如何都没有高 memory (如果我错了,请纠正我)。 我试图了解 kmap 和地址空间如何在 Linux kernel 版本 ...


 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM