📄 00000003.htm
字号:
<HTML><HEAD> <TITLE>BBS水木清华站∶精华区</TITLE></HEAD><BODY><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER>发信人: raner (lilo), 信区: Linux <BR>标 题: NACHOS论坛(3) <BR>发信站: BBS 水木调试站 (Thu Jun 4 16:47:19 1998) <BR> <BR>作 家: solmon (所罗门王) on board 'Unix' <BR>题 目: NACHOS论坛(3) <BR>来 源: 鼓浪听涛站 <BR>日 期: Thu Mar 6 23:04:30 1997 <BR>出 处: <A HREF="mailto:mysu@JingXian.xmu.edu.cn">mysu@JingXian.xmu.edu.cn</A> <BR> <BR> 第三章 文件系统 <BR> <BR> <BR> Nachos文件系统的界面类似于UNIX,有与UNIX的creat,open,close,read,write, <BR>lseek和unlink相似(不是完全一样)的系统调用.一个重要的不同点在于Nachos文件系 <BR>统是用C++实现的.Creat(相当于UNIX中的creat),Open(open),和Remove(unlink)都是 <BR>定义在FileSystem类中的,因为它们都是与正在操作的文件名和目录相联系的. <BR>FileSystem::Open返回一个指针,它指向一个OpenFile对象,OpenFile对象与UNIX中的 <BR>打开文件描述符类似,可以用这个对象直接对文件进行操作,如Seek(lseek), Read <BR>(read), Write(write)只要把这个OpenFile对象删除(delete)就可以关闭(close)这个 <BR>已打开文件了. <BR> Nachos文件系统的结构如图: <BR> <BR> ┏━━━━━━━━━━━━━━━━━━━┓ <BR> ┃ 文 件 用 户 ┃ <BR> ┣━━━━━━━━━━━━━━━━━━━┫ <BR> ┃ FileSystem OpenFile Directory ┃ <BR> ┣━━━━━━━━━━━━━━━━━━━┫ <BR> ┃ FileHeader ┃ <BR> ┣━━━━━━━━━━━━━━━━━━━┫ <BR> ┃ SynchDisk ┃ <BR> ┣━━━━━━━━━━━━━━━━━━━┫ <BR> ┃ Disk ┃ <BR> ┗━━━━━━━━━━━━━━━━━━━┛ <BR> <BR> <BR> 在Nachos文件系统中,许多数据结构既可存放在内存里,又可存放在磁盘里.为了一 <BR>致起见,文件系统中Synchdisk以上的类都有一个FetchFrom成员函数,它把数据结构从 <BR>磁盘读到内存;还有一个WriteBack成员函数,它与FetchFrom相反,把数据结构从内存写 <BR>回磁盘.在内存中的数据结构与磁盘上的完全一致,没有增减数据项,给管理带来了不少 <BR>方便.在以后的介绍中这两个函数不再重复了. <BR> 让我们从下往上分析文件系统.Disk模拟了一个物理磁盘,它的具体实现在机器模 <BR>拟部分已经介绍了. <BR> <BR> SynchDisk类在物理磁盘的基础上定义了一个同步磁盘的抽象界面.象别的I/O设备 <BR>一样,物理磁盘是异步设备.用户提出读写请求后立即返回,这以后会有一个中断发生, <BR>报告磁盘操作完成.同步磁盘有些不同,进程提出读写请求后将睡眠等待,以后在磁盘
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -