CN1296582A - 改进程序发送时间的系统和方法 - Google Patents

改进程序发送时间的系统和方法 Download PDF

Info

Publication number
CN1296582A
CN1296582A CN99805004A CN99805004A CN1296582A CN 1296582 A CN1296582 A CN 1296582A CN 99805004 A CN99805004 A CN 99805004A CN 99805004 A CN99805004 A CN 99805004A CN 1296582 A CN1296582 A CN 1296582A
Authority
CN
China
Prior art keywords
disk
file
sequence list
bunch
packing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN99805004A
Other languages
English (en)
Other versions
CN1212563C (zh
Inventor
詹姆斯·爱德华·沃尔什
本杰民·阿伦·拉迪克-古尔德
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ivalley Holding Co Ltd
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN1296582A publication Critical patent/CN1296582A/zh
Application granted granted Critical
Publication of CN1212563C publication Critical patent/CN1212563C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3485Performance evaluation by tracing or monitoring for I/O devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

以改进程序发送时间的方式在硬盘驱动器上安装文件。在完成编程后,发送程序,并监视与磁盘加强操作相关的磁盘活动,以便确定在程序或命令发送中从磁盘上读取文件部分的顺序。该数据用于产生装入顺序表,该装入顺序表指示在发送中读取的文件各个部分的顺序。安装盘包括文件和装入顺序表。在安装过程中,安装程序从装入顺序表读数据,并写文件部分,使其以由装入顺序表描述的顺序存储在硬盘驱动器上的邻近簇中。计算机然后以从邻近磁盘簇的正确顺序从磁盘上读发送相关数据,这减少和消除由于为了读发送相关数据而使磁头在非邻近簇之间移动的磁盘存取造成的时间浪费。

Description

改进程序发送时间的系统和方法
本发明涉及在硬盘驱动器上存储数据,特别涉及在程序启动和其它磁盘增强操作时以减少从磁盘读数据所需时间的方式存储数据。
在用于存储计算机数据的磁盘驱动器的上下文中,术语“碎片”指的是文件在磁盘分区或逻辑盘上的非邻近排列。碎片文件可以指在逻辑盘的不同区域上散布的相同磁盘文件部分,或者指整个文件的散布,从而使文件之间存在无用空间。当从逻辑盘删除旧文件和添加新文件时,常常出现碎片。当删除文件时,以前使用的空间就成为可用空间,计算机操作系统在逻辑盘的该空区域内写入新的文件。但是,如果新文件太大而在该空区域内写不下,操作系统可通过在几个空区域内存储该文件的部分而将该文件变成碎片,这些空区域散布在整个逻辑盘上。同样,如果产生的文件太大,超过了与存储该文件的空间相邻的邻近自由空间的大小,则产生的文件便变成碎片。操作系统保持文件每部分存储于何处的记录,因而当从该逻辑盘上读取该文件时,可以以正确的顺序恢复该文件。
在从开始至结束“线性”读取文件的情况下,碎片降低了磁盘的存取速度并降低了整个磁盘操作的特性。提供应用程序以在形成碎片的磁盘上整理碎片。除重新对文件排序以便将每个文件存储在磁盘的邻近部分上外,这些程序通常对文件排序使得这些文件都存储在逻辑盘的开始端。这样在磁盘末端的形成了合并空间,并认为这是有益的,因为操作系统不需要为了寻找存储新文件的足够空间而进行长时间搜索,新文件更可能存储在邻近簇(cluster)中(即非碎片的),而不是散布在整个文件的大量较小的簇组中。
碎片整理是有好处的,它提高了从开始端至末端线性读取文件的特性。但是,当执行一些操作系统时,计算机以一些可预测的序列从几个不同文件恢复数据块,常常只从每个文件读取几个块。例如,发送字处理程序可以导致装入可主执行的动态连接库的第一部分、可主执行的优先文件的第二部分等。当选择一些程序命令(如“打开文件”)时,会发生类似的磁盘操作。这些类型的磁盘加强操作可以导致大量磁盘头从一个物理簇移动到另一个物理簇。因为现代微处理器与磁盘驱动器的平均搜索时间相比是极快的,为了发送典型程序必需从磁盘上读取许多不同文件,发送程序花费了大量时间,使微处理器处于等待磁盘头从一个簇移动到另一个簇的空闲状态。
根据这些观察,当执行磁盘加强操作(如发送程序或发送与一些命令相关的代码),以便以在操作中的存取顺序来对在逻辑盘分区(以及物理磁盘)上的磁盘加强操作中使用的数据块排序。这会导致程序文件设计成“碎片”,并通过减少从逻辑盘装入所需数据的无序磁盘存取的数量而提高特性。
为了优化应用程序发送过程,现有技术公开了该类型应用文件的重构和碎片整理。例如,IBM技术公开公报中顺序号为TDB01960112的文件公开了一种配置文件(profile)引导文件系统的内容。为取代根据关于文件参考模式的静态假定而排序的文件,当程序运行并时,系统动态地确定文件存取模式,并分配磁盘空间以最大化程序运行的每个硬件/软件结构的文件系统特性。为了实现上述功能,当启动程序时,监视文件系统活动,并使存取的磁盘扇区记录包含配置文件数据的文件。以预定的时间间隔,分析配置文件数据以便确定是否可能有更优文件分配结构。如果是,则操作者可以运行重构程序,该重构程序根据配置文件数据指示的磁盘存取模式给文件分配磁盘空间。程序会映射出从配置文件数据到其相关文件的磁盘块存取地址,并在磁盘上将频繁存取的块物理的放置在一起。所获得的磁盘块分配结构优化特定计算机配置的公用存取模式。
微软公司还宣布“WINDOWS 98”操作系统具有这样的特性,即使其在应用程序发送和重新排序存储文件中监视磁盘活动,从而以顺序形式对在启动中使用的数据块排序。
尽管现有技术公开了优化用于程序启动的文件的方法,但是这些技术使在程序安装在计算机上并随后由用户发送后执行的。该过程具有几个缺点。例如,直到程序安装和发送以及已经监视到启动过程后才能进行优化。在程序启动过程中监视磁盘存取过程会大大降低启动速度。在监视了启动过程后,计算机必须运行费时优化例行程序,该程序防止用户在优化过程中使用计算机,或需要用户离开计算机,以便运行几小时这样的例行程序。最后,该过程只适于监视和优化启动过程,而不适于其它磁盘加强操作,如装入与一些命令(如“打开”)有关的代码。
在操作系统软件上实现优化特性,用户为利用这些优化特性本身,必须获得和安装操作系统合适版本的拷贝。在很多情况下,用户不愿在采用新性能的操作系统软件升级上花费钱或时间,或者是在公司中用户自己不能作决定。因此使大量用户使用老版本操作系统,而不能获得在应用程序启动上的改进特性。
因此,本领域需要改进的系统和方法,目的是以在应用或命令发送时进行存取的顺序在逻辑盘上存储数据。该方法应使其在安装在逻辑盘上后不需监视应用程序文件,并且也不要求用户申请和安装新版本的操作系统软件。
本发明满足上述需要,通过对程序安装或以后的重构,使发送相关的部分以尽可能接近在典型发送中读取的顺序存储,该部分是在发送程序或执行命令时读取的。在安装中或安装后使用的该软件包含必要的程序文件和装入顺序表(1oad sequence list),其识别读文件的与发送相关部分的顺序。在安装和以后的重排序中,文件的发送相关部分以装入顺序表中指示的顺序排序,发送相关部分最好存储在逻辑盘上的邻近簇中。剩下的文件安装在磁盘上的其它自由空间中。当用户运行程序时,由于计算机能以正确顺序从逻辑盘上的邻近簇中读取启动文件,因而会减少启动时间,由此缩短由于从非邻近簇读取数据而造成的延迟。
一般说来,本发明提供计算机可读取安装媒体,并以加速启动或发送程序或其它磁盘加强操作过程的方式来安装程序或在以后对程序重新排序。安装媒体包含具有发送部分的多个文件和装入顺序表。装入顺序表指示要在逻辑盘上排序的文件发送相关部分的顺序。该安装媒体还包含计算机可执行的指令,用于执行安装或重新排序步骤。安装或重新排序包含识别在逻辑盘上的至少一组邻近自由簇。多个文件的发送相关部分安装在一组邻近自由簇中,使发送相关部分以装入顺序表指示的顺序存储在硬盘驱动器上。
另一方面,本发明提供一种从安装盘向硬盘驱动器安装程序代码的方法。该方法包含从存储在安装盘上的装入顺序表读取项(entry)的步骤。每个项识别与程序代码有关的文件部分。对于从装入顺序表读取的每个项,从安装盘上读取由项识别的文件部分,并将其写到硬盘驱动器的一组邻近自由簇上。该文件部分以对应装入顺序表中的项的顺序存储在硬盘驱动器上。
另一方面,本发明提供一种产生程序代码并将其从安装盘安装在逻辑盘上的方法。该方法包含产生包含发送相关部分的文件和确定在程序发送或其它磁盘加强操作中对发送相关部分的读取顺序。产生装入顺序表以反映在程序发送中读取发送相关部分的顺序。该文件、装入顺序表和安装程序存储在安装盘中。该安装程序包含计算机可执行指令,用于识别逻辑盘上的至少一组邻近自由簇,并安装在一组或多组邻近自由簇中的多个文件的发送相关部分。发送相关部分以装入顺序表中指示的顺序存储在逻辑盘上
另一方面,本发明提供一种安装和优化逻辑盘上的程序代码的方法。该方法包含步骤:产生包含与磁盘加强操作有关的部分的多个文件和确定在磁盘加强操作中读取磁盘加强部分的顺序。产生装入顺序表以指示在磁盘加强操作中读取磁盘加强部分的顺序。多个文件和装入顺序表安装在逻辑盘上。在安装后,通过识别逻辑盘上至少一组邻近自由簇并对自由簇中的磁盘加强部分重新排序而优化磁盘加强部分。磁盘加强部分以装入顺序表中指示的顺序存储在逻辑盘上。
根据对下述实施例的详细说明和参考附图与权利要求,可以更清楚理解本发明的各个方面。
图1是为本发明一个实施例提供操作环境的个人计算机的方框图;
图2是流程图,显示了获得在逻辑盘上安装文件并以在程序发送中装入的顺序来存储文件的安装盘的举例性方法;
图3是流程图,显示了从安装盘向逻辑盘安装文件并以在程序发送中装入的顺序来存储文件的举例性方法;
图4是显示举例性装入顺序表的内容的表格;
图5是显示启动相关的三个文件的部分以及这些部分装入顺序的表格;
图6是显示将文件部分写到逻辑盘上的自由簇的举例性方法的表格;
图7是显示将文件部分写到逻辑盘上的自由簇的举例性方法的表格;
图8是流程图,显示另一种在将文件安装到逻辑驱动器上后的优化文件部分的方法。
本发明目的是提供用于在硬盘驱动器上安装程序的改进的系统和方法。在一个举例性实施例中,应用程序相关文件安装在逻辑盘分区上(即物理磁盘驱动器的逻辑子集),使发送相关部分以在发送中读取的顺序存储,该发送相关部分是在发送程序或选择命令时读取的。
安装软件包含必要文件和装入顺序表,装入顺序表识别在发送中装入的文件的发送相关部分的顺序。在安装过程中,在发送中使用的文件部分以装入顺序表中指示的顺序安装,发送相关部分最好存储在逻辑盘上的邻近簇中。剩下的文件安装在逻辑盘上的其它自由空间中。另外,可以以普通方式安装程序文件,随后以装入顺序表所指示的顺序对发送相关部分重新排序。当用户发送程序或选择命令时,由于计算机能以正确顺序从逻辑盘上的邻近簇中读取发送相关部分文件,因而缩短了发送时间,由此减少了由于从非邻近簇读取数据而延迟的时间。
下面参照附图说明本发明的的各方面和举例性的操作环境,其中相同标号表示各图中相同的部分。
图1和下述说明试图提供对实施本发明的合适计算机环境的简洁而概括的说明。在安装程序的概括上下文中描述的本发明用于在与个人计算机相连的硬盘驱动器上安装应用程序,本领域的技术人员会知道本发明还可结合各种程序模块来实现,这些程序模块包含应用程序模块、操作系统模块、实用程序模块和类似的程序模块。一般地,程序模块包含例行程序、程序、元件和数据结构等,用于完成特定任务或处理特定数据类型。此外,本领域的技术人员能理解,本发明可以和其它计算机系统配置一起使用,这些计算机系统配置包含手持式装置、多处理器系统、基于微处理器或可编程的用户电子设备、微型计算机、主计算机和类似装置。本发明还可用于散布式计算环境,通过由通讯网络连接的远程处理器来完成任务。在散布式计算环境中,程序模块可以位于本地和远程内存存储器上。
参照图1,实现本发明的系统实施例包含普通个人计算机20,个人计算机20包含处理器21、系统内存22和将系统内存与处理器21相连的系统总线23。系统内存22包含只读存储器(ROM)24和随机存取存储器(RAM)25。基本输入/输出系统26(BIOS)存储在ROM24内,BIOS 26包含帮助在个人计算机20内的各组成之间传送信息的基本例行程序,如在启动中。个人计算机20还包含硬盘驱动器27、可换式磁盘驱动器28和光盘驱动器30,可换式磁盘驱动器28可在可换式磁盘29上读写,光盘驱动器30用于读CD-ROM盘31或在另一光媒体上读写。硬盘驱动器27、可换磁盘式驱动器28和光盘驱动器30分别通过硬盘驱动器接口32、可换磁盘式驱动器接口33和光盘驱动器接口34连接到系统总线33上。驱动器和其相关的计算机可读媒体向个人计算机20提供非易失性存储器。本领域的技术人员会理解单硬盘驱动器27包含一个或多个“分区”或“逻辑盘”,它们是物理驱动器的逻辑子集。尽管上述的计算机可读的媒体指的是硬盘驱动器、可换式磁盘和CD-ROM盘,但是本领域的技术人员应该理解还可在实施例操作系统中采用其它类型的计算机可读媒体,如磁卡、快速内存卡、数字视频盘、伯努里盒式盘和类似的部件。
可将多个程序模块存储在驱动器上和RAM 25中,包含操作系统35(如微软公司的“WINDOWS 95”操作系统)、一组应用程序36(如“MICROSOFTOFFICE”程序组)、一个或多个其它应用程序37和数据38。操作系统软件和应用程序一般从CD-ROM 31或软盘29安装在硬盘驱动器27上。多数情况下,安装过程由存储在CD-ROM或软盘上的安装程序以及操作系统或应用程序相关文件来控制。
用户可通过键盘40和指点器如鼠标42向个人计算机20输入命令或信息。其它输入装置(未示)可包含麦克风、控制杆、游戏垫、卫星盘、扫描仪或类似装置。这些和其它输入装置通常通过串行端口接口46与处理器21连接,串行端口接口46与系统总线连接,但是也可通过其它接口连接,如游戏端口或通用串行总线(UBS)。还可通过接口如视频适配器48将监视器47或其它类型显示器连接于系统总线23。除监视器外,个人计算机一般包含其它外围输出装置(未示),如扬声器或打印机。
个人计算机20可在采用逻辑连接到一个或多个远程计算机如远程计算机9的网络环境中工作。远程计算机49可以是邮件服务器(包含一个或多个消息存储)、文件服务器(包含一个或多个文件存储)、路由器、对等器或其它公共网络节点,一般包含许多或所有上述与个人计算机20相关的部件,尽管图1中只给出了内存存储器50。图1所示的逻辑连接包含局域网(LAN)51和广域网(WAN)52。该网络环境广泛使用在办公室、企事业范围的计算机网络、内部网络和互联网中。
当使用在LAN网络环境中,个人计算机20通过网络接口53连接到LAN 51上。当使用在WAN网络环境中,个人计算机20一般包含调制解调器54或其它在WAN 52如互联网上建立通讯的装置。调制解调器54可以是内置的或外置的调制解调器,可通过串行端口接口46连接到系统总线23上。在网络环境中,显示的关于个人计算机20的程序模块或其组成部分可以存储在远程内存存储器上。应理解图示的网络连接只是举例性的,还可使用在计算机之间建立通信连接的其它装置。
普通磁盘驱动器格式化
在说明本发明的特征之前,说明数据在普通硬盘存储器中存储的方式是很有帮助的。
硬盘存储器允许计算机改变存储于其中的数据,因而可以在磁盘上读写数据。物理磁盘驱动器包含一个或多个分区或逻辑盘,作为物理驱动器的逻辑子集。数据通常以独立文件存储在逻辑盘上,对每个文件进行单独存取。每个文件存储在磁盘上的位置被识别和存储在数据结构中,使计算机快速存取逻辑盘上的任何文件。
当对使用的硬盘驱动器格式化时,硬盘上的存储区域被划分成同心圆称为磁道。磁盘上磁道的数量取决于磁盘的大小。磁盘上的每个磁道被分成相同数量的扇区。一般地,扇区呈片排列,使得在磁盘外缘的扇区占用的线空间多于靠近磁盘内边缘的扇区。但是,每个扇区用于存储相同量的数据,一般为512字节。
每个磁道上的扇区组成簇。扇区组成簇是由操作系统完成的,因此不是物理划分。磁盘上的每个磁道包含相同数量的扇区。根据磁盘的大小,簇通常包含1至64个扇区,每个扇区一般存储512字节的数据。每个簇是独立存取的。
计算机的操作系统在逻辑盘上的一个或多个簇中存储每个文件。大文件需要几个簇以存储与文件相关的所有数据,很小的文件可以存储在单个簇中。由于簇不存储来自一个以上文件的数据,因此如果文件不包含足够填充簇的所有扇区的数据,则一个或多个簇的扇区会是空的。因此,如果存储在每个簇中的数据量相对于多数文件较小的话,则最有效使用磁盘空间。
硬磁盘驱动器一般包含层叠的几个硬铝磁盘,其上覆盖有磁性材料。每个盘的上表面和下表面可存储数据。通过磁盘表面的磁化区域而在每个磁盘上对数据编码。通过读/写头恢复数据或将数据添加到磁盘上。磁盘驱动器的每个磁头包含连接到旋转臂上的小电磁铁,该电磁铁非常接近磁盘表面。向每张盘的每个记录表面提供一个磁头。该臂绕轴旋转并在磁盘表面上的径向路径上来回移动。磁头驱动器使臂旋转以便控制磁头的移动。当在磁盘上写数据时,磁头位于磁盘上要写入数据的合适区域上。加在磁头的电流产生磁场,磁化磁头附近的小磁盘区域。小的磁化区域代表数字比特。同样地,当在磁盘驱动器上读数据时,磁头位于磁盘上的合适区域上,在磁头上感应出电流。磁头上感应出的电流然后解码成数字数据。
磁盘驱动器的盘与单个轴连接。该轴与电机相连,以一致的恒速旋转磁盘。尽管磁盘的扇区可占用不同量的空间,但是存储在每个扇区的数据量是相同的。这使磁盘以恒速旋转,从而取出相同量的数据,而与磁盘上扇区的所在位置无关。
当磁盘上的新簇被存取时,在磁头实际开始读或写数据之前,必须进行两个机械操作。第一,磁头从当前位置径向移动到包含目标簇的磁道位置。“寻道时间”指臂支撑磁头以克服惯性和摩擦作用和进行移动所需时间。“寻道时间”还包含“固定时间”,指的是磁头在移动后固定在静止位置所需时间。第二,磁头必须等待包含所需数据的簇旋转到磁头下面。该时间指的是“旋转等待时间”。由于磁盘以恒速旋转,因此磁头必须等待需要簇经过磁头下面的最长时间是需要盘完成一个循环的时间。因此,主要由于到达磁盘正确区域的机械动作需要,使新簇的每次存取产生固有延迟。
操作系统必须保持存储在逻辑盘上的文件位置记录。有几种数据结构用于文件存取。逻辑盘上的每个扇区具有基于逻辑盘上扇区位置的唯一识别数字。同样的,每个簇具有唯一簇数字。识别数字是这样分配的,即对相临扇区和簇连续编数字。用于确定逻辑盘的哪部分用于文件数据存储的基本数据结构是文件分配表(FAT)。其它文件系统包含高性能文件系统(HPFS)和NT文件系统(NTFS)。尽管在FAT文件系统中说明了本发明,本发明还应用于其它类型的文件系统。
在FAT文件系统中,FAT存储在靠近逻辑盘或分区的开始端,并包含逻辑盘上每个簇的项。簇通过其簇数连续列在FAT中。每个簇的FAT项包含文件下一部分的簇的数字。包含文件最后数据的簇的FAT项包含文件的末端(EOF)项。因此,存储在逻辑盘上的每个文件在FAT中,表示为一个或多个簇链。FAT指示是否每个簇已分配给了一个文件,但是不直接告诉计算机的操作系统所给的簇属于哪个文件。
如上所述,如果每个簇很小(如4KB),则可最有效地使用磁盘空间。但是,磁盘分区的FAT大小决定可以包含在逻辑盘上的簇的最大数字,从而决定簇的大小。例如,在一个FAT 16文件系统中,FAT使用16-bit数字表示每个簇。这就决定了磁盘上的簇最大数字为65,536(即,64K)。数字通过FAT的大小划分磁盘的大小,以确定每个簇的最小量,如表Ⅰ所示:
    磁盘大小            最小簇大小(比特)
    达到32MB                512
    >32MB至62MB            1K
    >64MB至128MB           2K
    >128MB至256MB          4K
    >256MB至512MB          8K
    >512MB至1GB           16K
    >1GB至2GB             32K
                        表ⅠFAT 32文件系统采用28-bit数字表示每个簇,并能保持228个簇的磁道,在非常大的逻辑盘上允许有4K字节或更小的簇。在“WINDOWS 95”操作系统以及后来的“WINDOWS”操作系统如“WINDOWS 98”操作系统的OSR2(OEM服务版本2)版本中提供FAT 32。
称为目录的数据结构包含存储在逻辑盘上的所有文件的列表和子目录(有一些作为正规文件与目录比特置位(set)存储)。根目录不同于子目录,根目录没有父目录,并且一般先于用于存储文件数据的扇区存储在接近逻辑盘的开始端。该目录具有包含簇数字的每个文件的项,其中存储文件的第一部分。通过存储每个文件的开始簇数字,目录使每个文件依赖于FAT。
为在逻辑盘上存取文件,计算机的操作系统读取文件的目录项,以确定对应于存储文件数据的第一簇的FAT项。操作系统然后读取开始于文件第一FAT项的整串FAT项。利用第一簇的位置和来自FAT的簇串,操作系统可以确定属于文件的每个簇,并相应存取每个簇。
当向逻辑盘添加数据或从逻辑盘上删除数据时,磁盘会变成碎片。碎片指在逻辑盘上的非相临簇存储单个文件的组成部分。当在逻辑盘上写文件时,操作系统在由FAT的自由簇列表识别的空白空间内存储数据。用来存储数据的空白空间可以包括几个非相临的簇。
为改进发送时间而安装程序或对程序重新排序
图2至7显示了以改进程序发送时间的方式安装应用程序相关文件的方法实施例。本领域的技术人员会理解本发明可以结合各种应用程序、实用程序和操作系统相关程序使用,包含由华盛顿雷德蒙德的微软公司公开的“MICROSOFT OFFICE”应用程序组。
与现有技术一样,本发明必须确定在程序发送时从逻辑盘读取的文件部分的顺序。但是,与现有技术在逻辑盘上安装好文件后确定文件和对文件重新排序不同,本发明是当文件最初安装逻辑盘上时,就以接近最优化顺序排列文件。一般说来,通过确定发送中文件各部分存取顺序、在安装盘上产生装入顺序表和以装入顺序表指示的顺序安装的发送相关文件部分来实现上述过程。另外,在将文件安装在逻辑盘上后,可以使用装入顺序表对文件重新排序。装入顺序表可以通过互联网或其它发布装置装在安装盘上。
图2和3是流程图,显示了产生安装盘和以在程序发送中装入的顺序在逻辑盘上安装文件的举例性方法。图2的流程图显示了产生包含应用程序相关文件、一个或多个装入顺序表和安装程序的安装盘的方法200。图3的流程图显示了从安装盘向逻辑盘安装程序以及将其以在发送中读取的顺序存储的方法300。
首先参照图2,图中显示了产生安装盘的方法200。方法200的第一步是产生应用程序相关文件(步骤205)。在该举例性方法中,以本领域的技术人员熟悉的普通方式实现该步骤,该步骤包含产生与程序(如应用程序)相关的所有文件。这些文件可包含可执行文件、动态链接库、数据文件、优选文件和类似文件。
在产生这些文件后,方法200运行到步骤210。此时,文件安装在了计算机上,并发送程序。发送过程由测试代码监视或“测试”,其决定在发送中存取文件的哪部分。测试代码产生装入顺序表,该装入顺序表指示读取了哪个文件部分以及其读取的顺序。
图4显示了装入顺序表的格式。表中的每个项识别存取的文件、文件中的偏置和读取的数据量。以字节测量偏置和长度,该偏置和长度与文件的开始端相关。偏置和长度限定了读取部分的开始和长度。该步骤形成程序发送中接触的所有文件的表、每个读取的文件的位置以及当文件发送时从磁盘读取的数据量。
方法200从步骤210运行到步骤220。本领域的技术人员会理解初始装入顺序表包含不是程序本身的组成部分的文件,该初始装入顺序表在步骤210产生,并包含在引导中接触的所有文件的记录。例如,当发送应用程序时,可以要求计算机读各系统文件或其它共享文件的部分,这些文件的产生与应用程序本身无关。在步骤220,方法200分析初始文件顺序表的内容并移去不是最优化的或在安装程序时重新安装在用户计算机上的文件。该排除的文件将包含不能或不应该由安装程序改变的文件以及可能很频繁改变的文件(如优选文件)。本领域的技术人员会理解可以以不同方式实现该步骤,包含使用防止其包含在初始装入顺序表中的排除表,或在安装时处理装入顺序表以忽略某些文件。
在编辑装入顺序表以移去不是最优化的文件后,方法200运行到步骤225,产生一个或多个最后装入顺序表。本领域的技术人员会理解装入文件的顺序可以受各种与将安装程序的计算机相关的因素影响。例如,操作系统的特殊版本(包含主版本和小的更新)和与计算机相关的簇大小与在逻辑盘上安装文件部分的最佳顺序有一些关系。因此,每个方案可以产生不同装入顺序表。例如,与操作系统的特殊版本一起使用的装入顺序表可为另一机器配置添加附加文件或从优化装入顺序表删除文件。同样地,可以提供用于各个簇大小的装入顺序表。另外,可以提供和小簇(如4KB)一起使用的单个装入顺序表,在文件排序时由其获得其它簇大小的装入顺序表。在图4所示的实施例中,最后装入顺序表具有相同的格式。
在步骤230,产生实际的安装盘(如CD-ROM或软盘)。安装盘包含应用程序相关文件、装入顺序表和安装程序。当安装盘插入用户计算机上的驱动器时,用户会发送安装程序以在计算机逻辑盘上安装文件。根据用户的输入和从计算机读取的配置信息,安装程序确定需要安装哪个文件以及文件应该安装的顺序,并从安装盘上读文件和以正确顺序写磁盘。
图3显示了方法300,方法300用于从安装盘向逻辑盘安装文件,并以在程序发送中读取的顺序存储发送相关程序部分。在一实施例中,由安装盘上包含的安装程序执行方法300,安装盘可以是插入盘驱动器30的CD-ROM(图1)。
当用户发送安装程序时,开始方法300并运行到步骤305。在步骤305,安装程序询问计算机并获得适于操作系统安装在计算机上的数据、硬盘驱动器的特性等。
在步骤310,安装程序提示用户并获得适于特殊程序或用户想要安装的程序的信息。进行安装前,安装程序还要求用户输入他或她的名字和系列编号。
在步骤315,安装程序使用在步骤310和315获得的信息以确定来自安装盘的哪个文件应该安装在硬盘驱动器上。
在步骤320,安装程序采用在步骤310和315获得的信息以确定应该使用哪个装入顺序表来确定应该安装和存储在逻辑盘上的发送相关文件部分的顺序。如前所述,可以提供不同的装入顺序表以适于不同版本的操作系统、不同硬盘驱动器簇大小等。
图5显示四个应用程序文件的部分(文件A,B,C,D)和简单装入顺序表的实例,该装入顺序表识别发送相关文件部分和当程序发送时其装入的顺序。在该实例中,应用程序可以包含文件A、B、C和D。当然,应用程序可以包含许多附加文件。每个文件包含多个部分(如A1-A8、B1-B6、C1-C5和D1-D5)。但是,只有文件A、B和C包含在应用程序发送时装入的部分。这些发送相关部分包含部分A1-A4、B1-B3、C1-C3。文件A、B、C剩下的部分和整个文件D不在发送中装入。本领域的技术人员会理解每个文件(如A1-A4)的发送相关部分不需要是邻近的或优先于非发送相关文件部分(如A5-A8)。图3的最后线显示了发送装入顺序,其说明了在发送中发送相关文件A、B和C部分装入的顺序。在该实施例中,发送装入顺序是A1、B3、A3、B2、B1、C2、C1、A2、C3、A4。
剩下的安装过程(步骤325、330和335)目的是以上述发送装入顺序在逻辑盘上的邻近簇中安装的发送相关文件部分。这样,安装过程可描述成具有两个目标:(1)以正确顺序写入发送相关文件部分以及(2)保证发送相关文件部分存储在逻辑盘上的邻近扇区中。通过装入顺序表对以正确顺序写发送相关文件部分的目标编址。满足存储在邻近簇中的文件部分由于用于大多数个人计算机上FAT文件系统的各特性的要求。
一般,FAT文件系统以“簇自由表”顺序将文件写入逻辑盘。换句话说,当文件写到硬盘驱动器上时,文件的第一簇写在FAT中识别的第一自由簇,文件的第二簇写在FAT中识别的第二自由簇,等等。在许多情况下,自由簇不是邻近的。因此,当安装程序时,需要识别包含足够邻近自由簇的逻辑盘部分,以便存储程序发送相关文件部分。可以以簇自由表顺序写剩下的文件部分。
在步骤325中,安装程序识别将用于存储发送相关文件部分的邻近自由簇块(在逻辑盘上)。本发明考虑用几种方法来识别足以存储发送部分文件的可用磁盘空间。
第一种方法是假定产生的文件存储在逻辑盘的开始端,以及假定在末端有足够邻近自由空间量。尽管该假定是不现实的,但是在安装过程中,可以建议用户使用普通碎片整理实用程序来整理逻辑磁盘的碎片,以实现该假定。在整理了磁盘碎片后,应用程序可以安装在磁盘末端的自由空间中,使发送相关文件部分存储在邻近簇中。本领域的技术人员会理解该方法是不够理想的,因为在安装前对逻辑盘整理碎片要花费时间,并且一些用户会不愿意或不能完成建议的碎片整理。
第二种方法是假定在磁盘的末端有大自由空间,但是在磁盘开始端有一些非邻近自由簇。在该方法中,最后安装来自装入顺序表的发送相关文件部分。这会使剩下的应用程序文件(即非发送相关部分)首先安装并以簇自由表顺序保存在磁盘上。在多数情况下,存储的大量文件数据应该导致非发送相关文件部分存入非邻近自由簇和发送相关文件部分最后安装在邻近自由簇中,该邻近自由簇保留在磁盘的末端。
第三种识别足够邻近自由簇的方法包含读整个自由簇表并追踪任何邻近自由簇组的大小。然后以大小排序,以便发现的最大邻近自由簇组。识别和标记用于存储发送相关文件部分的最大自由簇组。在识别了发送文件的目标簇后,过程利用自由簇的初始表,并开始向逻辑盘写入数据。如果目标簇不是表中的第一自由簇,为了取得理想的目标簇而将临时文件写入需要存储的自由簇。在发送文件写入邻近目标簇后,删除临时文件,这些簇返回簇自由表。下面更详细地说明临时文件的使用。
第四种方法类似于第三种,但是减少了需要写成临时文件的数据数量。可能第三种方法会需要许多要写到磁盘早期部分的多个小的簇组数据。为了使活动最少化,第四种方法采用最早期邻近簇组或组集合来大大改进程序发送时间。
在已经识别了用于安装发送相关文件部分的足够邻近自由簇后,安装程序运行到步骤330,并以正确顺序将发送相关文件部分写入自由空间。本领域的技术人员会理解,需要以装入顺序表指示的顺序将发送文件部分写入自由空间的特殊步骤会依赖于各种因素。这些因素中最重要的可能是计算机特殊操作系统,该特殊系统提供工具,用以将文件写入逻辑磁盘,并限制多少文件可以写入硬驱动器。下面说明适于与“WINDOWS 95”操作系统一起使用的两种方法。
本领域的技术人员会理解在逻辑盘上写发送文件的最简单方案是当自由空间是邻近的并位于逻辑盘的末端以及操作系统不试图强迫文件成邻近的时候。在该简单和也许不现实的方案中,可以以下述方式实现在逻辑盘上写文件的过程。第一,安装程序打开CD-ROM(用于读)和逻辑盘(用于写)上的必要文件。接着,从CD-ROM上读在装入顺序表中列出的第一簇并将其写入硬盘驱动器。有些情况下,必须刷新(flush)输出文件,以保证数据已实际写在磁盘上。重复这些步骤,直到装入顺序表中的所有簇都写入逻辑盘了。此时,安装程序可以运行到步骤335,在步骤335,从CD-ROM上读剩下的文件部分(即非发送相关部分)并将其写入逻辑盘。当写入所有文件时,读、写的文件关闭,操作系统更新FAT文件系统。方法300接着在步骤340结束并完成安装。
在“WINDOWS 95”操作系统的上下文中说明了将单独文件写入非邻近簇(步骤330)。“WINDOWS 95”操作系统试图将文件保存在邻近簇中。因此,当多个簇中写入单个文件时,操作系统试图将其放入邻近簇中。在本发明的一个实施例中,通过用临时文件占用硬盘驱动器上的空间来克服操作系统的这一特征,并迫使每个文件的发送相关部分以期望的顺序写入非邻近簇。本领域的技术人员会理解操作系统和文件系统文件可写入顺序强制的要求。最重要的是,文件的第一簇是以单调递增顺序分配的。换句话说,在文件的第二簇前分配文件的第一簇,等等,而与写入文件的信息的顺序无关。
图6显示了临时文件的使用的实例,反映在安装过程的不同阶段中在逻辑盘上的12个簇的内容。在该实施例中,图5的10个文件部分将写入图6所示的12个簇中。在安装开始前,12个簇(任意标为数字0-11)是自由簇表中的邻近簇。如果邻近簇0-11不是自由簇表中的第一簇,安装程序将临时文件写入簇0前的簇。这使簇0成为自由簇表中的第一自由簇。
安装程序会从合适的装入顺序表中读取期望的簇顺序、从CD-ROM中读簇并将其写入逻辑磁盘的簇0-9。由于操作系统要求以单调递增顺序写每个文件的簇,将文件写入逻辑磁盘的过程会需要多次通过自由空间,并包含使用临时文件以保证数据写入期望的簇。
现在参照图6,在通过1中,安装程序读装入顺序表并确定簇A1应该首先装入。因为这是文件A1中的第一簇,因此可将其立即写入簇0。
接着,安装程序确定簇B3应该写入簇1,但是,还不能保存簇B3,因为簇B1和B2还没有写入硬盘驱动器。因此,安装程序将临时文件t1写入簇1。
在写完临时文件t1后,安装程序确定应该写簇A3。但是不能保存簇A3,因为簇A2还没有写入硬盘驱动器。因此,安装程序将临时文件t2写入簇2。
然后将临时文件t3写入簇3,因为直到簇B1已经写入硬盘驱动器后才能保存簇B2。
在写入临时文件t3后,安装程序确定应该将簇B1写入簇4。因为这是文件B中的第一簇。因此可以将其写入硬盘驱动器的簇4中。
在簇B1后,安装程序将临时文件t4入簇5,因为直到簇B1已经写入硬盘驱动器后才能保存簇B2。
接着,安装程序确定应该将簇C1写入簇6。因为簇C1是文件C中的第一簇,因此将其写入簇6。
接着,安装程序确定应该将簇A2写入簇7。因为已经写了簇A1,因此簇A1可以写入簇7。
在将簇A2写入硬盘驱动器后,安装程序确定簇C3应该写入簇8。但是,由于没有存储簇C2,因此还不能写簇C3。安装程序将临时文件t5写入簇8。
接着,安装程序确定应该将簇A4写入簇9。但是,由于簇A3还没有写入硬盘驱动器,因此安装程序将临时文件t6写入簇9。
在安装程序已经将数据写入所有将用于存储发送相关文件部分的簇后,安装程序将大临时文件t7写入磁盘上剩下的自由空间。
在通过2中,安装程序继续以单调递增的顺序将发送相关文件写入硬盘驱动器的过程。
在通过2中,簇B3不能写入硬盘驱动器,因为簇B2还没有被保存。
由于簇A1和A2已经保存,则簇A3可以写入簇2。因此安装程序删除临时文件t2并将A3写入簇2。
由于簇B1已经保存,则簇B2可以写入簇3。安装程序删除临时文件t3并将B2写入簇3。
由于簇C1已经保存,则簇C2可以写入簇5。安装程序删除临时文件t5并将簇C2写入簇5。
由于簇C1已经保存,则簇C3可以写入簇8。安装程序删除临时文件t5并将C3写入簇8。
最后,由于簇A1-A3已经保存,则簇A4可以写入簇9。安装程序删除临时文件t6并将A4写入簇9。
在通过3中,由于簇B1和B2已经保存,因此簇B3可以最后写入簇1。安装程序删除临时文件t1并将簇B3写入簇1。
在写完所有发送相关文件部分后,安装程序删除临时文件t7和任何写入簇0以前的簇的临时文件。这使得空着的簇返回自由簇表。此时,从CD-ROM读取剩下的程序部分(即非发送相关文件部分)并将其写入硬盘驱动器。这些文件将以簇自由表顺序保存在硬盘驱动器中。
有些版本的“WINDOWS 95”操作系统采用文件分配策略,假定如果打开两个文件并且程序正写入两个文件,程序会在文件之间需要一些自由空间。图7显示了第二种方法,用于将发送文件部分写入硬盘簇0-9,尽管这是操作系统的特征。第二种方法非常类似于图6所示的方法,但是需要额外通过自由簇以在每个自由簇中产生临时文件。
在图7的实例中,图5的10个文件部分将写入硬驱动器的簇0-9。在安装开始前,12个簇(数字0-11)是在自由簇表中的邻近簇。如果邻近簇0-11不是自由簇表中的第一簇,安装程序将临时文件写入簇0之前的簇。这使簇0成为自由簇表中的第一自由簇。
在通过1中,安装程序将独立临时文件(t1-t10)写入每个簇,每个簇将用于存储在装入顺序表中识别的文件簇。将另一临时文件t11写入跟着簇9的所有自由簇。这保证操作系统不会在由安装程序写的簇之间留出空间。
通过2-4与图6的通过1-3同样进行,并用于以单调递增顺序写文件簇。但是,在通过2中,由于簇A1、B1、C1和A1可以分别写入簇1、4、6和7中,因此必须删除临时文件t1、t5、t7和t8。
在所有发送相关文件部分已经写入逻辑盘后,安装程序删除临时文件t11和任何写入簇0之前的簇的临时文件。这使空着的簇返回自由簇表。此时,从CD-ROM中读剩下的文件部分(即非发送相关文件部分)并将其写入逻辑盘。这些文件将以簇自由表顺序保存在逻辑盘上。
上述说明描述了本发明的几个实施例。这些实施例一般包含一种识别哪个发送相关程序部分应该安装在逻辑盘上的邻近簇的装入顺序表,该装入顺序表用于识别足够量的邻近自由簇的方法,以及用于以期望的顺序将程序部分写入邻近簇。
本发明具有几个附加特征,可以合并入本发明的实施例。
可以将本发明的方法扩展,不仅包含新文件的发送相关部分,而且包含产生逻辑盘上的文件和新程序的附加部分。
例如,如果系统文件和其它预先安装的文件包含在装入顺序表中,则本发明可用于优化这些文件。为了完成这些优化,进行如上所述的安装过程,但还会包含打开要读的文件和打开要写的新临时文件。将产生文件的相关簇和其它发送相关程序部分一起写入邻近自由簇。在发送相关部分都写入逻辑盘上的邻近簇后,将删除初始产生文件,对临时文件重新命名成具有与删除的初始文件相同的名字。
如上所述,本发明的原理可用于测试(instrument)和安装(或重新排序)其它命令、程序的磁盘加强部分。例如,可以测试执行例行程序如OPEN、SAVE、LOAD和PRINT的代码,结果包含在安装盘上的装入顺序文件中。然后,当安装新程序时,安装程序使用该信息并将这些部分代码写入逻辑盘的邻近部分,或在安装后对代码的相关部分重新排序。
如上所述,在安装过程的有些阶段,临时文件可以用于占用逻辑盘上的几乎所有自由空间。在完成安装过程后,一般由安装程序删除这些临时文件。但是,为了保证移去临时文件并向计算机提供空着的空间,可以对由操作系统执行的后-再引导(post-reboot)或“调整”过程编程,以便检查出现的一个或多个临时文件并删除发现的文件。安装过程的后一再引导部分可以用于删除和重命名任何由于使用在安装过程中而不能删除的优化系统文件。
图8是流程图,显示采用本发明原理优化涉及启动的代码部分和在该代码已经安装在逻辑驱动器上后的其它磁盘加强操作的另一种方法800。与图3的方法相同,方法800采用一个或多个装入顺序表和程序文件的安装盘。但是,在该实施例中,程序文件是以普通方式与复制的装入顺序表一起首先安装在逻辑驱动器。在安装后,有时调整程序可以使用装入顺序表以优化形式对磁盘加强数据重新排序。
在步骤805,方法800包含以普通方式在逻辑驱动器上安装程序文件。此时,复制的装入顺序表还复制到逻辑驱动器上。
在安装好程序后,可以使用单独程序对与磁盘加强操作如程序启动相关的程序部分重新排序。可在各个时间运行该“调整”或重新排序程序。例如,当安装好程序后计算机重新启动时,可以自动运行调整程序。每逢用户选择完成他或她的计算机的维护活动时,还可人工控制调整程序。
步骤810是调整或重新排序过程的第一步。在步骤810,调整程序查询计算机并获得匹配安装在计算机上的操作系统以及硬盘驱动器特性的数据。
在步骤815,调整程序使用在步骤810获得的数据以确定应该使用哪个装入顺序表来确定应该在逻辑盘上重新排序的磁盘加强文件部分的顺序。如前所述,可以提供不同装入顺序表以适应不同版本的操作系统、不同硬盘驱动器簇大小等等。
本领域的技术人员会理解,程序组如“MICROSOFT OFFICE”程序组包含一个以上应用程序。通过提供每个应用程序的装入顺序表可以将本发明应用于一组程序的安装。如果要支持多个版本的操作系统,本发明可以提供每个支持系统的每个应用程序的装入顺序表。当“优化”程序时(在安装中或安装后),可应用的装入顺序表可以以预定顺序集中在一起。如果发送相关文件部分包含在一个以上的装入顺序表中,可为了包括该部分可以从除第一装入顺序表的所有装入顺序表中移去该部分。
在步骤820,调整程序识别用于存储磁盘加强文件部分的邻近自由簇(在逻辑盘上)块。如上所述,本发明采用几种方法用于识别足够存储发送文件部分的可用磁盘空间。
在为安装发送相关文件部分而识别了足够邻近自由簇后,安装程序运行到步骤825,并以正确顺序在自由空间中对磁盘加强文件部分重新排序。
简单地说,图8的方法使文件在安装时或紧接着重新排序,还在安装后的任何时候对其调整或固定。通过采用装入顺序表,完成该调整而不使用现有技术中使用的监视功能。
最后,上述的过程使用由操作系统提供的读、写功能。该方法具有很强功能并实际减小了安装过程毁坏用户硬盘驱动器上的数据的可能性。但是,本领域的技术人员会理解,通过使用低级功能在簇级写数据,可以将数据写在硬盘驱动器上。该方法要求安装程序将文件部分写入正确簇,然后返回和修补(patch)FAT。尽管在本发明的上下文中可以采用该方法,但是有使硬盘上的数据以一些方式遭受破坏的危险。
详细说明的综述
从上述说明中会理解本发明提供一种以改进程序发送时间的方式安装文件或对文件重新排序的改进的系统和方法。本发明的主要优点在于,在通过提供一个或多个装入顺序表安装好程序后,不需要监视启动过程。
上述的实施例监视程序启动过程,并确定在磁盘加强操作如发送程序或选择某些程序命令中从磁盘读取文件部分的顺序。该数据用于产生装入顺序表,该装入顺序表指示在发送中读取文件各个部分的顺序。在安装中,安装程序从装入顺序表读数据,并以上述顺序将发送相关文件部分写在逻辑盘上的邻近簇中。另外,在程序安装后,根据装入顺序表对发送相关文件部分重新排序。在完成上述过程后,计算机从逻辑盘上以正确顺序从邻近磁盘簇读发送相关数据,这减少和消除了由于为读取发送数据而使磁盘磁头必须在非邻近簇之间移动的磁盘存取所造成的时间浪费。
本发明还可以在一个或多个根据和实施图2至8所示的特征的程序模块中实现。没有说明为实现上述各个过程的特殊编程语言,因为考虑到上述的和附图所示的操作、步骤和过程足以公开了供本领域技术人员实施本发明的内容。此外,由多种可以实施本发明的计算机和操作系统,因此不能提供适于这些不同系统的详细计算机程序。特定计算机的每个用户会知道最满足用户需要和目的的语言和工具。
此外,尽管在“WINDOWS 95”操作系统下安装应用程序的安装程序的上下文中主要说明了本发明,本领域的技术人员会理解本发明适用于各种类型的程序模块和运行各种操作系统并使用各种文件系统的系统。例如,本发明可用于安装应用程序、实用程序、操作系统程序模块和类似程序。如上所述,本发明还可用于对与多种磁盘加强操作相关的代码相关的程序数据排序,该磁盘加强操作包括发送应用程序、发送与程序命令(如FILE OPEN)和类似的操作。
上面说明了关于特殊实施例的本发明,这些实施例只是用于说明本发明而不是限定本发明的。本领域的技术人员会明白有适合于本发明而不背离本发明的精神和范围的可替换实施例。因此,本发明的范围不是由上述说明限定的,而是由附加权利要求限定的。

Claims (21)

1.一种计算机可读媒体,包括:
包含发送相关部分的多个文件;
装入顺序表,指示多个文件的发送相关部分要安装在磁盘上的顺序;
计算机可执行指令,用于实现以下步骤,包括:
识别磁盘上的至少一组邻近自由簇;以及
安装多个文件的发送相关部分,所述发送相关部分以装入顺序表指示的顺序存储在磁盘上。
2.如权利要求1所述的计算机可读媒体,其中装入顺序表包含多个项,每个项识别多个文件中的一个以及要安装的文件部分。
3.如权利要求1所述的计算机可读媒体,其中安装发送相关部分的步骤包含以下步骤:
读装入顺序表中的项,该项识别多个文件中的一个以及要读取的文件部分;
读从多个文件中识别的一个文件的文件部分;
在磁盘上写所述文件的部分。
4.如权利要求1所述的计算机可读媒体,其中识别至少一组邻近自由簇的步骤包含以下步骤:
从存储在磁盘上的数据读提供自由簇的表;以及
识别具有邻近自由簇的最大数字的一组邻近自由簇。
5.如权利要求1所述的计算机可读媒体,其中多个文件包含非发送相关部分,在安装所述多个文件的所述发送相关部分的步骤后,将所述非发送相关部分存储在磁盘上。
6.如权利要求1所述的计算机可读媒体,其中在程序启动时读发送相关部分。
7.如权利要求1所述的计算机可读媒体,其中在执行程序命令时读发送相关部分。
8.一种从安装盘向磁盘安装程序代码的方法,包含步骤:
从存储在安装盘上的装入顺序表读多个项,每个项识别与所述程序代码相关的文件部分;
对于从装入顺序表读到的每个项,从安装盘读由所述项识别的文件部分;以及
对于从装入顺序表读到的每个项,将读到的文件部分写入磁盘上的邻近自由簇,所述文件部分以对应装入顺序表中的项的顺序存储在磁盘上。
9.如权利要求8所述的方法,其中装入顺序表识别在程序发送中读多个发送相关程序部分的顺序。
10.如权利要求8所述的方法,其中装入顺序表中的每个项包含文件识别符以及从识别文件读的数据位置
11.如权利要求8所述的方法,其中装入顺序表中的每个项包含文件名、命名文件的偏置,以及从命名文件读的数据量。
12.如权利要求8所述的方法,进一步包含步骤:
在写完与装入顺序表的每个项相关的文件部分后,从安装盘向磁盘写入非发送相关程序代码。
13.一种从安装盘向磁盘安装程序代码的方法,包括步骤:
产生包括发送相关部分的多个文件;
确定读发送相关部分的顺序;
产生指示读发送相关部分的顺序的装入顺序表;以及
在安装盘上存储多个文件、装入顺序表和安装程序;
安装程序包括计算机可执行指令,用于完成以下步骤:
识别磁盘上的至少一组邻近自由簇;以及
在所述至少一组邻近自由簇中安装多个文件的发送相关部分,所述发送相关部分以所述装入顺序表指示的顺序存储在磁盘上。
14.如权利要求13所述的方法,其中装入顺序表包括多个项,每个项包括多个文件中的一个的文件名和要安装的文件部分的名称。
15.如权利要求13所述的方法,安装发送相关部分的步骤包括步骤:
读装入顺序表中的项,所述项识别多个文件中的一个和要读的文件部分;
从所述识别的多个文件中的一个读所述文件部分;
将所述文件部分写入磁盘。
16.如权利要求13所述的方法,识别至少一组邻近自由簇的步骤包括步骤:
从存储在磁盘上的数据读一列可用自由簇;以及
识别具有大量邻近自由簇的邻近自由簇组。
17.如权利要求13所述的方法,其中多个文件包含非发送相关部分,在安装所述多个文件的所述发送相关部分的步骤后,将所述非发送相关部分存储在磁盘上。
18.一种在逻辑盘上安装和优化程序代码的方法,包括步骤:
产生包括与磁盘加强操作相关的部分的多个文件;
确定在磁盘加强操作中读磁盘加强的顺序;
产生装入顺序表,所述装入顺序表指示在磁盘加强操作中读磁盘加强
部分的顺序;以及
在安装盘上存储多个文件、装入顺序表和安装程序;
从安装盘向逻辑盘安装多个文件和装入顺序表;
在逻辑盘上安装后,通过完成以下步骤优化磁盘加强部分:
识别逻辑盘上的至少一组邻近自由簇;以及
以装入顺序表中指示的顺序对磁盘加强部分重新排序。
19.如权利要求18所述的方法,其中装入顺序表包含多个项,每个项包含多个文件中的一个的名称以及要重新排序的文件部分的名称。
20.如权利要求19所述的方法,其中通过从文件的开始端的偏置和从文件读到的数据量中识别所述部分。
21.如权利要求18所述的方法,其中对磁盘加强部分重新排序的步骤包含步骤:
读装入顺序表中的项,该项识别多个文件中的一个以及要读取的文件部分;
读从识别的多个文件中的一个文件的文件部分;
在逻辑盘上写所述的文件部分。
CNB998050040A 1998-04-15 1999-04-08 改进程序发送时间的系统和方法 Expired - Lifetime CN1212563C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/060,702 1998-04-15
US09/060,702 US6202121B1 (en) 1998-04-15 1998-04-15 System and method for improved program launch time

Publications (2)

Publication Number Publication Date
CN1296582A true CN1296582A (zh) 2001-05-23
CN1212563C CN1212563C (zh) 2005-07-27

Family

ID=22031234

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB998050040A Expired - Lifetime CN1212563C (zh) 1998-04-15 1999-04-08 改进程序发送时间的系统和方法

Country Status (7)

Country Link
US (1) US6202121B1 (zh)
EP (2) EP1607855B1 (zh)
JP (2) JP4235362B2 (zh)
CN (1) CN1212563C (zh)
DE (2) DE69926227T2 (zh)
TW (1) TW432317B (zh)
WO (1) WO1999053395A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101478462B (zh) * 2008-12-17 2010-12-08 成都市华为赛门铁克科技有限公司 存储数据读取和写入的装置和方法及固态硬盘
CN102375850A (zh) * 2010-08-23 2012-03-14 联想(北京)有限公司 电子设备的文件排布方法、启动方法及电子设备
CN102609291A (zh) * 2012-02-29 2012-07-25 记忆科技(深圳)有限公司 基于固态硬盘的系统启动方法和固态硬盘
CN102981874A (zh) * 2012-11-15 2013-03-20 北京奇虎科技有限公司 计算机处理系统和注册表重定向方法
CN103530319A (zh) * 2013-09-16 2014-01-22 华为技术有限公司 一种操作请求的处理方法和装置

Families Citing this family (76)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6675233B1 (en) * 1998-03-26 2004-01-06 O2 Micro International Limited Audio controller for portable electronic devices
US6895448B2 (en) * 1998-03-26 2005-05-17 O2 Micro, Inc. Low-power audio CD player for portable computers
US6954804B2 (en) * 1998-03-26 2005-10-11 Micro, Inc. Controller for portable electronic devices
US6202121B1 (en) * 1998-04-15 2001-03-13 Microsoft Corporation System and method for improved program launch time
US6317875B1 (en) * 1999-01-15 2001-11-13 Intel Corporation Application execution performance through disk block relocation
JP2001007745A (ja) * 1999-06-24 2001-01-12 Techno Collage:Kk 非接触データ転送システム
JP2001117783A (ja) * 1999-08-10 2001-04-27 Seiko Epson Corp プログラム起動システム及びプログラム起動制御方法
WO2001015159A1 (en) * 1999-08-24 2001-03-01 O2 Micro International Limited Launch key, low power cd-rom player for portable computers
US6496977B1 (en) * 1999-10-21 2002-12-17 International Business Machines Corporation Method and system for implementing network filesystem-based aid for computer operating system upgrades
US6735678B2 (en) * 2000-05-24 2004-05-11 Seagate Technology Llc Method and apparatus for disc drive defragmentation
US7130930B1 (en) * 2000-06-16 2006-10-31 O2 Micro Inc. Low power CD-ROM player with CD-ROM subsystem for portable computer capable of playing audio CDs without supply energy to CPU
US6681391B1 (en) * 2000-06-21 2004-01-20 Microsoft Corporation Method and system for installing software on a computer system
US6763428B1 (en) * 2000-08-02 2004-07-13 Symantec Corporation Methods and systems for performing push-pull optimization of files while file storage allocations are actively changing
US20020069353A1 (en) * 2000-12-01 2002-06-06 Smith R. Doug Automated device driver installation
US7522966B2 (en) * 2000-12-01 2009-04-21 O2Micro International Limited Low power digital audio decoding/playing system for computing devices
US7818443B2 (en) * 2000-12-01 2010-10-19 O2Micro International Ltd. Low power digital audio decoding/playing system for computing devices
US7526349B2 (en) * 2000-12-01 2009-04-28 O2Micro International Limited Low power digital audio decoding/playing system for computing devices
US7890741B2 (en) * 2000-12-01 2011-02-15 O2Micro International Limited Low power digital audio decoding/playing system for computing devices
US7522964B2 (en) 2000-12-01 2009-04-21 O2Micro International Limited Low power digital audio decoding/playing system for computing devices
US7522965B2 (en) * 2000-12-01 2009-04-21 O2Micro International Limited Low power digital audio decoding/playing system for computing devices
WO2002052396A2 (en) * 2000-12-22 2002-07-04 Koninklijke Philips Electronics N.V. Method and system for reducing fragmentation
US6480932B1 (en) * 2001-01-31 2002-11-12 Western Digital Technologies, Inc. Computer system having a host computer coupled to a disk drive with a drive-selected-application partition for storing data for execution by the host computer in response to drive-determined conditions
JP2002304823A (ja) * 2001-04-10 2002-10-18 Fujitsu Ltd リオーダリングコントローラ、リオーダリング方法及び記憶装置
US6990574B2 (en) * 2001-05-01 2006-01-24 General Electric Company Object oriented framework for scanner/workstation configuration
US20030079217A1 (en) * 2001-10-19 2003-04-24 Chern-Muh Wang Method for subserving preloaded programs
US6924667B2 (en) * 2002-07-19 2005-08-02 O2Micro International Limited Level shifting and level-shifting amplifier circuits
US20040068667A1 (en) * 2002-10-03 2004-04-08 International Business Machines Corporation Method and apparatus for securing and managing cluster computing in a network data processing system
JP2006520032A (ja) * 2003-02-12 2006-08-31 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ファイルシステムデータおよびアプリケーション起動データのための確保領域を有する記憶媒体
GB2399188B (en) * 2003-03-04 2005-11-30 Fujitsu Serv Ltd Reducing the boot-up time of a computer system
US7607000B1 (en) 2003-05-13 2009-10-20 Apple Inc. Method for booting an operating system
TW591538B (en) * 2003-07-25 2004-06-11 Via Tech Inc Process for loading operating system
JP4608434B2 (ja) * 2003-12-03 2011-01-12 パナソニック株式会社 情報記録媒体のデータ処理装置及びデータ記録方法
US20050165856A1 (en) * 2004-01-27 2005-07-28 International Business Machines Corporation System and method for autonomic performance enhancement of storage media
US7536593B2 (en) * 2004-03-05 2009-05-19 International Business Machines Corporation Apparatus, system, and method for emergency backup
US7275150B2 (en) * 2004-03-15 2007-09-25 International Business Machines Corporation Method and system for adding frequently selected applications to a computer startup sequence
JP2005301801A (ja) * 2004-04-14 2005-10-27 Nec Corp 情報処理装置、メモリ管理装置、およびプログラム
EP1783581A4 (en) * 2004-06-30 2010-08-25 Panasonic Corp PROVISION OF EXECUTION OF A PROGRAM AND METHOD OF EXECUTION
FR2875923B1 (fr) * 2004-09-28 2006-12-22 Thales Sa Dispositif d'optimisation et de mise en route d'une application commandee par un calculateur a systeme d'exploitation multitache
US7689979B1 (en) * 2005-08-02 2010-03-30 Adobe Systems Inc. Methods and apparatus to improve application launch time
US7926053B1 (en) * 2005-08-26 2011-04-12 Adobe Systems Incorporated Methods and apparatus for optimizing installation location of software
US7669044B2 (en) * 2006-09-29 2010-02-23 Microsoft Corporation Accelerated system boot
CN100451993C (zh) * 2006-12-21 2009-01-14 威盛电子股份有限公司 多来源数据处理方法
US8087017B1 (en) * 2007-04-09 2011-12-27 Moka5, Inc. Trace-assisted prefetching of virtual machines in a distributed system
US7793266B2 (en) * 2007-06-04 2010-09-07 International Business Machines Corporation Method, apparatus and computer program product for optimizing access to the content of a virtual application container on a fixed, read-only medium
US7793265B2 (en) * 2007-06-04 2010-09-07 International Business Machines Corporation Method, apparatus and computer program product for optimizing file accesses for an application executing in a virtual container
KR101434297B1 (ko) * 2007-09-11 2014-08-27 삼성전자주식회사 파일할당표를 이용한 파일 디바이드 및 머지 방법
US8799429B1 (en) * 2008-05-06 2014-08-05 American Megatrends, Inc. Boot acceleration by consolidating client-specific boot data in a data storage system
US8127122B2 (en) * 2008-09-16 2012-02-28 Hewlett-Packard Development Company, L.P. Selection of boot drive in a computer system
US20110099327A1 (en) * 2009-10-27 2011-04-28 Sony Ericsson Mobile Communications Ab System and method for launching an application programming utilizing a hybrid version of demand paging
WO2011053312A1 (en) * 2009-10-30 2011-05-05 Hewlett-Packard Development Company, L.P. Systems and methods of creating a restorable computer installation
US8443167B1 (en) 2009-12-16 2013-05-14 Western Digital Technologies, Inc. Data storage device employing a run-length mapping table and a single address mapping table
US8194340B1 (en) 2010-03-18 2012-06-05 Western Digital Technologies, Inc. Disk drive framing write data with in-line mapping data during write operations
US8687306B1 (en) 2010-03-22 2014-04-01 Western Digital Technologies, Inc. Systems and methods for improving sequential data rate performance using sorted data zones
US8693133B1 (en) 2010-03-22 2014-04-08 Western Digital Technologies, Inc. Systems and methods for improving sequential data rate performance using sorted data zones for butterfly format
US8856438B1 (en) 2011-12-09 2014-10-07 Western Digital Technologies, Inc. Disk drive with reduced-size translation table
US9330715B1 (en) 2010-03-22 2016-05-03 Western Digital Technologies, Inc. Mapping of shingled magnetic recording media
US8699185B1 (en) 2012-12-10 2014-04-15 Western Digital Technologies, Inc. Disk drive defining guard bands to support zone sequentiality when butterfly writing shingled data tracks
US8621133B1 (en) 2010-06-29 2013-12-31 Western Digital Technologies, Inc. Reading multiple metadata files across multiple tracks
JP5342522B2 (ja) * 2010-08-26 2013-11-13 株式会社デジタル インストール方法及びプログラム
US8478979B2 (en) 2010-09-09 2013-07-02 Hewlett-Packard Development Company, L.P. Disable a feature of a computing machine
US8756361B1 (en) 2010-10-01 2014-06-17 Western Digital Technologies, Inc. Disk drive modifying metadata cached in a circular buffer when a write operation is aborted
US8954664B1 (en) 2010-10-01 2015-02-10 Western Digital Technologies, Inc. Writing metadata files on a disk
US8832708B2 (en) 2010-10-12 2014-09-09 Microsoft Corporation Process pool of empty application hosts to improve user perceived launch time of applications
US9569351B2 (en) 2010-10-25 2017-02-14 Seagate Technology Llc Storing corresponding data units in a common storage unit
US8793429B1 (en) 2011-06-03 2014-07-29 Western Digital Technologies, Inc. Solid-state drive with reduced power up time
US8756382B1 (en) 2011-06-30 2014-06-17 Western Digital Technologies, Inc. Method for file based shingled data storage utilizing multiple media types
EP2557497A1 (en) * 2011-08-08 2013-02-13 Advanced Digital Broadcast S.A. Method for improving booting of a computing device
US9213493B1 (en) 2011-12-16 2015-12-15 Western Digital Technologies, Inc. Sorted serpentine mapping for storage drives
JP5679074B2 (ja) * 2011-12-19 2015-03-04 富士通株式会社 ソフトウェアのインストール順序を決定する方法、プログラム、及び装置
US8819367B1 (en) 2011-12-19 2014-08-26 Western Digital Technologies, Inc. Accelerated translation power recovery
US8612706B1 (en) 2011-12-21 2013-12-17 Western Digital Technologies, Inc. Metadata recovery in a disk drive
US10078474B1 (en) * 2012-06-29 2018-09-18 Emc Corporation Method of maintaining list of scratch volumes in shared filesystems across multiple nodes
US8953269B1 (en) 2014-07-18 2015-02-10 Western Digital Technologies, Inc. Management of data objects in a data object zone
US9875055B1 (en) 2014-08-04 2018-01-23 Western Digital Technologies, Inc. Check-pointing of metadata
JP6668840B2 (ja) * 2016-03-11 2020-03-18 富士通株式会社 ソフトウェア導入支援プログラム、ソフトウェア導入支援装置、及びソフトウェア導入支援方法
CN107402721A (zh) * 2017-06-30 2017-11-28 郑州云海信息技术有限公司 一种硬盘的控制方法、装置及服务器

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05216594A (ja) * 1992-01-31 1993-08-27 Nec Corp 再配置ディスク装置
US5325532A (en) * 1992-09-25 1994-06-28 Compaq Computer Corporation Automatic development of operating system boot image
US5473767A (en) * 1992-11-03 1995-12-05 Intel Corporation Method and apparatus for asynchronously stopping the clock in a processor
US5432937A (en) * 1993-08-20 1995-07-11 Next Computer, Inc. Method and apparatus for architecture independent executable files
JP3564732B2 (ja) * 1994-06-30 2004-09-15 ソニー株式会社 ディスク制御方法および装置
US5732266A (en) * 1994-09-02 1998-03-24 Compaq Computer Corporation Storage medium storing application programs and application initialization files and automatic launching of computer applications stored on the storage medium
US5574907A (en) 1994-11-30 1996-11-12 Microsoft Corporation Two-pass defragmentation of compressed hard disk data with a single data rewrite
US5778392A (en) 1996-04-01 1998-07-07 Symantec Corporation Opportunistic tile-pulling, vacancy-filling method and apparatus for file-structure reorganization
JPH09293007A (ja) * 1996-04-26 1997-11-11 Nec Corp プログラムインストール装置
US5802593A (en) * 1996-09-06 1998-09-01 Intel Corporation Method and apparatus for improving disk drive performance
US5857101A (en) * 1997-04-15 1999-01-05 Acceleration Software International Corporation Program lunch acceleration
US5933630A (en) * 1997-06-13 1999-08-03 Acceleration Software International Corporation Program launch acceleration using ram cache
US6202121B1 (en) * 1998-04-15 2001-03-13 Microsoft Corporation System and method for improved program launch time

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101478462B (zh) * 2008-12-17 2010-12-08 成都市华为赛门铁克科技有限公司 存储数据读取和写入的装置和方法及固态硬盘
CN102375850A (zh) * 2010-08-23 2012-03-14 联想(北京)有限公司 电子设备的文件排布方法、启动方法及电子设备
CN102375850B (zh) * 2010-08-23 2013-10-30 联想(北京)有限公司 电子设备的文件排布方法、启动方法及电子设备
CN102609291A (zh) * 2012-02-29 2012-07-25 记忆科技(深圳)有限公司 基于固态硬盘的系统启动方法和固态硬盘
CN102609291B (zh) * 2012-02-29 2015-05-27 记忆科技(深圳)有限公司 基于固态硬盘的系统启动方法和固态硬盘
CN102981874A (zh) * 2012-11-15 2013-03-20 北京奇虎科技有限公司 计算机处理系统和注册表重定向方法
CN102981874B (zh) * 2012-11-15 2015-12-02 北京奇虎科技有限公司 计算机处理系统和注册表重定向方法
CN103530319A (zh) * 2013-09-16 2014-01-22 华为技术有限公司 一种操作请求的处理方法和装置
CN103530319B (zh) * 2013-09-16 2017-12-15 华为技术有限公司 一种操作请求的处理方法和装置

Also Published As

Publication number Publication date
DE69943066D1 (de) 2011-02-03
EP1607855A2 (en) 2005-12-21
EP1607855A3 (en) 2007-07-04
CN1212563C (zh) 2005-07-27
JP2008251018A (ja) 2008-10-16
JP2002511615A (ja) 2002-04-16
JP4235362B2 (ja) 2009-03-11
EP1073947B1 (en) 2005-07-20
US6202121B1 (en) 2001-03-13
EP1073947A1 (en) 2001-02-07
WO1999053395A1 (en) 1999-10-21
EP1607855B1 (en) 2010-12-22
TW432317B (en) 2001-05-01
DE69926227T2 (de) 2006-04-13
DE69926227D1 (de) 2005-08-25
JP4571992B2 (ja) 2010-10-27

Similar Documents

Publication Publication Date Title
CN1212563C (zh) 改进程序发送时间的系统和方法
CN1311363C (zh) 生成内容地址的数据处理方法和可内容寻址的存储系统
RU2446450C2 (ru) Преобразование машин в виртуальные машины
CN1143209C (zh) 操作系统的重启动方法和计算机系统的控制方法
CN1282088C (zh) 磁盘阵列装置及磁盘阵列装置的控制方法
CN1277213C (zh) 一种闪存文件系统管理方法
CN1313923C (zh) 软件分发方法与系统
CN1129848C (zh) 对非易失性存储器中的文件进行连续重写的方法
CN1296835C (zh) 用于控制计算机系统的引导操作的装置和方法
CN1680926A (zh) 带有相对受限存储空间以及操作/文件系统的计算装置
CN1147648A (zh) 数据存储装置及存储方法
CN1297898C (zh) 分区创建方法及删除方法
CN110096333B (zh) 一种基于非易失内存的容器性能加速方法
CN1862475A (zh) 磁盘阵列缓存的管理方法
US20080263259A1 (en) Hints model for optimization of storage devices connected to host and write optimization schema for storage devices
CN1783082A (zh) 用于与文件系统保持命名空间一致性的方法和系统
KR100978425B1 (ko) 컴퓨터 성능을 최적화하기 위한 방법 및 특정 목적섹션들을 이용하여 최적화된 메인 비휘발성 메모리 장치
WO2006089092A2 (en) Hierarchal data management
CN1838128A (zh) 存储装置系统的控制技术
CN1904858A (zh) 数据存储设备、数据存储方法以及记录/再现系统
EP1932087A1 (en) A method for centralized policy based disk-space preallocation in a distributed file system
CN1848069A (zh) 数据存储设备、重构控制设备、重构控制方法及存储介质
CN1945521A (zh) 一种非同质存储设备的虚拟化系统及方法
CN109977092B (zh) 一种复制文件的方法和计算设备
CN1967505A (zh) 信息处理装置、图像摄取装置、信息处理方法及计算机程序

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150527

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150527

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Redmond, Washington, USA

Patentee before: Microsoft Corp.

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20160812

Address after: Grand Cayman, Georgetown, Cayman Islands

Patentee after: IValley Holding Co., Ltd.

Address before: Washington State

Patentee before: Micro soft technique license Co., Ltd

CX01 Expiry of patent term

Granted publication date: 20050727

CX01 Expiry of patent term