Process scheduling

File system for handling real-time and non-real-time data

6714986

Abstract

When a get resource message arrives from an exterior, a resource allocation part reserves a resource. In case of data reading or data writing, a declared value management part checks parameters and a slot allocation part allocates the resource, thereby constructing an efficient file system guaranteeing delay quality in relation to data reading. As the result, it is possible to provide a file system providing pictures in a quick response time for requests from users and supporting users requiring various regeneration speeds.


Claims

What is claimed is:

1. A server unit connected with a plurality of terminals through wired or wireless transmission paths, said server unit being operable to retrieve and read data stored therein when a data read request is sent from any of the plurality of terminals, and to transmit the read data to any of the terminals issuing the data read request, said server unit comprising:

a data storage part operable to store data, said data storage part being randomly accessible in response to data read requests sent by the terminals;

an input/output part operable to control input/output of the data between said data storage part and each of the plurality of terminals;

an exchange part operable to exchange the data between said input/output part and said data storage part; and

a resource management part operable to manage resources necessary for reading data requested by the terminals from said data storage part and for outputting the resources to the terminals,

wherein said resource management part is operable to separate the resources into preferential resources employed for outputting preferential data for which continuity must be guaranteed to the terminals, and into non-preferential resources employed for outputting non-preferential data for which continuity is not guaranteed to the terminals.

2. The server unit according to claim 1, wherein the plurality of terminals are divided into a plurality of groups, and wherein:

said input/output part comprises a plurality of I/O units provided to each group of terminals,

each of said plurality of I/O units comprises

a preferential input/output control part operable to execute input/output control in accordance with a command requesting reading of the preferential data sent from terminals of a corresponding group, and

a non-preferential input/output control part operable to execute input/output control in accordance with a command requesting reading of the non-preferential data sent from the terminals of the corresponding group;

said data storage part comprises

a plurality of storage units, and

a plurality of MSFSs connected with each of said plurality of storage units, said plurality of MSFS being operable to control reading of data from said plurality of storage units; and

said non-preferential input/output control part comprises

at least one command queue operable to temporarily store commands requesting reading of the non-preferential data sent from the terminals of the corresponding group;

a command queue control part operable to fetch the commands from said command queue;

a command transmission part operable to transmit the commands fetched by said command queue control part to corresponding MSFSs;

a data buffer part operable to temporarily store the non-preferential data read from said plurality of storage units by said MSFSs; and

a data transmission part operable to transmit the non-preferential data stored in said data buffer part to the terminals.

3. The server unit according to claim 2, wherein

each said command queue corresponds to a respective terminal and is operable to store the commands from the respective terminal in order of arrival of the commands, and

said command queue control part is operable to execute a command fetch process which selects a single command queue, fetches a command stored in a head of the command queue, and outputs the fetched command to said command transmission part, and wherein:

said command transmission part is operable to

transmit the commands received from said command queue control part to said MSFSs, and

transmit a received completion notice to said command queue control part when said data buffer part has received all read data for the fetched commands from said MSFSs; and

said command queue control part is operable to repeatedly execute said command fetch process each time the received completion notice is received from said command transmission part.

4. The server unit according to claim 3, wherein said command queue control part limits a number of the commands being fetched from the single command queue to not more than a predetermined constant number in said command fetch process.

5. The server unit according to claim 3, wherein said non-preferential input/output control part further comprises a buffer management part operable to manage a used state of said data buffer part, and

said command queue control part is operable to select the single command queue from among the queues corresponding respectively to the terminals of the group on the basis of a used state of said data buffer part being managed by said buffer management part.

6. The server unit according to claim 5, wherein said buffer management part is provided with a plurality of used quantity counters operable to count a number of untransmitted data stored in said data buffer part for each of the terminals, and

said command queue control part is operable to refer to said used quantity counters of said buffer management part before executing said command fetch process to select a command queue corresponding to one of the terminals having a least number of the untransmitted data as a target of said command fetch process.

7. The server unit according to claim 3, wherein said command transmission part is operable to transmit a command received from said command queue control part to said MSFSs after reserving an area for storing the non-preferential data to be read by said MSFSs in said data buffer part, and to not transmit the commands to said MSFSs if the area cannot be reserved.

8. The server unit according to claim 2, wherein said command queue control part is operable to determine a rate at which to output the commands to said command transmission part based on a load of a communication band serving as a non-preferential resource for outputting data for each of said plurality of I/O units to each of the terminals, and based on a load of a communication band serving as a non-preferential resource for receiving the non-preferential data from said data storage part to each of said plurality of I/O units.

9. The server unit according to claim 2, wherein said command transmission part comprises:

a plurality of transmission queues provided correspondingly to respective MSFSs for storing commands received from said command queue control part for said respective MSFSs; and

a plurality of processing number counters provided correspondingly to said plurality of transmission queues, said processing number counters being incremented for each transmission of the commands from corresponding transmission queues to said MSFSs, and said processing number counters being decremented for each arrival of data read from said corresponding MSFSs to said data buffer part, so as to count the number of the non-preferential data requested for but not yet arrived at said data buffer part, and

said command transmission part being operable to limit a number of the commands being transmitted from said respective transmission queues to said MSFSs so that said a number of unarrived non-preferential data counted by said processing number counters are not in excess of a prescribed threshold.

10. The server unit according to claim 1, wherein said resource management part manages a communication band of said exchange part, a band for said data storage part for reading data, and a communication band for said input/output part for outputting data to respective terminals as the resources.

11. The server unit according to claim 1, wherein said exchange part is formed by an ATM switch, and

a communication band serving as a non-preferential resource of said ATM switch is ensured in an ABR mode.

12. The server unit according to claim 1, wherein said resource management part is operable to fixedly allocate parts of the overall resources of said server unit as the preferential resources while allocating the remaining parts as the non-preferential resources.

13. The server unit according to claim 1, wherein said resource management part is operable to change a quantity being allocated as the preferential resources in response to data read requests for the preferential data received from the terminals.

14. The server unit according to claim 13, wherein said resource management part is operable to allocate all resources which are not already allocated as the preferential resources as the non-preferential resources, and to allocate preferential resources from resources allocated as non-preferential resources in such a range that the quantity of the non-preferential resources is not below a prescribed resource quantity.

15. A file system operable to issue a data acquisition request to a data storage unit in response to a data transmission request from a user, and to transmit data acquired from said data storage unit to the user, said file system comprising:

a data acquisition part operable to successively acquire data from said storage unit in an order of the data being stored in said data storage unit from a position specified continuously by the data transmission request, and at a specified speed;

a buffer operable to store the data acquired by said data acquisition part from said data storage unit;

a buffer management part operable to perform operation of the data stored in said buffer, and to manage a quantity of the data stored in said buffer;

a data transmission part operable to successively read the data stored in said buffer in an order specified by the data transmission request continuously at a specified transmission speed, and to transmit the data to the user; and

a pause control part operable to receive a pause request and a pause release request from the user for controlling said data transmission part, said data acquisition part and said buffer management part, wherein

in response to receiving the pause request from the user, said pause control part is operable to control said data transmission part to immediately stop data transmission while controlling said data acquisition part to immediately stop data acquisition,

in response to receiving the pause release request from the user, said pause control part is operable to control said data transmission part to resume data transmission successively from a head of the data stored in said buffer, and to control said data acquisition part to resume data acquisition successively from data subsequent to a tail of the data stored in said buffer, and

said pause control part is further operable to calculate a data transmission resume time and a data acquisition time at which said data transmission part and said data acquisition part respectively resume data transmission and data acquisition in accordance with a specified pause release transmission speed.

16. The file system according to claim 15, wherein said pause control part is operable to calculate a data transmission resume time tsd at which said data transmission part resumes data transmission in accordance with the expression

tsd=trd+D-N/V, wherein

trd is a data acquisition resume time at which said data acquisition part resumes data acquisition, D is a time required by said data acquisition part to acquire the data, N is a quantity of the data stored in said buffer, and V is a data transmission speed required after the pause release is received.

17. The file system according to claim 15, wherein said pause control part is operable to calculate a data acquisition resume time trd at which said data acquisition part resumes data transmission in accordance with the expression

trd=tsd+N/V-D, wherein

tsd is a data transmission resume time at which said data transmission part resumes data transmission, N is a quantity of the data stored in said buffer, V is a data transmission speed required after the pause release is received, and D is a time required by said data acquisition part to acquire the data.

18. The file system according to claim 15, wherein said pause control part, upon receiving the pause release request from said user, is operable to:

determine whether or not a quantity of the data being stored in said buffer is greater than a limit that is transmittable at a predetermined data transmission speed after the pause release is received during a time required by said data acquisition part to acquire the data; and

control said buffer management part to delete parts of data exceeding the limit if it is determined that the data quantity is greater than the limit, thereby determining a head position of the data to be next acquired by said data acquisition part after the pause release is received.


Description

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a file system, and more specifically, it relates to a file system for handling reading/writing of multimedia data such as pictures, sounds and animation requiring real-time properties.

2. Description of the Background Art

A file system employed in a conventional computer has mainly handled text data. According to "Design of UNIX Kernel" (written by Maurice J. Bach/translated by Fumi Sakamoto, Yoshikatsu Tada and Jun Murai; Kyoritsu Shuppan Kabushiki Kaisha), for example. a file is opened with an open system call for reading or writing the content of the file with a system call such as read or write in case of reading or writing data from or in the file in the conventional file system.

Such file systems include video servers handling digitized video data, for example. Such video servers include having a structure of connecting a plurality of storage units storing video data with each other by an exchange unit, as described in Japanese Patent Laying-Open gazette No. 07-107425 titled "Video server". A video regeneration procedure in such a video server is described in ISO/IEC Standard 13818-6 (Committee Draft). According to this Committee Draft, the video server completes preparation for continuous regeneration of pictures when a user transmits "Directory Open" to the video server, while the video server starts transmission of video data to the user when the user transmits "DSM Stream Play" or "DSM Pause Resume", where "DSM" is an abbreviation used herein for digital storage media. In order to stop supply of the video data, the user transmits "DSM Stream Pause" to the video server.

In the conventional file system however, the waiting time for reading is increased on the user side when a number of accesses are simultaneously made by users. The waiting time for a user issuing a read command for completely receiving data is unpredictable due to the influence exerted by the situation of accesses from other users. Particularly in the file system such as the video server managing data such as pictures and sounds requiring temporal continuity so that each user reads a part of the data every constant time for regenerating the data in his terminal, it is necessary to reliably acquire the data within the constant time, while the conventional file system cannot cope with this. In relation to the data such as video data requiring temporal continuity, therefore, the user must previously acquire long data for regenerating pictures after acquiring all data. In this case, the user must hold a mass storage unit which can store long data, and a long waiting time is required for starting regeneration of pictures.

SUMMARY OF THE INVENTION

Therefore, an object of the present invention is to provide a file system which can provide data to a request from a user in a quick response time, and support users requiring various regeneration speeds.

The present invention has the following characteristics to attain the above object.

The first aspect is a file system for reading or writing data from or in a storage unit for storing data in response to a request from an exterior, which comprises:

a resource management part for managing the maximum value of read or write handling capacity and a used quantity of the handling capacity, and

the resource management part is adapted:

to receive a get resource message previously requiring assurance of a necessary band in case of reading or writing the data;

to determine whether or not the band required by the get resource message can be ensured on a basis of the maximum value and the used quantity of the handling capacity when the get resource message is received; and

to update and store the used quantity if the required band can be ensured as a result of the determination.

According to the first aspect, as hereinabove described, the band in the file system is ensured when the get resource message is received, whereby it is possible to guarantee delay quality as to reading or writing of files. Further, it is possible to efficiently utilize resources in the file system without ensuring a useless band, by implementing reading or writing of a plurality of files through the ensured band.

The second aspect is characterized in that, in the first aspect,

information indicating a necessary band width is given to the get resource message as a parameter.

The third aspect is characterized in that, in the second aspect,

the information, which is the parameter of the get resource message, indicating the necessary band width represents an interval for reading/writing a data block having a fixed length from/in the storage unit.

The fourth aspect is characterized in that, in the first aspect,

the band width which is ensured in accordance with the request by the get resource message is previously stored in the resource management part.

The fifth aspect is characterized in that, in the fourth aspect,

information for identifying whether the get resource message is for reading or writing is given to the get resource message, and

the resource management part stores two types of band quantities for reading and writing as band quantities which are ensured in accordance with the request by the get resource message.

The sixth aspect is characterized in that, in the first aspect,

a first delay time from a request for reading data up to start of transmission of the data is given to the get resource message as a parameter, and

the resource management is adapted:

to previously store a minimum value of a delay time which is warrantable by the file system;

to compare the first delay time with the minimum value when the get resource message is received; and

to ensure no band if the first delay time is shorter than the minimum value as a result of the comparison.

The seventh aspect is characterized in that,

the sixth aspect further comprises a declared value management part for checking a parameter which is given to a message arriving from the exterior, and

the declared value management part is adapted:

to receive a read block message which is provided with a second delay time up to start of transmission of read data as the parameter in case of performing data reading;

to compare the second delay time with the first delay time when the read block message is received; and

to decide transmission of a violation notice to a transmitter of the read block message when the second delay time is determined to be shorter as a result of the comparison.

The eighth aspect is characterized in that,

the first aspect further comprises a declared value management part for checking a parameter which is given to a message arriving from the exterior, and

the declared value management part is adapted:

to store a minimum value of a delay time which is warrantable by the file system;

to receive a read block message which is provided with a second delay time up to start of transmission of read data as the parameter in case of performing data reading;

to compare the second delay time with the minimum time when the read block message is received; and

to decide transmission of a violation notice to a transmitter of the read block message when the second delay time is determined to be shorter as a result of the comparison.

The ninth aspect is characterized in that, in the first aspect,

the get resource message is provided with a delay time up to start of transmission of data from a read request as a parameter, and

the resource management part is adapted:

to calculate a band width which is necessary for satisfying the delay time when the get resource message is received; and

to compare the band width which is obtained as a result of the calculation with the band width to be ensured in accordance with the request by the get resource message, for determining whether or not the larger band width can be ensured.

According to the ninth aspect, as hereinabove described, a determination is made as to whether or not the larger band can be ensured in the band satisfying the delay time declared by the get resource message and the band to be ensured in accordance with the request by the get resource message to allocate the band, whereby a plurality of delay qualities can be supported.

The tenth aspect is characterized in that,

the first aspect further comprises a declared value management part for checking a parameter which is given to a get resource message arriving from the exterior, and

the declared value management part is adapted in data writing:

to monitor a speed of data arrival;

to compare the speed of data arrival obtained as a result of the monitoring with a band width which is ensured when the get resource message is accepted; and

not to perform data writing but to make a violation notice to a transmitter of the get resource message when the speed of data arrival is determined to be larger as a result of the comparison.

The eleventh aspect is characterized in that,

the first aspect further comprises a declared value management part for checking a parameter which is given to a message arriving from the exterior, and

the declared value management part is adapted:

to receive a read block message which provided with a read data quantity per unit time as the parameter in data reading;

to calculate a data read speed from the data quantity per unit time when the read block message is received;

to compare the data read speed obtained by the calculation and the band width ensured when the get resource message is accepted; and

to stop the data reading and decide transmission of a violation notice to a transmitter of the read block message if the data read speed is larger as a result of the comparison.

The twelfth aspect is characterized in that, in the first aspect,

each of the maximum value and the used quantity of the handling capacity is a read data quantity per unit time.

The thirteenth aspect is characterized in that, in the twelfth aspect,

a flag distinguishing reading and writing from each other and information indicating the necessary band width are given to the get resource message as parameters, and

the resource management part refers to the flag when the get resource message is received to regard a band width which is decided by the parameters given to the get resource message as the band width to be ensured in case of reading, while regarding a value obtained by multiplying the band width which is decided by the parameters given to the get resource message by a constant value as the band width to be ensured in case of writing.

The fourteenth aspect is characterized in that, in the first aspect,

each of the maximum value and the used quantity of the handling capacity is a write data quantity per unit time.

The fifteenth aspect is characterized in that, in the fourteenth aspect,

a flag distinguishing reading and writing from each other and information indicating the necessary band width are given to the get resource message as parameters, and

the resource management part refers to the flag when the get resource message is received to regard a band width which is decided by the parameters given to the get resource message as the band width to be ensured in case of writing, while regarding a value obtained by multiplying the band width which is decided by the parameters given to the get resource message by a constant value as the band width to be ensured in case of reading.

According to the thirteenth or fifteenth aspect, as hereinabove described, a band obtained by multiplying the required band by a constant value is regarded as the band to be ensured in data writing or data reading, whereby it is not necessary to previously divide the handling capacity of the file system into handling capacities for writing and reading, the ratios can be readily changed in response to requests from users, and resources can be efficiently used.

The sixteenth aspect is a file system comprising a plurality of block storage units storing data, a single or a plurality of I/O units controlling data writing or data reading in response to a request from a user, and an exchange unit connecting each block storage unit with each I/O unit, in which each I/O unit divides the magnitude of the data required by the user into blocks having fixed lengths and transmits a block read request to the block storage unit every block for reading the blocks, and

each I/O unit is adapted:

to set a media segment (MS) arrival slot dividing time every constant time so that a constant number of block read requests can be registered in the MS arrival slot;

to allocate the MS arrival slot to the block read request in case of transmitting the block read request;

to calculate a time for allowing input from each block storage unit to the exchange unit on the basis of a time corresponding to the allocated MS arrival slot; and

to give a difference time between the calculated time and a current time to the block read request as a delay limit value and transmit the same to the block storage unit,

whereby input of the block which is read from the block storage unit in response to the block read request in the exchange unit is allowed after a time of the delay limit value from arrival of the block read request at the block storage unit.

According to the sixteenth aspect, as hereinabove described, the MS arrival slot is allocated to the block read request, whereby the number of blocks inputted from the block storage units in the exchange unit can be temporally smoothed. Consequently, it is possible to avoid the blocks read from the plurality of block storage units and inputted in the exchange unit from colliding with each other on the input side into the I/O unit and being discarded in the interior of the exchange unit. Further, fluctuation caused by traffic times of the blocks can be reduced, whereby it is possible to efficiently utilize the exchange unit.

The seventeenth aspect is characterized in that,

the sixteenth aspect comprises a plurality of server units which are provided with the I/O units and the block storage units in the interiors thereof.

The eighteenth aspect is characterized in that, in the sixteenth aspect,

each I/O unit allocates no MS arrival slot to a block read request which is not inputted in the exchange unit among the block read requests.

The nineteenth aspect is characterized in that,

the sixteenth aspect further comprises a resource management part managing a maximum value of read or write handling capacity and a used quantity of the handling capacity,

the resource management part is adapted:

to receive a get resource message previously requiring assurance of a necessary band in case of performing data reading or data writing;

to determine whether or not the band which is required by the get source message can be ensured on the basis of the maximum value and the used quantity of the handling capacity when the get resource message is received; and

to update and store the used quantity if the required band can be ensured as a result of the determination, and

each I/O unit is adapted:

to set an issuance interval for the block read requests which are necessary for reading data of the ensured band at T_min for deciding an expected slot of the MS arrival slot at the interval T_min when a band necessary for reading a file is ensured;

to reserve the expected slot if a free space is present in the decided expected slot;

to successively refer to an MS arrival slot of a next time for reserving an MS arrival slot having a free space if the decided expected slot has no free space; and

to allocate the block read request to the reserved MS arrival slot in case of data reading.

According to the nineteenth aspect, as hereinabove described, the band in the file system is ensured when the get resource message is received, whereby delay quality can be guaranteed as to reading or writing of files. Reading or writing of a plurality of files is implemented through the ensured band, whereby resources in the file system can be effectively utilized with no necessity for ensuring useless bands.

The twentieth aspect is characterized in that, in the nineteenth aspect,

each I/O unit reserves the MS arrival slots in order from the MS arrival slot having a larger ensured band to the MS arrival slot having a smaller ensured band.

According to the twentieth aspect, as hereinabove described, MS arrival slot reservation is made in the order from that having a larger ensured band to that having a smaller one, whereby it is possible to utilize the slot by 100% by making the maximum registration number of each slot constant while guaranteeing delay qualities of all bands. At this time, time fluctuation of a request transmission number is eliminated and it is possible to most efficiently utilize the exchange unit.

The twenty-first aspect is characterized in that, in the nineteenth aspect,

each I/O unit makes the MS arrival slot reservation in the order from the MS arrival slot whose next expected slot arrives with earlier timing.

The twenty-second aspect is characterized in that, in the nineteenth aspect,

each I/O unit regards a reserved MS arrival slot as an unallocated MS arrival slot as a result of the allocation of the MS arrival slot if an MS arrival slot which is reserved at a time before the time corresponding to the allocated MS arrival slot for the same user is present, and allocates the unallocated MS arrival slot to a data read request from a user acquiring no resource.

The twenty-third aspect is characterized in that, in the nineteenth aspect,

each I/O unit performs the reservation of MS arrival slots with respect to all users whose get resource messages are accepted, for allocating unreserved MS arrival slots to data read requests from users acquiring no resources.

According to the twenty-second or twenty-third aspect, as hereinabove described, unused MS arrival slots are allocated to reading of data from users acquiring no resources, whereby the use efficiency of the file system can be further improved.

The twenty-fourth aspect is characterized in that,

the first aspect further comprises:

a single or a plurality of block storage units storing data;

a single or a plurality of I/O units controlling data writing or data reading in response to a request from a user; and

an exchange unit for connecting each block storage unit with each I/O unit, and

each I/O unit is adapted:

to divide the magnitude of data which is required to be written by the user into blocks having fixed lengths and transmit a block read request to each block storage unit for every block thereby reading the blocks; and

to set a write slot which is divided every constant time in correspondence to each block storage unit for allocating the write slot to a block write request in case of transmitting the block write request.

According to the twenty-fourth aspect, as hereinabove described, the MS arrival slot is allocated to the block read request, whereby the number of blocks inputted from the block storage units in the exchange unit can be temporally smoothed. Consequently, it is possible to avoid the blocks read from the plurality of block storage units and inputted in the exchange unit from colliding with each other on the input side to the I/O unit and being discarded in the interior of the exchange unit. Further, fluctuation caused by traffic times of the blocks can be reduced, whereby it is possible to efficiently utilize the exchange unit.

The twenty-fifth aspect is a method of dispersing/arranging file data in respective storage units in a file system inputting/outputting the file data in/from a plurality of storage units, and characterized in that:

ratios for arranging the file data are decided in proportion to bands which are provided in respective storage units for dispersing and storing the file data in the respective storage units in accordance with the decided ratios.

According to the twenty-fifth aspect, as hereinabove described, the ratios for arranging the file data are decided in proportion to the bands provided in the respective storage units so that the file data are dispersed and stored in the respective storage units in accordance with the decided ratios, whereby it is possible to prevent such a situation that the ability of a storage unit having high performance (data read/write speed) cannot be sufficiently brought out due to a bottleneck of a storage unit having low performance.

The twenty-sixth aspect is a method of dispersing/arranging file data in respective storage units in a file system inputting/outputting the file data in/from a plurality of storage units, which is characterized in that:

ratios for arranging the file data, which are decided in proportion to storage capacities, are provided in the respective storage units for dispersing and storing the file data in the respective storage units in accordance with the decided ratios.

According to the twenty-sixth aspect, as hereinabove described, the ratios for arranging the file data are decided in proportion to the storage capacities provided in the respective storage units so that the file data are dispersed and stored in the respective storage units in accordance with the decided ratios, whereby it is possible to prevent such a situation that the ability of a storage unit having high performance (data read/write speed) cannot be sufficiently brought out due to a bottleneck of a storage unit having low performance.

The twenty-seventh aspect is a method of dispersing/arranging file data in respective storage units in a file system inputting/outputting the file data in/from a plurality of storage units, which is characterized in that:

ratios for arranging the file data, which are decided in proportion to bands and storage capacities, are provided in the respective storage units for dispersing and storing the file data in the respective storage units in accordance with the decided ratios.

According to the twenty-seventh aspect, as hereinabove described, the ratios for arranging the file data are decided in proportion to the bands and the storage capacities provided in the respective storage units so that the file data are dispersed and stored in the respective storage units in accordance with the decided ratios, whereby it is possible to prevent such a situation that the ability of a storage unit having high performance (data read/write speed) cannot be sufficiently brought out due to a bottleneck of a storage unit having low performance.

The twenty-eighth aspect is an input/output band management unit for managing input/output bands of file data with respect to respective storage units in a file system inputting/outputting the file data in/from a plurality of storage units, which comprises:

a band management part for managing bands provided in the respective storage units;

a capacity management part for managing storage capacities provided in the respective storage units;

a distribution ratio decision part for deciding ratios for distributing the file data in the respective storage units in accordance with a previously defined algorithm;

a band calculation part for deciding a band in case of integrating all storage units on the basis of management information held by the band management part and the ratios of distribution decided in the distribution ratio decision part;

a capacity calculation part for deciding a storage capacity in case of integrating all storage units on the basis of management information held by the capacity management part and the ratios of distribution decided in the distribution ratio decision part;

a total band control part for controlling the input/output bands of all storage units on the basis of the value calculated in the band calculation part; and

a total capacity control part for controlling the storage capacities of all storage units on the basis of the value calculated in the capacity calculation part.

According to the twenty-eighth aspect, as hereinabove described, the plurality of storage units are integrated for managing the input/output band and the storage capacity, whereby management of the input/output band is simplified in case of combining storage units having different bands and different storage capacities with each other and using the same.

The twenty-ninth aspect is characterized in that, in the twenty-eighth aspect,

the distribution ratio decision part decides ratios for arranging the file data in proportion to the bands which are provided in the respective storage units.

The thirtieth aspect is characterized in that, in the twenty-eighth aspect,

the distribution ratio decision part decides ratios for arranging the file data in proportion to the storage capacities which are provided in the respective storage units.

The thirty-first aspect is characterized in that, in the twenty-eighth aspect,

the distribution ratio decision part decides ratios for arranging the file data in proportion to the bands and the storage capacities which are provided in the respective storage units.

According to the twenty-ninth to thirty-first aspects, as hereinabove described, the ratios for distributing the file data are decided in proportion to the bands and/or the storage capacities provided in the respective storage units, whereby the use efficiency of the overall storage units can be optimized.

The thirty-second aspect is characterized in that, in the twenty-ninth aspect,

the band calculation part regards a minimum value as the band in case of integrating all storage units among values obtained by multiplying the bands which are provided in the respective storage units by inverse numbers of the distribution ratios decided in the distribution ratio decision part.

The thirty-third aspect is characterized in that, in the twenty-eighth aspect,

the capacity calculation part regards a minimum value as the storage capacity in case of integrating all storage units among values which are obtained by multiplying the storage capacities provided in the respective storage units by inverse numbers of the distribution ratios decided in the distribution ratio decision part.

The thirty-fourth aspect is a file system for inputting/outputting file data in/from a plurality of storage units, which comprises:

a file attribute management part for defining as file attributes and managing band characteristics; and

a band acquisition part for acquiring necessary bands in accordance with the file band characteristics managed in the file attribute management part before inputting/outputting the file data.

According to the thirty-fourth aspect, as hereinabove described, the band characteristics are newly defined as the file attributes and managed so that input/output of the file data is controlled on the basis of the managed band characteristics, whereby access control responsive to the band characteristics of the respective files can be performed.

The thirty-fifth aspect is characterized in that,

the thirty-fourth aspect employs layout profile information describing distribution ratios of the file data in the respective storage units as the band characteristics of the file attributes.

The thirty-sixth aspect is a file system for inputting/outputting file data in/from a plurality of storage units, which comprises:

a file open processing part for performing file open processing;

a band acquisition part for performing acquisition of a band employed for inputting/outputting the file data; and

a data input/output part for dividing the band acquired in the band acquisition part and individually allocating the same to a plurality of files which are opened by the file open processing part thereby simultaneously inputting/outputting data of a plurality of files.

The thirty-seventh aspect is a file system for inputting/outputting file data in/from a plurality of storage units, which comprises:

a file open processing part for performing file open processing;

a band acquisition part for performing acquisition of a band employed for inputting/outputting the file data; and

a data input/output part for integratedly allocating a single band acquired in the band acquisition part to a plurality of files which are opened by the file open processing part, thereby alternately inputting/outputting data of a plurality of files through the same band.

According to the thirty-sixth or thirty-seventh aspect, as hereinabove described, the degree of freedom of bands used for data input/output can be improved by independently and arbitrarily combining file open and band acquisition.

The thirty-eighth aspect is a scheduling unit for scheduling service requests so that a server cyclically provides services to a plurality of clients, which comprises:

first queue for queuing service requests from the plurality of clients;

a registration part for registering cycles for generating execution rights for the plurality of clients;

an execution right generation part for generating the execution rights for executing the service requests in relation to the cycles registered in the registration part; and

an execution instruction part for instructing the server to execute service requests from clients corresponding to the execution rights generated by the execution right generation part among the service requests queued in the first queue part.

As hereinabove described, the first queue part queues the service requests from the respective clients. The registration part registers the cycles for generating execution rights for the respective clients. The execution right generation part generates execution rights in relation to the cycles registered in the registration part. The execution instruction part instructs the server to execute the service requests from the clients corresponding to the execution rights generated by the execution right generation part among the service requests queued in the first queue.

Thus, the service requests from the respective clients are queued while the cycles for generating execution rights for the respective clients are registered so that execution rights are generated on the basis of the cycles. The server is instructed to execute those from the clients corresponding to the generated execution rights among the queued service requests. Thus, the time from transmission to execution of a service request from a certain client is not influenced by situations of transmission of service requests from other clients, whereby it is possible to prevent the time up to execution of the transmitted service request from being indefinite.

The thirty-ninth aspect is characterized in that, in the thirty-eighth aspect,

the execution right generation part is started in a prescribed cycle for determining whether or not the execution rights are generated for every client on the basis of the cycles for generating the execution rights which are registered in the registration part and the cycle for starting the same at the time of starting while collectively generating the execution rights for the clients who determined to generate the execution rights.

According to the thirty-ninth aspect, as hereinabove described, the execution right generation part is started in the prescribed cycle and performs the operation of generating execution rights. At this time, the execution right generation part determines whether or not execution rights are generated for the respective clients on the basis of the cycles for generating execution rights and the cycle for starting the same, for collectively generating the execution rights for the clients determined to be generated. Thus, the processing operation of the execution right generation part can be reduced as compared with an operation of generating execution rights in the cycles for generating execution rights registered in the registration part.

The fortieth aspect is characterized in that, in the thirty-ninth aspect,

the execution right generation part calculates a time from a current started time up to a time for generating the next execution right on the basis of the cycles for generating the execution rights which are registered in the registration part and the cycle for starting the same and determines whether or not the execution rights are generated by comparing the time obtained by the calculation with the cycle for starting the same.

Thus, it is possible to determine whether or not execution rights for the respective clients are generated.

The forty-first aspect is characterized in that, in the fortieth aspect,

the execution right generation part generates an execution right for a client having a time Tofs between a current started time to a time for generating the next execution right which is less than a cycle Tslt for starting the same (Tofs<Tslt) and adds a cycle Treq for generating the execution right registered in the registration part to the Tofs of the client, for calculating a new Tofs for next starting by an expression Tofs=Tofs-Tslt with respect to the Tofs if the Tofs obtained by the addition is greater than or equal to Tslt (Tofs.gtoreq.Tslt).

According to the forty-first aspect, as hereinabove described, the execution right generation part generates the execution right for the client having the Tofs which is less than the Tslt. Further, the part adds the Treq to this Tofs, for calculating the new Tofs for next starting by the expression Tofs=Tofs-Tslt with respect to the Tofs if the Tofs obtained by the addition is greater than or equal to Tslt (Tofs.gtoreq.Tslt). Thus, it is possible to generate the execution right by determining the client for whom the execution right must be generated.

The forty-second aspect is characterized in that, in the forty-first aspect,

the execution right generation part repeats an operation of further generating an execution right, adding the Treq to the Tofs and comparing the result with the Tslt if the Tofs obtained by the addition is less than Tslt (Tofs<Tslt), and calculates a new Tofs for next starting by an expression Tofs=Tofs-Tslt with respect to the Tofs when the Tofs obtained by the addition is greater than or equal to the Tslt (Tofs.gtoreq.Tslt).

According to the forty-second aspect, as hereinabove described, the execution right generation part repeats the operation of further generating the execution right, adding the Treq to the Tofs and comparing the result with the Tslt if the Tofs obtained by the addition is less than Tslt (Tofs<Tslt). Further, the part calculates the new Tofs for next starting by the expression Tofs=Tofs-Tslt with respect to the Tofs when the Tofs obtained by the addition is greater than or equal to the Tslt (Tofs.gtoreq.Tslt). Thus, it is possible to generate a necessary number of execution rights by further determining a plurality of clients for whom the execution rights must be generated.

The forty-third aspect is characterized in that, in the forty-first aspect,

the execution right generation part generates no execution right as to a client having a time Tofs between a current started time and a time for generating the next execution right which is greater than or equal to the Tslt (Tofs.gtoreq.Tslt) or a service request which is not queued in the first queue, and calculates a new Tofs for next starting through an expression Tofs=Tofs-Tslt with respect to the Tofs.

According to the forty-third aspect, as hereinabove described, the execution right generation part generates no execution right as to the client having the Tofs which is greater than or equal to the Tslt (Tofs.gtoreq.Tslt) or a service request which is not queued in the first queue. Further, the part calculates the new Tofs for next starting through the expression Tofs=Tofs-Tslt with respect to the Tofs. Thus, no execution right is generated for the client whose service request is not queued, so that no service is provided to the client transmitting no service request.

The forty-fourth aspect is characterized in that, in the forty-third aspect,

the execution right generation part zeroes the Tofs for next starting if the new Tofs obtained by the calculation is less than zero (Tofs<0).

Thus, it is possible to prevent such a phenomenon that the Tofs of the client whose service request is not queued is reduced to a small value due to repetitive subtraction of the Tslt and a number of execution rights for this client are generated when the service request is queued.

The forty-fifth aspect is characterized in that, in the thirty-ninth aspect,

the execution instruction part is started in a prescribed cycle for selecting an execution right for a client having a shorter time between a current started time to a time for generating the next execution right.

Thus, it is possible to further reduce the number of times of delay occurrence by selecting the execution right of the client having a shorter time between the current started time and the time for generating the next execution right.

The forty-sixth aspect is characterized in that, in the forty-fifth aspect,

the execution right generation part calculates an evaluation index indicating precedence as a function of the cycles for generating the execution rights which are registered in the registration part and providing the same to the generated execution rights, and

the execution instruction part selects an execution right to be preferentially processed among those generated by the execution right generation part.

According to the forty-sixth aspect, as hereinabove described, the execution right generation part provides the evaluation index indicating the precedence calculated as the function of the cycles for generating the execution rights, and the execution instruction part selects the execution right to be preferentially processed on the basis of the provided evaluation index. Thus, when the execution rights compete with each other, that to be preferentially processed can be selected in relation to the cycles for generating the execution rights.

The forty-seventh aspect is characterized in that, in the forty-sixth aspect,

the execution right generation part calculates the evaluation index Nsft by a function Nsft=f(Treq/Tslt), where f(x) represents the minimum integer exceeding x, with respect to the cycles Treq for generating execution rights which are registered in the registration part and the cycle Tslt for starting the same, and

the execution instruction part selects an execution right having a smaller evaluation index Nsft provided thereto.

Thus, when execution rights compete with each other, that having a shorter cycle for generating the execution right can be selected.

The forty-eighth aspect is characterized in that, in the forty-seventh aspect,

the execution right generation part is started in a cycle which is shorter than the longest one of the cycles registered in the registration part.

Thus, execution rights for all clients are not provided with the same evaluation indices.

The forty-ninth aspect is characterized in that, in the forty-seventh aspect,

the execution right generation part is started in a cycle which is further shorter than the shortest one of the cycles registered in the registration part.

Thus, more detailed evaluation indices are provided to the execution rights for the respective clients.

The fiftieth aspect is characterized in that, in the forty-sixth aspect,

the execution instruction part includes a second queue for queuing the execution rights which are generated by the execution right generation part for every evaluation index, provided by the execution right generation part, in order of generation, for selecting that execution right having a smaller provided evaluation index and being precedently generated among the execution rights which are queued in the queue.

Thus, the execution instruction part can readily select that execution right to be preferentially processed among the generated execution rights, whereby the processing operation of the execution instruction part can be reduced.

The fifty-first aspect is characterized in that, in the forty-sixth aspect,

the execution instruction part recognizes a maximum number of service requests, execution of which is instructed in starting, stops the instructions of execution when the execution of the service requests is instructed by a number which is equal to the maximum number, and changes the evaluation indices of remaining execution rights to those having higher precedence.

According to the fifty-first aspect, as hereinabove described, the execution instruction part stops the execution instruction when the maximum number of execution instructions are performed, while changing the evaluation indices for the remaining execution rights to those having higher precedence. Thus, it is possible to make execution instruction not performed beyond the maximum number, while it is possible to prevent the remaining execution rights from being not selected for a long time.

The fifty-second aspect is characterized in that, in the fifty-first aspect,

the maximum number of the service requests, execution of which is instructed in starting, recognized by the execution instruction part is a maximum number of the service requests which are executable by the server in a time equal to the cycle for starting the same.

Thus, it is possible to make execution instruction not performed beyond the maximum number.

The fifty-third aspect is characterized in that, in the forty-seventh aspect,

the execution instruction part recognizes a maximum number of service requests, execution of which is instructed in starting, stops instruction of execution when execution of the service requests is instructed by a number which is equal to the maximum number, and decrements the evaluation indices of remaining execution rights.

According to the fifty-third aspect, as hereinabove described, the execution instruction part stops the execution instruction when the maximum number of execution instruction is performed, while decrementing the evaluation indices for the remaining execution rights. Thus, it is possible to make execution instruction not performed beyond the maximum number, while the evaluation indices of the remaining execution rights are decremented every Tslt, whereby it is possible to make the execution rights selected after Treq+Tslt from generation at the latest.

The fifty-fourth aspect is characterized in that, in the fifty-third aspect,

the maximum number of the service requests, execution of which is instructed in starting, recognized by the execution instruction part is a maximum number of the service requests which are executable by the server in a time equal to the cycle for starting the same.

Thus, it is possible to make execution instruction not performed beyond the maximum number.

The fifty-fifth aspect is characterized in that,

the fifty-first aspect further comprises a registration instruction part for instructing the registration part to register the cycles for generating execution rights on the basis of declarations from the plurality of clients.

Thus, it is possible to make the cycles for generating execution rights registered in the registration part at need.

The fifty-sixth aspect is characterized in that, in the fifty-fifth aspect,

the registration instruction part recognizes a maximum number of service requests, execution of which is instructed by the execution instruction part per unit time, for instructing the registration part to register the cycles if the same determines that an average number of the generated execution rights per unit time is not in excess of the maximum number even if further registration is made when registration of a further cycle is declared in addition to already registered cycles, while making the cycle not registered if the same determines otherwise.

According to the fifty-sixth aspect, as hereinabove described, the registration instruction part instructs the registration part to register the declared cycles only when the same determines that the average number of the generated execution rights per unit time is not in excess of the maximum number of the service requests, execution of which is instructed by the execution instruction part per unit time, even if the declared cycle is further registered in addition to the already registered cycles. Thus, it is possible to prevent the average number of the generated execution rights per unit time from exceeding the maximum number of the service requests, execution of which is instructed by the execution instruction part per unit time, in case of registering the new cycle.

The fifty-seventh aspect is a scheduling unit for scheduling service requests so that a plurality of servers cyclically provide services to a client respectively, which comprises:

a first queue for queuing service requests to the plurality of servers;

a registration part for registering cycles for generating execution rights for the plurality of servers;

an execution right generation part for generating the execution rights for executing the service requests in relation to the cycles registered in the registration part; and

an execution instruction part for instructing the servers to execute the service requests to the servers corresponding to the execution rights generated by the execution right generation part among the service requests queued in the first queue.

As hereinabove described, the first queue queues the service requests to the respective servers. The registration part registers the cycles for generating execution rights for the respective servers. The execution right generation part generates execution rights in relation to the cycles registered in the execution rights. The execution instruction part instructs the servers to execute the service requests for the servers corresponding to the execution rights generated by the execution right generation part among the service requests queued in the first queue.

Thus, the service requests for the respective servers are queued while the cycles for generating execution rights for the respective servers are registered so that the execution rights are generated on the basis of the cycles. The servers are instructed to execute those of the queued service requests for the servers corresponding to the generated execution rights. Thus, the time from transmission to execution of a service request to a certain server is not influenced by situations of transmission of service requests to other servers, whereby it is possible to prevent the time up to execution of the transmitted service request from being indefinite.

The fifty-eighth aspect is characterized in that, in the fifty-seventh aspect,

the execution right generation part is started in a prescribed cycle for determining at the time of starting whether or not the execution rights are generated for respective servers on the basis of the cycles for generating the execution rights which are registered in the registration part and the cycle for starting the same and collectively generating the execution rights for the servers for which the execution rights are determined to be generated.

According to the fifty-eighth aspect, as hereinabove described, the execution right generation part is started in the prescribed cycle, and performs the operation of generating execution rights. At this time, the execution right generation part determines whether or not the execution rights are generated for the respective servers on the basis of the cycles for generating execution rights and the cycle for starting the same, for collectively generating the execution rights for the servers determined to be generated. Thus, the processing operation of the execution right generation part can be reduced as compared with the case of generating execution rights in the cycles for generating the execution rights registered in the registration part.

The fifty-ninth aspect is characterized in that, in the fifty-eighth aspect,

the execution right generation part calculates a time from a current started time up to a time for generating the next execution right on the basis of the cycles for generating execution rights which are registered in the registration part and the cycle for starting the same and compares the time obtained by the calculation with the cycle for starting the same, thereby determining whether or not the execution rights are generated.

Thus, it is possible to determine whether or not execution rights for the respective servers are generated.

The sixtieth aspect is characterized in that, in the fifty-eight aspect,

the execution right generation part generates an execution right for a server having a time Tofs between a current started time to a time for generating the next execution right which is less than a cycle Tslt for starting the same (Tofs<Tslt) and adds a cycle Titv for generating the execution right registered in the registration part to the Tofs of the server, for calculating a new Tofs for next starting by an expression Tofs=Tofs-Tslt with respect to the Tofs if the Tofs which is obtained by the addition is greater than or equal to Tslt (Tofs.gtoreq.Tslt).

According to the sixtieth aspect, as hereinabove described, the execution right generation part generates the execution right for the server having the Tofs which is less than the Tslt (Tofs<Tslt). Further, the part adds the Titv to the Tofs, for calculating the new Tofs for next starting by the expression Tofs=Tofs-Tslt with respect to the Tofs if the Tofs which is obtained by the addition is greater than or equal to Tslt (Tofs.gtoreq.Tslt). Thus, it is possible to determine the server for which the execution right is to be generated, for making the execution right generated.

The sixty-first aspect is characterized in that, in the sixtieth aspect,

the execution right generation part repeats an operation of further generating an execution right, adding the Titv to the Tofs and comparing the result with the Tslt if the Tofs obtained by the addition is less than Tslt (Tofs<Tslt), and calculates a new Tofs for next starting by an expression Tofs=Tofs-Tslt with respect to the Tofs when the Tofs obtained by the addition is greater than or equal to Tslt (Tofs.gtoreq.Tslt).

According to the sixty-first aspect, as hereinabove described, the execution right generation part repeats the operation of further generating the execution right, adding the Titv to the Tofs and comparing the result with the Tslt if the Tofs obtained by the addition is less than Tslt (Tofs<Tslt). Further, the part calculates the new Tofs for next starting by the expression Tofs=Tofs-Tslt with respect to the Tofs when the Tofs obtained by the addition is greater than or equal to Tslt (Tofs.gtoreq.Tslt). Thus, it is possible to further determine a plurality of servers for which execution rights are to be generated, for generating a necessary number of execution rights.

The sixty-second aspect is characterized in that, in the sixtieth aspect,

the execution right generation part generates no execution right as to a server having a time Tofs between a current started time and a time for generating the next execution right which is greater than or equal to the Tslt (Tofs.gtoreq.Tslt) or having a service request which is not queued in the first queue and calculates a new Tofs for next starting through an expression Tofs=Tofs-Tslt with respect to the Tofs.

According to the sixty-second aspect, as hereinabove described, the execution right generation part generates no execution right as to the server having the Tofs which is greater than or equal to the Tslt (Tofs.gtoreq.Tslt) or the service request which is not queued in the first queue. Further, the part calculates the new Tofs for next starting through the expression Tofs=Tofs-Tslt with respect to the Tofs. Thus, no execution right is generated for the server whose service request is not queued, whereby it is possible to prevent the server receiving no service request from providing a service.

The sixty-third aspect is characterized in that, in the sixty-second aspect,

the execution right generation part zeroes the Tofs for next starting if the new Tofs obtained by the calculation is less than zero (Tofs<0).

Thus, it is possible to prevent such a phenomenon that the Tofs of the server for whom no service request is queued is reduced to a small value due to repetitive subtraction of the Tslt and a number of execution rights for this server are generated when the service request is queued.

The sixty-fourth aspect is characterized in that, in the fifty-eighth aspect,

the execution instruction part is started in a prescribed cycle for selecting an execution right of a server having a shorter time between a current started time to a time for generating the next execution right.

Thus, the number of times of delay occurrence can be further reduced by selecting the execution right of the server having the shorter time between the current started time to the time for generating the next execution right.

The sixty-fifth aspect is characterized in that, in the sixty-fourth aspect,

the execution right generation part calculates an evaluation index indicating precedence as a function of the cycles for generating execution rights which are registered in the registration part and providing the same to the generated execution rights, and the execution instruction part selects an execution right to be preferentially processed among those generated by the execution right generation part on the basis of the provided evaluation index.

According to the sixty-fifth aspect, as hereinabove described, the execution right generation part provides the evaluation index indicating the precedence calculated as the functions of the cycles for generating the execution rights, and the execution instruction part selects the execution right to be preferentially processed on the basis of the provided evaluation index. Thus, when execution rights compete with each other, that to be further preferentially processed in relation to the cycles for generating the execution rights can be selected.

The sixty-sixth aspect is characterized in that, in the sixty-fifth aspect,

the execution right generation part calculates an evaluation index Nsft by a function Nsft=f(Titv/Tslt), where f(x) represents a minimum integer exceeding x, with respect to the cycles Titv for generating execution rights which are registered in the registration part and the cycle Tslt for starting the same, and

the execution instruction part selects an execution right having a smaller evaluation index Nsft which is provided thereto.

Thus, when execution rights compete with each other, that execution right having a shorter cycle for generating the execution right can be selected.

The sixty-seventh aspect is characterized in that, in the sixty-sixth aspect,

the execution right generation part is started in a cycle which is shorter than the longest one of the cycles registered in the registration part.

Thus, execution rights for all clients are not provided with the same evaluation indices.

The sixty-eighth aspect is characterized in that, in the sixty-sixth aspect,

the execution right generation part is started in a cycle which is further shorter than the shortest one of the cycles registered in the registration part.

Thus, more detailed evaluation indices are provided to the execution rights for the respective servers.

The sixty-ninth aspect is characterized in that, in the sixty-fifth aspect,

the execution instruction part includes a second queue part for queuing the execution rights which are generated by the execution right generation part for every evaluation index provided by the execution right generation part in order of generation, for selecting that execution right having a smaller provided evaluation index and being precedently generated among the execution rights which are queued in the queue.

Thus, the execution instruction part can readily select that execution right to be preferentially processed among the generated execution rights, whereby the processing operation of the execution instruction part can be reduced.

The seventieth aspect is characterized in that, in the sixty-fifth aspect,

the execution instruction part recognizes a maximum number of service requests, execution of which is instructed in starting, stops instruction of execution when execution of the service requests is instructed by a number which is equal to the maximum number, and changes the evaluation indices of remaining execution rights to those of higher precedence.

According to the seventieth aspect, as hereinabove described, the execution instruction part stops execution instruction when the maximum number of execution instruction is performed, and changes the evaluation indices of the remaining execution rights to those of higher precedence. Thus, it is possible to make execution instruction not performed beyond the maximum number, while it is possible to prevent the remaining execution rights from being not selected for a long time.

The seventy-first aspect is characterized in that, in the seventieth aspect,

the maximum number of the service requests, execution of which is instructed in starting, recognized by the execution instruction part is a number of the service requests corresponding to a maximum quantity of information transmittable from all servers to the client in a time which is equal to the cycle for starting the same.

Thus, it is possible to make execution instruction not performed in a number exceeding the maximum information quantity transmittable from all servers to the client.

The seventy-second aspect is characterized in that, in the sixty-sixth aspect,

the execution instruction part recognizes a maximum number of the service requests, execution of which is instructed in starting, stops instruction of execution when execution of the service requests is instructed by a number which is equal to the maximum number, and decrements the evaluation indices of remaining execution rights.

According to the seventy-second aspect, as hereinabove described, the execution instruction part stops execution instruction when the maximum number of execution instruction is performed, and decrements the evaluation indices of the remaining execution rights. Thus, it is possible to make execution instruction not performed beyond the maximum number, while the evaluation indices of the remaining execution rights are decremented every Tslt, whereby it is possible to make the execution rights selected after Treq+Tslt from generation at the latest.

The seventy-third aspect is characterized in that, in the seventy-second aspect,

the maximum number of the service requests, execution of which is instructed in starting, recognized by the execution instruction part is a number of the service requests corresponding to a maximum quantity of information transmittable from all servers to the client in a time which is equal to the cycle for starting the same.

Thus, it is possible to make execution instruction not performed in a number exceeding the maximum information quantity transmittable from all servers to the client.

The seventy-fourth aspect is characterized in that,

the seventieth aspect further comprises a registration instruction part for instructing the registration part to register/update the cycles for generating execution rights on the basis of a declaration from the client.

Thus, it is possible to make the registration part register/update the cycles for generating execution rights at need.

The seventy-fifth aspect is characterized in that, in the seventy-fourth aspect,

the registration instruction part recognizes a maximum number of service requests, execution of which is instructed by the execution instruction part to all servers per unit time, for instructing the registration part to register the cycles if the same determines that an average number of generated execution rights of all servers per unit time is not in excess of the maximum number even if further registration is made when registration of a cycle of a further server is declared in addition to already registered cycles, while making the cycle not registered if the same determines otherwise.

According to the seventy-fifth aspect, as hereinabove described, the registration instruction part instructs the registration part to register the declared cycles only when the same determines that the average number of the execution rights of all servers per unit time is not in excess of the maximum number of the service requests, execution of which is instructed by the execution instruction part to all servers per unit time, even if the declared cycle is further registered in addition to the already registered cycles. Thus, it is possible to prevent the average number of the generated execution rights of all servers per unit time when the declared cycle of the server is registered from exceeding the maximum number of the service requests, execution of which is instructed by the execution instruction part to all servers per unit time.

The seventy-sixth aspect is characterized in that, in the seventy-fourth aspect,

the registration instruction part recognizes a maximum number of service requests, execution of which is instructed by the execution instruction part to each server per unit time, for instructing the registration part to register the cycles if the same determines that an average number of generated execution rights of each server per unit time is not in excess of the maximum number even if further registration is made when registration of a cycle of a further server is declared in addition to already registered cycles, while making the cycle not registered if the same determines otherwise.

According to the seventy-sixth aspect, as hereinabove described, the registration instruction part instructs the registration part to register the declared cycles only when the same determines that the average number of the execution rights of each server per unit time is not in excess of the maximum number of the service requests, execution of which is instructed to the server, even if the declared cycle of the server is further registered in addition to the already registered cycles. Thus, it is possible to prevent the average number of the generated execution rights of each server per unit time when the declared cycle of the server is registered from exceeding the maximum number of the service requests, execution of which is instructed by the execution instruction part to each server per unit time.

The seventy-seventh aspect is characterized in that, in the seventy-sixth aspect,

the maximum number of the service requests, execution of which is instructed by the execution instruction part to each server per unit time, is a maximum number of the service requests executable by each server per unit time.

Thus, it is possible to prevent the average number of the generated execution rights of each server per unit time when the declared cycle of the server is registered from exceeding the maximum number of the service requests, which can be executed by this server per unit time.

The seventy-eighth aspect is characterized in that, in the seventy-fourth aspect,

the registration instruction part recognizes a maximum number of service requests, execution of which is instructed by the execution instruction part to all servers per unit time, and a maximum number of the service requests, execution of which is instructed by the execution instruction part to each server per unit time, and instructs the registration part to update a cycle Titv for generating an execution right for a certain server already registered to a new Titv calculated by an expression Titv=1/(1/Titv+1/Treq) when a declaration for updating the cycle Titv to that for generating an execution right with further addition of a cycle Treq in case of determining that an average number of generated execution rights of all servers per unit time is not in excess of a maximum number of the service requests, execution of which is instructed by the execution instruction part to all servers per unit time and in case of determining that an average number of generated execution right of the server per unit time is not in excess of a maximum number of the service requests, execution of which is instructed by the execution instruction part to the server per unit time, while not updating the Titv in case of determining otherwise.

According to the seventy-eighth aspect, as hereinabove described, the registration part is instructed to update the cycle Titv for the certain server to the new Titv only in case of determining that the average number of the generated execution rights of all servers per unit time is not in excess of the maximum number of the service requests, execution of which is instructed by the execution instruction part to all servers per unit time and in case of determining that the average number of the generated execution rights of the server per unit time is not in excess of the maximum number of the service requests, execution of which is instructed by the execution instruction part to the server per unit time, when the declaration for updating the cycle Titv to that for generating the execution right with further addition of the cycle Treq is received. Thus, it is possible to make the average number of the generated execution rights of all servers per unit time not exceed the maximum number of the service requests, execution of which is instructed by the execution instruction part to all servers, when the Titv of the server is updated, while it is possible to make the average number of the generated execution rights of the server per unit time not exceed the maximum number of the service requests, execution of which is instructed by the execution instruction part to this server per unit time.

The seventy-ninth aspect is characterized in that, in the seventy-fourth aspect,

the registration instruction part instructs the registration part to update an already registered cycle Titv for generating an execution right of a certain server to a new Titv which is calculated by an expression Titv=1/(1/Titv-1/Treq) when a declaration is made to update the Titv to that for generating an execution right while excluding a cycle Treq.

Thus, it is possible to update the already registered cycle to the new one when the declaration is made to update the already registered cycle for generating the execution right to that for generating the same while excluding the cycle Treq.

The eightieth aspect is a server unit connected with a plurality of terminals through wire or radio transmission paths for retrieving and reading corresponding data from those stored therein when a data read request is transmitted from any of the terminals and transmitting the read data to the terminal issuing the read request, which comprises:

a data storage part storing various data and being accessible at random in response to read requests from the terminals;

an input/output part for controlling input/output of the data between the data storage part and each terminal;

an exchange part for exchanging the data between the input/output part and the data storage part; and

a resource management part for managing resources which are necessary in case of reading data required by the terminals from the data storage part and outputting the same to the terminals, and

the resource management separates the resources of the overall server unit to resources (preferential resources) employed for outputting data (preferential data) for which continuity must be guaranteed to the terminals and resources (non-preferential resources) employed for outputting data (non-preferential data) for which no continuity may be guaranteed to the terminals to manage the same.

According to the eightieth aspect, as hereinabove described, the resources of the overall system are separated into the preferential resources and the non-preferential resources and managed, whereby resources used for reading the non-preferential data can be ensured independently of the preferential resources. Consequently, no influence is inserted on output of the preferential data even if the read quantity of the non-preferential data is increased.

The eighty-first aspect is characterized in that, in the eightieth aspect, each terminal is divided into a plurality of groups,

the input/output part includes a plurality of I/O units provided every group of the terminal,

each I/O unit includes:

a preferential input/output control part executing input/output control with respect to a command requiring reading of the preferential data transmitted from the terminal of the corresponding group; and

a non-preferential input/output control part executing input/output control with respect to a command requiring reading of the non-preferential data transmitted from the terminal of the corresponding group,

the data storage part includes:

a plurality of storage units; and

a plurality of media segment file servers (MSFSs) connected with each storage unit for controlling reading of data from the storage unit, and

the non-preferential input/output control part includes:

a command queue for temporarily storing commands requiring reading of the non-preferential data transmitted from the terminals of the corresponding group;

a command queue control part for fetching the commands from the command queue;

a command transmission part for transmitting the commands fetched by the command queue control part to corresponding destination the MSFSs;

a data buffer part for temporarily storing the non-preferential data read from the storage units by the MSFSs; and

a data transmission part for transmitting the non-preferential data stored in the data buffer part to the terminals.

The eighty-second aspect is characterized in that, in the eighty-first aspect,

the command queue is provided in correspondence to each of a plurality of terminals belonging to the corresponding group for storing the commands from the corresponding terminal in order of arrival,

the command queue control part executes command fetch processing of selecting a single command queue storing the commands from a plurality of command queues while fetching a command stored in its head and that transmitted to the same MSFS and outputting the same to the command transmission part,

the command transmission part:

transmits the commands received from the command queue control part to the MSFSs for executing the same; and

transmits a receiving completion notice to the command queue control part when the same confirms that the data buffer part receives all read data for the transmitted commands from the MSFSs; and

the command queue control part repeatedly executes the command fetch processing every time the same receives the receiving completion notice from the command transmission part.

According to the eighty-second aspect, as hereinabove described, it comes to that the command queue control part does not output the next command to the command transmission part after the commands are outputted to the command transmission part and before the data buffer part receives all data corresponding to the outputted command. Thus, the I/O unit does not simultaneously communicate with a plurality of MSFSs in relation to receiving of the non-preferential data, and it is not necessary to take collision of cells of the non-preferential data into consideration. On the other hand, the MSFSs can transmit data at a high speed by using all communication bands of the non-preferential resources provided in the I/O unit.

The eighty-third aspect is characterized in that, in the eighty-second aspect,

the command queue control part limits a number of the commands which are fetched from a single command queue to not more than a predetermined constant number in a single command fetch processing.

When a number of commands are substantially simultaneously transmitted to a single MSFS, congestion is caused in the MSFS receiving the commands, and hence the aforementioned eighty-second aspect is adapted to limit the number of the commands fetched from a single command queue and transmitted to the command transmission part to not more than the predetermined constant number.

The eighty-fourth aspect is characterized in that, in the eighty-second aspect,

the non-preferential input/output control part further includes a buffer management part for managing a used state of the data buffer part, and

the command queue control part decides the command queue selected for the command fetch processing on the basis of the used state of the data buffer part which is managed by the buffer management part.

The eighty-fifth aspect is characterized in that, in the eighty-fourth aspect,

the buffer management part is provided with a plurality of used quantity counters for counting the number of untransmitted data stored in the data buffer part of every terminal, and

the command queue control part refers to the used quantity counters of the buffer management part before executing the command fetch processing for selecting a command queue corresponding to a terminal having a minimum untransmitted data number as a target of the command fetch processing.

According to the eighty-fifth aspect, as hereinabove described, the command queue corresponding to the terminal having the minimum data quantity stored in the data buffer part is selected from the command queues storing the commands on the basis of the used situation of the data buffer part managed by the buffer management part so that transmission processing for the commands stored in the selected command queue is preferentially executed, whereby such a phenomenon that a single terminal occupies and uses non-preferential resources shared by a plurality terminals is reduced and the best use of the communicatability provided in the server unit for the respective terminals can be made.

The eighty-sixth aspect is characterized in that, in the eighty-second aspect,

the command transmission part transmits a command which is received from the command queue control part to the MSFS after reserving an area for storing the non-preferential data read by the MSFS in the data buffer part, and stops transmission of the commands to the MSFS until the area for storing the non-preferential data can be reserved in the data buffer part if the area cannot be reserved.

According to the eighty-sixth aspect, as hereinabove described, the command transmission part reserves the area for storing the data in the data buffer part and thereafter transmits the command requiring reading of the non-preferential data to the MSFS. Namely, the command transmission part transmits no command requiring reading of the non-preferential data to the MSFS until the storage area can be reserved, if the storage region is unreservable. Thus, it is possible to prevent the data from being discarded due to no storage area in the data buffer part in receiving of data from the MSFS.

The eighty-seventh aspect is characterized in that, in the eighty-first aspect,

the command queue control part decides cycles for outputting the commands to the command transmission part on the basis of a smaller one of a communication band serving as a non-preferential resource for each I/O unit for outputting data to each terminal and a communication band serving as a non-preferential resource for each I/O unit for receiving the non-preferential data read from the data storage part.

According to the eighty-seventh aspect, as hereinabove described, the command queue control part decides the cycles for outputting the commands to the command transmission part on the basis of the smaller one of the communication band serving as a non-preferential resource for each I/O unit for outputting data to each terminal and the communication band serving as a non-preferential resource for each I/O unit for receiving the non-preferential data read from the data storage part. Thus, an average band used by the data transmitted from the MSFS is equal to or less than the communication band for the exchange part for communicating with the MSFS, whereby an effect of suppressing congestion of the exchange part resulting from data transmission of the MSFS can be expected. Further, an average band used by the data transmitted from the MSFS is also equal to or less than the communication band for serving as a non-preferential resource for each I/O unit for outputting the data to each terminal, whereby increase of the quantity of the data stored in the data buffer part in the I/O unit can be suppressed.

The eighty-eighth aspect is characterized in that, in the eighty-first aspect,

the command transmission part includes:

a plurality of transmission queues provided in correspondence to the respective MSFSs for storing the commands received from the command queue control part for the respective MSFSs; and

a plurality of processing number counters provided in correspondence to respective ones of the transmission queues, which are incremented every transmission of the commands from the corresponding transmission queues to the MSFSs and decremented every arrival of data read from the corresponding MSFSs at the data buffer part thereby counting the number of the non-preferential data not yet arriving at the data buffer part, and

the command transmission part limits the number of the commands which are transmitted from the respective transmission queues to the MSFSs so that the number of unarriving non-preferential data counted by the processing number counters are not in excess of a prescribed threshold.

According to the eighty-eighth aspect, as hereinabove described, the command transmission part transmits commands in a noted transmission queue to the MSFS only when the count value of the processing counter corresponding to the noted transmission queue is less than the predetermined threshold value, whereby it is possible to avoid such a phenomenon that read processing is concentrated to a single MSFS and the commands reside in this MSFS.

The ninetieth aspect is characterized in that, in the eightieth aspect,

the exchange part is formed by an asynchronous transfer mode (ATM) switch, and

a communication band serving as a non-preferential resource of the ATM switch is ensured in an available bit rate (ABR) mode.

According to the ninetieth aspect, as hereinabove described, the communication band serving as a non-preferential resource of the ATM switch is ensured in the ABR mode so that the MSFS reading data transmits the data through the communication band ensured in the ABR mode, whereby the transmission rate from the MSFS is immediately reduced and congestion is eliminated even if congestion is caused in the ATM switch. Therefore, the I/O unit can regularly correctly receive the data.

The ninety-first aspect is characterized in that, in the eightieth aspect,

the resource management part previously fixedly allocates parts of the resources of the overall server unit as the preferential resources while allocating the remaining parts as the non-preferential resources.

The ninety-second aspect is characterized in that, in the eightieth aspect,

the resource management part changes a quantity which is allocated as the preferential resources among the resources of the overall server unit in response to read requests for the preferential data from the terminals.

According to the ninety-second aspect, as hereinabove described, the quantity which is allocated as the preferential resources among the resources of the overall server unit is changed in response to the read requests for the preferential data from the terminals, whereby allocation of the resources can be flexibly changed in response to increase/decrease of the read requests for the preferential data, and the best use of the finite resources can be efficiently made.

The ninety-third aspect is characterized in that, in the ninety-second aspect,

the resource management part allocates all those not allocated as the preferential resources among the resources of the overall server unit as the non-preferential resources while allocating preferential resources from those allocated as the non-preferential resources in such a range that the quantity of the non-preferential resources is not below a prescribed resource quantity when it is necessary to increase the preferential resources.

According to the ninety-third aspect, as hereinabove described, all resources not allocated as the preferential resources are managed as the non-preferential resources while allocating preferential resources from the non-preferential resources in such a range that the quantity of the non-preferential resources is not below the prescribed resource quantity (minimum band width) when it is necessary to newly increase the preferential resources, whereby input/output of the preferential data is not influenced even if reading of the non-preferential data is increased and all unused resources are used as non-preferential resources, whereby reading of the non-preferential data is efficiently executed.

The ninety-fourth aspect is a file system for issuing a data acquisition request to a data storage unit in response to a data transmission request from a user and transmitting data acquired from the data storage unit in accordance with the data acquisition request to the user, which comprises:

a data acquisition part for acquiring data from the data storage unit successively from a position specified by the data transmission request continuously at a specified speed;

a buffer for storing the data acquired by the data acquisition part from the data storage unit;

a buffer management part for performing operation of the data stored in the buffer and management of a data quantity;

a data transmission part for continuously reading the data stored in the buffer in order specified by the data transmission request continuously at a specified transmission speed and transmitting the same to the user; and

a pause control part for receiving a pause request and a pause release request from the user for controlling the data transmission part, the data acquisition part and the buffer management part, and

the pause control part is adapted:

to control the data transmission part to immediately stop data transmission while controlling the data acquisition part to immediately stop data acquisition in case of receiving the pause request from the user; and

to control the data transmission part to resume data transmission successively from a head of the data stored in the buffer after pause processing while controlling the data acquisition part to resume data acquisition successively from data next to the last data stored in the buffer after the pause processing in case of receiving the pause release request from the user.

According to the ninety-fourth aspect, as hereinabove described, the data stored in the buffer after the pause processing are transmitted to the user at first when the pause release request is received from the user, whereby the time up to resuming of data transmission after the pause release can be shortened as compared with the case of newly performing a data transmission request.

The ninety-fifth aspect is characterized in that, in the ninety-fourth aspect,

the pause control part substitutes a data acquisition resume time trd for making the data acquisition part resume data acquisition, a quantity N of the data stored in the buffer after the pause processing, a data transmission speed V after pause release and a time D required by the data acquisition part for data acquisition in the following expression (a) in case of receiving the pause release request from the user, thereby calculating a data transmission resume time tsd for making the data transmission part resume data transmission:

tsd=trd+D-N/V (a)

According to the ninety-fifth aspect, as hereinabove described, the time for resuming data transmission in the pause release is calculated through the expression (a), whereby the data stored in the buffer after the pause processing is transmitted to the user at least before the head data acquired by the data acquisition part acquires after the pause release is stored in the buffer. Consequently, the time up to data transmission resuming in the pause release can be shortened as compared with the case of newly making a data transmission request. Also when the data transmission speed around the pause is changed, further, it is possible to prevent the transmission data from being interrupted due to removal of the transmission data from the buffer, whereby continuous transmission of the data can be implemented.

The ninety-sixth aspect is characterized in that, in the ninety-fourth aspect,

the pause control part substitutes a data transmission resume time tsd for making the data transmission part resume data transmission, a quantity N of the data stored in the buffer after the pause processing, a data transmission speed V after pause release and a time D required by the data acquisition part for data acquisition in the following expression (b) in case of receiving the pause release request from the user, thereby calculating a data acquisition resume time trd for making the data acquisition part resume data acquisition:

trd=tsd+N/V-D (b)

According to the ninety-sixth aspect, as hereinabove described, the time for resuming data transmission in the pause release is calculated through the expression (b), whereby the data stored in the buffer after the pause processing is transmitted to the user at least before the head data acquired by the data acquisition part after the pause release is stored in the buffer. Consequently, the time up to data transmission resuming in the pause release can be shortened as compared with the case of newly making a data transmission request. Also when the data transmission speed around the pause is changed, further, it is possible to prevent the transmission data from being interrupted due to removal of the transmission data from the buffer, whereby continuous transmission of the data can be implemented.

The ninety-seventh aspect is characterized in that, in the ninety-fourth aspect,

the pause control part determines whether or not a quantity of the data stored in the buffer after pause processing is greater than a limit data quantity transmittable at a data transmission speed after pause release in a time which is required by the data acquisition part for data acquisition in case of receiving the pause release request from the user, and

controls the buffer management part to delete data of a part exceeding the limit data quantity if the data quantity is greater than the limit data quantity as a result of the determination, thereby deciding a head position of the data being acquired by the data acquisition part after pause release.

According to the ninety-seventh aspect, as hereinabove described, the data of the part exceeding the limit data quantity is eliminated from the buffer in the pause release, whereby the buffer may not have a buffer capacity beyond the limit data quantity.

These and other objects, features, aspects and advantages of the present invention will become more apparent from the following detailed description of the present invention when taken in conjunction with the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram showing the structure of a file system according to a first embodiment of the present invention.

FIG. 2 is a block diagram showing the structure of a part related to file access in each server unit shown in FIG. 1.

FIG. 3 is a block diagram showing the structure of a part related to file access in a file manager shown in FIG. 1.

FIG. 4 is a diagram illustrating the relation between reservation and allocation of resources and data read operations in the first embodiment.

FIG. 5 is a diagram showing an exemplary MS arrival slot management table for managing states of MS arrival slots.

FIG. 6 is a diagram showing an exemplary write slot management table for managing states of write slots.

FIG. 7 is a diagram showing an exemplary stream management table.

FIG. 8 is a block diagram showing a more detailed structure of a resource management part shown in FIG. 3.

FIG. 9 is a block diagram showing the structure of a file system according to a second embodiment of the present invention.

FIG. 10 is a block diagram showing the structure of a file access part in each I/O unit shown in FIG. 9.

FIG. 11 is a block diagram showing the structure of a file access part in each block storage unit shown in FIG. 9.

FIG. 12 is a block diagram showing the structure of a file system according to a third embodiment of the present invention.

FIG. 13 is a block diagram showing the structure of a disk management unit according to a fourth embodiment of the present invention.

FIG. 14 is a diagram showing a band preferential layout of deciding ratios for distributing data in proportion to the bands of storage units.

FIG. 15 is a diagram showing a band preferential layout of deciding ratios for distributing data in proportion to the capacities of storage units.

FIG. 16 is a diagram showing a band setting layout of deciding ratios for distributing data while mixing the band preferential layout and the capacity preferential layout.

FIG. 17 is a block diagram showing the structure of a file system employing the disk management unit shown in FIG. 13.

FIG. 18 is a block diagram showing the structure of a scheduling unit according to a sixth embodiment of the present invention.

FIG. 19 is a block diagram showing the structure of a video information providing system employing the scheduling unit shown in FIG. 18.

FIG. 20 is a sequence diagram showing a state of signals transmitted/received between a video information provider 1920 shown in FIG. 19 and clients (1 to n) 1921.

FIG. 21 is a diagram showing registered contents of an execution right generation cycle table 1812 shown in FIG. 18.

FIG. 22 is a diagram showing queuing contents of a processing queue 1814 shown in FIG. 18.

FIG. 23 is a diagram showing queuing contents of an execution right queue 1816 shown in FIG. 18.

FIG. 24 is a flow chart for illustrating an operation of an execution right generation part 1813 generating an execution right.

FIG. 25 is a flow chart for illustrating an operation of an execution instruction part 1815 shown in FIG. 18 instructing execution of a read request.

FIG. 26 is a block diagram showing the structure of a scheduling unit according to a seventh embodiment of the present invention.

FIG. 27 is a block diagram showing the structure of a video information providing system employing the scheduling unit shown in FIG. 26.

FIG. 28 is a diagram showing registered contents of an execution right generation cycle table 2692 shown in FIG. 26.

FIG. 29 is a diagram showing queuing contents of a processing queue 2694 shown in FIG. 26.

FIG. 30 is a diagram showing queuing contents of an execution right queue 2696 shown in FIG. 26.

FIG. 31 is a diagram for illustrating operations of another execution right queue.

FIG. 32 is a block diagram showing the structure of a data transmission system employing a server unit according to an eighth embodiment of the present invention.

FIG. 33 is a block diagram showing a more detailed structure of an I/O unit 3207 shown in FIG. 32.

FIG. 34 is a flow chart showing operations of a command acceptance part 3327 shown in FIG. 33.

FIG. 35 is a flow chart showing operations of a command queue control part 3322 shown in FIG. 33.

FIG. 36 is a flow chart showing operations of a command transmission part 3323 shown in FIG. 33.

FIG. 37 is a block diagram showing the structure of a data transmission system employing a server unit according to a ninth embodiment of the present invention.

FIG. 38 is a block diagram showing a more detailed structure of an I/O unit 3707 shown in FIG. 37.

FIG. 39 is a flow chart showing operations of a resource management part 3701 shown in FIG. 37.

FIG. 40 is a flow chart showing operations of a command acceptance part 3847 shown in FIG. 38.

FIG. 41 is a flow chart showing operations of a command queue control part 3842 shown in FIG. 38.

FIG. 42 is a flow chart showing operations of a command transmission part 3843 shown in FIG. 38.

FIG. 43 is a block diagram showing the structure of a file system according to a tenth embodiment of the present invention.

FIG. 44 is a timing diagram showing the relation between a data transmission request, data acquisition requests and data transmission in a data transmission operation of a server unit in the tenth embodiment.

FIG. 45 is a timing diagram showing the relation between a data transmission request, data acquisition requests and data transmission in a pause operation of the server unit in the tenth embodiment.

FIG. 46 is a timing diagram showing the relation between a data transmission request, data acquisition requests and data transmission in a pause release operation of the server unit in the tenth embodiment.

FIG. 47 is a timing diagram showing the relation between a data transmission request, data acquisition requests and data transmission in a pause release operation of a server unit according to an eleventh embodiment.

FIG. 48 is a timing diagram for illustrating a method of calculating a data transmission resume time in a pause release operation of a server unit according to a twelfth embodiment.

FIG. 49 is a timing diagram showing the relation between a data transmission request, data acquisition requests and data transmission in a pause release operation of a server unit according to the twelfth embodiment.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

(First Embodiment)

FIG. 1 is a block diagram showing the structure of a file system according to a first embodiment of the present invention. Referring to FIG. 1, this file system comprises an exchange unit 1, a file manager 2, and a plurality of server units 3.

The file manager 2 manages the overall file system. Each server unit 3 accepts a file read or write request from a user, and transmits data or a message read from a storage unit managed by the file system to the user. Data are transferred between the server units 3 as well as between the server units 3 and the file manager 2 through the exchange unit 1. The data managed by this file system are stored in the storage units which are present in the respective server units 3.

FIG. 2 is a block diagram showing the structure of a part related to file access in each server unit 3. Referring to FIG. 2, each server unit 3 includes an external message interface part 101, a resource allocation part 102, a slot allocation part 103, an address retrieval part 104, a request transmission part 105, an external network I/O control part 106, an internal message interface part 107, a storage unit 108, a storage control part 109, an internal network I/O control part 110, and a declared value management part 111.

The external message interface part 101 identifies a message transferred between the same and the exterior, and supplies a processing instruction to each functional block in the server unit. The resource allocation part 102 allocates resources in the file system. The slot allocation part 103 allocates slots managed by the server unit 3. The slots are described later. The address retrieval part 104 retrieves a position storing required data. The request transmission part 105 instructs transmission of a block read request requiring reading of a data block of a fixed length or a block write request requiring writing. The internal message interface part 107 controls transmission/receiving of messages for the file manager 2 in the file system and other server units. The storage unit 108 stores data blocks and data storage position information of every file. The storage control part 109 controls access to the storage unit 108. The internal network I/O control part 110 controls the timing for transmitting a data block required by the block read request to the exchange unit 1. The declared value management part 111 checks whether or not parameters of messages arriving from the exterior are proper.

FIG. 3 is a block diagram showing the structure of a part of the file manager 2 related to file access. Referring to FIG. 3, the file manager 2 includes a message interface part 201 and a resource management part 202. The message interface part 201 identifies messages transferred between the same and each server unit 3 through the exchange unit 1, and supplies processing instructions to the functions in the file manager 2. The resource management part 202 manages a read band of the storage unit and the capacity and the used quantity of an input/output band of the exchange unit 1 in the file system.

In relation to file access, the following messages arrive at the file system from the exterior:

(1) GetResource

(2) FileOpen

(3) ReadBlock

(4) WriteBlock

Operations of the parts of the file manager 2 and each server unit 3 related to file access in case of receiving the above messages are now described.

When the GetResource message arrives, the external message interface part 101 in the server unit 3 informs the resource allocation part 102 of this arrival. The resource allocation part 102 instructs the internal message interface part 107 to transmit a resource allocation request for the file manager 2. When the resource allocation request arrives at the file manager 2, the resource management part 202 determines whether or not the resource allocation request is acceptable, and transmits the result to the server unit 3. The resource allocation part 102 in the server unit 3 reserves a resource.

When the FileOpen message arrives, the server unit 3 acquires data storage position information in the file from the storage unit 108, and shifts to a file-accessible state.

When the ReadBlock message arrives, the slot allocation part 103 in the server unit 3 allocates the reserved resource, and reads required data.

When the WriteBlock message arrives, the slot allocation part 103 in the server unit 3 allocates the reserved resource, and writes required data.

FIG. 4 illustrates the relation between reservation and allocation of resources and data read operations. With reference to FIG. 4, the operations of the file system for reserving and allocating resources and reading/writing data are now described. Media segment (MS) arrival slots employed for reservation and allocation of the resources and write slots are first described, followed by description of the operations of the file system.

(1) MS Arrival Slots

In this file system, a concept of "MS arrival slots" divided every several 10 msec. is employed. Referring to FIG. 4, a line 801 indicates that the time is divided into MS arrival slots to be managed. As to data reading, required data is divided into data blocks (MS blocks) of fixed lengths, so that a block read request is transmitted to the storage unit 108 or another server unit every MS block, for reading the data. When a certain server unit transmits a block read request to another server unit, an MS arrival slot is allocated. A maximum value is set for the number of block read requests which can be allocated to a single slot. According to this file system, MS arrival slots are reserved as to a user whose block read requests are accepted, in order to guarantee stream provision to the user. The MS arrival slots allocated to the block read requests are selected from the reserved MS arrival slots. The operation of reserving the MS arrival slots is performed every constant period. Parameters forming the "MS arrival slots" are as follows:

T_slt: time interval between slots

Nmax1: number of requests allocatable to each slot

T_rsvMS: interval between operations for reserving arrival slots.

Referring to FIG. 4, numeral 802 denotes the interval T_slt. FIG. 5 shows an exemplary MS arrival slot management table for managing the states of the MS arrival slots. As shown in FIG. 5, the MS arrival slot management table has "slot numbers" for identifying the slots, "reserved user numbers" for identifying presence/absence of slot reservation and the reserving users, "allocation request numbers" for identifying whether or not block read requests are allocated and the allocated requests, and "non-preferential flags" for identifying whether or not non-preferential block read requests may be allocated. A user having a resource allocated by a GetResource message utilizes the preserved slot. With respect to a user requiring block reading with no resource allocation, on the other hand, non-preferential flags are referred to so that an allocatable slot is allocated in case of block reading.

(2) Write Slots

As to block writing, a concept "write slots" is employed. In each server unit 3, a write slot is provided for every destination server unit. Data arriving with a WriteBlock command from the exterior is divided into data blocks (MS blocks) of fixed lengths so that its destination is decided in accordance with a space area list of the storage unit 108, and transmitted as a block write request. The write slot of the destination server unit is invariably allocated to the block write request. FIG. 6 shows an exemplary write slot management table managing states of write slots. As shown in FIG. 6, the write slot management table has "destination unit numbers" for identifying the destination server units, "slot numbers" for specifying the write slots, and "allocated request identification numbers" for identifying presence/absence of requests allocated to the slots and the allocated requests as information.

(3) Resource Management for Every User

In the server unit 3, a "stream management table" manages users whose GetResource messages are accepted with reference to reading and writing and in order of ensured bands (from large to small bands). Due to the ensured band, each user can read a single or a plurality of files. FIG. 7 shows an exemplary stream management table. This stream management table is managed by the resource allocation part 102 in each server unit 3. The "stream management table" has the items shown in FIG. 7 as information, in order to manage the situation of resource acquisition for every user. Referring to FIG. 7, "resource descriptors" are identifiers allocated at every acceptance of a GetResource message. The "stream management table" stores "read or write" for identifying whether the message is for reading or writing and an average reservation interval between slots necessary for providing the request band of every "resource descriptor". Further, the "stream management table" has items such as "ensured file system internal bands" and "currently usable file system internal bands" for storing the quantity of currently unused bands among the ensured bands as information.

(4) Resource Acquisition Acceptance Control

Resource acquisition acceptance control is adapted to determine whether or not each GetResource message from the exterior is acceptable and return the result of the determination to the exterior. This determination is made in the resource management part 202 on the basis of parameters declared by the message. Each GetResource message has the following declared parameters:

read or write

a minimum read/write interval T of the block

a delay request value D_lim from arrival of a ReadBlock message to block transmission

FIG. 8 is a block diagram showing a more detailed structure of the resource management part 202 shown in FIG. 3. Referring to FIG. 8, the resource management part 202 includes a declared parameter processing part 401, a write band calculation part 402, an acceptance determination part 403, and a resource storage part 404. The declared parameter processing part 401 replaces parameters declared by a command with numerical values necessary for acceptance determination. The write band calculation part 402 calculates a write band. The acceptance determination 403 determines whether or not each message is acceptable. The resource storage part 404 stores current resource use situations and a maximum value of providable resources.

The declared parameter processing part 401 first obtains a value T_max satisfying the following expression (1) on the basis of the delay request value D_lim:

D_lim=D_net+D.sub.-- dsk_min+2.times.T_max (1)

In the above expression (1), D_net represents an allowable delay value in the exchange unit 1, and D_dsk_min represents the minimum value of limit delay values in the storage unit 108. In case of comparing T_max with T, the smaller one is assumed to be T_min.

The declared parameter processing part 401 calculates the necessary band width from the value T_min. In case of reading, the declared parameter processing part 401 informs the acceptance determination part 403 of the calculated band width. In case of writing, on the other hand, the declared parameter processing part 401 employs the declared value as the band of an inlet/outlet in/from the exchange unit 1 from/in the server unit 3, and obtains a numerical value (calculated by the write band calculation part 402) by multiplying the declared value by a constant value decided for every storage unit as a peak provision speed. The acceptance determination part 403 determines whether or not the total sum of acquired resources is not more than a constant level in case of accepting GetResource messages on inlet and outlet sides from and in the exchange unit 1 in and from the server unit 3 and the storage unit 108. If the messages are acceptable, the acceptance determination part 403 stores this information in the resource storage part 404, and adds the information to the stream management table managed by the resource allocation part 102. At this time, the information is added to a position not disturbing the description order (the order from smaller T_min to larger one) of the stream management table.

(5) Assurance of Read Resource

MS arrival slots are reserved to be used for users whose GetResource messages are accepted with acquisition of read resources. The MS arrival slots are reserved every constant time. The MS arrival slots between time sections T_rsv are reserved in the order (from that at a higher provision stream speed to that at a lower speed) described in the stream management table. The MS arrival slots are reserved in accordance with respective set values T_min. Referring to FIG. 4, reference numerals 803 to 806 denote timings for reservation, and reference numeral 807 denotes the time section T_rsv. A method of deciding the reserved slots is now described.

1) Slots are selected at the time intervals T_min as to each user, and the respective ones of the selected slots are assumed to be expected slots.

2) At the timings 803 to 806, reserved expected slots are decided within the time section T_rsv at the time intervals T_min.

3) If the expected slots are reservable, the slots are reserved.

4) If the expected slots are unreservable, slots next to the expected slots are referred to. If the referred slots are reservable, these slots are reserved. If these slots are unreservable, on the other hand, next slots are referred to. This operation is repeated.

5) If the process is out of the reservation section, slots in the next time section T_rsv are reserved in accordance with the above rule.

Referring to FIG. 4, reference numerals 808 to 820 denote expected slots for reservation. Reference numerals 821 to 833 denote actually reserved slots. When a GetResource command is newly accepted, slot reservation in an already reserved section is immediately performed in accordance with the set value T_min. It is assumed that the method of slot reservation is identical to the aforementioned one. As to MS arrival slots not reserved at a time when reserving operations have been made as to all users, the non-preferential flags shown in FIG. 5 are brought into ON states.

The MS arrival slots may be reserved in the order from the MS arrival slot whose next expected slot arrives with earlier timing. In this case, the information relating to the users who accept GetResource messages is described in the stream management table in the order from the information in which next expected slot arrives with earlier timing. The order of the description in the stream management table is updated when the MS arrival slots are reserved.

(6) Block Read Operation

When a ReadBlock message arrives from the exterior, the declared value management part 111 is informed of this through the message interface part 101. The ReadBlock message has the following declared parameters:

resource descriptor

block read interval

delay request value D_lim from arrival of ReadBlock message to block transmission file identifier

position information in the file

The declared value management part 111 checks whether or not a block acquisition request interval by the ReadBlock command from the user corresponds to a declaration by the GetResource message. A request arrival time of the block is set by adding a delay request value provided to the command to the arrival time of the ReadBlock command. The declared value management part 111 checks whether or not the interval of the block request arrival time corresponds to the declared value. In case of violation, a violation notice is issued. Further, the declared value management part 111 confirms that the delay request value is not too small. Assuming that D_net represents an allowable delay value in the exchange unit 1 and D_dsk_min represents a minimum limit delay value at the storage unit 108, the declared value management part 111 makes a violation notice to the user if the following expression (2) holds:

D_lim<D_net+D.sub.-- dsk_min+2.times.T_min (2)

If the declaration by the GetResource message is satisfied, on the other hand, the slot allocation part 103, the address retrieval part 104 and the external network I/O control part 106 are informed of the arrival of the ReadBlock message. The slot allocation part 103 decides a block read request transmission interval so that data blocks can be continuously provided in a required band. Due to the block read request transmission, an interval (MS arrival interval) for acquiring MS blocks is averaged. When a block read request transmission time is reached, allocation of MS arrival slots and limit delay value calculation are performed on the basis of delay request values of respective commands.

In case of destination to the same server unit, no slot allocation is performed. A delay limit value D_dsk provided to the block read request is defined as follows:

D.sub.-- dsk=D_lim (3)

In case of destination to another server unit, on the other hand, the allocated slot is selected in the following method: It is assumed that T_req represents the time for transmitting the block read request. The slot reserved for this user is allocated in a time T satisfying the following expression (4). If a plurality of slots are reserved, the earliest time is selected.

T_req+D_lim-2.times.T_min<t