结构推理 试述在MS-DOS中,怎样利用系统文件表(SFT)和进程程序段前缀里的文件打开表(JFT)来实现对一个文件的访问?
【正确答案】MS-DOS在系统中设置了“系统文件表”(SFT),当用户打开一个文件时,就在SFT里申请一个表目,把文件的目录信息以及对文件的使用信息存放在表目中。因此,该SFT起到了活动文件目录的作用。另外,MS-DOS在每个进程的程序段前缀里,开辟有该进程的文件打开表(JFT)。
   当某个进程要打开一个文件时,系统的处理分以下两步进行。
   (1)先用文件名去查系统文件表SFT,看里面有没有叫这个名字的文件。如果有,说明该表目里存放着该文件的目录等有关信息,并且能够获得该表目的序号;如果没有,则申请一个空闲的SFT表项,把文件的目录信息从磁盘拷贝到表目中,填写进其他信息,然后也获得该表目的序号。
   (2)在进程程序段前缀的文件打开表JFT里申请一个表项,把得到的系统文件表表目序号填入该表项内,并获得文件打开表表项的序号,即句柄。
   经过这样两步之后,由文件的句柄,就可以去查进程的文件打开表。由文件打开表,就可以得到该文件在系统文件表里的表目序号。通过这个序号去查系统文件表,就得到该文件的目录内容等信息,从而完成对文件的各种操作。教材中给出了这个过程的示意图。
【答案解析】