刚才下班回家在公交车站等公交车,因为想到悲伤的事情陷入了沉思。就这样沉默着望着远方站了很久,身边一同等车的男人突然指着我手里装满吃的的牛皮口袋说:“你能不能分我一点吃的呀,我很饿。”
我吃了一惊,开始着手打开自己的牛皮纸袋:“不知道中餐您可吃得惯?”
对方看着我替他打开牛皮纸袋的样子,露出了笑容:“不用了。我只是不忍心看到你忧郁的样子,所以开了一个玩笑。”
说完他打了个响指,露出了活泼的样子。
言语之间,我们在等的公交车到了。待公交车停下之后,原来的司机走下了车,对他说了什么,然后走远了。
接着他走上了公交汽车,坐在了驾驶员的位置上。而我的心情也好了很多。
这篇论文,The evolution of an x86 virtual machine monitor https://dl.acm.org/doi/abs/10.1145/1899928.1899930
我越读越觉得它在讲一个勤奋上进的女性(vmware)在通过自身努力而不断变得越来越美丽的道路上终于被原来完全没有注意到她的男神(intel)看上了,开始逐渐为她的美丽所倾倒,最终为她设计了一款价值不菲的婚戒(hardware support for virtualization)把她娶回家并宣布她就是自己今生挚爱的故事(笑)
计算机的系统给我的感觉是,当你学习课本上的知识时,它们分别是许多个割裂的知识点。你必须自己把课本和课堂上割裂的知识点联系起来。
比如在学习memory management(内存管理)的时候,你就要自己问自己一个问题:“内存管理和进程之间是什么关系?”
实际上内存管理和进程创建是相辅相成的。在一个进程被操作系统创建的同时,内存管理也就开始了——操作系统会在创建进程的同时就给一个进程分配相应的地址空间。
但是在任何一个大学的课本上,这两部分(进程&内存管理)都是分开在两个完全不同的章节里讲述的。而且课本没有强调过这两者之间的关系性。这就导致很多人学了计算机系统的知识,但他的知识体系却是孤立的,像是漂浮在大海上的孤岛。
page table walker可以说是MMU内部的一个部件,是用来访问main memory中的该process对应的page table的。
page table是OS创建每个进程时同时创建的,保存在main memory里的数据结构。用于储存virtual address到physical address的映射。每一个映射被称为Page Table Entry(PTE)。OS在创建每个process的时候还同时为该process创建了Process Control Block(PCB),在PCB里存了指向page table的指针。
TLB则是一个和MMU并行存在的hardware structure,用于cache常用的PTE。当OS context switch的时候,TLB会被flush。
The relationship of TLB (translation lookaside buffer), MMU (memory management unit) and page table walker.
当CPU产生一个memory access的时候,这个request会先送到MMU。MMU会先查找TLB,如果TLB含有这个page table entry(PTE),MMU就会直接使用TLB提供的physical address去load/store data。
但是如果TLB不包含这个结果,MMU就会用它的page table walker去main memory里的page table查找该virtual address所对应的physical address。如果在main memory里有MMU所需要的PTE,MMU就会使用该PTE的结果,并更新TLB。如果main memory里没有相应的PTE,MMU就会给OS发一个exception。这时OS就会使用它的policy从disk上分配新的page。
#长毛象安利大会
#找工 #求职
https://www.inhersight.com/
给北美的大家推荐一个叫in her sight的网站,该网站会对针对一些平权指标给各公司打分,比如minority或女性在leadership中的占比和wellness等等,缺点是小公司的话可能数据点不会很多甚至还没录入。
正在找工作的象友们可以参考看看!其他地区应该也有类似的网站可以参考,祝大家找工顺利
Kateです。アメリカのペン大でコンピューターシステムを研究している大学院生です。日本語を勉強しているから少し話せます。ビデオゲームが大好きです。
FC:SW-8149-0004-0143
PSN:kate0115