标签: virtual-memory

/proc/pid/smaps 中给定进程的 PSS 值多久更新一次

因此,如果 n 个进程共享一个大小为 M 的库 L,那么对它们的 PSS 的贡献是 M/n。

现在想象其中一个进程终止。所以贡献是 M/(n-1)。

问题 1:我的问题是这种变化多久会反映在仍在运行和使用共享库的进程的 PSS 值中?

Q2:作为一个简单的例子,假设只有两个进程在使用大小为 100K 的共享库 L。PSS 对每个进程的贡献是 50K。现在当 P2 死亡时,它是唯一使用 L 的进程。所以它的 PSS 应该增加并变成 100K。这会在多长时间内发生,在 P2 死后,还是在一段时间后?经过多少时间?

linux process kernel memory virtual-memory

2
推荐指数
1
解决办法
3421
查看次数

什么是地址绑定?

我找到了一些关于什么是“地址绑定”的解释。他们说“地址绑定是将虚拟或逻辑地址映射到物理地址的操作”。

这个定义正确吗?

我无法确定它是否正确,因为大学的演示文稿说将虚拟地址转换为物理地址是在执行时执行的。但是,地址绑定表示绑定操作可以在编译时、加载时或执行时实现。

这说明存在矛盾。

virtual-memory memory-management

2
推荐指数
1
解决办法
1157
查看次数

程序内存布局中的“内核堆栈”、“C 运行时启动函数的框架”和“main() 的框架”在哪里?

从 Linux 编程接口:

在此处输入图片说明

  1. 上图中的内核堆栈(在下面的引用中提到)在哪里?

    它是上图中的顶部“内核(映射到进程虚拟内存,但没有访问程序)”吗?

    术语 用户堆栈 用于区分我们在此描述的堆栈与内核堆栈。内核堆栈是在内核内存中维护的每个进程的内存区域,用作执行系统调用期间内部调用的函数的堆栈。(内核不能为此目的使用用户堆栈,因为它驻留在未受保护的用户内存中。)

  2. 上图中的“C 运行时启动函数的框架”和“main() 的框架”(从下图中提到)在哪里?

    上图中的“argv、environ”是“C 运行时启动函数的框架”、“main() 的框架”还是其中之一?

    在此处输入图片说明

  3. 0x00000000 和 0x08048000 之间的最低段用于什么?

谢谢。

linux process virtual-memory

2
推荐指数
1
解决办法
1356
查看次数

为什么从 tmpfs 中删除大文件不是即时的?

$ cat /proc/mounts | egrep ' /tmp '
tmpfs /tmp tmpfs rw,nosuid,nodev,relatime 0 0
$ dd if=/dev/zero bs=1M count=3000 of=/tmp/q
3000+0 records in
3000+0 records out
3145728000 bytes (3.1 GB) copied, 1.04961 s, 3.0 GB/s
$ time rm /tmp/q

real    0m0.296s
user    0m0.000s
sys     0m0.290s
Run Code Online (Sandbox Code Playgroud)

为什么不0.000s呢?不涉及磁盘,只是标记不再使用内存。

linux filesystems virtual-memory tmpfs

1
推荐指数
1
解决办法
324
查看次数

页面错误可能涉及也可能不涉及辅助存储访问以使该页面可用是什么意思

从联机帮助页 top

nMaj  --  Major Page Fault Count
           The number of major page faults that have occurred for a task.  A
           page fault occurs when a process attempts to read from or write
           to a virtual page that is not currently present in its address
           space.  **A major page fault is when auxiliary storage access is
           involved in making that page available.**

nMin  --  Minor Page Fault count
           The number of minor page faults that have occurred for a task. …
Run Code Online (Sandbox Code Playgroud)

top virtual-memory

1
推荐指数
1
解决办法
848
查看次数

64位linux进程的虚拟内存的内核部分是什么?

我遇到了这个问题:

在 Linux 进程的虚拟内存空间中拥有内核部分有什么用?

并基于答案和对答案的评论:

内核内存映射包括所有物理内存的直接映射,因此内存中的所有内容都出现在那里;它还包括内核、模块等的单独映射,因此包含内核的物理地址至少出现在两个不同的映射中

这是真的?我找不到任何来源或参考资料,为什么它会包含整个物理内存的映射,然后又具有内核模块的单独映射?那不是多余的吗?

有人可以简单地解释一下 64 位 Linux 进程的虚拟内存的内核部分是什么吗?并请提供答案的来源!因为我在任何书籍或论文中都找不到与此相关的任何内容。

process 64bit kernel memory virtual-memory

1
推荐指数
1
解决办法
1046
查看次数

为什么同一程序每次运行时的虚拟内存区域都不同?

我正在研究 Linux 中内存区域的虚拟内存映射。可执行文件是一个简单的计数程序。当程序的两个实例运行时,以下是 所示的映射/proc/pid/maps。堆、堆栈、vvar、vdso 等的位置在加载时似乎有随机偏移。为什么要这样做?

实例 1:堆开始于013f4000

00400000-00401000 r--p 00000000 08:16 3557412                            <program-exe>
00401000-00480000 r-xp 00001000 08:16 3557412                            <program-exe>
00480000-004a5000 r--p 00080000 08:16 3557412                            <program-exe>
004a6000-004ac000 rw-p 000a5000 08:16 3557412                            <program-exe>
004ac000-004ad000 rw-p 00000000 00:00 0 
013f4000-01417000 rw-p 00000000 00:00 0                                  [heap]
7ffd98bd8000-7ffd98bf9000 rw-p 00000000 00:00 0                          [stack]
7ffd98bfc000-7ffd98bff000 r--p 00000000 00:00 0                          [vvar]
7ffd98bff000-7ffd98c00000 r-xp 00000000 00:00 0                          [vdso]
ffffffffff600000-ffffffffff601000 --xp 00000000 00:00 0                  [vsyscall]
Run Code Online (Sandbox Code Playgroud)

实例2:堆开始于013cc000

00400000-00401000 r--p 00000000 08:16 3557412                            <program-exe>
00401000-00480000 r-xp 00001000 …
Run Code Online (Sandbox Code Playgroud)

linux process proc virtual-memory

1
推荐指数
1
解决办法
417
查看次数

Linux虚拟内存大小

Linux中用户和内核虚拟内存的大小是根据什么决定的?(32 位,如果相关的话。)它可以配置吗?

如果我们有 512 MB RAM,用户和内核虚拟地址的大小是多少?

linux virtual-memory memory-management

1
推荐指数
1
解决办法
1615
查看次数

32 位地址空间和 16KB 地址空间哪个更大?

我最近读到的一句话说:“大部分页表未使用,充满了无效条目。这是一个很小的 ​​16KB 地址空间。想象一下 32 位地址空间的页表和所有潜在的浪费空间! ”

这表明 32 位地址空间大于 16KB 地址空间,这是令人困惑的,因为 32 位明显小于 16KB

memory virtual-memory

-2
推荐指数
1
解决办法
904
查看次数