精华内容
下载资源
问答
  • PDF学习二:PDF文件物理结构

    千次阅读 2018-06-08 18:40:47
      说明: 在PDF学习一 Hello World中简单提到了PDF文件结构。本文将重点讲PDF文件结构,指的是其文件物理组织方式,决定对象是如何存放在一个PDF文件中, 它们是如何被访问的,如何被更新的。...PDF文件物理结构...

    本文转载自:https://blog.csdn.net/u012632138/article/details/80565220

     

    说明:

    在PDF学习一 Hello World中简单提到了PDF文件结构。本文将重点讲PDF文件结构,指的是其文件物理组织方式,决定对象是如何存放在一个PDF文件中, 它们是如何被访问的,如何被更新的。

    目标:

    掌握PDF基本物理结构。

    PDF文件物理结构

     

    PDF文件格式包含以下4个部分:

    文件头 Header

    ——指明了该文件所遵从的PDF规范的版本号,它出现在PDF文件的第一行。

    %PDF−1.7

    这是个固定格式,表示这个PDF文件遵循的PDF规范版本。从1.4版本以后,PDF文件的版本并不唯一的只是在这里表示了,可能后面会改写(catalog的Version词条),所以解析PDF的时候,如果这里的版本大于等于1.4,应该再比较一下catalog里面的version,取其中高一点的版本。

    文件体 Body

    ——又称对象集合,PDF文件最重要的部分,文件中用到的所有对象,包括文本/图象/音乐/视频/字体/超连接/加密信息/文档结构信息等等,都在这里定义。

    格式如下:


    2 0 obj     
    ... 
    end obj

    一个对象的定义包含4个部分:

    前面的2是对象序号,其用来唯一标记一个对象。0是生成号,按照PDF规范,如果一个PDF文件被修改,那这个数字是累加的,它和对象序号一起标记是原始对象还是修改后的对象,但是实际应用开发中,很少有用这种方式修改PDF的,都是重新编排对象号。obj和endobj是对象的定义范围,可以抽象的理解为这就是一个左括号和右括号;省略号部分是PDF规定的任意合法对象(一共8种)。

    可以通过R关键字来引用任何一个对象,比如要引用上面的对象,可以使用2 0 R。

    交叉引用表 Cross-reference table

    ——为了能对间接对象进行随机存取而设立的一个间接对象的地址索引表。(实际以偏移+索引的方式储存对象地址)

    普通文件交叉引用表

    xref                             % 表示交叉引用表开始
    0 5                              % 0表示交叉引用表描述的对象编号从0开始,5表示共有5个对象
    0000000000 65535 f  % 一般pdf都是以这行开始交叉引用表,起始地址0和最大产生号65535,f 表示释放
    0000000017 00000 n % 对象号为1的偏移地址,产生号0,n表示在使用中
    0000000081 00000 n % 对象号为2的偏移地址,产生号0,n表示在使用中,其他类同
    0000000331 00000 n
    0000000409 00000 n

    增量更新的交叉引用表

    xref
    0 1
    0000000000 65535 f
    3 1                              % 对象编号从3开始,1表示共有1个对象
    0000025325 00000 n % 对象号为3的偏移地址,产生号0,n表示在使用中
    23 2
    0000025518 00002 n % 对象号为23的偏移地址,产生号为2表示被删除过,又重新开始使用,n表示在使用中
    0000025635 00000 n
    30 1
    0000025777 00000 n

    文件尾 Trailer

    ——声明了交叉引用表的地址,即指明了文件体的根对象(Catalog),从而能够找到PDF文件中各个对象体的位置,达到随机访问。另外还保存了PDF文件的加密等安全信息。

    trailer              % 文件尾标识,是小写t
    <</Info 1 0 R  % 文件信息字典,包含Title、Author、Subject、Keywords等信息

    /Root 2 0 R    % 指向文件体的根对象(Catalog)

    /Size 20>>     % 文件中对象总数为20
    startxref 
    2559              % 交叉引用表偏移地址
    %%EOF        % 文件结束标识

    增量更新

    1)PDF文件内容可以增量更新无需重写整篇文件。变化数据被附加到文件尾段,保持原内容不变。用这种方法更新文件最大的优势是一个篇幅很大的文件做小改动可以快速保存。

    2)文件更新时新增的交叉引用表部分仅包含那些已经被修改,替换,或删掉的对象。删除掉的对象原封不动的留在文件中,对应的交叉引用表项被标记为已删除。新增的文件尾包括所有的选项(可能是改进过的)包括之前的文件尾部分,Prev项给出之前交叉引用部分的位置。一篇被更新过多次的文件包含了多个文件尾;每个文件尾都有自己的结束标识(%%EOF)。

    3)由于更新的部分被添加到文件中,一个文件可能有一个相同对象的多个副本,而保持相同的对象标识(对象编号和生成编号)。在以下情况这个现象就会发生,例如,如果一个文本标注被修改多次并且文件保存了多次的修改。因为文本标注对象没删除,它仍保持着之前相同的对象号和生成号。但一个被修改过的对象副本会被包含在更新部分添加到文件中。更新的交叉引用表部分包含这个新的对象的字节偏移值,覆盖原先交叉引用表中旧的字节偏移值。当一个用户应用程序(consumer application FoxitReader)读取文件时,它必需用这种方法构建它自己的交叉引用表信息,即文件中每个对象的最新副本是被访问的那一个。

    PDF 1.4之后,版本号Version是可以在增量更新中修改。

    增量更新后的文档结构

    后记:

    PDF物理结构中还有Object Streams、Cross-Reference Streams,大家对哪个感兴趣可留言给我。

    问题汇总:

    Q: 一个PDF文件可以有多个文件尾吗?

    A:是的。增量更新之后PDF文件会有多个文件体,多个交叉引用表,多个文件尾。

     

    上一篇: https://blog.csdn.net/lzfly/article/details/80506332

    展开全文
  • 文件系统笔记一、磁盘物理结构

    千次阅读 2018-01-11 16:31:24
    文件系统笔记一、磁盘物理结构 引言:文件系统从根本上说,就是操作系统对磁盘进行的抽象和装扮。故了解磁盘的物理结构,是我们学习文件系统的基础。 文件系统笔记一、磁盘物理结构 一、磁盘概念引入 二、...

    文件系统笔记一、磁盘物理结构

    引言:文件系统从根本上说,就是操作系统对磁盘进行的抽象和装扮。故了解磁盘的物理结构,是我们学习文件系统的基础。


    一、磁盘概念引入

      计算机运行时需要的数据和代码来自主存储器(内存)。如果计算机不在运行状态,这些数据和代码保存在哪呢?内存不是持久性的存储介质,它是进程运行过程中临时分配的存储空间。一旦进程运行结束,其所占的内存空间就被释放,存放在里面的代码和数据也将丢失。因此,数据和代码要想长久保存,就需要一个更为持久的地方来存放,这个存放的地方就是磁盘
      对于大多数计算机领域的人来说,磁盘通常被看作一个外部设备。可对于现代操作系统来讲,磁盘是不可或缺的。早期的操作系统可以基于磁带,随着操作系统复杂性和性能不断提升,用磁带作为操作系统的载体已不合时宜,取而代之的是磁盘。由于操作系统需要存放在磁盘上,且操作系统内的文件也主要基于磁盘。因此,磁盘是操作系统不可分割的一部分


    二、磁盘定义

      通俗来讲,磁盘就是形状像盘子的磁性存储介质,这种存储介质的特性是持久,正常情况下数据存在上面不会消失;磁性、圆形是它的显著特征,所以称为磁盘;其成本低廉,可大量使用。对于现代计算机来说,磁盘已经成为不可或缺的一个组件。

    硬盘(英语:Hard Disk Drive,简称HDD)是电脑上使用坚硬的旋转盘片为基础的非挥发性存储设备,它在平整的磁性表面存储和检索数字数据,信息通过离磁性表面很近的磁头,由电磁流来改变极性方式被电磁流写到磁盘上,信息可以通过相反的方式读取。硬盘包括一至数片高速转动的磁盘以及放在执行器悬臂上的磁头。 –维基百科


    三、磁盘结构

    3.1、外部结构

      了解了磁盘的定义,现在我们要由外向里,简单了解磁盘的结构及其工作原理。从外部看,磁盘的结构主要包括金属固定面板、控制电动板和接口三部分。

    这里写图片描述
    图1、磁盘的外观

    • 金属固定面板 :磁盘外部总会有一个金属的面板,用于保护整个硬盘,一般其正面贴有产品标签,标注产品的型号、产地、参数等,这些信息是正确使用磁盘的基本依据。金属面板和底板结合成一个密封的整体,保证磁盘稳定运行。

    • 控制电路板 :在磁盘的金属盖上会固定有一个电路板,这个电路板就是磁盘的驱动电路板。为节省空间,一般采用贴片式元件焊接,这些电子元器件组成了功能不同的电子电路,这些电路包括主轴调速电路、磁头驱动、伺服电机定位、读写电路、控制和接口电路等。在电路板上有几个主要的芯片:主控芯片、BIOS芯片、缓存芯片、电机驱动芯片。

    • 接口 :在硬盘的顶端会有几个不同的硬盘接口,这些接口主要包括电源插座接口数据接口主从跳线接口。其中电源插口和主机电源相连,为硬盘工作提供电力保证。数据接口则是硬盘数据和主板控制电路质检进行传输交换的纽带。中间的主、从盘跳线接口,用以设置主从硬盘,即设置硬盘驱动器的访问顺序。

    3.2、内部结构

      打开磁盘的外壳,其内部结构一览无余。磁盘内部结构主要包括磁头组件、磁头驱动组件、盘片与主轴组件和前置控制电路。

    • 磁头组件磁头组件包括读写磁头、传动手臂、传动轴三部分组成。其中最主要的部分是磁头,另外两部分可以看作是磁头的辅助装置。传动轴带动传动手臂,使磁头到达制定位置。磁盘在工作时,磁头通过感应旋转的盘片上磁场的变化来读取数据,通过改变盘片上的磁场来写入数据。为避免磁头和盘片的磨损,在工作状态时,磁头悬浮在盘片上方,间隙仅有0.1 -0.3um。

    • 磁头驱动组件磁头的移动是靠驱动组件实现的,磁盘的寻到时间 长短与磁头驱动组件关系密切。高精度的磁头驱动机构能够对磁头进行正确的驱动和定位,并能在很短的时间内精确定位系统指令指定的磁道,保证数据读写的可靠性。

    • 盘片与主轴组件 :盘片是硬盘存储数据的载体,将在下段重点表述。主轴组件包括主轴部件轴瓦和驱动电机等。随着硬盘容量的扩大和速度提高,主轴电机的速度也在不断提高。

    • 前置控制电路前置控制电路放大磁头感应的信号、主轴电机调速、磁头定位和伺服定位等,由于磁头读取的信号微弱,将放大电路密封在腔体内可减少外来信号的干扰,提高操作指令的准确性。

    3.3、盘面结构

    这里写图片描述
    图2、磁盘盘面的物理构造

      盘片是硬盘存储数据的载体。一块磁盘实际上并不是只有一块盘片,而是由多块盘片组成,每块盘片的正反两面皆可以存放数据。每个盘面上都配有一个读写磁头,而所有的读写磁头连在一根共享的磁臂上。当磁臂运动时,所有的磁头均做相同的运动。盘片则以常速不停地旋转。这个旋转速度通常为每分钟3500 至 10000转,即大约每6ms到17ms旋转一圈。(以10000为例, 10000转 / min, 即10000转耗费1 * 60 * 1000 = 60000ms )

      为方便存储数据,人们将每块盘面分为磁道和扇面

    • 磁道 :磁道是一个个的同心圆。当磁盘旋转时,磁头若保存在一个位置上,则每个磁头都会在磁盘表面划出一个圆形轨迹,这些圆形轨迹就叫做磁道。通常盘片的一面有成千上万个磁道,磁盘上面的信息是沿轨道存放的,但相邻的磁道间保持一定距离,避免磁化单元相近时磁性相互影响。

    • 扇区 :每个盘片的每一面都会划分很多同心圆的磁道,而且还会将每个同心圆进一步分割为多个相等的圆弧,这些圆弧就是扇区(也称扇面)。数据则以扇区进行存储,扇区也是磁盘I/O操作的最小单位。扇区通常包含标题、数据、ECC纠错信息,其中标题包含同步和位置信息,ECC功用是对数据段提供错误侦测和纠正。

    • 柱面 :硬盘通常由多个盘片构成,而且每个面都被划分为数目相等的磁道,并从外边缘开始编号(即最边缘的磁道为0磁道,往里面依次累加)。如此磁道中具有相同编号的磁道会形成一个圆柱,此圆柱称为柱面。磁盘的柱面数与一个盘面上的磁道数是相等的。

    小结:磁盘是不易挥发的持久性存储介质,特点是圆形、磁性。了解其物理结构,有助于我们学习文件系统的相关内容。

    参考资料:
    《操作系统之哲学原理》 邹恒明著

    维基百科 磁盘的物理结构
    百度-硬盘物理结构及其工作原理

    纠错与建议
    邮箱:db_hebut@163.com


    展开全文
  • 常见文件物理结构有以下几种: 1、顺序结构又称连续结构。这是一种最简单的物理结构,它把逻辑上连续的文件信息依次存放在连续编号的物理块中。只要知道文件在存储设备上的起始地址(首块号)和文件长度(总块数...

    常见的文件物理结构有以下几种:

    1、顺序结构又称连续结构。这是一种最简单的物理结构,它把逻辑上连续的文件信息依次存放在连续编号的物理块中。只要知道文件在存储设备上的起始地址(首块号)和文件长度(总块数),就能很快地进行存取。这种结构的优点是访问速度快,缺点是文件长度增加困难。

    2、链接结构这种结构将逻辑上连续的文件分散存放在若干不连续的物理块中,每个物理块设有一个指针,指向其后续的物理块。只要指明文件第一个块号,就可以按链指针检索整个文件。这种结构的优点是文件长度容易动态变化,其缺点是不适合随机访问。

    3、索引结构。采用这种结构逻辑上连续的文件存放在若干不连续的物理块中,系统为每个文件建立一张索引表,索引表记录了文件信息所在的逻辑块号和与之对应的物理块号。索引表也以文件的形式存放在磁盘上。给出索引表的地址,就可以查找与文件逻辑块号对应的物理块号。如果索引表过大,可以采用多级索引结构。这种结构的优点是访问速度快,文件长度可以动态变化。缺点是存储开销大,因为每个文件有一个索引表,而索引表亦由物理块存储,故需要额外的外存空间。另外,当文件被打开时,索引表需要读入内存,否则访问速度会降低一半,故又需要占用额外的内存空间。

    4、Hash结构又称杂凑结构或散列结构。这种结构只适用于定长记录文件和按记录随机查找的访问方式。Hash结构的思想是通过计算来确定一个记录在存储设备上的存储位置,依次先后存入的两个记录在物理设备上不一定相邻。按Hash结构组织文件的两个关键问题是:定义一个杂凑函数;解决冲突;

    5、索引顺序结构,索引表每一项在磁盘上按顺序连续存放在物理块中。

    转载于:https://www.cnblogs.com/Sherloy/p/4979160.html

    展开全文
  • 2、利于文件的动态增加和修改; 3、对每个文件要求存放在存储介质上的 2、链接文件 优点: 1、提高了磁盘空间利用率,存在外部碎片问题 2、不必事先知道文件长度 3、文件动态扩充和修改容易 4、顺序存取效率高 ...

    1、顺序结构

    优点:
    结构简单,实现容易,顺序存取速度快。
    缺点:
    1、用户创建文件时要给出文件的大小;
    2、不利于文件的动态增加和修改;
    3、对每个文件要求存放在存储介质上的

    2、链接文件

    优点:
    1、提高了磁盘空间利用率,不存在外部碎片问题
    2、不必事先知道文件长度
    3、文件动态扩充和修改容易
    4、顺序存取效率高
    缺点:
    1、不适于随机存取,随机存取效率太低,
    2、链接指针占用一定的空间
    3、可靠性问题,如指针出错

    3、索引结构

    优点:
    1、保持了链接结构的优点,又解决了其缺点
    2、即能顺序存取,又能随机存取
    3、满足了文件动态增长、插入删除的要求
    4、能充分利用外存空间
    缺点:
    索引表本身带来了系统开销,如:内外存空间,存取时间

    4、直接文件

    优点:
    把数据的存储和查找消耗的时间大大降低,几乎可以看成是常数时间;而代价仅仅是消耗比较多的内存。
    缺点:
    不能够保证每个元素的关键字与函数值是一一对应的,因此极有可能出现对于不同的元素,却计算出了相同的函数值,这样就产生了“冲突”,要处理“冲突”问题。

    展开全文
  • 同样的,在外存管理中,为了方便对文件数据的管理,文件的逻辑地址空间被分为了一个个文件“块”。 于是文件的逻辑地址页可以表示为(逻辑块号,块内地址)的形式。 二、文件分配方式 1、连续分配 2、链接...
  • 文件物理结构(附脑图)

    千次阅读 2020-05-23 11:48:46
    大多数在字符设备上传输的信息可作为连续文件看待。这种文件的信息是按线性为序存取的,这种方法在大多数磁带系统中常使用...磁盘的结构允许文件管理系统按三种不同的方法组织文件:连续文件、串联文件、随机文件结构
  • 简述Linux文件系统通过i节点把文件的逻辑结构和物理结构转换的工作过程。 参考答案: Linux通过i节点表将文件的逻辑结构和物理结构进行转换。 i 节点是一个64字节长的表,表中包含文件的相关信息,其中有文件的...
  • SQL SERVER2005物理结构文件组成和存储结构
  • oracle数据库的物理结构及逻辑结构

    千次阅读 2017-09-02 18:24:17
    2.1 物理结构 ...常见物理结构包括:控制文件、数据文件、重作日志文件、归档日志文件、初始化参数文件、还有其它文件(密码文件、报警日志文件和后台及用户跟踪文件)。  控制文件  Select* from
  • 文件物理结构文件分配方式) 连续分配 链接分配 索引分配 文件目录 文件控制块 FCB 索引结点(FCB的改进) 文件存储空间管理 空闲表法 空闲链表法 位示图法 成组链接法 文件共享 硬链接:基于索引结点的共享方式...
  • 文件物理结构有哪3种,分别具备什么优缺点 2012-01-03 18:55妖孽YH | 分类:数据结构及算法 | 浏览3597次
  • 文件的逻辑与物理结构。首先看第一个,这是理解后一个概念的关键。摸机子的人都知道,文件按其逻辑结构可以分为:有结构的文件,这是由若干个记录所构成的,又称为记录式文件;无结构文件,这是直接由字符序列所构
  • oracle物理结构

    2011-08-17 10:26:36
     物理结构,即oracle数据库使用的操作系统文件结构。数据库的物理结构文件按其作用可以分为三类: 数据文件 日志文件 控制文件  物理存储结构是指从物理角度分析数据库的构成,即Oracle数据库创建后所使用的...
  • 从逻辑结构方面讲Oracle 数据库以逻辑结构进行内部的管理和维护的这些结构包括表空间段区和块 从物理结构方面讲Oracle 数据库有外部的存储方法Oracle 数据库由一系列的物理文件组成主要有数据文件控制文件和重做日志...
  • 数据库设计之物理结构设计

    万次阅读 多人点赞 2018-07-03 10:58:59
    数据库在物理设备上的存储结构与存取方法称为数据库的物理结构,它依赖于选定的数据库管理系统。为一个给定的逻辑数据模型选取一个最适合应用要求的物理结构的过程,就是数据库的物理设计。 一、数据库的物理...
  • 首先,你需要明白的一点是:数据库的物理结构是由数据库的操作系统文件所决定,每一个Oracle数据库是由三种类型的文件组成:数据文件、日志文件和控制文件。数据库的文件为数据库信息提供真正的物理存储。 每一个...
  • Oracle数据库的体系结构包括四个方面:数据库的物理结构、逻辑结构、内存结构及进程。  1. 物理结构   物理数据库结构是由构成数据库的操作系统文件所决定,Oracle数据库文件包括:  1.1.数据文件(Data File) ...
  • 文件结构及存取方法

    千次阅读 2016-10-11 12:42:22
    文件的组织形式是文件的结构,从不同的角度分析文件有不同的结构形式:逻辑结构和物理结构。从用户角度出发,研究文件的抽象组织方式而定义的文件组织形式为文件的逻辑结构;从系统的角度出发,研究文件的物理组织...
  • Oracle的逻辑结构和物理结构

    千次阅读 2013-11-18 21:19:22
    oracle数据库可以从两个层次划分架构,一个为逻辑结构,另一个为物理结构 如下图所示: 1 逻辑结构  表空间:为数据库提供使用存储空间的逻辑结构,一个表空间可以包含多个数据文件,表空间是逻辑结构和物理结 ...
  • 逻辑结构 存储关系 存储结构 如何存储表数据 表空间(tablespace) 常用表空间 表空间和数据文件的关系 ...Oracle系统体系结构由三部分组成:逻辑结构、物理结构和实例。 逻辑结构 Oracle的逻辑结构是一种...
  • 什么是网站物理结构、逻辑结构

    千次阅读 2011-09-20 18:07:01
    网站结构分为物理结构和逻辑结构两种,很多刚刚接触SEO的新手,往往搞清楚物理结构和逻辑结构的异同,进而造成自己的网站结构规划很乱,不但搜索引擎容易快速建立起网站的整体结构体系,访问者更是很难找到自己...
  • oracle之物理数据库结构概述 (数据文件、重做日志文件,控制文件等各种数据库文件)
  • 数据库包括物理结构和逻辑结构。 1、每一个Oracle数据库是由三种类型的文件组成:数据文件、日志文件和控制文件。数据库的文件为数据库信息提供真正的物理存储。 1)每一个Oracle数据库有一个或多个物理的数据文件...
  • Oracle物理结构

    千次阅读 2009-04-10 10:29:00
    oracle物理结构在一个服务器中,每一个运行的数据库都有一个数据库实例(instancename) 相联系。数据库启动时,系统首先在服务器内存中分配系统全局区(SGA),即构成了oracle的内存结构。然后启动若干个常驻内存的...
  • 文件物理结构可分为 索引文件 ,链式文件 , 顺序文件; 文件的逻辑结构可以分为两大类:有结构文件, 无结构文件 ; 选择题 1.设置当前工作目录的主要目的是( )。 A.节省外存空间 B.节省内容空间 C.加快...
  • 数据库物理结构

    千次阅读 2010-12-29 14:24:00
    数据库文件 1. 数据文件 数据文件用于存储数据库数据、系统数据(数据字典)、用户数据(表、索引、簇)、UNDO数据等。当建立数据库或表空间时,数据文件是通过DATAFILE选项指定的。 2. 重做日志 用于记录数据库...
  • Oracle体系结构之物理结构

    千次阅读 2014-03-24 21:46:10
    Oracle体系结构之物理结构 以前对Oracle的了解少之又少,仅仅停留在最简单的使用层面,最近看《收获,不止Oracle》,对Oracle的整体结构有了大致的了解后再去看其他知识可能会更加容易理解一些。 一、首先Oracle是由...
  • oracle 体系结构 1、oracle内存由SGA+PGA所构成 2、oracle数据库体系结构 数据库的体系结构是指数据库的组成、工作过程与原理,以及数据在数据库中的组织与管理机制。     oracle工作原理: 1)、在数据库服务器...
  • mongodb也分逻辑结构和物理结构,那么这里先介绍下逻辑结构: 1:逻辑结构主要由database->collection->document组成,这里是层次结构。 2:多个文档组成集合,多个集合组成数据库,多个数据库组成mongodb实例 3...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 334,048
精华内容 133,619
关键字:

常见的文件物理结构不包括