LittleHat

我的技术小站

  C++博客 :: 首页 :: 联系 :: 聚合  :: 管理
  0 Posts :: 9 Stories :: 1 Comments :: 0 Trackbacks

常用链接

留言簿

我参与的团队

搜索

  •  

最新随笔

最新评论

原来OS把HD上分成大小相同的DATA AREA,这个DATA AREA大小相同(当然要是2的倍数,有利于CPU的处理),而在系统和HD之间通过EXT2的VFS来通讯(HD与OS的接口,OS支持多种文件结构就是建立在Virtual File System上的)文件在VFS上的表现形式就是一个inode. 它是一个数据结构.
主要包括为:

Mode//权限,所在目录等
Owner info
Size//文件的大小
Timestamps

Direct Blocks

Indirect

   所以我们打开一个文本时,不仅读取了文件内容,还有文件的信息.inode包含的是描述文件数据的指针.

   那么,当打开一个文本时,OS是会把全部数据块送到缓冲(这个缓冲指在主内存中的,而且被所有的块设备共巷,曾经怀疑过是否全会送到缓冲区,考虑到如果文件很大的话,必定很开销,但是另一方面,如果从HD上读取的话,必定影响速度,而且会反复读取硬盘,同时又把不要的数据送回硬盘,这样就更加没有效率了).应用程序为文件创建一个副本,应用内存映射来反映文件内容.
   不仅数据有缓冲区,VFS也有文件和目录的缓冲区,用来储存常用的文件信息.
 bdflush守护进程用来清理buffer

另一种情况是当内存不够时,会送到SWAP中.

    最后,我想这也是为什么平常我们删除文件把创建文件快很多的原因了,因为我们删除的只是一个结构体,数据块在HD上只是失去了指针,这也是文件恢复技术存在的可能性.
    朋友说,能写出那个DD,就能赚钱了. 哈哈~~~  
posted on 2007-05-11 19:39 小帽子 阅读(174) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航:   博客园   博客园最新博文   博问   管理