gpt4 book ai didi

iphone - 内存页面错误到底是什么?

转载 作者:行者123 更新时间:2023-12-03 18:52:23 24 4
gpt4 key购买 nike

来自docs :

Note: Core Data avoids the term unfaulting because it is confusing. There's no “unfaulting” a virtual memory page fault. Page faults are triggered, caused, fired, or encountered. Of course, you can release memory back to the kernel in a variety of ways (using the functions vm_deallocate, munmap, or sbrk). Core Data describes this as “turning an object into a fault”.

核心数据中的错误本质上是内存页错误吗?我对内存页是什么只有一点点了解。我相信这是一种“内存中的代码片段”,需要执行程序和类似的东西,并且当应用程序运行时,代码片段会作为“页面”被吸入内存并被丢弃,因为它们不是不再需要了。可能 99% 都是错的;)

有人吗?

最佳答案

I have only a slight idea about what a memory page is. I believe it's a kind of "piece of code in memory" which is needed to execute procedures and stuff like that, and as the app is runing, pieces of code are sucked into memory as "pages" and thrown away as they're not needed anymore.

内存中存在内容(即代码和数据)。

内存中存在的每个东西都有一个地址(内存地址)。

内存地址空间(例如 32 位机器上的 4GB)被分为“页”,其中每个页都是一个连续的内存块(例如每页 4KB)。

地址空间(由 CPU 和操作系统)映射到 RAM(或者可能映射到 I/O 端口,但这是一个不同的故事)。

安装的 RAM(例如 1 GB)可能少于地址空间(例如 4 GB),因此某些内容(例如最近最少使用的内容)可能会(由操作系统)从RAM 到磁盘上的页面文件。整个、完整的页面(例如 4KB block )是被交换的内容(而不是单个字节)。

当应用程序尝试访问当前未映射到 RAM 的地址时,这就是所谓的页面错误。为了处理页面错误,操作系统可能:

  • 通过将某些内容(例如最近最少使用的)从 RAM 交换到磁盘来释放一些 RAM
  • 将新释放的可用 RAM 映射到应用程序尝试访问的地址
  • 从磁盘交换到 RAM,无论该地址应该是什么(在过去的某个时间已从该地址换出到磁盘)
  • 从中断处恢复应用程序:应用程序再次尝试访问该内存地址,只是这一次没有出现另一次页面错误。

关于iphone - 内存页面错误到底是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3032078/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com