WO2015033767A1 - ファイル管理装置、プログラム及びファイル管理方法 - Google Patents

ファイル管理装置、プログラム及びファイル管理方法 Download PDF

Info

Publication number
WO2015033767A1
WO2015033767A1 PCT/JP2014/071625 JP2014071625W WO2015033767A1 WO 2015033767 A1 WO2015033767 A1 WO 2015033767A1 JP 2014071625 W JP2014071625 W JP 2014071625W WO 2015033767 A1 WO2015033767 A1 WO 2015033767A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
processing
file
stored
address
Prior art date
Application number
PCT/JP2014/071625
Other languages
English (en)
French (fr)
Inventor
三木 聡
Original Assignee
株式会社フィックスターズ
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 株式会社フィックスターズ filed Critical 株式会社フィックスターズ
Priority to JP2015535411A priority Critical patent/JPWO2015033767A1/ja
Priority to US14/916,274 priority patent/US9904483B2/en
Publication of WO2015033767A1 publication Critical patent/WO2015033767A1/ja

Links

Images

Classifications

    • 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0638Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
    • 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/0608Saving storage space on 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks

Definitions

  • the present invention relates to a technique for managing files.
  • Non-Patent Document 1 For example, when data is used by a process executed on a computer, data stored as a file in the auxiliary storage device is read into the main storage device. Further, the data thus read into the main storage device and processed is written as a file in the auxiliary storage device at a predetermined timing such as at the end of the process. Such a technique is described in Non-Patent Document 1, for example.
  • the present invention has been made in view of the above-described background.
  • the free space of the storage area in the storage device that stores the data stored as a file and the data stored in the processing area for performing processing is provided.
  • the purpose is to enlarge.
  • the present invention provides, as one aspect, management means for managing data stored as a file in a storage device, the file name of the data and the data in the storage area of the storage device
  • management means for managing data stored as a file in a storage device, the file name of the data and the data in the storage area of the storage device
  • the processing unit of the storage area represents the processing area used for the processing
  • a file management apparatus comprising management means for assigning an address stored in association with the file name of the data as an address.
  • the management means may store the address of the data in the processing area in association with the file name. Good.
  • management means for managing data stored as a file in the storage device, wherein the processing means for processing the data uses a storage area of the storage device used for the processing.
  • a file management device comprising management means for storing the address of the data in the processing area in association with the file name when the data stored in the processing area and subjected to the processing is stored as a file.
  • the management unit when the processing unit is not permitted to change the processing data to be processed, the management unit generates replication data that is a copy of the processing data, and uses the replication data as an address representing the processing area. And any address of the processing data may be assigned.
  • the storage device may have a nonvolatile storage medium. Further, the management unit and the processing unit are functions realized by a processor, and the processor may access data stored in the storage device without going through another processor.
  • the computer is a management unit that manages data stored as a file in a storage device, the file name of the data and the address of the data in the storage area of the storage device
  • the processing means for processing the data performs processing on the data stored as a file, the address indicating the processing area used by the processing means for the processing in the storage area
  • a program for functioning as management means for assigning an address stored in association with the file name of the data is provided.
  • a management unit that manages data stored as a file in a storage device as a computer, and a storage unit that uses the processing unit to perform processing on the data.
  • the data address in the processing area is associated with a file name and stored as a management unit for storing the data.
  • a management step for managing data stored as a file in a storage device wherein a file name of the data corresponds to an address of the data in a storage area of the storage device
  • the processing means of the data is used as an address indicating the processing area used by the processing means in the storage area.
  • a file management method comprising a management step of assigning an address stored in association with a file name.
  • a management step for managing data stored as a file in a storage device wherein a processing unit that performs processing on the data is on a storage area of the storage device used for the processing.
  • a file management method comprising a management step of storing the address of the data in the processing area in association with the file name when the data stored in the processing area and subjected to the processing is stored as a file.
  • Block diagram showing the hardware configuration of the file management device Block diagram showing the functional configuration of the file management device
  • the figure which shows an example of the stored file management table The figure which shows an example of a processing area table
  • the figure which shows the specific example of the allocation of the address which a management means performs The figure which shows the specific example of the allocation of the address which a management means performs
  • the figure which shows the specific example of the allocation of the address which a management means performs The figure which shows the specific example of the allocation of the address which a management means performs
  • the figure which shows the specific example of the allocation of the address which a management means performs The figure which shows the example of the file management table updated by the management means
  • Sequence diagram showing an example of operation of each unit in file management processing The figure which shows an example of the file management table of a modification
  • the figure which shows the specific example of the allocation of the address which a management means performs The figure which shows the specific example of the allocation of the address which a management means performs
  • FIG. 1 is a block diagram showing a hardware configuration of the file management apparatus 1.
  • the file management device 1 is a computer including a bus 2, a processor 3, a ROM (Read Only Memory) 4, an input / output device 5, and a storage device 10.
  • the bus 2 mediates data transfer of other parts.
  • the processor 3 is, for example, a CPU (Central Processing Unit), and executes data stored in the ROM 4 or the storage device 10 to process data and control each unit of the file management device 1.
  • the program executed by the processor 3 includes a so-called OS (Operating System) program and various application programs.
  • the ROM 4 is a read-only storage medium that stores specific data during production.
  • the input / output device 5 passes the input data to the processor 3 and outputs the data passed from the processor 3.
  • the input / output device 5 includes, for example, a keyboard, a mouse, a touch screen, and the like, and data is input in accordance with a user operation. Further, the input / output device 5 includes, for example, a display unit, a voice output unit, and the like, and converts the data into an image and a voice and outputs the converted data.
  • the input / output device 5 includes, for example, a circuit for communicating with an external device, and inputs / outputs data to / from the external device.
  • the storage device 10 is a device that stores data, and the processor 3 performs both reading and writing of data (data reading and writing).
  • the storage device 10 has a so-called non-volatile storage medium that continues to store stored data even when power is not supplied.
  • Nonvolatile storage media include, for example, NAND flash memory, NOR flash memory, MRAM (Magnetoresistive Random Access Memory), STT (Spin Torque Transfer) -RAM, and the like.
  • writing is performed in units of bytes (bytes) or words (units of data that can be processed by the processor 3 at a time), and data deletion is performed in units of storage areas called blocks (size is 4K (kilo)). About 256 Kbytes).
  • the storage device 10 since the storage device 10 is directly connected to the processor 3 by the bus 2, it does not have a processor for controlling reading / writing of data, that is, data access. Therefore, the processor 3 directly accesses data stored in the storage device 10 without passing through another processor. As a result, as compared with the case where the processor 3 accesses the storage device via another processor, the time required for processing performed by the other processor becomes unnecessary, and the time required for data access becomes shorter.
  • FIG. 2 is a block diagram showing a functional configuration of the file management apparatus 1.
  • the file management apparatus 1 includes a processing unit 101 and a management unit 102.
  • Processing means 101 is an example of means for processing data.
  • the processing performed by the processing means is, for example, data reference, change, integration, and division.
  • the processing means 101 is a function realized by executing a program as described above, and is realized for each execution unit of a program called a process, for example.
  • a process for example.
  • a part of the storage area of the storage device 10 is allocated as an area for use in data processing.
  • an area allocated in this way that is, an area on a storage area used by the processing unit 101 for processing is referred to as a “processing area”.
  • the processing area is assigned in units of the above-described blocks.
  • the processing unit 101 stores program instruction codes and variables, data to be processed, and the like in the processing area, and processes the data using the stored data. For example, if the processing unit 101 is realized by executing an application program for creating a document, processing for storing document data indicating a new document in the processing area is performed according to a user operation. The document indicated by the document data is changed. The data processed in this way may be used even after the program that implements the processing unit 101 is terminated, and such data is stored as a file by the management unit 102.
  • the management unit 102 is an example of a unit that manages data stored as a file in the storage device 10 (hereinafter referred to as “file data”).
  • file data The management unit 102 stores a file management table in which file names of file data and addresses where the file data are stored are stored in association with each other.
  • the address here is information for identifying each location on the storage area of the storage device 10 and is represented by the block identifier for identifying the block described above in this embodiment.
  • the management unit 102 stores the file management table in, for example, the storage device 10 and updates it whenever there is a change in content.
  • FIG. 3 shows an example of the stored file management table.
  • file names “AAA.aaa”, “BBB.bbb”, and “CCC.ccc” are associated with “address 1”, “address 2”, and “address 3”, respectively. These addresses are actually represented by one or more block identifiers.
  • the management unit 102 stores the address where the file data is stored in the storage area of the storage device 10 and the file name of the file data in association with each other.
  • the management unit 102 uses the file name of the file data as an address indicating an area used by the processing unit 101 in the storage area (hereinafter referred to as “processing area”).
  • processing area an area used by the processing unit 101 in the storage area
  • the address stored in association is assigned. Specifically, first, when the processing unit 101 performs processing on file data, it notifies the management unit 102 of the file name of the file data to be processed.
  • the management unit 102 determines that the file data having the file name notified from the processing unit 101 is to be processed, and assigns an address associated with the file name in the file management table as an address representing the processing area. .
  • the processing area is managed by, for example, a processing area table in which a process ID for identifying a process is associated with an address indicating the processing area assigned to the process.
  • FIG. 4 is a diagram illustrating an example of the processing area table.
  • process addresses “P001”, “P002”, and “P003” are associated with addresses “address 4”, “address 5”, and “address 6”, respectively.
  • These addresses are also represented by one or more block identifiers as in the example of FIG.
  • the processing area table may be generated by the management means 102 or may be generated by other means (for example, an OS function).
  • the management unit 102 performs the above allocation by adding the address associated with the file name to the address associated with the process ID of the processing unit 101 in the processing area table. For example, if the process ID of the processing unit 101 is “P002” and the processing unit 101 notifies the file name “AAA.aaa”, the management unit 102 corresponds to “P002” in the processing area table.
  • the block identifier represented by “address 1” associated with the file name “AAA.aaa” in the file management table shown in FIG. 3 to the block identifier represented by “address 5” attached, Make assignments. More specific examples of this assignment will be described with reference to FIGS. 5A to 5D (hereinafter, these figures are collectively referred to as “FIG. 5”).
  • FIG. 5 is a diagram showing a specific example of address assignment performed by the management means 102.
  • a storage device 10 having N blocks 11 of 11-1, 11-2,..., 11-N is shown.
  • AAA Stored at address 1 (in this example, block identifiers 11-a and 11-b). Data having a file name “aaa” is hatched.
  • FIG. 5B shows a processing area A1 allocated when the program is executed and the processing unit 101 is realized. In the following, it is assumed that the processing area is surrounded by a thick line for easy understanding.
  • a processing area A1 represented by seven block identifiers from 11-c to 11-i is shown.
  • instruction codes and variables executed by the processing unit 101 are read from, for example, the ROM 4 and stored.
  • the management unit 102 assigns address 1 as a processing area.
  • the areas represented by the block identifiers 11-c to 11-i are included in the processing area A1. It comes to be.
  • the processing means 101 processes the file data that is to be stored in the processing area A1
  • the result of the processing is immediately reflected.
  • the file data As a result of processing the file data by the processing unit 101, if the data size increases and does not fit in the address 1, as shown in FIG. 5D, the file data extends over other blocks in the processing area A1. Will be memorized.
  • the file data with the file name “AAA.aaa” does not fit in the blocks of the block identifiers 11-a and 11-b, and is stored across the blocks of 11-c and 11-d. ing.
  • processing is directly performed on the file data, and the content of the file data is changed according to the content of the processing.
  • the management means 102 stores the address of the data in the processing area in association with the file name. If the file name is not stored in the file management table, the management unit 102 stores these file names and addresses by newly storing them in the file management table. In addition, if the file name is already stored in the file management table, the management unit 102 stores these by updating the address associated with the file name to a new one.
  • FIGS. 6A to 6B hereinafter, these drawings are collectively referred to as “FIG. 6”.
  • FIG. 6 is a diagram showing an example of a file management table updated by the management means 102.
  • FIG. 6A shows address 1 called block identifiers 11-a and 11-b shown in FIG. 5A.
  • the management unit 102 sets the address 1 to 11-a, 11-b, 11 as shown in FIG. 6B. Update to address 1 ′ of ⁇ c and 11-d.
  • the processing area A1 shown in FIG. 5 is released, but the file name “AAA.aaa” is associated with the address 1 ′ in the file data “AAA.aaa”. Therefore, data that can be accessed using the file name, that is, a file is continuously stored.
  • FIG. 7 is a sequence diagram illustrating an example of the operation of each unit in the file management process.
  • the operation of FIG. 7 is started when the file management apparatus 1 performs a program start operation for starting a program on the input / output device 5 by the user (step S11).
  • the input / output device 5 supplies operation data indicating a program start operation to the processor 3 (step S12).
  • the processor 3 allocates a processing area used for processing related to the program to be executed (step S13).
  • An example of the processing area assigned in this way is the processing area A1 shown in FIG. 5B.
  • the processor 3 stores the instruction code, variables, and the like in the assigned processing area (step S14), and executes the program (step S15).
  • Steps S13, S14, and S15 are operations performed by the processing unit 101.
  • the file selection operation is, for example, an operation of selecting and opening a document file if the above-described document creation application program is being executed.
  • the input / output device 5 supplies operation data indicating a file selection operation to the processor 3 (step S22).
  • This operation data is data indicating the file name of the selected file.
  • the processor 3 assigns an address stored in association with the file name indicated by the supplied operation data as a processing area (step S23).
  • An example of the processing area assigned in this way is the processing area A1 shown in FIGS. 5C and 5D.
  • Step S23 is an operation performed by the management unit 102.
  • Step S25 the processor 3 performs processing on the file data (step S25) using data (instruction code, variable, file data, etc.) stored in the assigned processing area (step S24).
  • data instruction code, variable, file data, etc.
  • An example of the file data thus processed is data with a file name “AAA.aaa” shown in FIG. 5D.
  • Steps S24 and S25 are operations performed by the processing means 101.
  • Step S31 when the user performs a file storage operation for storing the processed data as a file (step S31), the input / output device 5 supplies operation data indicating the file storage operation to the processor 3 (step S32).
  • the processor 3 stores the address on the processing area where the data processed in step S25 is stored in the file management table (step S33).
  • An example of the stored address is the address 1 'shown in FIG. 6B.
  • Step S33 is an operation performed by the management unit 102.
  • step S41 When the user performs a program end operation to end the program (step S41), the input / output device 5 supplies operation data indicating the program end operation to the processor 3 (step S42), and the processor 3 ends the program.
  • the processing area is released (step S43). Even after the program ends in this way, the processed data is stored in the storage device 10 as a file.
  • a configuration in which a file management apparatus includes a main storage unit and an auxiliary storage unit is common.
  • the processor stores the file data in the auxiliary storage device, and when processing the file data, stores the copy of the file data in the main storage device and then processes the copy.
  • a storage area of the same size is also required for the main storage device in order to store a copy of the file data.
  • the processing means 101 directly processes the file data stored in the storage device 10
  • the storage device 10 has a storage area of a size for storing the file data (the states shown in FIGS. 5A to 5C).
  • a copy of the file data or the processed data is generated both when the file data is processed and when the processed data is stored as a file. Processing is required.
  • such a process for generating a replica is unnecessary, and the processing load on the processor and the load of data transfer on the bus are reduced as compared with the case where the process for generating such a replica is performed. Can do.
  • the processing speed can be improved as compared with the case where the process is performed.
  • the management unit 102 If the processing unit 101 is not permitted to change the processing data to be processed, the management unit 102 generates replication data that is a copy of the processing data, and uses the replication data and the processing data as an address representing the processing area. Assign one of the addresses. For example, the management unit 102 stores a file management table in which a flag indicating whether or not data change is permitted is stored.
  • FIG. 8 is a diagram illustrating an example of a file management table according to the present modification. In this example, “AAA.aaa”, “BBB.bbb”, and “CCC.ccc” shown in FIG. 3 are associated with changeable flags “x”, “o”, and “o”. It has been. A flag “ ⁇ ” indicates that the change is permitted, and a flag “ ⁇ ” indicates that the change is not permitted.
  • the management unit 102 When the file name of the file data to be processed is supplied from the processing unit 101, the management unit 102 refers to the file management table, and changes if the flag associated with the file name is “O”. Is assigned, addresses are assigned as described in the embodiment. If the flag is “x”, the management unit 102 determines that the flag is not permitted, generates duplicate data of the file data, and stores it in the storage device 10. Then, for example, the management unit 102 assigns the stored address of the duplicate data as an address representing the processing area.
  • FIG. 9 are diagrams illustrating specific examples of address assignment performed by the management unit 102.
  • FIG. 9A shows a state in which data having the file name “AAA.aaa” is stored at address 1 and the processing area A1 is allocated as shown in FIG. 5B.
  • the management unit 102 uses the block identifier of the copy data B1 of the file data as shown in FIG. 9B. It is stored in the 11-x and 11-y blocks.
  • the management unit 102 assigns the address of the duplicated data B1 as an address representing the processing area A1. Further, as illustrated in FIG. 9D, the management unit 102 may assign the address of “AAA.aaa” that is the copy source as an address representing the processing area A1. In the latter case, the management unit 102 updates the address associated with the file name “AAA.aaa” in the file management table to the address of the duplicate data (in this example, 11-x and 11-y). In either case, even if the data is changed by the processing performed by the processing means 101, either the file data or the duplicate data remains unchanged. According to such a modification, when data that is not permitted to be changed is processed, the data that has not been changed can remain.
  • the storage device is a non-volatile storage medium in the above embodiment, but is not limited thereto. Even if the storage device is a volatile storage medium, for example, if the file management device is a device that continues to operate for 24 hours 365 days like a mainframe, the storage device will not be supplied with power. Data stored in the device can continue to be stored as a file.
  • the storage device is connected to the bus 2 in the same manner as the processor 3, but the storage device is not limited to this.
  • the storage device may be connected via the input / output device 5 or may be connected to a line connected to the input / output device 5. That is, the storage device may be provided in the file management device or may be provided outside the file management device.
  • the storage device does not have a processor for controlling access to data, but the present invention is not limited to this.
  • the storage device may be a so-called hard disk drive whose access is controlled by a controller having a processor, for example.
  • the processing means may be a function realized by an external device other than the file management device.
  • the file management device and the external device share a storage device, and the file management device performs the above-described file management processing also for processing means realized by the external device.
  • the external device includes a connection device for connecting to, for example, a processor, a ROM, and a file management device, and the processor executes a program stored in the ROM to realize processing means.
  • the management unit 102 transmits the assigned address to the processing unit via the bus 2 and the connection unit, and receives the file name of the file data to be processed.
  • the processing means only needs to be able to exchange such information with the management means 102.
  • the management means allocates an address representing a processing area (hereinafter referred to as “allocation process”), and associates an address of the processed data with a file name (hereinafter referred to as “association process”). ) And both, but only one of them may be done. For example, when storing processed data as a file in the processing area where the allocation processing has been performed, the data is moved to another address, and then the destination address and the file name are associated with each other. It may be memorized. In this case as well, the storage capacity necessary to store the processed data can be accommodated by one piece of data at any point in time. Therefore, it is possible to increase the free capacity of the storage area in the storage device compared to the case where a copy of processed data is generated as in the conventional configuration described above.
  • the file data When processing is performed on file data stored as a file after association processing, the file data is moved to another address, and the destination address represents the processing area. It may be assigned as an address. In this case as well, the storage capacity required to store the file data can be accommodated by one file data at any point in time, and the free capacity of the storage area in the storage device can be increased compared to the conventional configuration. .
  • a copy of the data may be generated.
  • these data are temporarily duplicated, but until this copy is generated, the non-duplicate state will be maintained, compared to the conventional configuration.
  • the free capacity of the storage area in the storage device can be increased.
  • the present invention can also be understood as a file management method for realizing processing performed by the file management apparatus.
  • the processing here is, for example, the file management processing shown in FIG.
  • the present invention can also be understood as a program for causing a computer such as a file management apparatus to function as the means shown in FIG.
  • This program may be provided in the form of a recording medium such as an optical disk storing the program, or may be provided in the form of being downloaded to a computer via a network such as the Internet, and making it available for installation. You may do.

Abstract

 処理手段101は処理領域に記憶されたデータに処理を施す。処理領域は、処理手段101が処理に用いる記憶領域上の領域である。管理手段102は、記憶装置10にファイルとして記憶されるファイルデータを管理する。管理手段102は、記憶装置10の記憶領域においてファイルデータが記憶されているアドレスとそのファイルデータのファイル名とを対応付けて記憶させる。管理手段102は、処理手段101がファイルデータに処理を施す場合に、処理領域を表すアドレスとして、そのファイルデータのファイル名に対応付けて記憶しているアドレスを割り当てる。

Description

ファイル管理装置、プログラム及びファイル管理方法
 本発明は、ファイルを管理するための技術に関する。
 ファイルを管理するための技術がある。例えば、コンピュータ上で実行されているプロセスによりデータが利用される場合には、補助記憶装置にファイルとして記憶されているデータが主記憶装置に読み込まれる。また、そうして主記憶装置に読み込まれて処理が施されたデータは、プロセスの終了時などの定められたタイミングで補助記憶装置にファイルとして書き出される。このような技術は、例えば非特許文献1に記載されている。
yamanjo、"基礎からわかる!パソコン入門・再入門"、[online]、[平成25年8月28日検索]、インターネット、<URL: http://yamanjo.net/knowledge/structure/structure_03.html>
 上記のようにデータの読み込み及び書き出しが行われると、例えばプロセスによりデータが利用されている間は、補助記憶装置に記憶されたデータ及び主記憶装置に読み込まれたデータという同じデータが2つ同時に存在することになる。このことは、これらのデータ、言い換えると、ファイルとして記憶されているデータと処理を施すための処理用の領域(例えばプロセスのために確保される主記憶装置上の記憶領域)に記憶されるデータが記憶される記憶装置全体における記憶領域の空き容量を小さくする要因となる。
 本発明は、上述の背景に鑑みてなされたものであり、ファイルとして記憶されるデータと処理を施すために処理用の領域に記憶されるデータとを記憶する記憶装置における記憶領域の空き容量を大きくすることを目的とする。
 上述した課題を解決するために、本発明は、一態様として、記憶装置にファイルとして記憶されるデータを管理する管理手段であって、当該データのファイル名と前記記憶装置の記憶領域における当該データのアドレスとを対応付けて記憶させ、データに処理を施す処理手段がファイルとして記憶されているデータに当該処理を施す場合に、前記記憶領域のうち当該処理手段が当該処理に用いる処理領域を表すアドレスとして当該データのファイル名に対応付けて記憶されているアドレスを割り当てる管理手段を備えるファイル管理装置を提供する。
 また、前記管理手段は、前記処理手段により前記処理領域において処理を施されたデータがファイルとして記憶される場合に、当該処理領域内の当該データのアドレスをファイル名に対応付けて記憶させてもよい。
 また、本発明は、他の一態様として、記憶装置にファイルとして記憶されるデータを管理する管理手段であって、データに処理を施す処理手段が当該処理に用いる前記記憶装置の記憶領域上の処理領域に記憶されて当該処理を施されたデータがファイルとして記憶される場合に、当該処理領域内の当該データのアドレスをファイル名に対応付けて記憶させる管理手段を備えるファイル管理装置を提供する。
 また、前記管理手段は、前記処理手段が処理を施す処理データの変更が許可されていない場合には、当該処理データの複製である複製データを生成し、前記処理領域を表すアドレスとして当該複製データ及び当該処理データのいずれかのアドレスを割り当ててもよい。
 さらに、前記記憶装置は、不揮発性の記憶媒体を有していてもよい。
 また、前記管理手段及び前記処理手段は、プロセッサにより実現される機能であり、当該プロセッサは、他のプロセッサを介さずに前記記憶装置に記憶されているデータにアクセスしてもよい。
 また、本発明は、他の一態様として、コンピュータを、記憶装置にファイルとして記憶されるデータを管理する管理手段であって、当該データのファイル名と前記記憶装置の記憶領域における当該データのアドレスとを対応付けて記憶させ、データに処理を施す処理手段がファイルとして記憶されているデータに当該処理を施す場合に、前記記憶領域のうち当該処理手段が当該処理に用いる処理領域を表すアドレスとして当該データのファイル名に対応付けて記憶されているアドレスを割り当てる管理手段として機能させるためのプログラムを提供する。
 また、本発明は、他の一態様として、コンピュータを、記憶装置にファイルとして記憶されるデータを管理する管理手段であって、データに処理を施す処理手段が当該処理に用いる前記記憶装置の記憶領域上の処理領域に記憶されて当該処理を施されたデータがファイルとして記憶される場合に、当該処理領域内の当該データのアドレスをファイル名に対応付けて記憶させる管理手段として機能させるためのプログラムを提供する。
 また、本発明は、他の一態様として、記憶装置にファイルとして記憶されるデータを管理する管理ステップであって、当該データのファイル名と前記記憶装置の記憶領域における当該データのアドレスとを対応付けて記憶させ、データに処理を施す処理手段がファイルとして記憶されているデータに当該処理を施す場合に、前記記憶領域のうち当該処理手段が当該処理に用いる処理領域を表すアドレスとして当該データのファイル名に対応付けて記憶されているアドレスを割り当てる管理ステップを備えるファイル管理方法を提供する。
 また、本発明は、他の一態様として、記憶装置にファイルとして記憶されるデータを管理する管理ステップであって、データに処理を施す処理手段が当該処理に用いる前記記憶装置の記憶領域上の処理領域に記憶されて当該処理を施されたデータがファイルとして記憶される場合に、当該処理領域内の当該データのアドレスをファイル名に対応付けて記憶させる管理ステップを備えるファイル管理方法を提供する。
 本発明によれば、ファイルとして記憶されるデータと処理を施すために処理用の領域に記憶されるデータとを記憶する記憶装置における記憶領域の空き容量を大きくすることができる。
ファイル管理装置のハードウェア構成を示すブロック図 ファイル管理装置の機能構成を示すブロック図 記憶されたファイル管理テーブルの一例を示す図 処理領域テーブルの一例を示す図 管理手段が行うアドレスの割り当ての具体例を示す図 管理手段が行うアドレスの割り当ての具体例を示す図 管理手段が行うアドレスの割り当ての具体例を示す図 管理手段が行うアドレスの割り当ての具体例を示す図 管理手段により更新されるファイル管理テーブルの例を示す図 管理手段により更新されるファイル管理テーブルの例を示す図 ファイル管理処理における各部の動作の一例を示すシーケンス図 変形例のファイル管理テーブルの一例を示す図 管理手段が行うアドレスの割り当ての具体例を示す図 管理手段が行うアドレスの割り当ての具体例を示す図 管理手段が行うアドレスの割り当ての具体例を示す図 管理手段が行うアドレスの割り当ての具体例を示す図
[実施形態の構成]
 以下、図を参照しながら本発明の一実施形態にかかるファイル管理装置1を説明する。
 図1はファイル管理装置1のハードウェア構成を示すブロック図である。ファイル管理装置1は、バス2と、プロセッサ3と、ROM(Read Only Memory)4と、入出力装置5と、記憶装置10とを備えるコンピュータである。バス2は、他の各部のデータの受け渡しを仲介する。
 プロセッサ3は、例えばCPU(Central Processing Unit)であり、ROM4や記憶装置10に記憶されているプログラムを実行することによって、データを処理するとともにファイル管理装置1の各部を制御する。プロセッサ3により実行されるプログラムには、いわゆるOS(Operating System)のプログラムや各種のアプリケーションプログラムなどがある。ROM4は、生産時に特定のデータを記憶させた読み込み専用の記憶媒体である。
 入出力装置5は、入力されたデータをプロセッサ3に渡したり、プロセッサ3から渡されたデータを出力したりする。入出力装置5は、例えば、キーボードやマウス、タッチスクリーンなどを有し、ユーザによる操作に応じてデータが入力される。また、入出力装置5は、例えば、表示手段や音声出力手段などを有し、データを画像や音声に変換して出力する。また、入出力装置5は、例えば、外部装置と通信を行うための回路等を有し、外部装置との間でデータの入出力を行う。
 記憶装置10は、データを記憶する装置であり、プロセッサ3によりデータの読み込み及び書き出し(データの読み書き)の両方が行われる。記憶装置10は、本実施形態では、記憶したデータを電力が供給されなくなっても記憶し続けるいわゆる不揮発性(Non-Volatile)の記憶媒体を有する。不揮発性の記憶媒体とは、例えば、NAND型フラッシュメモリやNOR型フラッシュメモリ、MRAM(Magnetoresistive Random Access Memory)、STT(Spin Torque Transfer)-RAMなどである。このような記憶媒体を有することにより、例えばファイル管理装置1の電源が切られて記憶装置10に電力が供給されなくなっても、記憶装置10に記憶されたデータが記憶され続けることになる。記憶装置10においては、書き出しはバイト(Byte)またはワード(プロセッサ3が一度に処理できるデータの単位)単位で行われ、データの削除はブロックと呼ばれる記憶領域を単位(大きさは4K(キロ)~256Kバイト程度)として行われる。
 また、記憶装置10は、バス2によりプロセッサ3と直接接続されているため、データの読み書き、すなわちデータのアクセスを制御するためのプロセッサを有していない。そのため、プロセッサ3は、他のプロセッサを介さずに記憶装置10に記憶されているデータに直接アクセスする。これにより、プロセッサ3が他のプロセッサを介して記憶装置にアクセスする場合に比べて、他のプロセッサが行う処理に要する時間が不要となり、データのアクセスに要する時間が短くなっている。
[実施形態の概要]
 ファイル管理装置1においては、プロセッサ3が前述した各プログラムを実行して各部を制御することで、ファイルとして記憶されるデータを管理するファイル管理処理に関係する以下の機能が実現される。ここにおいて、ファイルとは、ファイル名を用いてアクセスすることが可能なデータをいう。
 図2は、ファイル管理装置1の機能構成を示すブロック図である。ファイル管理装置1は、処理手段101と、管理手段102とを備える。
 処理手段101は、データに処理を施す手段の一例である。処理手段が施す処理とは、例えば、データの参照、変更、統合及び分割等である。処理手段101は、前述のとおりプログラムが実行されることで実現される機能であり、例えばプロセスと呼ばれるプログラムの実行単位毎に実現される。処理手段101が実現されると、記憶装置10の記憶領域の一部が、データの処理に用いるための領域として割り当てられる。以下では、こうして割り当てられた領域、すなわち、処理手段101が処理に用いる記憶領域上の領域を「処理領域」という。処理領域は、例えば上述したブロックを単位として割り当てられる。
 処理手段101は、処理領域にプログラムの命令コードや変数、処理の対象であるデータなどを記憶させ、記憶させたそれらのデータを用いてデータの処理を行う。例えば、文書作成用のアプリケーションプログラムが実行されることで実現された処理手段101であれば、ユーザの操作に応じて、新規の文書を示す文書データを処理領域に記憶させる処理を行い、記憶させた文書データが示す文書を変更する処理を行う。
 こうして処理されたデータは、処理手段101を実現していたプログラムが終了したあとも利用される場合があり、そのようなデータは、管理手段102によりファイルとして記憶される。
 管理手段102は、記憶装置10にファイルとして記憶されるデータ(以下「ファイルデータ」という)を管理する手段の一例である。管理手段102は、ファイルデータのファイル名とそのファイルデータが記憶されているアドレスとを対応付けて格納したファイル管理テーブルを記憶させる。ここでいうアドレスとは、記憶装置10の記憶領域上の各場所を識別する情報であり、本実施形態では、前述したブロックを識別するブロック識別子によって表される。管理手段102は、ファイル管理テーブルを例えば記憶装置10に記憶させ、内容に変化がある度にそれを更新する。
 図3は、記憶されたファイル管理テーブルの一例を示す図である。この例では、「AAA.aaa」、「BBB.bbb」及び「CCC.ccc」というファイル名と「アドレス1」、「アドレス2」及び「アドレス3」とがそれぞれ対応付けられている。これらのアドレスは、実際には、1つ以上のブロック識別子により表される。このようにして、管理手段102は、記憶装置10の記憶領域においてファイルデータが記憶されているアドレスとそのファイルデータのファイル名とを対応付けて記憶させる。
 管理手段102は、処理手段101がファイルデータに処理を施す場合に、記憶領域のうち処理手段101が処理に用いる領域(以下「処理領域」という)を表すアドレスとして、そのファイルデータのファイル名に対応付けて記憶しているアドレスを割り当てる。具体的には、まず、処理手段101が、ファイルデータに処理を施す場合、処理の対象であるそのファイルデータのファイル名を管理手段102に通知する。管理手段102は、処理手段101から通知されたファイル名のファイルデータに処理が施されると判断し、ファイル管理テーブルにおいてそのファイル名に対応付けられているアドレスを、処理領域を表すアドレスとして割り当てる。
 処理領域は、例えば、プロセスを識別するプロセスIDとそのプロセスに割り当てた処理領域を表すアドレスとを対応付けた処理領域テーブルによって管理されている。
 図4は、処理領域テーブルの一例を示す図である。この例では、「P001」、「P002」及び「P003」というプロセスIDに、「アドレス4」、「アドレス5」及び「アドレス6」というアドレスがそれぞれ対応付けられている。これらのアドレスも、図3の例と同様に、1つ以上のブロック識別子により表される。
 処理領域テーブルは、管理手段102によって生成されてもよいし、他の手段(例えばOSの機能)によって生成されてもよい。管理手段102は、処理領域テーブルにおいて処理手段101のプロセスIDに対応付けられているアドレスに、上記ファイル名に対応付けられているアドレスを加えることで、上記の割り当てを行う。例えば、処理手段101のプロセスIDが「P002」であり、処理手段101が「AAA.aaa」というファイル名を通知してきた場合であれば、管理手段102は、処理領域テーブルにおいて「P002」に対応付けられている「アドレス5」が表すブロック識別子に、図3に示すファイル管理テーブルにおいて「AAA.aaa」というファイル名に対応付けられている「アドレス1」が表すブロック識別子を加えることで、上記の割り当てを行う。この割り当てのより具体的な例について、図5A~図5D(以下、これらの図を「図5」と総称する)を参照して説明する。
 図5は、管理手段102が行うアドレスの割り当ての具体例を示す図である。図5では、11-1、11-2、・・・、11-NというN個のブロック11を有する記憶装置10が示されている。図5Aでは、アドレス1(この例では11-a、11-bというブロック識別子)に記憶されているAAA.aaaというファイル名のデータがハッチングして示されている。図5Bでは、プログラムが実行されて処理手段101が実現されたときに割り当てられる処理領域A1が示されている。以下では、処理領域を分かりやすくするために太線で囲んで示すものとする。この例では、11-cから11-iまでの7つのブロック識別子により表される処理領域A1が示されている。処理領域A1には、処理手段101が実行する命令コードや変数が例えばROM4から読み出されて記憶される。
 例えばユーザの操作によって「AAA.aaa」というファイル名のファイルデータに処理手段101が処理を施すことになると、管理手段102がアドレス1を処理領域として割り当てる。その結果、図5Cに示すように、11-cから11-iまでのブロック識別子で表される領域に加え、11-a及び11-bのブロック識別子で表される領域が処理領域A1に含まれるようになる。
 こうして処理領域A1に記憶されることになったファイルデータに処理手段101が処理を施すと、その処理の結果が即時に反映される。例えば処理手段101がこのファイルデータに処理を施した結果、データのサイズが大きくなりアドレス1に収まらなくなると、図5Dに示すように、処理領域A1内の他のブロックに跨がってファイルデータが記憶されることになる。この例であれば、「AAA.aaa」というファイル名のファイルデータは、ブロック識別子11-a及び11-bのブロックに収まらなくなり、11-c及び11-dのブロックに跨がって記憶されている。以上のとおり、ファイル管理装置1においては、ファイルデータに対して処理が直接施され、その処理の内容に応じてファイルデータの内容が変更されることになる。
 また、管理手段102は、処理手段101により処理領域において処理を施されたデータがファイルとして記憶される場合に、その処理領域内のそのデータのアドレスをファイル名に対応付けて記憶させる。管理手段102は、ファイル管理テーブルにそのファイル名が格納されていない場合であれば、それらのファイル名及びアドレスを新たにファイル管理テーブルに格納することで、これらを記憶させる。また、管理手段102は、ファイル管理テーブルにそのファイル名が既に格納されている場合であれば、そのファイル名に対応付けられているアドレスを新たなものに更新することで、これらを記憶させる。管理手段102によりファイル管理テーブルが更新される例について、図6A~図6B(以下、これらの図面を「図6」と総称する)を参照して説明する。
 図6は、管理手段102により更新されるファイル管理テーブルの例を示す図である。図6Aでは、図5Aに示したブロック識別子11-a及び11-bというアドレス1が示されている。そのあと、図5Dに示す「AAA.aaa」というファイル名のファイルデータがファイルとして記憶された場合、管理手段102は、アドレス1を、図6Bに示すように11-a、11-b、11-c及び11-dというアドレス1’に更新する。処理手段101を実現していたプログラムが終了すると、図5に示す処理領域A1は解放されることになるが、「AAA.aaa」というフィルデータは、そのファイル名がアドレス1’に対応付けられているので、ファイル名を用いてアクセスすることが可能なデータ、すなわちファイルとして記憶され続けることになる。
[実施形態の動作]
 次に、ファイル管理処理における動作の一例を、図7のシーケンス図を参照しながら説明する。
 図7は、ファイル管理処理における各部の動作の一例を示すシーケンス図である。図7の動作は、ファイル管理装置1において、ユーザがプログラムを開始させるプログラム開始操作を入出力装置5に対して行うこと(ステップS11)を契機に開始される。入出力装置5は、プログラム開始操作を示す操作データをプロセッサ3に供給する(ステップS12)。プロセッサ3は、操作データが供給されると、実行されるプログラムに関する処理に用いる処理領域を割り当てる(ステップS13)。こうして割り当てられた処理領域の一例が図5Bに示す処理領域A1である。次に、プロセッサ3は、割り当てた処理領域に命令コード及び変数等を記憶させて(ステップS14)、プログラムを実行する(ステップS15)。ステップS13、S14及びS15は、処理手段101が行う動作である。
 次に、ユーザが、記憶装置10に記憶されているファイルを選択するファイル選択操作を入出力装置5に対して行う(ステップS21)。ファイル選択操作は、例えば、上述した文書作成用のアプリケーションプログラムが実行されている場合であれば、文書ファイルを選択して開く操作である。次に、入出力装置5は、ファイル選択操作を示す操作データをプロセッサ3に供給する(ステップS22)。この操作データは、選択されたファイルのファイル名を示すデータである。プロセッサ3は、供給された操作データが示すファイル名に対応付けて記憶しているアドレスを、処理領域として割り当てる(ステップS23)。こうして割り当てられた処理領域の一例が図5C及び図5Dに示す処理領域A1である。ステップS23は管理手段102が行う動作である。
 続いて、プロセッサ3は、割り当てた処理領域に記憶されているデータ(命令コードや変数、ファイルデータなど)を用いて(ステップS24)、ファイルデータに対して処理を施す(ステップS25)。こうして処理が施されたファイルデータの一例が図5Dに示す「AAA.aaa」というファイル名のデータである。ステップS24及びS25は処理手段101が行う動作である。
 続いて、処理を施されたデータをファイルとして記憶させるファイル記憶操作をユーザが行うと(ステップS31)、入出力装置5がファイル記憶操作を示す操作データをプロセッサ3に供給する(ステップS32)。プロセッサ3は、ステップS25において処理が施されたデータを記憶させた処理領域上のアドレスをファイル管理テーブルに格納する(ステップS33)。こうして格納されたアドレスの一例が図6Bに示すアドレス1’である。ステップS33は、管理手段102が行う動作である。
 そして、ユーザがプログラムを終了するプログラム終了操作を行うと(ステップS41)、入出力装置5がプログラム終了操作を示す操作データをプロセッサ3に供給し(ステップS42)、プロセッサ3がプログラムを終了して処理領域を解放する(ステップS43)。こうしてプログラムが終了したあとも、記憶装置10には処理が施されたデータがファイルとして記憶される。
[実施形態による効果]
 従来の技術では、ファイル管理装置が主記憶手段及び補助記憶手段を備える構成が一般的である。この構成では、プロセッサは、ファイルデータを補助記憶装置に記憶させ、そのファイルデータに処理を施す場合には、ファイルデータの複製を主記憶装置に記憶させてからその複製に対して処理を施す。そのような従来構成では、ファイルデータを記憶させる補助記憶装置の記憶領域の他に、ファイルデータの複製を記憶するためにそれと同じ大きさの記憶領域が主記憶装置にも必要になる。本実施形態では、記憶装置10に記憶されているファイルデータに処理手段101が直接処理を施すため、記憶装置10にはファイルデータを記憶させる大きさの記憶領域(図5A~図5Cに示す状態ではブロック11-a及び11-b、図5Dに示す状態ではブロック11-a、11-b、11-c及び11-d)が1つあれば足りることになる。言い換えると、本実施形態では、ファイルデータに対して処理を施すときにファイルデータの複製が生成されない。このように、本実施形態によれば、ファイルデータのアドレスを処理領域として割り当てない場合に比べて、記憶装置における記憶領域の空き容量を大きくすることができる。
 また、前述した従来構成では、主記憶装置において処理を施したデータをファイルとして記憶させる場合に、処理が施されたデータの複製を補助記憶装置に記憶させる。この場合も、処理が施されたデータを記憶させる記憶領域が、主記憶装置及び補助記憶装置のどちらにも必要となる。本実施形態では、処理手段101により処理が施されたデータがそのままファイルとして記憶されるため、ファイルデータに対して処理を施すときと同様に、処理が施されたデータの複製が生成されない。このように、本実施形態によれば、処理領域内のデータのアドレスをファイル名に対応付けて記憶させない場合に比べて、記憶装置における記憶領域の空き容量を大きくすることができる。
 また、前述した従来構成では、ファイルデータに対して処理を施す場合と処理が施されたデータをファイルとして記憶する場合とのどちらにおいても、ファイルデータまたは処理が施されたデータの複製を生成する処理が必要になる。本実施形態では、そのような複製を生成する処理が不要であり、そのような複製を生成する処理が行われる場合に比べて、プロセッサの処理の負担やバスのデータ転送の負荷を軽減することができる。また、複製を生成する処理に要する時間も不要となるので、その処理が行われる場合に比べて、処理速度も向上させることができる。
[変形例]
 上述の実施形態を以下のように変形してもよい。なお、上述した実施形態及び以下の変形例の各々を組み合わせてもよい。
[変形例1]
 上記の実施形態では、処理手段101により処理が施されることでファイルデータの内容が変更された場合、内容を変更されたファイルデータがそのままファイルとして記憶された。いうなれば、ファイルの上書きが行われた。しかし、ファイルデータの中には、変更が許可されないものがある。例えば、編集できないように保護されたファイルデータや他のユーザが編集していて排他制御されているファイルデータなどである。本変形例では、これらのファイルデータを変更しないようにする例を説明する。
 管理手段102は、処理手段101が処理を施す処理データの変更が許可されていない場合には、その処理データの複製である複製データを生成し、処理領域を表すアドレスとしてその複製データ及び処理データのいずれかのアドレスを割り当てる。管理手段102は、例えば、データの変更の許可の有無を表すフラグを格納したファイル管理テーブルを記憶させる。
 図8は、本変形例のファイル管理テーブルの一例を示す図である。この例では、図3に示す「AAA.aaa」、「BBB.bbb」及び「CCC.ccc」という各ファイル名に、「×」、「○」及び「○」という変更可否のフラグが対応付けられている。「○」というフラグは変更が許可されていることを表し、「×」というフラグは変更が許可されていないことを表している。
 管理手段102は、処理手段101から処理の対象であるファイルデータのファイル名が供給されると、ファイル管理テーブルを参照し、そのファイル名に対応付けられているフラグが「○」であれば変更が許可されていると判断し、実施形態で述べたようなアドレスの割り当てを行う。また、管理手段102は、フラグが「×」であれば許可されていないと判断し、ファイルデータの複製データを生成して記憶装置10に記憶させる。そして、管理手段102は、例えば、記憶させた複製データのアドレスを、処理領域を表すアドレスとして割り当てる。
 図9A~図9D(以下、これらの図面を「図9」と総称する)は、管理手段102が行うアドレスの割り当ての具体例を示す図である。図9では、図5と同様に記憶装置10の各ブロックが示されている。図9Aでは、図5Bのように「AAA.aaa」というファイル名のデータがアドレス1に記憶され、処理領域A1が割り当てられた状態が示されている。この例では、管理手段102は、処理の対処である「AAA.aaa」のファイルデータのフラグが「×」であるため、図9Bに示すように、そのファイルデータの複製データB1をブロック識別子が11-x及び11-yのブロックに記憶させている。
 管理手段102は、例えば、図9Cに示すように、複製データB1のアドレスを処理領域A1を表すアドレスとして割り当てる。また、管理手段102は、図9Dに示すように、複製元である「AAA.aaa」のアドレスを処理領域A1を表すアドレスとして割り当ててもよい。後者の場合は、管理手段102は、ファイル管理テーブルの「AAA.aaa」というファイル名に対応付けられたアドレスを、複製データのアドレス(この例では11-x及び11-y)に更新する。いずれの場合も、処理手段101が施した処理によりデータが変更されても、ファイルデータまたは複製データのいずれかが変更されずに残ることになる。このような本変形例によれば、変更が許可されていないデータに処理が施された場合に、変更されていない状態のそのデータを残すことができる。
[変形例2]
 記憶装置は、上記の実施形態では、不揮発性の記憶媒体であったが、これに限定されない。記憶装置が揮発性の記憶媒体であっても、例えば、ファイル管理装置がメインフレームのように24時間365日稼働し続ける装置であれば、記憶装置に電力が供給されなくなることがないため、記憶装置に記憶されているデータをファイルとして記憶し続けることができる。
[変形例3]
 記憶装置は、上記の実施形態では、プロセッサ3と同様にバス2に接続されていたが、これに限定されない。記憶装置は、例えば、入出力装置5を介して接続されてもよいし、さらに入出力装置5に接続される回線に接続されていてもよい。つまり、記憶装置は、ファイル管理装置内に備えられていてもよいし、ファイル管理装置の外に備えられていてもよい。また、記憶装置は、上記の実施形態では、データのアクセスを制御するためのプロセッサを有していなかったが、これに限定されない。記憶装置は、例えば、プロセッサを有するコントローラによりアクセスが制御されるいわゆるハードディスクドライブであってもよい。これらの場合でも、実施形態と同様に、ファイルデータや処理が施されたデータの複製が生成されないから、記憶装置における記憶領域の空き容量を大きくすることができるという点やプロセッサの処理の負担やデータ転送の負荷を軽減することができるという点では変わらない。
[変形例4]
 処理手段は、ファイル管理装置以外の外部装置が実現する機能であってもよい。例えば、ファイル管理装置と外部装置とで記憶装置を共有し、ファイル管理装置が外部装置の実現する処理手段に対しても、上記のファイル管理処理を行うという場合である。その場合、外部装置は、例えばプロセッサ、ROM及びファイル管理装置と接続するための接続装置を備え、プロセッサがROMに記憶されたプログラムを実行して処理手段を実現する。管理手段102は、バス2及び接続部等を介して、処理手段に対して割り当てたアドレスを伝えたり、処理の対象であるファイルデータのファイル名を受け取ったりする。要するに、処理手段は、管理手段102とこれらの情報をやり取りできるようになっていればよい。
[変形例5]
 管理手段は、上記の実施形態では、処理領域を表すアドレスを割り当てる処理(以下「割り当て処理」という)と、処理が施されたデータのアドレス及びファイル名を対応付ける処理(以下「対応付け処理」という)との両方を行ったが、いずれかだけを行ってもよい。例えば、割り当て処理が行われた処理領域において処理が施されたデータをファイルとして記憶させる場合に、そのデータを他のアドレスに移動させた上で、移動先のアドレスとファイル名とを対応付けて記憶させてもよい。この場合も、処理が施されたデータを記憶するために必要な記憶容量は、どの時点でもそのデータ1つ分で収まることになる。そのため、上述した従来構成のように処理が施されたデータの複製が生成される場合に比べて、記憶装置における記憶領域の空き容量を大きくすることができる。
 また、対応付け処理が行われてファイルとして記憶されたファイルデータを対象として処理が施される場合に、そのファイルデータを他のアドレスに移動させた上で、移動先のアドレスを処理領域を表すアドレスとして割り当ててもよい。この場合も、ファイルデータを記憶するために必要な記憶容量は、どの時点でもファイルデータ1つ分で収まることになり、従来構成に比べて記憶装置における記憶領域の空き容量を大きくすることができる。
 さらに、前述したようにファイルデータや処理が施されたデータを移動させる代わりに、それらのデータの複製が生成されてもよい。この場合、一時的にはこれらのデータが重複して存在することになるが、この複製が生成されるまでの間については、重複していない状態が維持されることになり、従来構成に比べて記憶装置における記憶領域の空き容量を大きくすることができる。
[変形例6]
 本発明は、ファイル管理装置の他にも、ファイル管理装置が実施する処理を実現するためのファイル管理方法としても捉えられるものである。ここでいう処理とは、例えば、図7に示すファイル管理処理である。また、本発明は、ファイル管理装置のようなコンピュータを、図2に示す手段として機能させるためのプログラムとしても捉えられるものである。このプログラムは、それを記憶させた光ディスク等の記録媒体の形態で提供されたり、インターネット等のネットワークを介して、コンピュータにダウンロードさせ、それをインストールして利用可能にするなどの形態でも提供されたりするものであってもよい。
1…ファイル管理装置、2…バス、3…プロセッサ、4…ROM、5…入出力装置、10…記憶装置、101…処理手段、102…管理手段

Claims (10)

  1.  記憶装置にファイルとして記憶されるデータを管理する管理手段であって、当該データのファイル名と前記記憶装置の記憶領域における当該データのアドレスとを対応付けて記憶させ、データに処理を施す処理手段がファイルとして記憶されているデータに当該処理を施す場合に、前記記憶領域のうち当該処理手段が当該処理に用いる処理領域を表すアドレスとして当該データのファイル名に対応付けて記憶されているアドレスを割り当てる管理手段
     を備えるファイル管理装置。
  2.  前記管理手段は、前記処理手段により前記処理領域において処理を施されたデータがファイルとして記憶される場合に、当該処理領域内の当該データのアドレスをファイル名に対応付けて記憶させる
     請求項1に記載のファイル管理装置。
  3.  記憶装置にファイルとして記憶されるデータを管理する管理手段であって、データに処理を施す処理手段が当該処理に用いる前記記憶装置の記憶領域上の処理領域に記憶されて当該処理を施されたデータがファイルとして記憶される場合に、当該処理領域内の当該データのアドレスをファイル名に対応付けて記憶させる管理手段
     を備えるファイル管理装置。
  4.  前記管理手段は、前記処理手段が処理を施す処理データの変更が許可されていない場合には、当該処理データの複製である複製データを生成し、前記処理領域を表すアドレスとして当該複製データ及び当該処理データのいずれかのアドレスを割り当てる
     請求項1から3までのいずれか1項に記載のファイル管理装置。
  5.  前記記憶装置は、不揮発性の記憶媒体を有する
     請求項1から4までのいずれか1項に記載のファイル管理装置。
  6.  前記管理手段及び前記処理手段は、プロセッサにより実現される機能であり、
     当該プロセッサは、他のプロセッサを介さずに前記記憶装置に記憶されているデータにアクセスする
     請求項1から5までのいずれか1項に記載のファイル管理装置。
  7.  コンピュータを、
     記憶装置にファイルとして記憶されるデータを管理する管理手段であって、当該データのファイル名と前記記憶装置の記憶領域における当該データのアドレスとを対応付けて記憶させ、データに処理を施す処理手段がファイルとして記憶されているデータに当該処理を施す場合に、前記記憶領域のうち当該処理手段が当該処理に用いる処理領域を表すアドレスとして当該データのファイル名に対応付けて記憶されているアドレスを割り当てる管理手段
     として機能させるためのプログラム。
  8.  コンピュータを、
     記憶装置にファイルとして記憶されるデータを管理する管理手段であって、データに処理を施す処理手段が当該処理に用いる前記記憶装置の記憶領域上の処理領域に記憶されて当該処理を施されたデータがファイルとして記憶される場合に、当該処理領域内の当該データのアドレスをファイル名に対応付けて記憶させる管理手段
     として機能させるためのプログラム。
  9.  記憶装置にファイルとして記憶されるデータを管理する管理ステップであって、当該データのファイル名と前記記憶装置の記憶領域における当該データのアドレスとを対応付けて記憶させ、データに処理を施す処理手段がファイルとして記憶されているデータに当該処理を施す場合に、前記記憶領域のうち当該処理手段が当該処理に用いる処理領域を表すアドレスとして当該データのファイル名に対応付けて記憶されているアドレスを割り当てる管理ステップ
     を備えるファイル管理方法。
  10.  記憶装置にファイルとして記憶されるデータを管理する管理ステップであって、データに処理を施す処理手段が当該処理に用いる前記記憶装置の記憶領域上の処理領域に記憶されて当該処理を施されたデータがファイルとして記憶される場合に、当該処理領域内の当該データのアドレスをファイル名に対応付けて記憶させる管理ステップ
     を備えるファイル管理方法。
PCT/JP2014/071625 2013-09-04 2014-08-19 ファイル管理装置、プログラム及びファイル管理方法 WO2015033767A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015535411A JPWO2015033767A1 (ja) 2013-09-04 2014-08-19 ファイル管理装置、プログラム及びファイル管理方法
US14/916,274 US9904483B2 (en) 2013-09-04 2014-08-19 File management device, program and file management method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2013183005 2013-09-04
JP2013-183005 2013-09-04

Publications (1)

Publication Number Publication Date
WO2015033767A1 true WO2015033767A1 (ja) 2015-03-12

Family

ID=52628247

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2014/071625 WO2015033767A1 (ja) 2013-09-04 2014-08-19 ファイル管理装置、プログラム及びファイル管理方法

Country Status (3)

Country Link
US (1) US9904483B2 (ja)
JP (1) JPWO2015033767A1 (ja)
WO (1) WO2015033767A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06131266A (ja) * 1992-09-25 1994-05-13 Internatl Business Mach Corp <Ibm> ランダム・アクセス可能かつ書換え可能メモリを用いる外部記憶装置におけるプログラム直接実行の制御方法および装置
JP2004362464A (ja) * 2003-06-06 2004-12-24 Sony Corp 不揮発メモリを利用したコンピュータシステム
JP2006294028A (ja) * 2005-04-05 2006-10-26 Internatl Business Mach Corp <Ibm> 直接実行機能を提供するためのシステム、コンピュータシステム、方法およびプログラム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6015429B2 (ja) * 2012-12-25 2016-10-26 株式会社リコー 情報処理装置、プログラム、情報処理システム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06131266A (ja) * 1992-09-25 1994-05-13 Internatl Business Mach Corp <Ibm> ランダム・アクセス可能かつ書換え可能メモリを用いる外部記憶装置におけるプログラム直接実行の制御方法および装置
JP2004362464A (ja) * 2003-06-06 2004-12-24 Sony Corp 不揮発メモリを利用したコンピュータシステム
JP2006294028A (ja) * 2005-04-05 2006-10-26 Internatl Business Mach Corp <Ibm> 直接実行機能を提供するためのシステム、コンピュータシステム、方法およびプログラム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ATSUSHI NAKATA: "Close-up ''Dai 3 no Memory'' no Shogeki Storage to DB ga Ippen suru", NIKKEI COMPUTER, vol. 824, 20 December 2012 (2012-12-20), pages 70 - 77 *
SHUICHI OIKAWA: "Unification of Non-Volatile Main Memory and a File System", IPSJ JOURNAL, vol. 54, no. 3, 15 March 2013 (2013-03-15), pages 1153 - 1164 *

Also Published As

Publication number Publication date
US20160335010A1 (en) 2016-11-17
US9904483B2 (en) 2018-02-27
JPWO2015033767A1 (ja) 2017-03-02

Similar Documents

Publication Publication Date Title
JP5481308B2 (ja) データ制御装置及びプログラム
JP5085180B2 (ja) 情報処理装置およびアクセス制御方法
JP2018518733A (ja) ファイル操作方法及び装置
US7971022B2 (en) Apparatus and method of processing data of non-volatile memory using transaction block
JP2007199756A (ja) 計算機システム及びデータ複製方法
JP2007183703A (ja) データの改竄を防止する記憶装置
TWI359377B (en) System and method for providing execute-in-place f
JP5477927B2 (ja) ストレージシステム
JP2016062319A (ja) データ読み出し装置、プログラムおよびデータ読み出し方法
JP5877186B2 (ja) 情報処理装置
JP6033420B2 (ja) ストレージシステムおよびストレージシステムの制御方法
WO2015162717A1 (ja) 計算機
WO2017214369A1 (en) Systems and methods for implementing dynamic file systems
WO2015033767A1 (ja) ファイル管理装置、プログラム及びファイル管理方法
US11132134B2 (en) Flexible over-provisioning of storage space within solid-state storage devices (SSDs)
JP2007233838A (ja) メモリシステムの制御方法
WO2020241545A1 (ja) 情報処理装置
JP2017004524A (ja) ファイルアクセス提供方法、コンピュータ、及びソフトウェア製品
JP2005301885A (ja) データ記憶媒体へのアクセス方法,情報処理装置,データ記憶媒体へのアクセスプログラム
JP2009053961A (ja) ファイル検索システム
JP2013109404A (ja) 情報処理装置
US11748259B2 (en) System and method to conserve device lifetime for snapshot generation
JP7148824B2 (ja) 情報処理装置、情報処理方法、プログラム、及び情報処理システム
JP4937862B2 (ja) パーソナルコンピュータのデータ管理システム
JP2008276563A (ja) ディスクアレイ装置及び管理方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14841751

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2015535411

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 14916274

Country of ref document: US

122 Ep: pct application non-entry in european phase

Ref document number: 14841751

Country of ref document: EP

Kind code of ref document: A1