Standford RedBase 入门(The Paged File Component)

  • 介绍

  • 页面缓冲池

  • 页面数目

  • 页面存储单元分配

  • Scratch Pages

  • 混杂标注

  • PF 接口

  • 介绍
    我们会提供 RedBase 系统的底层组件,PF 组件。这个组件提供了高级客户组件所需的设备从而实现 基于页面的文件 I/O。在 PF 组件中,提供各种方法用来创建,删除,打开和关闭页面文件,扫描给定文件的页面,读取给定文件的特定页面,对给定文件进行页面的增加和删除操作,并且对 scrath 使用提供 obtain 和 release 操作。为了开始使用 PF 组件,可以查询页面 https://web.stanford.edu/class/cs346/2015/redbase-logistics.html
    下面提供了PF 组件的 C++ 接口。每个类都以前缀 PF 开头 - 你需要在你的系统构建中遵循这种命名规则。除了 constructor 和 destructor 之外,PF 组件中的每一个方法都会返回一个 int 型的代码,同时在你写的所有方法中都应该保证一下规则:返回值为 0 表示正常的结束,一个非 0 的返回值表示出现了一个例外的情况或者是发生了一个错误。一个非零正数返回值表示 没有错误的例外(例如到达了文件的结尾)或者是一个可以恢复的错误或者是正常的退出(例如尝试关闭一个没有打开的文件)。一个非零负数返回值表示出现了一个系统无法恢复的错误。https://web.stanford.edu/class/cs346/2015/redbase-pf.html#codes 是PF 中各种值所表示的错误规定。

  • 页面的缓冲池 (重要)
    文件中每一页的接入数据
    当一个页面在内存中并且它的数据能够被控制时,这个页面就被称为钉在了缓存池中了。一个 pinned 页面将会保存在缓存池直到它被明确的 unpinned。

(百度翻译)
访问文件页面上的数据首先需要将页面读到主存中的缓冲池中,然后在那里处理(读取或写入)它的数据。当一个页面处于内存中,而它的数据可用于操作时,则称该页在缓冲池中被“钉住”。一个固定的页面仍然在缓冲池,直到它是明确的“不固定”。客户取消一个页面时,页面上的数据进行操作。下一页不一定导致页面被删除从缓冲区--一个不固定的网页是保存在内存中只要在缓冲池中的空间是不需要的。

如果PF组件需要读新的一页在内存缓冲池中有没有留下自由的空间,然后选择一个不固定的PF分量将页面缓冲池中去除,再利用空间。PF分量使用最近最少使用(LRU)页面置换政策。当一个页面从缓冲池中移除时,当且仅当页面被标记为“脏”时,它被复制回磁盘上的文件,直到它们从缓冲区中删除时,脏页才会自动写入磁盘。然而,PF客户机可以总是发送一个显式请求,强制(即写入磁盘)某个页面的内容,或者强制文件的所有脏页,而不将这些页从缓冲区中移除。

重要的是不要把页面不必要地固定在内存中。PF分量的客户,你要实现的设计可以使每个操作假定的页面无需在缓冲池:客户获取它需要的页面,对他们适当的行动,然后取消它们,即使它认为某个页面可能会在不久的将来需要再次。(如果网页是用不久再然后它可能仍然是在缓冲池中反正。)PF分量不允许同一页面被不止一次,不脱钉在之间。在这种情况下,页面实际上并不会解除固定,直到脱离操作数与销操作数。每次取销一个网页是非常重要的,你别忘了拔掉它时,你所做的。如果你不能脱离页面缓冲池会慢慢填满直到你不再把所有的页面(在这一点上,PF分量将返回一个负的代码)。

  • 页面数字

  • 页面存储单元分配

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 221,135评论 6 514
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,317评论 3 397
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 167,596评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,481评论 1 296
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,492评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,153评论 1 309
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,737评论 3 421
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,657评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,193评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,276评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,420评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,093评论 5 349
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,783评论 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,262评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,390评论 1 271
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,787评论 3 376
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,427评论 2 359

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,259评论 25 707
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,693评论 18 139
  • 添加属性 contentType:false,processData:false,
    马丁路德东阅读 238评论 0 0
  • 今后的工作中,我将每天与Excel相伴,如何让它成为我的工作伙伴而不是工作牵绊呢?所以,今天继续老老实实开始学习《...
    勇于有梦的春儿阅读 276评论 6 2
  • 也许我们年轻的时候,都有过刻骨铭心的爱情。或者,在我们的记忆中,存在着一个会刺痛我们的人。 如果时光可以倒流,你还...
    蓝青_fd99阅读 248评论 0 0