文件的物理结构
- 格式:ppt
- 大小:1.03 MB
- 文档页数:21
PDF(Portable Document Format,便携式文档结构)是一种很有用的文件格式,其最大的特点是平台无关而且功能强大(支持文字/图象/表单//音乐/视频等).做PDF的解析,首先要熟悉PDF文件的物理结构和逻辑结构。
PDF文件物理结构可分为以下几块: 1.文件头文件头是PDF文件的第一行,格式如下:%PDF-1.4这是个固定格式,表示这个PDF文件遵循的PDF规范版本,目前PDF的生成工具,除了官方的acrobat,其他生成的以1.4版本的居多。
对于做PDF开发来说,一个最简单的原则就是生成PDF的时候尽量符合低版本规范,以保证大多数解析器能支持;解析PDF的时候尽量支持高版本的规范,以保证支持大多数工具生成的PDF文件。
从1.4版本以后,PDF文件的版本并不唯一的只是在这里表示了,可能后面会改写(catalog的Version词条),所以解析PDF的时候,如果这里的版本大于等于1.4,应该再比较一下catalog里面的version,取其中高一点的版本。
2.对象集合这是一个PDF文件最重要的部分,文件中用到的所有对象,包括文本/图象/音乐/视频/字体/超连接/加密信息/文档结构信息等等,都在这里定义。
格式如下:2 0 obj ... end obj一个对象的定义包含4个部分:前面的2是对象序号,其用来唯一标记一个对象;0是生成号,按照PDF规范,如果一个PDF文件被修改,那这个数字是累加的,它和对象序号一起标记是原始对象还是修改后的对象,但是实际开发中,很少有用这种方式修改PDF的,都是重新编排对象号;obj和endobj是对象的定义范围,可以抽象的理解为这就是一个左括号和右括号;省略号部分是PDF规定的任意合法对象(一共8种,见后面附A)。
可以通过R关键字来引用任何一个对象,比如要引用上面的对象,可以使用2 0 R,需要主意的是,R关键字不仅可以引用一个已经定义的对象,还可以引用一个并不存在的对象,而且效果就和引用了一个空对象一样。
⽂件的结构⽂件的物理结构是从实现观点出发,⼜称为⽂件的存储结构,是指⽂件在外存上的存储组织形式。
⽂件的逻辑结构是从⽤户观点出发看到的⽂件的组织形式。
⽂件的逻辑结构与存储介质特性⽆关,但⽂件的物理结构与存储介质的特性有很⼤关系。
按逻辑结构,⽂件有⽆结构⽂件和有结构⽂件两种类型:⽆结构⽂件和有结构⽂件。
⽆结构⽂件(流式⽂件)⽆结构⽂件是最简单的⽂件组织形式。
⽆结构⽂件将数据按顺序组织成记录并积累保存,以字节(Byte)为单位。
由于⽆结构⽂件没有结构,因⽽对记录的访问只能通过穷举搜索的⽅式,故这种⽂件形式对⼤多数应⽤不适⽤。
但字符流的⽆结构⽂件管理简单,⽤户可以⽅便地对其进⾏操作。
所以,那些对基本信息单位操作不多的⽂件较适于⾤⽤字符流的⽆结构⽅式,如源程序⽂件、⽬标代码⽂件等。
有结构⽂件(记录式⽂件)有结构⽂件按记录的组织形式可以分为:1) 顺序⽂件。
⽂件中的记录⼀个接⼀个地顺序排列,记录可以是定长的或变长的,可以顺序存储或以链表形式存储,在访问时需要顺序搜索⽂件。
顺序⽂件有以下两种结构:第⼀种是串结构,记录之间的顺序与关键字⽆关。
通常的办法是由时间决定,即按存⼊时间的先后排列,最先存⼊的记录作为第1个记录,其次存⼊的为第2个记录,依此类推。
第⼆种是顺序结构,指⽂件中的所有记录按关键字顺序排列。
在对记录进⾏批量操作时,即每次要读或写⼀⼤批记录,对顺序⽂件的效率是所有逻辑⽂件中最⾼的;此外,也只有顺序⽂件才能存储在磁带上,并能有效地⼯作,但顺序⽂件对查找、修改、增加或删除单个记录的操作⽐较困难。
2) 索引⽂件。
如下图所⽰。
对于定长记录⽂件,如果要查找第i个记录,可直接根据下式计算来获得第i个记录相对于第⼀个记录的地址:然⽽,对于可变长记录的⽂件,要查找第i个记录时,必须顺序地查找前i-1个记录,从⽽获得相应记录的长度L,然后才能按下式计算出第i个记录的⾸址:注意:假定每个记录前⽤⼀个字节指明该记录的长度。
计算机操作系统例题及解析之五【例1】什么是文件?什么是文件系统?答:文件是在逻辑上具有完整意义的信息集合,它有一个名字作标识。
文件具有三个基本特征:文件的内容为一组相关信息、文件具有保存性、文件可按名存取。
文件系统是操作系统中负责管理和存取文件的程序模块,也称为信息管理系统。
它是由管理文件所需的数据结构(如文件控制块、存储分配表)和相应的管理软件以及访问文件的一组操作所组成。
【例2】什么是文件的物理结构和逻辑结构?答:文件的逻辑结构是从用户观点出发所看到的文件组织形式,是用户可以直接处理的数据及其结构。
文件的逻辑结构有两种形式:有结构的记录文件和无结构的流式文件。
文件的物理结构是指文件在外存上的存储组织形式。
文件的物理结构有三种形式:顺序结构、链接结构和索引结构。
【例3】假定盘块的大小为1KB,硬盘的大小为500MB,采用显示链接分配方式时,其FAT 需要占用多少存储空间?答:FAT的每个表项对应于磁盘的一个盘块,其中用来存放分配给文件的下一个盘块的块号,故FAT的表项数目由物理盘块数决定,而表项的长度则由磁盘系统的最大盘块号决定(即它必须能存放最大的盘块号)。
为了地址转换的方便,FAT表项的长度通常取半个字节的整数倍,所以必要时还必须由最大盘块号获得的FAT表项长度作一些调整。
由题意可知,该硬盘共有500K个盘块,故FAT中共有500K个表项;如果盘块从1开始编号,为了能保存最大的盘块号500K,该FAT表项最少需要19位,将它扩展为半个字节的整数倍后,可知每个FAT表项需20位,即2.5个字节。
因此,FAT需占用的存储空间的大小为:2.5×500K=1250KB【例4】存放在某个磁盘上的文件系统,采用混合索引分配方式,其FCB中共有13个地址项,第0~9个地址项为直接地址,第10个地址项为一次间接地址,第11个地址项为二次间接地址,第12个地址项为三次间接地址。
如果每个盘块的大小为4K字节,若盘块号需要用4个字节来描述,请问该系统中允许的文件的最大长度是多少?答:由题意可得,每个盘块最多存放4K/4=1K个盘块地址。