<分区>
操作系统如何处理指针?
它们是先被拦截还是指针直接从 C 中的函数调用访问内存?
编辑:
当一个运行时执行一个进程并且该进程当前执行一个指针时,内核是立即链接到该段还是中间有一个层拦截函数调用,并在完成它所做的任何事情后访问数据?
如果是这样,是否有人知道负责实际执行此操作的源代码,例如处理虚拟内存指针。
<分区>
操作系统如何处理指针?
它们是先被拦截还是指针直接从 C 中的函数调用访问内存?
编辑:
当一个运行时执行一个进程并且该进程当前执行一个指针时,内核是立即链接到该段还是中间有一个层拦截函数调用,并在完成它所做的任何事情后访问数据?
如果是这样,是否有人知道负责实际执行此操作的源代码,例如处理虚拟内存指针。
最佳答案
C 中的指针指向virtual memory地址。
操作系统(通常与硬件结合)检查您要访问的地址是否有效(在进程虚拟内存域中),如果有效 - 它将其转换为 physical address .
HW 还会检查地址是否已存储在 cache 中(如果系统有 CPU 缓存),如果有 - 它避免从 RAM 读取(因为它很慢),并直接从缓存中读取。
它实际上还有很多 - 它是如何完成的可以在几个学术类(class)中涵盖 - 但这些是基础知识中的基础知识。
关于c - 操作系统的低级指针处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10794661/