小编use*_*989的帖子

CPU如何知道哪个物理地址映射到哪个虚拟地址?

根据我的理解,每个进程通过虚拟地址而不是物理地址访问内存,通过MMU单元将这些虚拟地址转换为物理地址是CPU的职责,两个或多个进程可以有相同的虚拟地址。

因此,假设进程 A正在尝试访问虚拟地址12345,而进程 B正在尝试访问虚拟地址12345

MMU将如何将每个进程的虚拟地址转换为物理地址,是否有每个进程的映射表将虚拟地址映射到物理地址(因为我以为CPU甚至不知道“进程”是什么,它唯一的职责是盲目执行指令而不关心哪个指令属于哪个进程,而“进程”只是一个操作系统概念)?

linux cpu virtual-memory linux-kernel

6
推荐指数
2
解决办法
5719
查看次数

Linux 内核如何知道哪个进程进行了系统调用?

假设一个进程进行了系统调用来打开一个文件,当Linux内核执行这个系统调用时,Linux内核应该将fd打开的文件添加到进行fd系统调用的进程表中。

当传递给系统调用的参数不包含 PID 时,Linux 内核如何知道哪个进程进行了这个系统调用?

linux system-calls linux-kernel

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

标签 统计

linux ×2

linux-kernel ×2

cpu ×1

system-calls ×1

virtual-memory ×1