免费智能真题库 > 历年试卷 > 软件设计师 > 2018年下半年 软件设计师 上午试卷 综合知识
  第27题      
  知识点:   文件存储空间的管理   操作系统   磁盘   存储器   文件管理
  关键词:   32位   操作系统   磁盘   二进制   文件存储器   文件管理系统   存储器   管理系统        章/节:   计算机软件知识       

 
文件管理系统在磁盘上建立了位示图(bitmap),记录磁盘的使用情况。若磁盘上物理块的编号依次为:0、1、2、....;系统中的字长为32位,位示图中字的编号依次为:0、1、2、..,每个字中的一个二进制位对应文件存储器上的一个物理块,取值0和1分别表示物理块是空闲或占用。假设操作系统将2053号物理块分配给某文件,那么该物理块的使用情况在位示图中编号为( )的字中描述。
 
 
  A.  32
 
  B.  33
 
  C.  64
 
  D.  65
 
 
 

 
  第24题    2011年上半年  
   33%
某文件管理系统在磁盘上建立了位示图(bitmap),记录磁盘的使用情况。若系统的字长为32位,磁盘上的物理块依次编号为0、1、2、&h..
  第23题    2011年上半年  
   36%
某文件管理系统在磁盘上建立了位示图(bitmap),记录磁盘的使用情况。若系统的字长为32位,磁盘上的物理块依次编号为0、1、2、&h..
  第26题    2013年下半年  
   33%
某文件管理系统采用位示图(bitmap)记录磁盘的使用情况。如果系统的字长为32位,磁盘物理块的大小为4MB,物理块依次编号为:0、1、..
   知识点讲解    
   · 文件存储空间的管理    · 操作系统    · 磁盘    · 存储器    · 文件管理
 
       文件存储空间的管理
        外存空间管理的数据结构通常称为磁盘分配表。常用的空间管理方法有空闲区表、位示图、空闲块链和成组链接法4种。
        1)空闲区表
        将外存空间上一个连续未分配区域称为空闲区。操作系统为磁盘外存上所有空闲区建立一张空闲表,每个表项对应一个空闲区,空闲表中包含序号、空闲区的第一块号、空闲块的块数等信息。它适用于连续文件结构。
        2)位示图
        在外存上建立一张位示图,记录文件存储器的使用情况。每一位对应文件存储器上的一个物理块,取值0和1分别表示空闲和占用。这种方法的主要特点是位示图的大小由磁盘空间的大小(物理块总数)决定,位示图的描述能力强,适合各种物理结构。
        3)空闲块链
        每个空闲物理块中有指向下一个空闲物理块的指针,所有空闲物理块构成一个链表,链表的头指针放在文件存储器的特定位置上(如管理块中)。
        4)成组链接法
        在UNIX系统中,将空闲块分成若干组,每100个空闲块为一组,每组的第一个空闲块登记了下一组空闲块的物理盘块号和空闲块总数,假如一个组的第一个空闲块号等于0的话,就意味着该组是最后一组,即无下一组空闲块。
 
       操作系统
        编写嵌入式软件有两种选择:一是自己编写内核;二是使用现成的操作系统。如果嵌入式软件只需要完成一项非常小的工作,例如在电动玩具、空调中,就不需要一个功能完整的操作系统。但如果系统的规模较大、功能较复杂,那么最好还是使用一个现成的操作系统。可用于嵌入式系统软件开发的操作系统有很多,但关键是如何选择一个适合开发项目的操作系统,可以从以下几点进行考虑:
        (1)操作系统提供的开发工具。有些实时操作系统只支持该系统供应商的开发工具,因此,还必须从操作系统供应商处获得编译器、调试器等;而有的操作系统应用广泛,且有第三方工具可用,因此选择的余地比较大。
        (2)操作系统向硬件接口移植的难度。操作系统到硬件的移植是一个重要的问题,是关系到整个系统能否按期完工的一个关键因素。因此,要选择那些可移植性程度高的操作系统,以避免因移植带来的种种困难。
        (3)操作系统的内存要求,有些操作系统对内存有较大要求。
        (4)操作系统的可剪裁性、实时性能等。
 
       磁盘
        在磁表面存储器中,磁盘的存取速度最快,且具有较大的存储容量,是目前广泛使用的外存储器。磁盘存储器由盘片、驱动器、控制器和接口组成。盘片的两面用来存储信息。驱动器用于驱动磁头(读/写头)沿盘面作径向运动以寻找目标磁道位置,驱动盘片以额定速率稳定旋转,通常是5400~15000r/min(Revolution Per Minute,RPM),并且控制数据的写入和读出。控制器接收主机发来的命令,将它转换成磁盘驱动器的控制命令,并实现主机和驱动器之间数据格式的转换及数据传送,以控制驱动器的读/写操作。一个控制器可以控制一台或多台驱动器。接口是主机和磁盘存储器之间的连接逻辑。
        磁盘存储器也称为硬盘存储器。硬盘存储器具有存储容量大,使用寿命长,存取速度较快的特点。硬盘存储器的硬件包括硬盘控制器(适配器)、硬盘驱动器以及连接电缆。硬盘控制器(Hard Disk Controller,HDC)对硬盘进行管理,并在主机和硬盘之间传送数据。硬盘控制器以适配卡的形式插在主板上或直接集成在主板上,然后通过电缆与硬盘驱动器相连。硬盘驱动器(Hard Disk Drive,HDD)中有盘片、磁头、主轴电机(盘片旋转驱动机构)、磁头定位机构、读/写电路和控制逻辑等。
        为了提高单台驱动器的存储容量,在硬盘驱动器内使用了多个盘片,它们被叠装在主轴上,构成一个盘组;每个盘片的两面都可用作记录面,所以一个硬盘的存储容量又称为盘组容量。
        硬盘的接口方式可以说是硬盘另一个非常重要的技术指标,这点从SCSI硬盘和IDE硬盘的巨大差价就能体现出来,接口方式直接决定硬盘的性能。现在最常见的接口有IDE(ATA)和SCSI两种,此外还有一些移动硬盘采用了PCMCIA或USB接口。
        .IDE(Integrated Drive Electronics):IDE接口最初由CDC、康柏和西部数据公司联合开发,由美国国家标准协会(ATA)制定标准,所以又称ATA接口。普通用户家里的硬盘几乎全是IDE接口的。IDE接口的硬盘可细分为ATA-1(IDE)、ATA-2(EIDE)、ATA-3(Fast ATA-2)、ATA-4(包括UItraATA、Ultra ATA/33、Ultra ATA/66)与Serial ATA(包括Ultra ATA/100及其他后续的接口类型)。基本IDE接口数据传输率为4.1Mb/s,传输方式有PIO和DMA两种,支持总线为ISA和EISA。后来为提高数据传输率、增加接口上能连接的设备数量、突破528MB限制及连接光驱的需要,又陆续开发了ATA-2、ATAPI和针对PCI总线的FAST-ATA、FAST-ATA2等标准,数据传输率达到了16.67MB/s。
        .小型计算机系统接口(Small Computer System Interface,SCSI):SCSI并不是专为硬盘设计的,实际上它是一种总线型接口。由于独立于系统总线工作,所以它的最大优势在于其系统占用率极低,但由于其昂贵的价格,这种接口的硬盘大多用于服务器等高端应用场合。
 
       存储器
        计算机系统中包括各种存储器,如CPU内部的通用寄存器组和Cache(高速缓存)、CPU外部的Cache、主板上的主存储器、主板外的联机(在线)磁盘存储器以及脱机(离线)的磁带存储器和光盘存储器等。不同特点的存储器通过适当的硬件、软件有机地组合在一起形成计算机的存储体系层次结构,位于更高层的存储设备比较低层次的存储设备速度更快、单位比特造价也更高。其中,Cache和主存之间的交互功能全部由硬件实现,而主存与辅存之间的交互功能可由硬件和软件结合起来实现。
               存储器的分类
                      按存储器所处的位置分类
                      按存储器所处的位置可分为内存和外存。
                      (1)内存。也称为主存(Main Memory),设在主机内或主机板上,用来存放机器当前运行所需要的程序和数据,以便向CPU提供信息。相对于外存,其特点是容量小、速度快。
                      (2)外存。也称为辅存,如磁盘、磁带和光盘等,用来存放当前不参加运行的大量信息,而在需要时调入内存。
                      按存储器的构成材料分类
                      按构成存储器的材料可分为磁存储器、半导体存储器和光存储器。
                      (1)磁存储器。磁存储器是用磁性介质做成的,如磁芯、磁泡、磁膜、磁鼓、磁带及磁盘等。
                      (2)半导体存储器。根据所用元器件又可分为双极型和MOS型;根据数据是否需要刷新又可分为静态(Static memory)和动态(Dynamic memory)两类。
                      (3)光存储器。利用光学方法读/写数据的存储器,如光盘(Optical Disk)。
                      按存储器的工作方式分类
                      按存储器的工作方式可分为读/写存储器和只读存储器。
                      (1)读/写存储器(Random Access Memory,RAM)。它指既能读取数据也能存入数据的存储器。按照存储单元的工作原理,随机存储器又分为静态随机存储器(Static RAM,SRAM)和动态随机存储器(Dynamic RAM,DRAM)。SRAM比DRAM更快,也贵得多。
                      (2)只读存储器。工作过程中仅能读取的存储器,根据数据的写入方式,这种存储器又可细分为ROM、PROM、EPROM和EEPROM等类型。
                      ①固定只读存储器(Read Only Memory,ROM)。这种存储器是在厂家生产时就写好数据的,其内容只能读出,不能改变。一般用于存放系统程序BIOS和用于微程序控制。
                      ②可编程的只读存储器(Programmable Read Only Memory,PROM)。其中的内容可以由用户一次性地写入,写入后不能再修改。
                      ③可擦除可编程的只读存储器(Erasable Programmable Read Only Memory,EPROM)。其中的内容既可以读出,也可以由用户写入,写入后还可以修改。改写的方法是写入之前先用紫外线照射15~20分钟以擦去所有信息,然后再用特殊的电子设备写入信息。
                      ④电擦除可编程的只读存储器(Electrically Erasable Programmable Read Only Memory,EEPROM)。与EPROM相似,EEPROM中的内容既可以读出,也可以进行改写。只不过这种存储器是用电擦除的方法进行数据的改写。
                      ⑤闪存(Flash Memory)。闪存是一种非易失性存储器,基于EEPROM,已成为重要的存储技术,为大量电子设备包括数码相机、手机、PDA、笔记本、台式机和服务器等计算机系统提供快速且持久的存储能力。
                      存储在ROM设备中的程序通常称为固件(Firmware)。例如,当计算机加电后,它会运行存储在ROM中的固件。
                      按访问方式分类
                      按访问方式可分为按地址访问的存储器和按内容访问的存储器。
                      按寻址方式分类
                      按寻址方式可分为随机存储器、顺序存储器和直接存储器。
                      (1)随机存储器(Random Access Memory,RAM)。这种存储器可对任何存储单元存入或读取数据,访问任何一个存储单元所需的时间是相同的。
                      (2)顺序存储器(Sequentially Addressed Memory,SAM)。访问数据所需要的时间与数据所在的存储位置相关,磁带是典型的顺序存储器。
                      (3)直接存储器(Direct Addressed Memory,DAM)。介于随机存取和顺序存取之间的一种寻址方式。磁盘是一种直接存取存储器,它对磁道的寻址是随机的,而在一个磁道内则是顺序寻址。
               相联存储器
               相联存储器是一种按内容访问的存储器。其工作原理就是把数据或数据的某一部分作为关键字,按顺序写入信息,读出时并行地将该关键字与存储器中的每一单元进行比较,找出存储器中所有与关键字相同的数据字,特别适合于信息的检索和更新。
               相联存储器的结构如下图所示。
               
               相联存储器的结构框图
               相联存储器中,输入检索寄存器用来存放要检索的内容(关键字),屏蔽寄存器用来屏蔽那些不参与检索的字段,比较器将检索的关键字与存储体的每一单元进行比较。为了提高速度,比较器的数量应很大。对于位比较器,应每位对应一个,应有2m×N个,对于字比较器应有2m个。匹配寄存器用来记录比较的结果,它应有2m个二进制位,用来记录2m个比较器的结果,1为相等(匹配),0为不相等(不匹配)。
               相联存储器可用在高速缓冲存储器中,在虚拟存储器中用来作为段表、页表或快表存储器,用在数据库和知识库中。
               高速缓存
               高速缓存(Cache)由快速半导体存储器构成,用来存放当前最活跃的程序和数据,其内容是主存局部域的副本,对程序员来说是透明的。
                      高速缓存的组成
                      Cache存储器中控制部分的功能是判断CPU要访问的信息是否在Cache存储器中,若在即为命中,若不在则没有命中。命中时直接对Cache存储器寻址;未命中时,要按照替换原则决定主存的一块信息放到Cache存储器的哪一块里。
                      现代CPU中Cache分为了多个层级,如下图所示。
                      
                      三级Cache示意图
                      在多级Cache的计算机中,Cache分为一级(L1 Cache)、二级(L2Cache)、三级(L3 Cache)等,CPU访存时首先查找L1 Cache,如果不命中,则访问L2Cache,直到所有级别的Cache都不命中,才访问主存。通常要求L1 Cache的速度足够快,以赶上CPU的主频。如果Cache为两级,则L1 Cache的容量一般都比较小,为几千字节到几十千字节;L2 Cache则具有较高的容量,一般为几百字节到几兆字节,以使高速缓存具有足够高的命中率。
                      高速缓存中的地址映像方法
                      在CPU工作时,送出的是主存单元的地址,而应从Cache存储器中读/写信息。这就需要将主存地址转换成Cache存储器的地址,这种地址的转换称为地址映像。Cache的地址映像有如下3种方法。
                      (1)直接映像。直接映像是指主存的块与Cache块的对应关系是固定的,如下图所示。
                      
                      直接映像示意图
                      在这种映像方式下,由于主存中的块只能存放在Cache存储器的相同块号中,因此,只要主存地址中的主存区号与Cache中记录的主存区号相同,则表明访问Cache命中。一旦命中,由主存地址中的区内块号立即可得到要访问的Cache存储器中的块,而块内地址就是主存地址中给出的低位地址。
                      直接映像方式的优点是地址变换很简单,缺点是灵活性差。例如,不同区号中块号相同的块无法同时调入Cache存储器,即使Cache存储器中有空闲的块也不能利用。
                      (2)全相联映像。全相联映像如下图所示。同样,主存与Cache存储器均分成大小相同的块。这种映像方式允许主存的任一块可以调入Cache存储器的任何一个块的空间中。
                      
                      全相联映像示意图
                      例如,主存为64MB,Cache为32KB,块的大小为4KB(块内地址需要12位),因此主存分为16384块,块号从0~16383,表示块号需要14位,Cache分为8块,块号为0~7,表示块号需3位。存放主存块号的相联存储器需要有Cache块个数相同数目的单元(该例中为8),相联存储器中每个单元记录所存储的主存块的块号,该例中相联存储器每个单元应为14位,共8个单元。
                      在地址变换时,利用主存地址高位表示的主存块号与Cache中相联存储器所有单元中记录的主存块号进行比较,若相同即为命中。这时相联存储器单元的编号就对应要访问Cache的块号,从而在相应的Cache块中根据块内地址(上例中块内地址是12位,Cache与主存的块内地址是相同的)访问到相应的存储单元。
                      全相联映像的主要优点是主存的块调入Cache的位置不受限制,十分灵活。其主要缺点是无法从主存块号中直接获得Cache的块号,变换比较复杂,速度比较慢。
                      (3)组相联映像。这种方式是前面两种方式的折中。具体方法是将Cache中的块再分成组。例如,假定Cache有16块,再将每两块分为1组,则Cache就分为8组。主存同样分区,每区16块,再将每两块分为1组,则每区就分为8组。
                      组相联映像就是规定组采用直接映像方式而块采用全相联映像方式。也就是说,主存任何区的0组只能存到Cache的0组中,1组只能存到Cache的1组中,以此类推。组内的块则采用全相联映像方式,即一组内的块可以任意存放。也就是说,主存一组中的任一块可以存入Cache相应组的任一块中。
                      在这种方式下,通过直接映像方式来决定组号,在一组内再用全相联映像方式来决定Cache中的块号。由主存地址高位决定的主存区号与Cache中区号比较可决定是否命中。主存后面的地址即为组号。
                      替换算法
                      替换算法的目标就是使Cache获得尽可能高的命中率。常用算法有如下几种。
                      (1)随机替换算法。就是用随机数发生器产生一个要替换的块号,将该块替换出去。
                      (2)先进先出算法。就是将最先进入Cache的信息块替换出去。
                      (3)近期最少使用算法。这种方法是将近期最少使用的Cache中的信息块替换出去。
                      (4)优化替换算法。这种方法必须先执行一次程序,统计Cache的替换情况。有了这样的先验信息,在第二次执行该程序时便可以用最有效的方式来替换。
                      Cache性能分析
                      Cache的性能是计算机系统性能的重要方面。命中率是Cache的一个重要指标,但不是最主要的指标。Cache设计的目标是在成本允许的条件下达到较高的命中率,使存储系统具有最短的平均访问时间。设Hc为Cache的命中率,tc为Cache的存取时间,tm为主存的访问时间,则Cache存储器的等效加权平均访问时间ta为:
                      ta=Hctc+(1-Hc)tm=tc+(1-Hc)(tm-tc
                      这里假设Cache访问和主存访问是同时启动的,其中,tc为Cache命中时的访问时间,(tm-tc)为失效访问时间。如果在Cache不命中时才启动主存,则
                      ta=tc+(1-Hc)tm
                      Cache的命中率与Cache容量的关系如下图所示。Cache容量越大,则命中率越高,随着Cache容量的增加,其失效率接近0%(命中率逐渐接近100%)。但是,增加Cache容量意味着增加Cache的成本和增加Cache的命中时间。
                      
                      Cache容量与命中率的关系
                      在指令流水线中,Cache访问作为流水线中的一个操作阶段,Cache失效将影响指令的流水。因此,降低Cache的失效率是提高Cache性能的一项重要措施。当Cache容量比较小时,容量因素在Cache失效中占有比较大的比例。降低Cache失效率的方法主要有选择恰当的块容量、提高Cache的容量和提高Cache的相联度等。
               虚拟存储器
               在概念上,可以将主存存储器看作一个由若干个字节构成的存储空间,每个字节(称为一个存储单元)有一个地址编号,主存单元的该地址称为物理地址(physical address)。当需要访问主存中的数据时,由CPU给出要访问数据所在的存储单元地址,然后由主存的读写控制部件定位对应的存储单元,对其进行读(或写)操作来完成访问操作。
               现代系统提供了一种对主存的抽象,称为虚拟存储(virtual memory),使用虚拟地址(virtual address,由CPU生成)的概念来访问主存,使用专门的MMU(Memory Management Unit)将虚拟地址转换为物理地址后访问主存。设主存容量为4GB,则其简化后的访问操作和内存模型如下图所示。
               
               内存模型及使用虚拟地址访存示意图
               虚拟存储器实际上是一种逻辑存储器,实质是对物理存储设备进行逻辑化的处理,并将统一的逻辑视图呈现给用户。因此,用户在使用时,操作的是虚拟设备,无需关心底层的物理环境,从而可以充分利用基于异构平台的存储空间,达到最优化的使用效率。
               外存储器
               外存储器用来存放暂时不用的程序和数据,并且以文件的形式存储。CPU不能直接访问外存中的程序和数据,只有将其以文件为单位调入主存才可访问。外存储器主要由磁表面存储器(如磁盘、磁带)、光盘存储器及固态硬盘(采用Flash芯片或DRAM作为存储介质的存储器)构成。
                      磁盘存储器
                      硬盘是最常见的外存储器。一个硬盘驱动器内可装有多个盘片,组成盘片组,每个盘片都配有一个独立的读/写头。
                      为了正确地存储信息,将盘片划成许多同心圆,称为磁道(track)。将一个磁道沿圆周划分为若干段,每段称为一个扇区(sector),每个扇区内可存放一个固定长度的数据块,如512字节。一组盘片的所有记录面上相同序号的磁道构成一个柱面(cylinder)。
                      硬盘的寻址信息由硬盘驱动号、柱面号、磁头号(记录面号)、数据块号(或扇区号)以及交换量组成。
                      磁盘以扇区大小的块来读写数据。对扇区的访问时间(access time)主要包括以下三个部分:寻道时间(seek time)、旋转时间(rotational latency)和传送时间(transfer time)。
                      (1)寻道时间。为了读取某个目标扇区的内容,需要将读/写头移动到包含目标扇区的磁道上,这称为寻道时间Tseek。显然,寻道时间与读/写头的移动速度以及其之前的位置有关。通过数千次对随机扇区的寻道操作求平均值来测得平均寻道时间,一般为3~9ms。
                      (2)旋转时间。一旦读/写头定位至期望的磁道,就等待目标扇区旋转到读/写头的下方,该时间依赖于读/写头到达目标扇区前盘面的位置和旋转速度。在最坏情况下,读/写头刚好错过目标扇区,就必须等待磁盘旋转一周。因此,最大旋转延迟时间Tmax rotaion为磁盘旋转速度的倒数,平均旋转时间Tavg rotaion为最大旋转延迟时间的一半。
                      (3)传送时间。当目标扇区的第一个位位于读/写头下方时,就可以开始读或写该扇区的内容了。一个扇区数据的传送时间依赖与旋转速度和每磁道的扇区数目,因此可以粗略估算一个扇区的平均传送时间Tavg transfer为磁盘旋转速度的倒数乘以每磁道扇区数的倒数。
                      现代磁盘构造复杂,大容量磁盘采用多区记录技术,将柱面的集合分割成不相交的子集,每个子集称为一个记录区。每个记录区包含一组连续的柱面,一个及记录区中每个柱面的每条磁道有相同数量的扇区,扇区数由最靠近盘片中心的磁道所能包含的扇区数决定。
                      一个磁盘上可以记录的最大位数称为其最大容量。最大容量由记录密度、磁道密度和面密度决定。
                      记录密度是指每英寸磁道的段中可以存储的位数。磁道密度是盘片半径方向上每英寸的磁道数。面密度则是记录密度与磁道密度的乘积。
                      磁盘最大容量等于每扇区字节数×每磁道平均扇区数×每盘面磁道数×每盘片记录面数×盘片数。
                      磁盘通常以千兆字节(GB)或兆兆字节(TB)为单位来表示磁盘容量,且1GB=109B,1TB=1012B。
                      磁盘控制器必须对磁盘进行格式化后才能存储数据。格式化后的容量通常小于最大容量。
                      光盘存储器
                      根据性能和用途,光盘存储器可分为只读型光盘(CD-ROM)、只写一次型光盘(WORM)和可擦除型光盘。只读型光盘是由生产厂家预先用激光在盘片上蚀刻不能再改写的各种信息,目前这类光盘的使用很普遍。只写一次型光盘是指由用户一次写入、可多次读出但不能擦除的光盘,写入方法是利用聚焦激光束的热能,使光盘表面发生永久性变化而实现的。可擦除型光盘是读/写型光盘,它是利用激光照射引起介质的可逆性物理变化来记录信息。
                      光盘存储器由光学、电学和机械部件等组成。其特点是记录密度高、存储容量大、采用非接触式读/写信息(光头距离光盘通常为2mm)、信息可长期保存(其寿命达10年以上)、采用多通道记录时数据传送率可超过200Mb/s、制造成本低、对机械结构的精度要求不高、存取时间较长。
                      固态硬盘
                      固态硬盘(Solid State Disk,SSD)的存储介质分为两种,一种是采用闪存(FLASH芯片)作为存储介质;另一种是采用DRAM作为存储介质。
                      基于闪存的固态硬盘是固态硬盘的主要类别,其主体是一块PCB板,板上最基本的配件就是控制芯片、缓存芯片和用于存储数据的闪存芯片。主控芯片是固态硬盘的大脑,其作用有两个:一是合理调配数据在各个闪存芯片上的负荷;二是承担数据中转的作用,连接闪存芯片和外部SATA或USB接口。不同主控芯片差异很大,在数据处理能力、算法,对闪存芯片的读写控制方面会有非常大的不同,直接会导致固态硬盘产品在性能上差距很大。
                      一个闪存由多个块、每块由多页组成,通常页的大小为512B~4KB,块的大小为32~128页。在闪存中,数据是以页为单位读写的。只有在一个页所在的块被整体擦除后,才能写入该页。写一个块重复写入限定次数(例如100000)后,该块就会磨损坏而不能再使用。如果一个固态硬盘的主控芯片中磨损逻辑处理得好,就可以用很多年。
                      SSD的读操作比写操作要快,顺序读写操作比随机读写操作要快。进行随机写操作时,要擦除整块,因此需要较长的时间。另外,如果写操作试图修改一个包含其他有用数据的块,则需要将有用数据复制到一个新擦除的块中,然后才能进行写入操作。
                      固态硬盘的接口规范和定义、功能及使用方法上与普通硬盘基本相同,外形和尺寸也基本与普通的2.5英寸硬盘一致。
                      固态硬盘虽然价格仍较为昂贵,容量较低,但是由于具有传统机械硬盘不具备的快速读写、质量轻、能耗低以及体积小等特点,因此常作为传统机械式硬盘的替代品使用。
               磁盘阵列技术
               磁盘阵列是由多台磁盘存储器组成的一个快速、大容量、高可靠的外存子系统。现在常见的磁盘阵列称为廉价冗余磁盘阵列(Redundant Array of Independent Disk,RAID)。
               虽然RAID包含多块硬盘,但从用户视角看则是一个独立的大型存储设备。RAID可以充分发挥出多块硬盘的优势,实现远超出任何一块单独硬盘的速度和吞吐量。除了性能上的提高之外,RAID还可以提供良好的容错能力。RAID技术分为几种不同的等级,分别可以提供不同的速度、安全性和性价比。
               目前,常见的RAID如下表所示。
               
               廉价冗余磁盘阵列
               除此之外,上述各种类型的RAID还可以组合起来,构成复合型的RAID,此处不再赘述。
               存储域网络
               存储域网络是连接服务器与存储设备的网络,它能够将多个分布在不同地点的RAID组织成一个逻辑存储设备,供多个服务器共享访问,如下图所示。通过网络将一个或多个服务器与多个存储设备连接起来,每个存储设备可以是RAID、磁带备份系统、磁带库和CD-ROM库等,构成了存储域网络(Storage Area Network,SAN)。这样的网络不仅解决服务器对存储容量的要求,还可以使多个服务器之间可以共享文件系统和辅助存储空间,避免数据和程序代码的重复存储,提高存储器的利用率。另外,SAN还实现了分布式存储系统的集中管理,降低了大容量存储系统的管理成本,提高了管理效率。
               
               SAN的结构
 
       文件管理
        文件系统是操作系统中负责存取和管理信息的模块,它用统一的方式管理用户和系统信息的存储、检索、更新、共享和保护,并为用户提供一整套方便有效的文件使用和操作方法。对于用户来说,可按自己的愿望并遵循文件系统的规则来定义文件信息的逻辑结构,由文件系统提供“按名存取”来实现对用户文件信息的存储和检索。可见,使用者在处理他的信息时,只需关心所执行的文件操作及文件的逻辑结构,而不必涉及存储结构。
               文件与文件系统
                      文件的基本概念
                      文件是由文件名字标识的一组相关信息的集合。文件名是字母或数字组成的字母数字串,它的格式和长度因系统而异。
                      组成文件的信息可以是各式各样的:一个源程序、一批数据、各类语言的编译程序都可以各自组成一个文件。文件可以按各种方法进行分类,如按用途可分成:系统文件、库文件和用户文件;按保护级别可分成:只读文件、读写文件和不保护文件;按信息流向可分成:输入文件、输出文件和输入输出文件等。
                      文件的命名
                      文件是一个抽象机制,它提供了一种把文件保存在磁盘上而且便于以后读取的方法,用户不必了解信息存储的方法、位置以及存储设备实际运作方式等细节。在这一抽象机制中最重要的是文件命名,当一个进程创建一个文件时必须给出文件名字,以后这个文件将独立于进程存在直到它被显式地删除;当其他进程要使用这一文件时必须显式地指出该文件名字;操作系统也将根据该文件名字对文件进行保护。
                      文件类型
                      在现代操作系统中,对于文件乃至设备的访问都是基于文件进行的,例如,打印一批数据就是向打印机设备文件写数据,从键盘接收一批数据就是从键盘设备文件读数据。操作系统一般支持以下几种不同类型的文件:
                      (1)普通文件:即前面所讨论的存储在外存储设备上的数据文件。
                      (2)目录文件:管理和实现文件系统的系统文件。
                      (3)块设备文件:用于磁盘、光盘或磁带等块设备的I/O。
                      (4)字符设备文件:用于终端、打印机等字符设备的I/O。
                      一般来说,普通文件包括ASCII文件或者二进制文件,ASCII文件由多行正文组成,在DOS、Windows等系统中每一行以回车换行结束,整个文件以CTRL+Z结束;在Unix等系统中每一行以换行结束,整个文件以CTRL+D结束。ASCII文件的最大优点是可以原样显示和打印,也可以用通常的文本编辑器进行编辑。另一种正规文件是二进制文件,它往往有一定的内部结构,组织成字节的流,如可执行文件是指令和数据的流,记录式文件是逻辑记录的流。
                      文件系统
                      对文件系统本身来说,必须采用特定的数据结构和有效算法,实现文件的逻辑结构到存储结构的映射,实现对文件存储空间和用户信息的管理,提供多种存取方法。
                      所以,文件系统面向用户的功能是:
                      (1)文件的按名存取。
                      (2)文件目录建立和维护。
                      (3)实现从逻辑文件到物理文件的转换。
                      (4)文件存储空间的分配和管理。
                      (5)提供合适的文件存取方法。
                      (6)实现文件的共享、保护和保密。
                      (7)提供一组可供用户使用的文件操作。
                      为了实现这些功能,操作系统必须考虑文件目录的建立和维护、存储空间的分配和回收、数据的保密和监护、监督用户存取和修改文件的权限、在不同存储介质上信息的表示方式、信息的编址方法、信息的存储次序、以及怎样检索用户信息等问题。
                      文件的存取
                      从用户使用观点来看,关心的是数据的逻辑结构,即记录及其逻辑关系,数据独立于物理环境;从系统实现观点来看,数据则被文件系统按照某种规则排列和存放到物理存储介质上。那么,输入的数据如何存储?处理的数据如何检索?数据的逻辑结构和数据物理结构之间怎样接口?谁来完成数据的成组和分解操作?这些都是存取方法的任务。存取方法是操作系统为用户程序提供的使用文件的技术和手段。
                      (1)顺序存取。
                      按记录顺序进行读/写操作的存取方法称为顺序存取。固定长记录的顺序存取是十分简单的。读操作总是读出下一次要读出的文件的下一个记录,同时,自动让文件记录读指针推进,以指向下一次要读出的记录位置。如果文件是可读可写的。再设置一个文件记录指针,它总指向下一次要写入记录的存放位置,执行写操作时,将一个记录写到文件未端。允许对这种文件进行前跳或后退N(整数)个记录的操作。顺序存取主要用于磁带文件,但也适用于磁盘上的顺序文件。
                      (2)直接存取。
                      很多应用场合要求以任意次序直接读写某个记录,例如,航空订票系统,把特定航班的所有信息用航班号作标识,存放在某物理块中,用户预订某航班时,需要直接将该航班的信息取出。直接存取方法便适合于这类应用,它通常用于磁盘文件。
                      (3)索引存取。
                      第三种类型的存取是基于索引文件的索引存取方法。由于文件中的记录不按它在文件中的位置,而按它的记录键来编址,所以,用户提供给操作系统记录键后就可查找到所需记录。通常记录按记录键的某种顺序存放,例如,按代表健的字母先后次序来排序。对于这种文件,除可采用按键存取外,也可以采用顺序存取或直接存取的方法。信息块的地址都可以通过查找记录键而换算出来。实际的系统中,大都采用多级索引,以加速记录查找过程。
               文件目录
                      文件目录的概念
                      文件系统怎样实现文件的“按名存取”?如何查找文件存储器中的指定文件?如何有效地管理用户文件和系统文件?文件目录便是用于这些操作的重要手段。文件系统的基本功能之一就是负责文件目录的建立、维护和检索,要求编排的目录便于查找、防止冲突,目录的检索方便迅速。
                      有了文件目录后,就可实现文件的“按名存取”。每一个文件在文件目录中登记一项。文件目录项一般应该包括以下内容:
                      (1)有关文件存取控制的信息。如文件名、用户名、授权者存取权限:文件类型和文件属性,如读写文件、执行文件、只读文件等。
                      (2)有关文件结构的信息。文件的逻辑结构,如记录类型、记录个数、记录长度、成组因子数等。文件的物理结构,如记录存放相对位置或文件第一块的物理块号,也可指出文件索引的所在位置。
                      (3)有关文件管理的信息。如文件建立日期、文件最近修改日期、访问日期、文件保留期限、记账信息等。
                      有了文件目录后,就可实现文件的“按名存取”。当用户要求存取某个文件时,系统查找目录项并比较文件名就可找到所寻文件的目录项。然后,通过目录项指出的文件名就可找到所寻文件的目录项,然后通过目录项指出文件的文件信息相对位置或文件信息首块物理位置等就能依次存取文件信息。
                      一级目录结构
                      如下图所示,最简单的文件目录是一级目录结构,在操作系统中构造一张线性表,与每个文件有关的属性占用一个目录项就成了一级目录结构。单用户微型机操作系统CP/M的软盘文件便采用这一结构,每个磁盘上设置一张一级文件目录表,不同磁盘驱动器上的文件目录互不相关。文件目录表由长度为32字节的目录项组成,目录项0称目录头,记录有关文件目录表的信息,其他每个目录项又称文件控制块。文件目录中列出了盘上全部文件的有关信息。CP/M操作系统中文件目录项包括:盘号、文件名、扩展名、文件范围、记录数、存放位置等。
                      
                      一级目录结构示意图
                      一级文件目录结构存在若干缺点:一是重名问题,它要求文件名和文件之间有一一对应关系,但要在多用户的系统中,由于都使用同一文件目录,一旦文件名用重,就会出现混淆而无法实现按名存取。如果人为地限制文件名命名规则,对用户来说又极不方便;二是难以实现文件共享,如果允许不同用户使用不同文件名来共享同一个文件,这在一级目录中是很难实现的,为了解决上述问题,操作系统往往采用二级目录结构,使得每个用户有各自独立的文件目录。
                      二级目录结构
                      在二级目录中,第一级为主文件目录,它用于管理所有用户文件目录,它的目录项登记了系统接受的用户的名字及该用户文件目录的地址。第二级为用户文件目录,它为该用户的每个文件保存一登记栏,其内容与一级目录的目录项相同。每一用户只允许查看自己的文件目录。下图是二级文件目录结构示意。当一个新用户作业进入系统执行时,系统为其在主文件目录中开辟一个区域的地址填入主文件目录中的该用户名所在项。当用户需要访问某个文件时系统根据用户名从主文件目录中找出该用户的文件目录的物理位置,其余的工作与一级文件目录类似。
                      
                      二级目录结构示意图
                      采用二级目录管理文件时,因为任何文件的存取都通过主文件目录,于是可以检查访问文件者的存取权限,避免一个用户未经授权就存取另一个用户的文件,使用户文件的私有性得到保证,实现了对文件的保密和保护。
                      树型目录结构
                      二级目录的推广形成了多级目录。每一级目录可以是下一级目录的说明,也可以是文件的说明,从而,形成了层次关系。多级目录结构通常采用树型结构,它是一棵倒立的有根的树,树根是根目录;从根向下,每一个树枝是一个子目录;而树叶是文件。树型多级目录有许多优点:较好地反映现实世界中具有层次关系的数据集合和较确切地反映系统内部文件的分支结构;不同文件可以重名,只要它们不在同一末端的子目录中,易于规定不同层次或子树中文件的不同存取权限,便于文件的保护、保密和共享等。
               文件的结构和组织
               文件的组织是指文件中信息的配置和构造方式,通常应该从文件的逻辑结构和组织及文件的物理结构和组织两方面加以考虑。文件的逻辑结构和组织是从用户观点出发,研究用户概念中的抽象的信息组织方式,这是用户能观察到的,可加以处理的数据集合。由于数据可独立于物理环境加以构造,所以称为逻辑结构。文件的物理结构和组织是指逻辑文件在物理存储空间中的存放方法和组织关系。这时,文件被看作物理文件,即相关物理块的集合。文件的存储结构涉及块的划分、记录的排列、索引的组织、信息的搜索等许多问题。
                      文件的逻辑结构
                      文件的逻辑结构分两种形式:一种是流式文件,另一种是记录式文件。
                      (1)流式文件。
                      流式文件指文件内的数据不再组成记录,只是依次的一串信息集合,也可以看成是只有一个记录的记录式文件。这种文件常常按长度来读取所需信息,也可以用插入的特殊字符作为分界。为了简化系统,大多数现代操作系统对用户仅仅提供流式文件,记录式文件往往由高级语言或简单的数据库管理系统提供。
                      (2)记录式文件。
                      记录式文件内包含若干逻辑记录,逻辑记录是文件中按信息在逻辑上的独立含意划分的一个信息单位,记录在文件中的排列可能有顺序关系,但除此以外,记录与记录之间不存在其他关系。在这一点上,文件有别于数据库。根据记录的长度可分为定长和不定长两类:定长记录(格式F)指一个记录式文件中所有的逻辑记录都具有相同的长度,同时所有数据项的相对位置也是固定的。定长记录由于处理方便、控制容易,在传统的数据处理中普遍采用。定长记录可以成组或不成组,成组时除最末一块外,每块中的逻辑记录数为一常数。
                      变长记录(格式V)指一个记录式文件中,逻辑记录的长度不相等,但每个逻辑记录的长度处理之前能预先确定。有两种情况会造成变长记录:包含一个或多个可变的长度的数据项;包含了可变数目的定长数据项。
                      文件的物理结构
                      文件系统往往根据存储设备类型、存取要求、记录使用频度和存储空间容量等因素提供若干种文件存储结构。用户看到的是逻辑文件,处理的是逻辑记录,按照逻辑文件形式去存储,检索和加工有关的文件信息,也就是说数据的逻辑结构和组织是面向应用程序的。然而,这种逻辑上的文件总得以不同方式保存到物理存储设备的存储介质上去,所以,文件的物理结构和组织是指逻辑文件在物理存储空间中存放方法和组织关系。
                      (1)顺序文件。
                      将一个文件中逻辑上连续的信息存放到存储介质的依次相邻的块上便形成顺序结构,这类文件叫顺序文件,又称连续文件。显然,这是一种逻辑记录顺序和物理记录顺序完全一致的文件,通常,记录按出现的次序被读出或修改。
                      顺序文件的基本优点是:顺序存取记录时速度较快。顺序文件的主要缺点是:建立文件前需要能预先确定文件长度,以便分配存储空间;修改、插入和增加文件记录有困难;对直接存储器作连续分配,会造成少量空闲块的浪费。
                      (2)连接文件。
                      连接结构的特点是使用连接字,又叫指针来表示文件中各个记录之间的关系。如下图所示,第一块文件信息的物理地址由文件目录给出,而每一块的连接字指出了文件的下一个物理块。通常,连接字内容为0时,表示文件至本块结束。这种文件叫连接文件,又称串联文件。
                      
                      连接文件结构示意图
                      指向其他数据的连接表示是计算机程序设计的一种重要手段,是表示复杂数据关系的一种重要方法,使用指针可以将文件的逻辑记录顺序与它所在存储空间联系起来。
                      (3)索引结构。
                      索引结构是实现非连续存储的另一种方法,适用于数据记录保存有随机存取存储设备上的文件。如下图所示,它使用了一张索引表,其中每个表目包含一个记录的键及其记录数据的存储地址,存储地址可以是记录的物理地址,也可以是记录的符号地址,这种类型的文件称为索引文件。通常,索引表的地址可由文件目录指出,查阅索引表先找到的相应记录键,然后获得数据存储地址。
                      
                      索引文件结构示意图
                      索引文件在文件存储器上分两个区:索引区和数据区。访问索引文件需两步操作:第一步查找文件索引,第二步以相应键登记项内容作为物理或符号地址而获得记录数据。这样,至少需要两次访问辅助存储器,但若文件索引已预先调入主存储器,那么就可减少一次内外存信息交换。
                      索引结构是连接结构的一种扩展,除了具备连接文件的优点外,还克服了它只能作顺序存取的缺点,具有直接读写任意一个记录的能力,便于文件的增加、删除和修改。索引文件的缺点是:增加了索引表的空间开销和查找时间,索引表的信息量甚至可能远远超过文件记录本身的信息量。
               文件的共享和保护
                      文件的保护
                      文件保护是指防止文件被破坏,它包括两个方面:一是防止系统崩溃所造成的文件破坏;二是防止其他用户的非法操作所造成的文件破坏。
                      为防止系统崩溃造成文件破坏,定时转储是一种经常采用的方法,系统的管理员每隔一段时间,或一日、或一周、或一月、或一个期间,把需要保护的文件保存到另一个介质上,以备数据破坏后恢复。如一个单位建立了信息系统,往往会准备多个磁带,以便数据库管理员每天下班前把数据库文件转储到磁带上,这样即使出现了数据库损坏,最多只会丢失一天的数据。由于需要备份的数据文件可能非常多,增量备份是必需的,为此操作系统专门为文件设置了档案属性,用以指明该文件是否被备份过。
                      至于要防止其他用户的非法操作所造成的文件破坏,这往往通过操作系统的安全性策略来实现,其基本思想是建立如下的三元组。
                      (用户、对象、存取权限)
                      其中:
                      (1)用户是指每一个操作系统使用者的标识。
                      (2)对象在操作系统中一般是文件,因为操作系统把对资源的统一到文件层次,如通过设备文件使用设备、通过socket关联文件使用进程通信等。
                      (3)存取权限定义了用户对文件的访问权,如读、写、删除、创建、执行等。一个安全性较高的系统权限划分得较多较细。
                      要实现这一机制必须建立一个如下图所示的存取控制矩阵,它包括两个维,一维列出所有用户名,另一维列出全部文件,矩阵元素的内容是一个用户对于一个文件的存取权限,如用户1对文件1有读权R,用户3对文件1既有读权R,又有写权W和执行权X。
                      
                      存取控制矩阵
                      文件的保密
                      文件保密的目的是防止文件被窃取。主要方法有设置密码和使用密码。
                      密码分成两种:文件密码是用户为每个文件规定一个密码,它可写在文件目录中并隐蔽起来,只有提供的密码与文件目录中的密码一致时,才能使用这个文件。另一种是终端密码,由系统分配或用户预先设定一个密码,仅当回答的密码相符时才能使用该终端。但是它有一个明显的缺点,当要回收某个用户的使用权时,必须更改密码,而更改后的新密码又必须通知其他的授权用户,这无疑是不方便的。
                      使用密码是一种更加有效的文件保密方法,它将文件中的信息翻译成密码形式,使用时再解密。在网络上进行数据传输时,为保证安全性,经常采用密码技术;进一步还可以对在网络上传输的数字或模拟信号采用脉码调制技术,进行硬加密。
   题号导航      2018年下半年 软件设计师 上午试卷 综合知识   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
6 /
7 /
8 /
9 /
10 /
11 /
12 /
13 /
14 /
15 /
 
16 /
17 /
18 /
19 /
20 /
21 /
22 /
23 /
24 /
25 /
26 /
27 /
28 /
29 /
30 /
 
31 /
32 /
33 /
34 /
35 /
36 /
37 /
38 /
39 /
40 /
41 /
42 /
43 /
44 /
45 /
 
46 /
47 /
48 /
49 /
50 /
51 /
52 /
53 /
54 /
55 /
56 /
57 /
58 /
59 /
60 /
 
61 /
62 /
63 /
64 /
65 /
66 /
67 /
68 /
69 /
70 /
71 /
72 /
73 /
74 /
75 /
 
第27题    在手机中做本题