如何理解“页式存储管理方案”?

如何理解“页式存储管理方案”?

         这要从一个皇帝的故事开始讲起。

         从前有个人叫我很酷,他靠自己的能力和威信,建了个小国家,这个国家有100个人,我很酷是皇帝,为什么只有一百个人呢?(我很酷不会告诉你这是因为他觉得自己管一百个人刚刚好,再多他就要累死了)。

         然后,我很酷遇到了一个敌人叫我更酷,我更酷目前确实比我很酷要酷那么一些,因为我更酷有400个小弟,(就是他的国家有400人),我很酷不开心了,于是他想着要怎么打败我更酷。

         “去找几个不错的小弟,emmm取个好听点的名字,官员,让他们替我管人,我管着他们不就好了?”我很酷觉得这个主意真是太好了。

         于是,他选了100个精英,当官员,他姑且让这些官员每个人管50人(毕竟能力没他强),于是,皇帝我很酷发现,他能够管500个百姓了(不算官员),他打败了我更酷!

         我更酷在竞争中不思进取,落伍了。

         那么,如果某一天,皇帝想要看看第468个百姓的情况怎么办?

         现在我们假设皇帝我很酷管的500个百姓每人都有一个编号,并且假定他们的顺序不变,并且皇帝直接管理的100个官员,是按照第一个人才管第1-50个百姓,第二个人才管第51-100个百姓这样的顺序。

         皇帝的头脑很好,他知道要找这个第468个百姓,就应该去找他直接管的第,emmmmm,第十个人就没错了,

468 / 50 = 9       468 % 50 = 18

         我靠,皇帝(我很酷)这个时候突然迷茫了,因为他忘记他直接管的第十个官员住在哪里了,刚好这个官员去度假了,皇帝找得很辛苦,于是他勃然大怒,颁布了一道圣旨,以后我管的这一百个官员,你必须给我都住在小羊街里,而且每个官员按姓名的笔画的多少来编号,号码从1到100,然后皇帝在皇城南部1000米处,建了一个小羊街。

        

         这道圣旨颁布以后,官员很快都住到了小羊街来,于是皇帝终于可以开开心心地去小羊街找第十号官员了,找到第十号官员,皇帝说,你,给我把第468号人叫来。

         这个官员虽然管老百姓不错,奈何他算数不好,以为皇帝故意找茬,他颤颤巍巍地跪下,说皇上饶命啊,微臣只管了50号人,何来468号啊?

         皇帝一听,反而乐了,心想还是我聪明,

         “起来吧,你就把你管的第18号人带来就对了”

         于是,官员把18号人带来了。

         皇帝的能力

         现在我们思考一下,如果皇帝的管人能力从100变成1000,官员仍然只能管50人,其他条件不变,那皇帝想找第888号百姓的时候,该怎么做

         :皇帝应该去皇城南部1000米小羊村处,找到第13号官员,然后让他带他管的第38号人上来就对了。

         大胆的官员

         有一天,一位大胆的官员向皇帝请求,皇上,我们住在小羊村里住了好久,小羊村位置偏北,不利于对南方百姓的管理啊,我们能否自己出钱修建一个村子在国家中部,当然这个村子还叫小羊村,您看行吗?

         皇帝今天心情好,于是就爽快地答应了,他说:建吧,你们只要别改了小羊村的名字就行了,还有不要跟我要钱,你们爱在哪建在哪建,前提是要告诉我你们小羊村的地址!

         说着,皇帝指了指身边的太监,你们把地址给他。

         于是以后皇帝再要找某个百姓,他首先自己悄悄计算一下应该去找第几个官员管的第几个人,(自己计算显得自己数学好)然后从太监那里找到小羊村的地址,坐上马车,来到小羊村,找到那个官员,然后找到自己要找的那个百姓。

         在上述事例中,这个皇帝的管人能力就是页式存储管理方案中的页面大小,逻辑地址就类似皇帝管理的百姓,比如第一个例子中是500人,第二个例子中是5000人,而小羊村的地址就是页表起始地址。

         以32位处理器的计算机为例,本来可以表示的地址空间只有(因为计算机以二进制存储),后来引进“先进的管理技术后”,即使用了页式存储管理方案后,就可以使得可以表示的地址空间变大了。

         现在的问题是,计算机应该给页号分配多少个二进制位呢?(即一个皇帝管理的官员个数)从之前的例子我们可以猜测,这不是你分不分配的问题,而是你这个皇帝能管多少个官员的问题,即皇帝的能力问题。

        

         是不是可以这么想,为了跟计算机处理数据的思维方式一致,现在我们假设皇帝的脑子有32个洞,并且这个皇帝他只认数字0和1,那么,这个皇帝的能力就确定下来了,因为这32个洞的限制,皇帝只能记下种不同的数,而且这32个洞,在找百姓的时候,不仅要用来记官员的编号,还要记住这个百姓在官员管理处的编号,就是之前算式的余数。

         所以,计算机应该给页号分配的二进制位,受到“皇帝脑洞”即处理器能力的限制,还有“官员管理百姓的能力”即“页面大小”的限制。

         当然,后来这个问题好像变成了官员管理百姓的个数在多少时,管理效率最高的问题。

猜你喜欢

转载自blog.csdn.net/u012076669/article/details/78386946