我只是XNU的初学者,正在学习这个源代码。
当看到VM的时候。我有三个问题。
• What is role of UPL? Is it the same to anon_vma and PST node in Linux for reverse mapping?
• If first answer is True, How XNU can find virtual address using upl structure?
• If first answer is False, How XNU edit pmap entries for page in/out?
我试图找到苹果的开发文档
在Linux上测试Monetdb时,我可以看到很多IO写活动。数据集为2GB (3000万行),系统有120 2GB的空闲RAM。
查询:
select sum(hits) from (select "hour","minute","second", server, count(*) as hits from iislogs group by server, "hour","minute","second") as xxx;
我运行一个查询,扫描30 Mil行需要400 ms,但是如果我并行运行相同
我正在试图了解缓存丢失是如何发生的。到目前为止,我是这样理解的:
CPU对地址x的请求,搜索它自己的(L1/L2)缓存。如果它不在那里,那就是缓存丢失。
现在,这里缺少的是如何准确地发现信息在缓存中不可用?缓存行保留哪些信息?到目前为止,我知道缓存行应该包含以下信息:
Address of the information, Data within that address.
有了这些信息,CPU就可以知道一个地址是否在其缓存中可用。当它有一个无效的数据副本时,就会出现问题。所以我的问题是:
处理器如何发现某些数据是有效的还是无效的?
是否在每个缓存行中都存储了标志?它是否要求协议提供这些信