码迷,mamicode.com
首页 > 其他好文 > 详细

Lab2

时间:2014-06-24 09:48:35      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:ext   get   文件   问题   代码   时间   

流程

  1. 了解实验细节
  2. 分析源代码
  3. 初步实现
  4. 最终实现

了解实验细节

需要修改的文件与修改后的目的

  1. extent_server.cc 实现四个操作,分别是put(key, value), get(key), remove(key), getattr(key) 需要考虑时间,文件长度等属性
  2. yfs.client.{cc,h} 记录了文件的标示符 inum, 64位的数字前32位为0,并且inum的第31位用来标示extent是文件还是目录,yfs.client::isfile需要这个特性
  3. fuse.{cc,h} fuse中含有read, write...,你需要让fuse中的函数调用yfsclient中的函数 比如,你要想实现一个create操作,你需要修改fuseservercreatehelper,让其调用yfs->create(), 然后在yfs_client中实现create()操作 具体可参考getattr()的实现,这时lab2提供的一个例子

逻辑上的问题

  1. fuse.cc 是yfsclient的wrapper fuse.cc只是定义一个函数的wrapper,传递操作到yfsclient中操作,而yfsclient又要通过get()函数到extentserver访问资源,用inum作为key

Lab2,布布扣,bubuko.com

Lab2

标签:ext   get   文件   问题   代码   时间   

原文地址:http://www.cnblogs.com/zhouzhuo/p/3799132.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!