U.S. patent application number 10/303014 was filed with the patent office on 2003-04-17 for file system.
Invention is credited to Doi, Shinzo, Ito, Yukiko, Karibe, Tomoyuki, Kokado, Takeshi, Tamai, Masaaki, Tanaka, Tsutomu.
Application Number | 20030074374 10/303014 |
Document ID | / |
Family ID | 27527060 |
Filed Date | 2003-04-17 |
United States Patent
Application |
20030074374 |
Kind Code |
A1 |
Karibe, Tomoyuki ; et
al. |
April 17, 2003 |
File system
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.
Inventors: |
Karibe, Tomoyuki; (Neyagawa,
JP) ; Kokado, Takeshi; (Kyoto, JP) ; Ito,
Yukiko; (Moriguchi, JP) ; Tanaka, Tsutomu;
(Nishinomiya, JP) ; Tamai, Masaaki; (Moriguchi,
JP) ; Doi, Shinzo; (Hirakata, JP) |
Correspondence
Address: |
WENDEROTH, LIND & PONACK
Suite 800
2033 "K" Street N.W.
Washington
DC
20006-1021
US
|
Family ID: |
27527060 |
Appl. No.: |
10/303014 |
Filed: |
November 25, 2002 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
10303014 |
Nov 25, 2002 |
|
|
|
09412360 |
Oct 5, 1999 |
|
|
|
09412360 |
Oct 5, 1999 |
|
|
|
09106176 |
Jun 29, 1998 |
|
|
|
6453316 |
|
|
|
|
09106176 |
Jun 29, 1998 |
|
|
|
08738495 |
Oct 28, 1996 |
|
|
|
Current U.S.
Class: |
1/1 ; 348/E5.008;
348/E7.073; 707/999.107 |
Current CPC
Class: |
H04N 21/2402 20130101;
H04N 21/23805 20130101; H04N 21/2393 20130101; H04N 21/2401
20130101; H04N 21/440281 20130101; H04N 21/6587 20130101; H04N
7/17336 20130101; H04N 21/234381 20130101; Y10S 707/99938 20130101;
H04N 21/23406 20130101 |
Class at
Publication: |
707/104.1 |
International
Class: |
G06F 007/00 |
Foreign Application Data
Date |
Code |
Application Number |
Oct 26, 1995 |
JP |
278799/1995 |
Oct 26, 1995 |
JP |
278813/1995 |
Oct 26, 1995 |
JP |
278814/1995 |
May 20, 1996 |
JP |
125146/1996 |
Aug 13, 1996 |
JP |
213556/1996 |
Claims
What is claimed is:
1. A server unit being connected with a plurality of terminals
through wire or radio transmission paths for retrieving and reading
corresponding data from data being stored therein when a data read
request is sent from any of said terminals and transmitting said
read data to said terminal issuing said read request, said server
unit comprising: a data storage part storing various data and being
accessible at random in response to read requests from said
terminals; an input/output part for controlling input/output of
said data between said data storage part and each said terminal; an
exchange part for exchanging said data between said input/output
part and said data storage part; and a resource management part for
managing resources being necessary in case of reading data being
required by said terminals from said data storage part and
outputting the same to said terminals, wherein said resource
management part separating said resources of overall said server
unit to resources (preferential resources) being employed for
outputting data (preferential data) for which continuity must be
guaranteed to said terminals and resources (non-preferential
resources) being employed for outputting data (non-preferential
data) for which no continuity may be guaranteed to said terminals
to manage the same.
2. The server unit according to claim 1, wherein each said terminal
is divided into a plurality of groups, said input/output part
includes a plurality of I/O units being provided every said group
of said terminal, each said I/O unit includes: a preferential
input/output control part executing input/output control with
respect to a command requiring reading of said preferential data
being sent from said terminal of corresponding said group; and a
non-preferential input/output control part executing input/output
control with respect to a command requiring reading of said
non-preferential data being sent from said terminal of
corresponding said group, said data storage part includes: a
plurality of storage units; and a plurality of MSFSs being
connected with each said storage unit for controlling reading of
data from said storage unit, and said non-preferential input/output
control part includes: a command queue for temporarily storing
commands requiring reading of said non-preferential data being sent
from said terminals of corresponding said group; a command queue
control part for fetching said commands from said command queue; a
command transmission part for transmitting said commands being
fetched by said command queue control part to corresponding
destination of said MSFSs; a data buffer part for temporarily
storing said non-preferential data being read from said storage
units by said MSFSs; and a data transmission part for transmitting
said non-preferential data being stored in said data buffer part to
said terminals.
3. The server unit according to claim 2, wherein said command queue
is provided in correspondence to each of a plurality of terminals
belonging to corresponding said group for storing said commands
from corresponding said terminal in order of arrival, said command
queue control part executes command fetch processing which selects
single said command queue storing said commands from a plurality of
said command queues while fetching a command being stored in the
head of the command queue and a command being transmitted to the
same MSFS and outputs the same to said command transmission part,
said command transmission part: transmits said commands being
received from said command queue control part to said MSFSs for
executing the same; and transmits a receiving completion notice to
said command queue control part when the same confirms that said
data buffer part receives all read data for said transmitted
commands from said MSFSs, and said command queue control part
repeatedly executes said command fetch processing every time the
same receives said receiving completion notice from said command
transmission part.
4. The server unit according to claim 3, wherein said command queue
control part limits a number of said commands being fetched from
single said command queue to not more than a predetermined constant
number in single said command fetch processing.
5. The server unit according to claim 3, wherein said
non-preferential input/output control part further includes a
buffer management part for managing a used state of said data
buffer part, and said command queue control part decides said
command queue being selected for said command fetch processing on
the basis of said 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 for counting untransmitted data number being stored in
said data buffer part every said terminal, and said command queue
control part refers to said used quantity counters of said buffer
management part before executing said command fetch processing to
select a command queue corresponding to a terminal having a minimum
untransmitted data number as a target of said command fetch
processing.
7. The server unit according to claim 3, wherein said command
transmission part transmits a command being received from said
command queue control part to said MSFS after reserving an area for
storing said non-preferential data being read by said MSFS in said
data buffer part, and stops transmission of said commands to said
MSFS until said area for storing said non-preferential data can be
reserved in said data buffer part if said area cannot be
reserved.
8. The server unit according to claim 2, wherein said command queue
control part decides cycles for outputting said commands to said
command transmission part on the basis of a smaller one of a
communication band serving as a non-preferential resource for each
said I/O unit for outputting data to each said terminal and a
communication band serving as a non-preferential resource for each
said I/O unit for receiving said non-preferential data being read
from said data storage part.
9. The server unit according to claim 2, wherein said command
transmission part includes: a plurality of transmission queues
being provided in correspondence to respective said MSFSs for
storing said commands being received from said command queue
control part for respective said MSFSs; and a plurality of
processing number counters being provided in correspondence to
respective ones of said transmission queues, being incremented
every transmission of said commands from corresponding said
transmission queues to said MSFSs and being decremented every
arrival of data being read from corresponding said MSFSs at said
data buffer part, thereby counting the number of said
non-preferential data not yet arriving at said data buffer part,
and said command transmission part limits the number of said
commands being transmitted from respective said transmission queues
to said MSFSs so that said number of unarriving non-preferential
data being 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 said terminals as said 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 previously fixedly allocates parts of said
resources of overall said server unit as said preferential
resources while allocating the remaining parts as said
non-preferential resources.
13. The server unit according to claim 1, wherein said resource
management part changes a quantity being allocated as said
preferential resources among said resources of overall said server
unit in response to read requests for said preferential data from
said terminals.
14. The server unit according to claim 13, wherein said resource
management part allocates all resources, which are not allocated as
said preferential resources, among said resources of overall said
server unit as said non-preferential resources while allocating
preferential resources from resources being allocated as said
non-preferential resources in such a range that the quantity of
said non-preferential resources is not below a prescribed resource
quantity when it is necessary to increase said preferential
resources.
15. 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 the data being acquired from said data storage
units in accordance with said data acquisition request to said
user, said file system comprising: a data acquisition part for
successively acquiring data from said data storage unit in order
from a position being specified by said data transmission request
continuously at a specified speed; a buffer for storing said data
being acquired by said data acquisition part from said data storage
unit; a buffer management part for performing operation of said
data being stored in said buffer and management of a data quantity;
a data transmission part for successively reading said data being
stored in said buffer in order being specified by said data
transmission request continuously at a specified transmission speed
and transmitting the same to said user; and a pause control part
for receiving a pause request and a pause release request from said
user for controlling said data transmission part, said data
acquisition part and said buffer management part, wherein said
pause control part is adapted: to control said data transmission
part to immediately stop data transmission while controlling said
data acquisition part to immediately stop data acquisition in case
of receiving said pause request from said user; and to control said
data transmission part to resume data transmission successively in
order from a head of said data being stored in said buffer after
pause processing while controlling said data acquisition part to
resume data acquisition successively in order from data being next
to the last of said data being stored in said buffer after said
pause processing in case of receiving said pause release request
from said user.
16. The file system according to claim 15, wherein said pause
control part substitutes a data acquisition resume time trd for
making said data acquisition part resume data acquisition, a
quantity N of said data being stored in said buffer after said
pause processing, a data transmission speed V after pause release
and a time D being required by said data acquisition part for data
acquisition in the following expression (a) in case of receiving
said pause release request from said user, thereby calculating a
data transmission resume time tsd for making said data transmission
part resume data transmission:tsd=trd+D-N/V (a)
17. The file system according to claim 15, wherein said pause
control part substitutes a data transmission resume time tsd for
making said data transmission part resume data transmission, a
quantity N of said data being stored in said buffer after said
pause processing, a data transmission speed V after pause release
and a time D being required by said data acquisition part for data
acquisition in the following expression (b) in case of receiving
said pause release request from said user, thereby calculating a
data acquisition resume time trd for making said data acquisition
part resume data acquisition:trd=tsd+N/-D (b)
18. The file system according to claim 15, wherein when receiving
said pause release request from said user, said pause control part:
determines whether or not a quantity of said data being stored in
said buffer after pause processing is greater than a limit data
quantity being transmittable at a data transmission speed after
pause release during a time being required by said data acquisition
part for data acquisition; and controls said buffer management part
to delete parts of data exceeding said limit data quantity if said
data quantity is greater than said limit data quantity as a result
of said determination, thereby deciding a head position of said
data being acquired by said data acquisition part after pause
release.
Description
[0001] This is a divisional of Ser. No. 09/412,360, filed Oct. 5,
1999, pending, which is a divisional of Ser. No. 09/106,176, filed
Jun. 29, 1998, U.S. Pat. No. 6,453,316, which is a divisional of
Ser. No. 08/738,495, filed Oct. 28, 1996, abandoned.
BACKGROUND OF THE INVENTION
[0002] 1. Field of the Invention
[0003] The present invention relates to a file system, and more
specifically, it relates to a file system handling reading/writing
of multimedia data such as pictures, sounds and animation requiring
real-time properties.
[0004] 2. Description of the Background Art
[0005] 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 UNIX
file system.
[0006] Such file systems include video servers handling digitized
video data, for example. Such video servers include that 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". In order to stop supply of the
video data, the user transmits "DSM Stream Pause" to the video
server.
[0007] In the conventional file system such as UNIX, 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 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
[0008] 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.
[0009] The present invention has the following characteristics to
attain the above object.
[0010] 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:
[0011] a resource management part for managing the maximum value of
read or write handling capacity and a used quantity of the handling
capacity, and
[0012] the resource management part is adapted:
[0013] to receive a get resource message previously requiring
assurance of a necessary band in case of reading or writing the
data;
[0014] 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
[0015] to update and store the used quantity if the required band
can be ensured as a result of the determination.
[0016] 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.
[0017] The second aspect is characterized in that, in the first
aspect,
[0018] information indicating a necessary band width is given to
the get resource message as a parameter.
[0019] The third aspect is characterized in that, in the second
aspect,
[0020] 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.
[0021] The fourth aspect is characterized in that, in the first
aspect,
[0022] the band width which is ensured in accordance with the
request by the get resource message is previously stored in the
resource management part.
[0023] The fifth aspect is characterized in that, in the fourth
aspect,
[0024] information for identifying whether the get resource message
is for reading or writing is given to the get resource message,
and
[0025] 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.
[0026] The sixth aspect is characterized in that, in the first
aspect,
[0027] 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
[0028] the resource management is adapted:
[0029] to previously store a minimum value of a delay time which is
warrantable by the file system;
[0030] to compare the first delay time with the minimum value when
the get resource message is received; and
[0031] to ensure no band if the first delay time is shorter than
the minimum value as a result of the comparison.
[0032] The seventh aspect is characterized in that,
[0033] 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
[0034] the declared value management part is adapted:
[0035] 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;
[0036] to compare the second delay time with the first delay time
when the read block message is received; and
[0037] 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.
[0038] The eighth aspect is characterized in that,
[0039] 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
[0040] the declared value management part is adapted:
[0041] to store a minimum value of a delay time which is
warrantable by the file system;
[0042] 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;
[0043] to compare the second delay time with the minimum time when
the read block message is received; and
[0044] 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.
[0045] The ninth aspect is characterized in that, in the first
aspect,
[0046] 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
[0047] the resource management part is adapted:
[0048] to calculate a band width which is necessary for satisfying
the delay time when the get resource message is received; and
[0049] 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.
[0050] 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.
[0051] The tenth aspect is characterized in that,
[0052] 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
[0053] the declared value management part is adapted in data
writing:
[0054] to monitor a speed of data arrival;
[0055] 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
[0056] 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.
[0057] The eleventh aspect is characterized in that,
[0058] 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
[0059] the declared value management part is adapted:
[0060] to receive a read block message which provided with a read
data quantity per unit time as the parameter in data reading;
[0061] to calculate a data read speed from the data quantity per
unit time when the read block message is received;
[0062] to compare the data read speed obtained by the calculation
and the band width ensured when the get resource message is
accepted; and
[0063] 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.
[0064] The twelfth aspect is characterized in that, in the first
aspect,
[0065] each of the maximum value and the used quantity of the
handling capacity is a read data quantity per unit time.
[0066] The thirteenth aspect is characterized in that, in the
twelfth aspect,
[0067] 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
[0068] 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.
[0069] The fourteenth aspect is characterized in that, in the first
aspect,
[0070] each of the maximum value and the used quantity of the
handling capacity is a write data quantity per unit time.
[0071] The fifteenth aspect is characterized in that, in the
fourteenth aspect,
[0072] 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
[0073] 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.
[0074] 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.
[0075] 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
[0076] each I/O unit is adapted:
[0077] to set an 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;
[0078] to allocate the MS arrival slot to the block read request in
case of transmitting the block read request;
[0079] 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
[0080] 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,
[0081] 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.
[0082] 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.
[0083] The seventeenth aspect is characterized in that,
[0084] 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.
[0085] The eighteenth aspect is characterized in that, in the
sixteenth aspect,
[0086] 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.
[0087] The nineteenth aspect is characterized in that,
[0088] 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,
[0089] the resource management part is adapted:
[0090] to receive a get resource message previously requiring
assurance of a necessary band in case of performing data reading or
data writing;
[0091] 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
[0092] to update and store the used quantity if the required band
can be ensured as a result of the determination, and
[0093] each I/O unit is adapted:
[0094] 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;
[0095] to reserve the expected slot if a free space is present in
the decided expected slot;
[0096] 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
[0097] to allocate the block read request to the reserved MS
arrival slot in case of data reading.
[0098] 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.
[0099] The twentieth aspect is characterized in that, in the
nineteenth aspect,
[0100] 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.
[0101] 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.
[0102] The twenty-first aspect is characterized in that, in the
nineteenth aspect,
[0103] 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.
[0104] The twenty-second aspect is characterized in that, in the
nineteenth aspect,
[0105] 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.
[0106] The twenty-third aspect is characterized in that, in the
nineteenth aspect,
[0107] 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.
[0108] 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.
[0109] The twenty-fourth aspect is characterized in that,
[0110] the first aspect further comprises:
[0111] a single or a plurality of block storage units storing
data;
[0112] a single or a plurality of I/O units controlling data
writing or data reading in response to a request from a user;
and
[0113] an exchange unit for connecting each block storage unit with
each I/O unit, and
[0114] each I/O unit is adapted:
[0115] 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
[0116] 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.
[0117] 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.
[0118] 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:
[0119] 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.
[0120] 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.
[0121] 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:
[0122] 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.
[0123] 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.
[0124] 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:
[0125] 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.
[0126] 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.
[0127] 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:
[0128] a band management part for managing bands provided in the
respective storage units;
[0129] a capacity management part for managing storage capacities
provided in the respective storage units;
[0130] 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;
[0131] 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;
[0132] 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;
[0133] 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
[0134] 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.
[0135] 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.
[0136] The twenty-ninth aspect is characterized in that, in the
twenty-eighth aspect,
[0137] 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.
[0138] The thirtieth aspect is characterized in that, in the
twenty-eighth aspect,
[0139] 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.
[0140] The thirty-first aspect is characterized in that, in the
twenty-eighth aspect,
[0141] 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.
[0142] 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.
[0143] The thirty-second aspect is characterized in that, in the
twenty-ninth aspect,
[0144] 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.
[0145] The thirty-third aspect is characterized in that, in the
twenty-eighth aspect,
[0146] 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.
[0147] The thirty-fourth aspect is a file system for
inputting/outputting file data in/from a plurality of storage
units, which comprises:
[0148] a file attribute management part for defining as file
attributes and managing band characteristics; and
[0149] 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.
[0150] 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.
[0151] The thirty-fifth aspect is characterized in that,
[0152] 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.
[0153] The thirty-sixth aspect is a file system for
inputting/outputting file data in/from a plurality of storage
units, which comprises:
[0154] a file open processing part for performing file open
processing;
[0155] a band acquisition part for performing acquisition of a band
employed for inputting/outputting the file data; and
[0156] 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.
[0157] The thirty-seventh aspect is a file system for
inputting/outputting file data in/from a plurality of storage
units, which comprises:
[0158] a file open processing part for performing file open
processing;
[0159] a band acquisition part for performing acquisition of a band
employed for inputting/outputting the file data; and
[0160] 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.
[0161] 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.
[0162] 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:
[0163] first queue for queuing service requests from the plurality
of clients;
[0164] a registration part for registering cycles for generating
execution rights for the plurality of clients;
[0165] 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
[0166] 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.
[0167] 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.
[0168] 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.
[0169] The thirty-ninth aspect is characterized in that, in the
thirty-eighth aspect,
[0170] 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.
[0171] 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.
[0172] The fortieth aspect is characterized in that, in the
thirty-ninth aspect,
[0173] 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.
[0174] Thus, it is possible to determine whether or not execution
rights for the respective clients are generated.
[0175] The forty-first aspect is characterized in that, in the
fortieth aspect,
[0176] 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).
[0177] 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.
[0178] The forty-second aspect is characterized in that, in the
forty-first aspect,
[0179] 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).
[0180] 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.
[0181] The forty-third aspect is characterized in that, in the
forty-first aspect,
[0182] 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.
[0183] 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.
[0184] The forty-fourth aspect is characterized in that, in the
forty-third aspect,
[0185] 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).
[0186] 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.
[0187] The forty-fifth aspect is characterized in that, in the
thirty-ninth aspect,
[0188] 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.
[0189] 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.
[0190] The forty-sixth aspect is characterized in that, in the
forty-fifth aspect,
[0191] 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
[0192] the execution instruction part selects an execution right to
be preferentially processed among those generated by the execution
right generation part.
[0193] 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.
[0194] The forty-seventh aspect is characterized in that, in the
forty-sixth aspect,
[0195] 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
[0196] the execution instruction part selects an execution right
having a smaller evaluation index Nsft provided thereto.
[0197] Thus, when execution rights compete with each other, that
having a shorter cycle for generating the execution right can be
selected.
[0198] The forty-eighth aspect is characterized in that, in the
forty-seventh aspect,
[0199] 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.
[0200] Thus, execution rights for all clients are not provided with
the same evaluation indices.
[0201] The forty-ninth aspect is characterized in that, in the
forty-seventh aspect,
[0202] 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.
[0203] Thus, more detailed evaluation indices are provided to the
execution rights for the respective clients.
[0204] The fiftieth aspect is characterized in that, in the
forty-sixth aspect,
[0205] 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.
[0206] 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.
[0207] The fifty-first aspect is characterized in that, in the
forty-sixth aspect,
[0208] 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.
[0209] 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.
[0210] The fifty-second aspect is characterized in that, in the
fifty-first aspect,
[0211] 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.
[0212] Thus, it is possible to make execution instruction not
performed beyond the maximum number.
[0213] The fifty-third aspect is characterized in that, in the
forty-seventh aspect,
[0214] 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.
[0215] 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.
[0216] The fifty-fourth aspect is characterized in that, in the
fifty-third aspect,
[0217] 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.
[0218] Thus, it is possible to make execution instruction not
performed beyond the maximum number.
[0219] The fifty-fifth aspect is characterized in that,
[0220] 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.
[0221] Thus, it is possible to make the cycles for generating
execution rights registered in the registration part at need.
[0222] The fifty-sixth aspect is characterized in that, in the
fifty-fifth aspect,
[0223] 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.
[0224] 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 ofwhich 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.
[0225] 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:
[0226] a first queue for queuing service requests to the plurality
of servers;
[0227] a registration part for registering cycles for generating
execution rights for the plurality of servers;
[0228] 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
[0229] 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.
[0230] 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.
[0231] 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.
[0232] The fifty-eighth aspect is characterized in that, in the
fifty-seventh aspect,
[0233] 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.
[0234] 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.
[0235] The fifty-ninth aspect is characterized in that, in the
fifty-eighth aspect,
[0236] 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.
[0237] Thus, it is possible to determine whether or not execution
rights for the respective servers are generated.
[0238] The sixtieth aspect is characterized in that, in the
fifty-eight aspect,
[0239] 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).
[0240] 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.
[0241] The sixty-first aspect is characterized in that, in the
sixtieth aspect,
[0242] 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).
[0243] According to the sixty-first aspect, as hereinabove
described, the execution right generation part repeats the
operation offurther 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.
[0244] The sixty-second aspect is characterized in that, in the
sixtieth aspect,
[0245] 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.
[0246] 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.
[0247] The sixty-third aspect is characterized in that, in the
sixty-second aspect,
[0248] 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).
[0249] 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.
[0250] The sixty-fourth aspect is characterized in that, in the
fifty-eighth aspect,
[0251] 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.
[0252] 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.
[0253] The sixty-fifth aspect is characterized in that, in the
sixty-fourth aspect,
[0254] 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.
[0255] 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.
[0256] The sixty-sixth aspect is characterized in that, in the
sixty-fifth aspect,
[0257] 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
[0258] the execution instruction part selects an execution right
having a smaller evaluation index Nsft which is provided
thereto.
[0259] Thus, when execution rights compete with each other, that
execution right having a shorter cycle for generating the execution
right can be selected.
[0260] The sixty-seventh aspect is characterized in that, in the
sixty-sixth aspect,
[0261] 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.
[0262] Thus, execution rights for all clients are not provided with
the same evaluation indices.
[0263] The sixty-eighth aspect is characterized in that, in the
sixty-sixth aspect,
[0264] 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.
[0265] Thus, more detailed evaluation indices are provided to the
execution rights for the respective servers.
[0266] The sixty-ninth aspect is characterized in that, in the
sixty-fifth aspect,
[0267] 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.
[0268] 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.
[0269] The seventieth aspect is characterized in that, in the
sixty-fifth aspect,
[0270] 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.
[0271] 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.
[0272] The seventy-first aspect is characterized in that, in the
seventieth aspect,
[0273] 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.
[0274] 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.
[0275] The seventy-second aspect is characterized in that, in the
sixty-sixth aspect,
[0276] 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.
[0277] 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.
[0278] The seventy-third aspect is characterized in that, in the
seventy-second aspect,
[0279] 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.
[0280] 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.
[0281] The seventy-fourth aspect is characterized in that,
[0282] 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.
[0283] Thus, it is possible to make the registration part
register/update the cycles for generating execution rights at
need.
[0284] The seventy-fifth aspect is characterized in that, in the
seventy-fourth aspect,
[0285] 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.
[0286] 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.
[0287] The seventy-sixth aspect is characterized in that, in the
seventy-fourth aspect,
[0288] 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.
[0289] 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.
[0290] The seventy-seventh aspect is characterized in that, in the
seventy-sixth aspect,
[0291] 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.
[0292] 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.
[0293] The seventy-eighth aspect is characterized in that, in the
seventy-fourth aspect,
[0294] 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.
[0295] 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.
[0296] The seventy-ninth aspect is characterized in that, in the
seventy-fourth aspect,
[0297] 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.
[0298] 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.
[0299] 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:
[0300] a data storage part storing various data and being
accessible at random in response to read requests from the
terminals;
[0301] an input/output part for controlling input/output of the
data between the data storage part and each terminal;
[0302] an exchange part for exchanging the data between the
input/output part and the data storage part; and
[0303] 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
[0304] 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.
[0305] 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.
[0306] The eighty-first aspect is characterized in that, in the
eightieth aspect,
[0307] each terminal is divided into a plurality of groups,
[0308] the input/output part includes a plurality of I/O units
provided every group of the terminal,
[0309] each I/O unit includes:
[0310] 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
[0311] 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,
[0312] the data storage part includes:
[0313] a plurality of storage units; and
[0314] a plurality of MSFSs connected with each storage unit for
controlling reading of data from the storage unit, and
[0315] the non-preferential input/output control part includes:
[0316] a command queue for temporarily storing commands requiring
reading of the non-preferential data transmitted from the terminals
of the corresponding group;
[0317] a command queue control part for fetching the commands from
the command queue;
[0318] a command transmission part for transmitting the commands
fetched by the command queue control part to corresponding
destination the MSFSs;
[0319] a data buffer part for temporarily storing the
non-preferential data read from the storage units by the MSFSs;
and
[0320] a data transmission part for transmitting the
non-preferential data stored in the data buffer part to the
terminals.
[0321] The eighty-second aspect is characterized in that, in the
eighty-first aspect,
[0322] 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,
[0323] 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,
[0324] the command transmission part:
[0325] transmits the commands received from the command queue
control part to the MSFSs for executing the same; and
[0326] 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
[0327] 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.
[0328] 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.
[0329] The eighty-third aspect is characterized in that, in the
eighty-second aspect,
[0330] 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.
[0331] 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.
[0332] The eighty-fourth aspect is characterized in that, in the
eighty-second aspect,
[0333] the non-preferential input/output control part further
includes a buffer management part for managing a used state of the
data buffer part, and
[0334] 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.
[0335] The eighty-fifth aspect is characterized in that, in the
eighty-fourth aspect,
[0336] 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
[0337] 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.
[0338] 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.
[0339] The eighty-sixth aspect is characterized in that, in the
eighty-second aspect,
[0340] 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.
[0341] 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.
[0342] The eighty-seventh aspect is characterized in that, in the
eighty-first aspect,
[0343] 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.
[0344] 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.
[0345] The eighty-eighth aspect is characterized in that, in the
eighty-first aspect,
[0346] the command transmission part includes:
[0347] 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
[0348] 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
[0349] 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.
[0350] 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.
[0351] The eighty-ninth aspect is characterized in that, in the
eightieth aspect,
[0352] the resource management part manages a communication band of
the exchange part, a band for the data storage part for reading
data, and a communication band for the input/output part for
outputting data to the respective terminals as the resources.
[0353] The ninetieth aspect is characterized in that, in the
eightieth aspect,
[0354] the exchange part is formed by an ATM switch, and
[0355] a communication band serving as a non-preferential resource
of the ATM switch is ensured in an ABR mode.
[0356] 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.
[0357] The ninety-first aspect is characterized in that, in the
eightieth aspect,
[0358] 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.
[0359] The ninety-second aspect is characterized in that, in the
eightieth aspect,
[0360] 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.
[0361] 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.
[0362] The ninety-third aspect is characterized in that, in the
ninety-second aspect,
[0363] 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.
[0364] 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.
[0365] 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:
[0366] 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;
[0367] a buffer for storing the data acquired by the data
acquisition part from the data storage unit;
[0368] a buffer management part for performing operation of the
data stored in the buffer and management of a data quantity;
[0369] 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
[0370] 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
[0371] the pause control part is adapted:
[0372] 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
[0373] 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.
[0374] 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.
[0375] The ninety-fifth aspect is characterized in that, in the
ninety-fourth aspect,
[0376] 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)
[0377] 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.
[0378] The ninety-sixth aspect is characterized in that, in the
ninety-fourth aspect,
[0379] 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)
[0380] 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.
[0381] The ninety-seventh aspect is characterized in that, in the
ninety-fourth aspect,
[0382] 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
[0383] 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.
[0384] 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.
[0385] 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
[0386] FIG. 1 is a block diagram showing the structure of a file
system according to a first embodiment of the present
invention.
[0387] FIG. 2 is a block diagram showing the structure of a part
related to file access in each server unit shown in FIG. 1.
[0388] FIG. 3 is a block diagram showing the structure of a part
related to file access in a file manager shown in FIG. 1.
[0389] FIG. 4 is a diagram illustrating the relation between
reservation and allocation of resources and data read operations in
the first embodiment.
[0390] FIG. 5 is a diagram showing an exemplary MS arrival slot
management table for managing states of MS arrival slots.
[0391] FIG. 6 is a diagram showing an exemplary write slot
management table for managing states of write slots.
[0392] FIG. 7 is a diagram showing an exemplary stream management
table.
[0393] FIG. 8 is a block diagram showing a more detailed structure
of a resource management part shown in FIG. 3.
[0394] FIG. 9 is a block diagram showing the structure of a file
system according to a second embodiment of the present
invention.
[0395] FIG. 10 is a block diagram showing the structure of a file
access part in each I/O unit shown in FIG. 9.
[0396] FIG. 11 is a block diagram showing the structure of a file
access part in each block storage unit shown in FIG. 9.
[0397] FIG. 12 is a block diagram showing the structure of a file
system according to a third embodiment of the present
invention.
[0398] FIG. 13 is a block diagram showing the structure of a disk
management unit according to a fourth embodiment of the present
invention.
[0399] FIG. 14 is a diagram showing a band preferential layout of
deciding ratios for distributing data in proportion to the bands of
storage units.
[0400] FIG. 15 is a diagram showing a band preferential layout of
deciding ratios for distributing data in proportion to the
capacities of storage units.
[0401] 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.
[0402] FIG. 17 is a block diagram showing the structure of a file
system employing the disk management unit shown in FIG. 13.
[0403] FIG. 18 is a block diagram showing the structure of a
scheduling unit according to a sixth embodiment of the present
invention.
[0404] FIG. 19 is a block diagram showing the structure of a video
information providing system employing the scheduling unit shown in
FIG. 18.
[0405] 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.
[0406] FIG. 21 is a diagram showing registered contents of an
execution right generation cycle table 1812 shown in FIG. 18.
[0407] FIG. 22 is a diagram showing queuing contents of a
processing queue 1814 shown in FIG. 18.
[0408] FIG. 23 is a diagram showing queuing contents of an
execution right queue 1816 shown in FIG. 18.
[0409] FIG. 24 is a flow chart for illustrating an operation of an
execution right generation part 1813 generating an execution
right.
[0410] 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.
[0411] FIG. 26 is a block diagram showing the structure of a
scheduling unit according to a seventh embodiment of the present
invention.
[0412] FIG. 27 is a block diagram showing the structure of a video
information providing system employing the scheduling unit shown in
FIG. 26.
[0413] FIG. 28 is a diagram showing registered contents of an
execution right generation cycle table 2692 shown in FIG. 26.
[0414] FIG. 29 is a diagram showing queuing contents of a
processing queue 2694 shown in FIG. 26.
[0415] FIG. 30 is a diagram showing queuing contents of an
execution right queue 2696 shown in FIG. 26.
[0416] FIG. 31 is a diagram for illustrating operations of another
execution right queue.
[0417] 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.
[0418] FIG. 33 is a block diagram showing a more detailed structure
of an I/O unit 3207 shown in FIG. 32.
[0419] FIG. 34 is a flow chart showing operations of a command
acceptance part 3327 shown in FIG. 33.
[0420] FIG. 35 is a flow chart showing operations of a command
queue control part 3322 shown in FIG. 33.
[0421] FIG. 36 is a flow chart showing operations of a command
transmission part 3323 shown in FIG. 33.
[0422] 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.
[0423] FIG. 38 is a block diagram showing a more detailed structure
of an I/O unit 3707 shown in FIG. 37.
[0424] FIG. 39 is a flow chart showing operations of a resource
management part 3701 shown in FIG. 37.
[0425] FIG. 40 is a flow chart showing operations of a command
acceptance part 3847 shown in FIG. 38.
[0426] FIG. 41 is a flow chart showing operations of a command
queue control part 3842 shown in FIG. 38.
[0427] FIG. 42 is a flow chart showing operations of a command
transmission part 3843 shown in FIG. 38.
[0428] FIG. 43 is a block diagram showing the structure of a file
system according to a tenth embodiment of the present
invention.
[0429] 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.
[0430] 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.
[0431] 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.
[0432] 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.
[0433] 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.
[0434] 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
[0435] (First Embodiment)
[0436] 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.
[0437] 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.
[0438] 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.
[0439] 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.
[0440] 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.
[0441] In relation to file access, the following messages arrive at
the file system from the exterior:
[0442] (1) GetResource
[0443] (2) FileOpen
[0444] (3) ReadBlock
[0445] (4) WriteBlock
[0446] 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.
[0447] 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.
[0448] 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.
[0449] When the ReadBlock message arrives, the slot allocation part
103 in the server unit 3 allocates the reserved resource, and reads
required data.
[0450] When the WriteBlock message arrives, the slot allocation
part 103 in the server unit 3 allocates the reserved resource, and
writes required data.
[0451] 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. 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.
[0452] (1) MS Arrival Slots
[0453] 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:
[0454] T_slt: time interval between slots
[0455] Nmax1: number of requests allocatable to each slot
[0456] T_rsvMS: interval between operations for reserving arrival
slots.
[0457] 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.
[0458] (2) Write Slots
[0459] 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.
[0460] (3) Resource Management for Every User
[0461] 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.
[0462] (4) Resource Acquisition Acceptance Control
[0463] 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:
[0464] read or write
[0465] a minimum read/write interval T of the block
[0466] a delay request value D_lim from arrival of a ReadBlock
message to block transmission
[0467] 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.
[0468] 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)
[0469] 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.
[0470] 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.
[0471] (5) Assurance of Read Resource
[0472] 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.
[0473] 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.
[0474] 2) At the timings 803 to 806, reserved expected slots are
decided within the time section T_rsv at the time intervals
T_min.
[0475] 3) If the expected slots are reservable, the slots are
reserved.
[0476] 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.
[0477] 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.
[0478] 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.
[0479] 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.
[0480] (6) Block Read Operation
[0481] 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:
[0482] resource descriptor
[0483] block read interval
[0484] delay request value D_lim from arrival of ReadBlock message
to block transmission file identifier
[0485] position information in the file
[0486] 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)
[0487] 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.
[0488] 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)
[0489] 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.ltoreq.T_req+D_lim (4)
[0490] Assuming that t_arv represents the time of the allocated
slot and D_net represents the allowed delay value in the exchange
unit 1, the delay limit value D_dsk provided to the block read
request is obtained as follows:
D.sub.--dsk=t.sub.--arv-T_req-D.sub.--net (5)
[0491] The slot allocation part 103 instructs the request
transmission part 105 to transmit a block read request having the
limit delay time as a parameter. The slot allocation part 103
brings arrival slots which have been reserved but not allocated
into ON states. Referring to FIG. 4, arrows 834 to 838 indicate
arrival of ReadBlock messages. Reference numerals 839 to 843 denote
MS arrival slots allocated to the respective ReadBlock messages.
Arrows 844 to 848 indicate timings for instructing transmission of
block read requests. The request transmission part 105 transmits
the block read requests to destinations declared by the address
retrieval part 104. The internal message interface part 107
executes transmission of the block read requests. In each
destination server unit 3, the block read request arrives at the
internal network control part 110 through the internal message
interface part 107. The internal network control part 110
calculates the time for instructing transmission of the read MS
block on the basis of the limit delay value provided as a
parameter, and stores the same. The internal network control part
110 further instructs the storage control part 109 to read the MS
block. The storage control part 109 reads the MS block required by
the storage unit 108. The internal network I/O control part 110
allows output from the server unit 3 to the exchange unit 1 after a
time indicated by the limit delay value from the arrival of the
block read request as to the MS block read from the storage unit
108. The read MS block arrives at the external network VO control
part 106 through the internal message interface part 107. The
external network I/O control part 106 instructs transmission to the
user at a time T_req+D_lim. Referring to FIG. 4, reference numerals
849 to 853 denote timings when MS blocks arrive at the external
network I/O control parts 106, and reference numerals 854 to 858
indicates timings for transmitting MS blocks to the users.
[0492] As to a ReadBlock message not specified by a resource
descriptor, a slot having the non-preferential flag in FIG. 5 in an
ON state is allocated so that a block read request is
transmitted.
[0493] (7) Block Write Operation
[0494] As to stream data arriving with a WriteBlock command from
the exterior, the declared value management part 111 checks whether
or not the data exceeds the band ensured by the GetResource
message. In case of violation, a violation notice is issued. If the
stream data arrives within the range of the band ensured by the
GetResource message, the data is divided into MS blocks in the slot
allocation part 103 so that the destination is decided in the
address retrieval part 104, and transmitted as a block write
request. A write slot of the destination server unit 3 is
invariably allocated to the block write request in the slot
allocation part 103. The block write request is transmitted at an
allocated time.
[0495] (Second Embodiment)
[0496] FIG. 9 is a block diagram showing the structure of a file
system according to a second embodiment of the present invention.
Referring to FIG. 9, this file system comprises a file manager 901,
a plurality of I/O units 902, a plurality of block storage units
905, and an exchange unit 908.
[0497] The file manager 901 manages the overall file system.
Namely, this file manager 901 has functions similar to those of the
file manager 2 shown in FIG. 1. Each I/O unit 902 accepts a request
for file reading or writing from each user, and transmits data or a
message read from a storage unit managed by the file system to the
user. Each block storage unit 905 holds a storage unit storing data
managed by the file system, and controls data reading or writing
from the storage unit. The exchange unit 908 is connected with the
file manager 901, the respective I/O units 902 and the respective
block storage units 905, for controlling transfer of data and
messages.
[0498] The data managed by this file system are stored in the
storage units provided in the block storage units 905. FIG. 10
shows the structure of a file access part in each I/O unit 902.
Functions of the respective blocks shown in FIG. 10 are similar to
those of the blocks of the same names in FIG. 2. FIG. 11 shows the
structure of a file access part in each block storage unit 905.
Functions of the respective blocks shown in FIG. 11 are also
similar to those of the blocks of the same names in FIG. 2. Namely,
each I/O unit 902 and each block storage unit 905 cooperate with
each other, to serve a function similar to that of each server unit
3 shown in FIG. 1.
[0499] (Third Embodiment)
[0500] FIG. 12 is a block diagram showing the structure of a file
system according to a third embodiment of the present invention.
Referring to FIG. 12, this file system comprises a message
interface part 1201, a resource management part 1202, a read/write
control part 1203, a storage unit 1204, and a declared value
management part 1205.
[0501] The message interface part 1201 controls
transmission/receiving of messages to/from users. The resource
management part 1202 manages used situations of resources. The
read/write control part 1203 controls reading and writing from and
in the storage unit 1204. The storage unit 1204 stores data. The
declared value management part 1205 checks parameters of read and
write messages. Similarly to the aforementioned first embodiment,
resources are ensured by GetResource messages also in the file
system shown in FIG. 12. The resource management part 1202 manages
an accessible quantity to the storage unit 1204 and the current
used quantity.
[0502] While the present invention has been described with
reference to some embodiments, the present invention is not
restricted to the aforementioned embodiments, as a matter of
course. For example, the following matters also hold for the
present invention:
[0503] (1) The names of the messages are mere examples, and the
messages are not restricted to the names employed in the respective
embodiments. The order of issuance thereof is not defined
either.
[0504] (2) The parameters for the respective messages are mere
examples of related parts, and not restrictive. When a band width
ensured by a GetResource message is previously determined, for
example, the value T may not be provided as a parameter but may be
stored in the system.
[0505] (3) The storage unit 108 may be physically separated into a
plurality of parts.
[0506] (4) While the maximum handling capacity and the used
quantity are assumed to be the read data quantity per unit time as
to the resource management part 202, the present invention is not
restricted to this method. A method of assuming these to be a write
data quantity per unit time, or a method of setting maximum values
for reading and writing independently of each other is also
conceivable.
[0507] According to each of the first to third embodiments, a band
in the file system is ensured when each GetResource message is
received, whereby delay quality can be guaranteed as to reading and
writing of files. Reading or writing of a plurality of files is
implemented with the ensured band, whereby the resources in the
file system can be effectively utilized with no necessity for
ensuring waste bands.
[0508] A band obtained by multiplying a request band by a constant
value is ensured in writing, whereby the handling capacity of the
file system may not be previously divided into those for writing
and reading but the ratio can be readily changed in response to a
request from a user, and the resources can be efficiently used.
[0509] Further, the bands are allocated by determining whether or
not a larger one of a band satisfying a delay time declared by
every GetResource message and a band to be ensured in accordance
with a request from the GetResource message can be ensured, whereby
a plurality of delay qualities can be supported.
[0510] In addition, the MS arrival slots are allocated with respect
to block read requests, whereby the number of blocks inputted from
the block storage unit in the exchange unit can be temporally
smoothed. Consequently, blocks read from a plurality of block
storage units and inputted in the exchange unit can be prevented
from colliding with each other on an input side of the I/O unit and
being discarded in the exchange unit. Further, fluctuation caused
by traffic times of the blocks can be reduced, so that the exchange
unit can be efficiently utilized.
[0511] Further, the MS arrival slots are reserved in the order from
that having a large ensured band to that having a small band,
whereby maximum registration numbers of the respective slots can be
made constant while guaranteeing delay qualities of all bands so
that the slots can be utilized by 100%. At this time, time
fluctuation of the request transmission number is eliminated and
the exchange unit can be most efficiently utilized.
[0512] Further, unused MS arrival slots are allocated to data read
requests from users acquiring no resources, whereby the use
efficiency of the file system can be further improved.
[0513] In a large-scale file system handling data requiring
continuity such as a video server, for example, a plurality of
storage units are generally provided so that data of a single file
are dispersed and stored in the respective storage units. Under
such circumstances, control of input/output bands comes into
question if a plurality of storage units having different bands and
different storage capacities (hereinafter simply referred to as
capacities) are provided with respect to a single file system. In
general, no control is made in consideration of differences between
abilities (bands and capacities) of the respective storage units,
and hence it is impossible to make the best use of the abilities of
the respective storage units. In relation to this, description is
now made on a disk management unit which can simplify control of a
plurality of storage units having different capacities and
different input/output bands and optimize the use efficiency of
each storage unit in response to a required input/output band and a
file system employing the same.
[0514] (Fourth Embodiment)
[0515] FIG. 13 is a block diagram showing the structure of a disk
management unit 1300 according to a fourth embodiment of the
present invention. Referring to FIG. 13, this disk management unit
1300 comprises a disk band management part 1301, a disk capacity
management part 1302, a distribution ratio decision part 1303, a
band calculation part 1304, a capacity calculation part 1305, a
total disk band control part 1306, and a total disk capacity
control part 1307.
[0516] The disk band management part 1301 manages input/output
bands of respective storage units provided in the file system. The
disk capacity management part 1302 manages the capacities of the
storage units provided in the file system. The distribution ratio
decision part 1303 decides the ratios for distributing data to the
storage units in accordance with an algorithm defined by the file
system. The band calculation part 1304 calculates the minimum one
among values obtained by multiplying the bands of the storage units
managed in the disk band management part 130 by inverse numbers of
the distribution ratios decided in the distribution ratio decision
part 1303 as a band in case of integrating all storage units. The
capacity calculation part 1305 calculates the minimum one among
values obtained by multiplying the capacities of the storage units
managed in the disk capacity management part 1302 by the inverse
numbers of the distribution ratios decided in the distribution
ratio decision part 1303 as a capacity in case of integrating all
storage units. The total disk band control part 1306 performs band
control of all storage units on the basis of the input/output band
decided by the distribution ratio decision part 1303 and the band
calculation part 1304. The total disk capacity control part 1307
performs capacity control of all storage units on the basis of the
capacity decided by the distribution ratio decision part 1303 and
the capacity calculation part 1305.
[0517] The operations of the disk management unit 13 00 having the
aforementioned structure are now described. First, an exemplary
band setting algorithm executed in the distribution ratio decision
part 1303 is described.
[0518] FIG. 14 illustrates a band preferential layout for deciding
the ratios of distributing data in proportion to the bands of the
storage units. When the file system is provided with three storage
units having different capacities and different bands, for example,
data are distributed to the respective storage units in proportion
to the bands, in the distribution ratios shown in FIG. 14. Values
obtained by multiplying the bands of the respective storage units
by the inverse numbers of the distribution ratios are assumed to be
effective bands, and those obtained by multiplying the capacities
of the respective storage units by the inverse numbers of the
distribution ratios are assumed to be effective capacities. In
addition, the band in case of integrating all storage units is
defined as the minimum value among the effective bands of the
respective storage units, while the capacity in case of integrating
all storage units is defined as the minimum value among the
effective capacities of the respective storage units. Thus, the
integrated storage units can be regarded as equivalent to a storage
unit having a band of 6 Mbps and a capacity of 6 GB.
[0519] FIG. 15 illustrates a capacity preferential layout for
deciding the ratios for distributing data in proportion to the
capacities of the storage units. When the file system is provided
with three storage units having different capacities and different
bands, for example, data are distributed to the respective storage
units in proportion to the capacities, in the distribution ratios
shown in FIG. 15. Values obtained by multiplying the bands of the
respective storage units by the inverse numbers of the distribution
ratios are assumed to be effective bands, and those obtained by
multiplying the capacities of the respective storage units by the
inverse numbers of the distribution ratios are assumed to be
effective capacities. In addition, the band in case of integrating
all storage units is defined as the minimum value among the
effective bands of the respective storage units, while the capacity
in case of integrating all storage units is defined as the minimum
value among the effective capacities of the respective storage
units. Thus, the integrated storage units can be regarded as
equivalent to a storage unit having a band of 4 Mpps and a capacity
of 8 GB.
[0520] FIG. 16 illustrates a band setting layout for deciding the
ratios for distributing data while mixing the band preferential
layout and the capacity preferential layout. When the file system
is provided with three storage units having different capacities
and different bands, for example, data are distributed to the
respective storage units at a band preferential layout ratio of
.alpha. and a capacity preferential layout ratio of (1-.alpha.), in
the distribution ratios shown in FIG. 16. Values obtained by
multiplying the bands of the respective storage units by the
inverse numbers of the distribution ratios are assumed to be
effective bands, and those obtained by multiplying the capacities
of the respective storage units by the inverse numbers of the
distribution ratios are assumed to be effective capacities. In
addition, the band in case of integrating all storage units is
defined as the minimum value among the effective bands of the
respective storage units, while the capacity in case of integrating
all storage units is defined as the minimum value among the
effective capacities of the respective storage units. If it is
instructed that the effective bands of all storage units exceed 5
Mbps in this case, .alpha. must be at least 3/5. Assuming that
.alpha. is set at 3/5, the integrated storage units can be regarded
as equivalent to a storage unit having a band of 5 Mbps and a
capacity of 20/3 GB.
[0521] The operations of the overall disk management unit 1300
shown in FIG. 13 are described. The bands of the respective storage
units which are connected with the file system are previously set
in the disk band management part 1301. Further, the capacities of
the respective storage units which are connected to the file system
are previously set in the disk capacity management part 1302. When
a band required as the file system is instructed, the distribution
ratio decision part 1303 makes the band calculation part 1304 and
the capacity calculation part 1305 calculate the band and the
capacity of the total storage units in accordance with the
aforementioned band setting algorithm, on the basis of the
information of the bands and the capacities of the respective
storage units set in the disk band management part 1301 and the
disk capacity management part 1302 respectively. When a data
input/output request is generated in practice, the total disk band
control part 1306 performs band control of input/output of each
storage unit by the band of the total storage units calculated in
the band calculation part 1304. On the other hand, the total disk
capacity control part 1307 performs capacity control of the
input/output of each storage unit by the capacity of the total
storage units calculated in the capacity calculation part 1305.
[0522] The plurality of storage units individually handled in the
aforementioned fourth embodiment may alternatively be replaced with
that logically regarded as a single storage unit.
[0523] While all storage units are processed together in the
aforementioned fourth embodiment, not all but partial storage units
may alternatively be integrated in a limited manner.
[0524] In case of combining storage units having different
input/output bands and different capacities in the aforementioned
manner, the management is simplified and the use efficiency can be
optimized in response to the required band by integrating the
plurality of storage units for managing the bands and the
capacities thereof with no attention to the individual storage
units.
[0525] (Fifth Embodiment)
[0526] FIG. 17 is a block diagram showing the structure of the file
system employing the disk management unit shown in FIG. 13.
Referring to FIG. 17, this file system comprises storage units
1708a and 1708b, a file attribute management part 1709, a band
management part 1710, a file open processing part 1711, a band
acquisition part 1712, and an input/output control part 1713.
[0527] The storage units 1708a and 1708b including storage media
such as hard disks, CD-ROMs, MODs, DVDs or semiconductor memories
store data of respective files in a dispersed manner respectively.
The file attribute management part 1709 manages band
characteristics as attributes of the files. The band management
part 1710 includes the function of the disk management unit 1300
shown in FIG. 13 in a part thereof, and manages the input/output
band of the file system. The file open processing part 1711
performs open processing of the data files. The band acquisition
part 1712 acquires bands employed for data input/output. The
input/output control part 1713 combines a plurality of files opened
in the file open processing part 1711 with the bands acquired in
the band acquisition part 1712, and selects arbitrary file data
from the plurality of files for inputting/outputting the same.
[0528] While the file system requires various elements such as a
function of managing file attributes other than the band
characteristics, a function of transmitting/receiving input/output
data and the like in practice in addition to the above, the
description thereof is omitted since these elements are not
directly related to the present invention.
[0529] The operations of the file system according to the fifth
embodiment having the aforementioned structure are now
described.
[0530] First, the disk management unit 1300 calculates distribution
ratios of the file data to the respective storage units in
accordance with the aforementioned band setting algorithm. The
distribution ratios are described in layout profile information,
and stored in the file attribute management part 1709 as the band
characteristics of the file attributes.
[0531] It is assumed here that the file system is provided with a
first file recording video data and a second file recording sound
data. As to the band characteristic of the first file, a band
necessary for input/output is 6 Mbps, and its layout profile is
equally distributed to the storage units 1708a and 1708b. As to the
band characteristic of the second file, on the other hand, a band
necessary for input/output is 0.5 Mbps, and its layout profile is
equally distributed to the storage units 1708a and 1708b.
[0532] In this case, the data of the first and second files are
equally distributed to and stored in the storage units 1708a and
1708b respectively. The file attribute management part 1709 manages
the band characteristics of the first and second files.
[0533] When a file open request command for the first file is
received from a user, the file open processing part 1711 performs
prescribed open processing, and acquires the corresponding band
characteristic from the file attribute management part 1709. When a
file open request command for the second file is received from the
user, on the other hand, the file open processing part 1711
performs prescribed open processing, and acquires the corresponding
band characteristic from the file attribute management part
1709.
[0534] When a band acquisition request command is received from the
user, the band acquisition part 1712 acquires a band necessary for
simultaneously reading the first and second files from the band
management part 1710 in accordance with the band characteristics
acquired by the file open processing part 1711.
[0535] When a read request command is received from the user, the
input/output control part 1713 divides the band acquired by the
band acquisition part 1712 and individually allocates the same to
the first and second files opened by the file open processing part
1711, and simultaneously reads the video data of the first file and
the sound data of the second file in synchronization with each
other from the storage units 1708a and 1708b. Thus, stream data
synchronizing pictures and sounds is produced.
[0536] While the data of the respective files are equally
distributed to the storage units 1708a and 1708b in the
aforementioned fifth embodiment, the data can alternatively be
distributed in a biased manner, in response to the bands and the
capacities of the storage units.
[0537] While the data of two files having different band
characteristics are simultaneously read through the band obtained
by adding up the band characteristics of the two files in the
aforementioned fifth embodiment, data of a plurality of files may
be alternately read through a band (maximum band) decided by the
band characteristic of any one file. When data of a plurality of
files are alternately read through a single band, formation of an
application such as AV synchronization can be simplified.
[0538] In a video information providing system for providing video
information to a plurality of clients as an exemplary file system,
each client generally has a buffer for temporarily storing
transmitted information. Each client transmits a service request to
a server in the file system in a cycle which is set by the capacity
of each buffer and bit rates of the pictures to be received, and
the server transmits video information of a prescribed quantity in
response to the service request. However, the server generally has
an upper limit quantity of transmittable information, and hence the
service requests from the respective clients must be scheduled to
cause no discontinuity of pictures even if the service requests
compete with each other.
[0539] Therefore, the server provided in the conventional video
information providing system has a scheduling unit for scheduling
service requests which must be periodically processed. A unit
described in Japanese Patent Publication No. 7-104792 is known as a
conventional scheduling unit. In this unit, a schedule control
program is provided with a precedence processing queue of every
task and every precedence, so that processing of higher precedence
can be executed in advance.
[0540] When the aforementioned conventional scheduling unit is so
employed that a service request from a client having higher
precedence, i.e., a client having a shorter cycle for transmitting
the service request, is preferentially executed, the number of
times of delay occurrence can be reduced thereby reducing the
frequency of occurrence of picture discontinuity.
[0541] However, the aforementioned conventional scheduling unit
regularly preferentially executes the service request from the
client of the higher precedence transmitted in a shorter cycle, and
hence that from a lower client may not be executed for a long
time.
[0542] Further, the time up to execution of the service request
from the lower client varies with the number of service requests
from the remaining clients. Therefore, it is impossible to prevent
occurrence of picture discontinuity on the lower client side by
transmitting the service request in a cycle in consideration of a
delay time.
[0543] If a temporal average of the number of service requests
transmitted from all clients exceeds the handling capacity of the
server, the number of service requests left unprocessed is
increased with time. In this case, occurrence of picture
discontinuity cannot be prevented in whatever order the service
requests are executed.
[0544] In a video information providing system provided with a
plurality of servers for providing video information to clients
through a common transmission path, on the other hand, service
requests to the respective servers must be scheduled since the
transmission path has an upper limit quantity of information which
is transmittable at once. If the service requests are scheduled by
the aforementioned conventional scheduling unit, however, problems
similar to the above are caused.
[0545] In relation to this, description is now made on a scheduling
unit which can schedule service requests from respective clients so
that no information discontinuity is caused when a server provides
continuous information such as video information to a plurality of
clients in a divided manner.
[0546] Description is also made on a scheduling unit which can
schedule service requests to respective servers so that no
information discontinuity is caused when a plurality of servers
provide continuous information to a client in a divided manner.
[0547] (Sixth Embodiment)
[0548] A sixth embodiment of the present invention is now described
with reference to drawings.
[0549] FIG. 18 is a block diagram showing the structure of a
scheduling unit according to the sixth embodiment of the present
invention. The unit shown in FIG. 18 comprises a registration
instruction part 1811, an execution right generation cycle table
1812, an execution right generation part 1813, a processing queue
1814 and an execution instruction part 1815. The execution
instruction part 1815 includes an execution right queue 1816.
[0550] FIG. 19 is a block diagram showing the structure of a video
information providing system employing the scheduling unit shown in
FIG. 18. The system shown in FIG. 19 is formed by a video
information providing unit 1920 which is an exemplary file system,
and a plurality of clients (1 to n) 1921. The video information
providing unit 1920 includes a scheduling unit 1810 and a server
1922.
[0551] Each of the clients (1 to n) 1921 shown in FIG. 19
cyclically transmits read requests to the server 1922 of the video
information providing unit 1920. The client (1 to n) 1921 has a
buffer and a monitor, for temporarily storing provided video
information in the buffer and displaying pictures on the monitor
while reading the stored information. The scheduling unit 1810
schedules the read requests so that the server 1922 cyclically
provides video information to the client (1 to n) 1921. The server
1922 transmits the video information to the client (1 to n) 1921 by
a prescribed quantity in response to an instruction from the
scheduling unit 1810.
[0552] The registration instruction part 1811 shown in FIG. 18
receives a declaration from the client (1 to n) 1921 shown in FIG.
19, and instructs the execution right generation cycle table 1812
to register a cycle for generating an execution right for every
client (1 to n) 1921. The execution right generation cycle table
1812 registers the cycle for generating the execution right. The
execution right generation part 1813 is started in a prescribed
cycle (hereinafter referred to as Tslt) to generate the execution
right for every client (1 to n) 1921 on the basis of the cycle
registered in the execution right generation cycle table 1812. The
execution right generation part 1813 further provides an evaluation
index (hereinafter referred to as Nsft) indicating precedence to
the generated execution right. The processing queue 1814 queues
read requests from the clients (1 to n) 1921. The execution
instruction part 1815 is started in the cycle Tslt, and instructs
the server 1922 to acquire a read request from a client 1921
corresponding to the execution right generated by the execution
right generation part 1813 among those queued in the execution
right queue 1814 and execute this read request.
[0553] FIG. 20 is a sequence diagram showing a state of
transmission/receiving of signals between the video information
providing unit 1920 and the clients (1 to n) 1921 shown in FIG. 19.
A resource acquisition request 31 shown in FIG. 20 is a signal
transmitted from each client (1 to n) 1921 to the video information
providing unit 1920 for informing the unit 1920 of information
(hereinafter referred to as a client ID) for identifying the client
1921, the name of video information to be read and the read
position. The resource acquisition request 31 further includes a
cycle for transmitting a read request, i.e., a cycle (hereinafter
referred to as Treq) for generating the execution right, desired by
the client (1 to n) 1921. A resource acquisition response 32 is a
signal transmitted from the video information providing unit 1920
to the client (1 to n) 1920 for informing the client of whether or
not the video information can be provided in the desired cycle
Treq.
[0554] Read requests 33 are signals transmitted from the client (1
to n) 1921 to the video information providing unit 1920 in case of
requesting reading. A read response 34 is video information
transmitted from the video information providing unit 1920 to the
client (1 to n) 1921 in response to the read requests 33. A
resource release request 35 is a signal transmitted from the client
(1 to n) 1921 to the video information providing unit 1920 to
inform the unit 1920 of the fact that the desired video information
is completely read, and includes the client ID. A resource release
response 36 is a signal transmitted from the video information
providing unit 1920 to the client (1 to n) 1921 to inform the
client 1921 of that provision of the video information is stopped
in response to the resource release request 35.
[0555] FIG. 21 illustrates registered contents of the execution
right generation cycle table 1812 shown in FIG. 18. As shown in
FIG. 21, the execution right generation cycle table 1812 registers
the client ID, Treq and an execution right generation cycle offset
(hereinafter referred to as Tofs) for every client (1 to n)
1921.
[0556] FIG. 22 illustrates queuing contents of the processing queue
1814 shown in FIG. 18. As shown in FIG. 22, the processing queue
1814 queues the read requests from the clients (1 to n) 1921 for
every client (1 to n) 1921.
[0557] FIG. 23 illustrates queuing contents of the execution right
queue 1816 shown in FIG. 18. As shown in FIG. 23, the execution
right queue 1816 queues the generated execution rights for every
provided Nsft.
[0558] FIG. 24 is a flow chart for illustrating the operation of
the execution right generation part 1813 shown in FIG. 18 for
generating the execution right.
[0559] FIG. 25 is a flow chart for illustrating the operation of
the execution instruction part 1815 shown in FIG. 18 for
instructing the server 1922 of FIG. 19 to execute a read
request.
[0560] Description is now made on an operation of the scheduling
unit 1810 shown in FIG. 19 for scheduling read requests so that
video information is cyclically provided from the server 1922 to
the plurality of clients (1 to n) 1921 respectively, with reference
to FIGS. 18 to 25.
[0561] First, the operation of the registration instruction part
1811 shown in FIG. 18 for instructing the execution right
generation cycle table 1812 to register the client ID, Treq and
Tofs is described.
[0562] It is assumed that client IDs, Treq and Tofs of the
plurality of clients 1921 are already registered in the execution
right generation cycle table 1812. At this time, an additional
client 1921 transmits the resource acquisition request 31 shown in
FIG. 20, thereby declaring the client ID and Treq thereof to the
video information providing unit 1920.
[0563] The registration instruction part 1811 recognizes
information providability of the server 1922, i.e., the maximum
number (hereinafter referred to as Nmax) of read requests
executable by the server 1922 in a time equal to the cycle Tslt,
and compares an average number of generated executed rights per
Tslt with Nmax if the declared Treq is registered in addition to
the already registered ones, thereby determining whether or not the
server 1922 can provide information temporally on the average.
[0564] If the determination is of YES, the registration instruction
part 1811 instructs the execution right generation cycle table 1812
to register the declared client ID and Treq, and makes "0"
registered as an initial value of Tofs. Further, the registration
instruction part 1811 transmits the resource acquisition response
32, thereby informing the client 1921 transmitting the resource
acquisition request 31 of the fact that the video information can
be provided in the declared Treq.
[0565] If the determination is ofNO, on the other hand, the
registration instruction part 1811 transmits the resource
acquisition response 32, thereby informing the client 1921 of the
fact that information cannot be provided in the declared Treq.
[0566] An operation of the execution right generation part 1813
shown in FIG. 18 for generating an execution right on the basis of
Treq and Tofs registered in the execution right generation cycle
table 1812 is now described with reference to FIG. 24. It is
assumed that client IDs, Treq and Tofs of a plurality of clients
1921 are registered in the execution right generation cycle table
1812 in the aforementioned manner.
[0567] The execution right generation part 1813 first fetches a set
of a client ID, Treq and Tofs registered in the execution right
cycle table 1812 (step S1). Then, the execution right generation
part 1813 compares the fetched Tofs with the cycle Tslt of its
operation (step S2).
[0568] If Tofs.gtoreq.Tslt, the execution right generation part
1813 advances to a step S9.
[0569] If Tofs<Tslt, on the other hand, the execution right
generation part 1813 determines whether or not a read request from
the client 1921 corresponding to the read client ID is queued in
the processing queue 1814 (step S3).
[0570] If the determination is of YES, the execution right
generation part 1813 generates an execution right, provides
information indicating that the execution right is allocated to the
read request, and calculates a new Tofs by the following expression
(6) (step S4):
Tofs=Tofs+Treq (6)
[0571] If the determination is of NO, on the other hand, the
execution right generation part 1813 advances to a step S9.
[0572] Then, the execution right generation part 1813 compares the
new Tofs obtained by calculation with Tslt (step S5).
[0573] If Tofs<Tslt, the execution right generation part 1813
provides the generated execution right with Nsft=0 as an evaluation
index (step S6). The execution instruction part 1815 instructs the
execution right queue 1816 to queue the generated execution right
in the tail of the queue having a matched value of Nsft (step S7),
and then the execution right generation part 1813 returns to the
step S2.
[0574] If Tofs.gtoreq.Tslt, on the other hand, the execution right
generation part 1813 provides the generated execution right with
Nsft calculated by the following expression (7) as an evaluation
index (step S8), and advances to the step S7:
Nsft=f(Treq/Tslt) (7)
[0575] where f(x) represents the minimum integer exceeding x.
[0576] If Tofs.gtoreq.Tslt at the step S2, the execution right
generation part 1813 calculates a new Tofs by the following
expression (8) (step S9):
Tofs=Tofs-Tslt (8)
[0577] Then, the execution right generation part 1813 determines
whether or not the new Tofs obtained by calculation is greater than
or equal to zero (Tofs.gtoreq.0) (step S10).
[0578] If Tofs.gtoreq.0, the execution right generation part 1813
instructs the execution right generation cycle table 1812 to update
Tofs to the new Tofs obtained by calculation (step S11).
[0579] If Tofs<0, on the other hand, the execution right
generation part 1813 updates Tofs to zero (step S12).
[0580] Then, the execution right generation part 1813 determines
whether or not all client IDs, Treq and Tofs registered in the
execution right generation cycle table 1812 are fetched (step
S13).
[0581] If the determination is of YES, the execution right
generation part 1813 stops its operation, while returning to the
step S1 if the determination is of NO.
[0582] An operation of the execution instruction part 1815 shown in
FIG. 18 for instructing the server 1922 to execute the queued read
request on the basis of the execution right generated in the
aforementioned manner is described with reference to FIG. 25.
[0583] The execution instruction part 1815 counts the number of
times instructing execution to the server 1922, and stores a count
value C obtained by this counting. The execution instruction part
1815 first initializes this count value C (step S21).
[0584] Then, the execution instruction part 1815 fetches the head
of execution rights queued in a queue having the minimum Nsft
value, i.e., that having the minimum provided Nsft and the longest
elapsed time from generation, among those queued in the execution
right queue 1816 (step S22), and then increments the count value C
(step S23).
[0585] Then, the execution instruction part 1815 refers to the
client ID given to the fetched execution right, fetches the read
request from the client 1921 corresponding to the execution right
from the processing queue 1814, and instructs the server 1922 to
execute the same (step S24). Then, the execution instruction part
1815 compares the count value C obtained by increment with Nmax
(step S25).
[0586] The execution instruction part 1815 returns to the step S22
if C<Nmax while instructing the execution right queue 1816 to
decrement the values of Nsft of the remaining execution rights
respectively if C.gtoreq.Nmax (step S26), and thereafter completes
the processing.
[0587] The server 1922 receiving the execution instruction in the
aforementioned manner transmits the specified video information to
the client 1921 transmitting the read request after a lapse of a
certain constant time from receiving of the instruction. The client
1921 completely receiving the necessary video information transmits
the resource release request 35 shown in FIG. 20, thereby informing
the video information providing unit 1920 of the completion of
receiving. The resource release request 35 is provided with the
client ID of this client 1921, and the registration instruction
part 1811 receiving the resource release request 35 deletes the
provided client ID as well as Treq and Tofs corresponding to this
client ID from the execution right generation cycle table 1812.
[0588] According to this embodiment, as hereinabove described, the
processing queue 1814 queues read requests from the respective
clients (1 to n) 1921 in case of scheduling the read requests so
that the server 1922 cyclically provides video information to the
plurality of clients (1 to n) 1921. The execution right generation
cycle table 1812 registers the cycle Treq for generating the
execution right for every client (1 to n) 1921, and the execution
right generation part 1813 generates the execution right on the
basis of the cycle registered in the execution right generation
cycle table 1812. The execution instruction part 1815 acquires the
read request from the client 1921 corresponding to the execution
right generated by the execution right generation part 1813 among
those queued in the processing queue 1814, and instructs the server
1922 to execute the same.
[0589] Thus, the read request from each client (1 to n) 1921 is
queued while the cycle for generating the execution right for every
client (1 to n) 1921 is registered, for generating the execution
right on the basis of this cycle. The server 1922 is instructed to
execute the request from the client 1921 corresponding to the
generated execution right among the queued read requests. Thus, the
time up to execution of a read request from a certain client 1921
is not influenced by situations of transmission of read requests
from the remaining clients 1921, whereby indetermination of times
up to execution of transmitted read requests can be prevented.
[0590] Further, the execution right generation part 1813 is started
in the cycle Tslt and refers to the execution right generation
cycle table 1812, to generate the execution right of the client
1921 having the time Tofs between the current started time and the
time for generating the next execution right is less than Tslt.
Further, Treq is added to Tofs of this client 1921 and a new Tofs
is calculated by an expression Tofs=Tofs-Tslt with respect to this
Tofs if the Tofs obtained by such addition is greater than or equal
to Tslt (Tofs.gtoreq.Tslt), so that the execution right generation
cycle table 1812 is instructed to register the Tofs obtained by
this calculation.
[0591] If the Tofs obtained by addition is less than Tslt
(Tofs<Tslt), the execution right generation part 1813 further
generates an execution right, while repeating the operation of
adding Treq to Tofs and comparing the result with Tslt. When the
Tofs obtained by addition becomes greater than or equal to Tslt
(Tofs.gtoreq.Tslt), a new Tofs is calculated with respect to this
Tofs by the expression Tofs=Tofs-Tslt, so that the execution right
generation cycle table 1812 is instructed to register the Tofs
obtained by this calculation.
[0592] As to a client 1921 having the time Tofs from the current
started time to a time for generating the next execution right is
greater than or equal to Tslt or having a read request not queued
in the processing queue 1814, no execution right is generated but a
new Tofs is calculated with respect to the Tofs by the expression
Tofs=Tofs-Tslt, so that the execution right generation cycle table
1812 is instructed to register the Tofs obtained by the
calculation.
[0593] If the Tofs obtained by calculation is less than zero, the
execution right generation part 1813 instructs the execution right
generation cycle table 1812 to register Tofs=0.
[0594] Thus, the execution right generation part 1813 is started in
the cycle Tslt to calculate Tofs, i.e., the time between the
current started time and the time for generating the next execution
right, on the basis of Treq and Tslt registered in the execution
right generation cycle table 1812 and compares the Tofs obtained by
the calculation with Tslt, thereby determining the client 1921 for
whom the execution right is to be generated and generating the
execution right. Further, the execution right generation part 1813
repeats the operation of adding Treq to Tofs and comparing the
result with the Tslt, thereby determining a plurality of clients
1921 for whom execution rights are to be generated, and generates
execution rights in the necessary number. The execution right
generation part 1813 performs these operations at once in starting,
whereby the processing operations of the execution right generation
part 1813 can be reduced as compared with the case of generating
the execution rights in the cycle Treq registered in the execution
right generation cycle table 1812.
[0595] As to a client 1921 whose read request is not queued, no
execution right is generated so that no video information is
supplied to the client 1921 transmitting no read request.
[0596] If the new Tofs obtained by calculation is less than zero,
Tofs=0 is registered so that Tofs of the client 1921 whose read
request is not queued is reduced by repeated subtraction of Tslt.
Thus, it is possible to prevent generation of a number of execution
rights for this client 1921 at a point of time when a read request
is queued.
[0597] Further, the execution right generation part 1813 provides
the evaluation index Nsft calculated by the above expression (7) to
the executed right generated in the aforementioned manner. The
execution instruction part 1815 includes the execution right queue
1816 for queuing the execution rights generated by the execution
right generation part 1813, and instructs this queue to queue the
generated execution rights for every evaluation index in the order
of generation. The execution instruction part 1815 selects the
execution right having a smaller evaluation index Nsft and
generated in advance among the queued ones, and instructs the
server 1922 to execute the read request from the client 1921
corresponding to this execution right.
[0598] The execution instruction part 1815 recognizes the maximum
number Nmax of the read requests executable by the server 1922 in
the time equal to the cycle Tslt, stops the instruction of
execution when execution is instructed by a number equal to this
Nmax, and instructs the execution right queue 1816 to decrement the
evaluation indices Nsft of the remaining execution rights.
[0599] Thus, the evaluation indices indicating precedence
calculated as functions of the cycle for generating the execution
rights are provided to the execution rights generated by the
execution right generation part 1813, and the execution instruction
part 1815 selects the execution right to take precedence on the
basis of the provided evaluation index, and instructs execution.
The execution instruction part 1815 temporarily stops instruction
of execution when execution of Nmax read requests is instructed,
and decrements the evaluation indices of the remaining execution
rights for improving the precedence.
[0600] Thus, the execution instruction part 1815 can select the
execution right for the client 1921 having a shorter time between
the current started time up to the time for generating the next
execution right to take precedence, whereby the number of times
causing delays can be reduced. Further, it is possible to prevent
the server 1922 from executing read requests in a number beyond its
handling capacity, while the evaluation indices of the remaining
execution rights are decremented every Tslt, whereby the execution
rights can be selected at least until after Treq+Tslt from
generation. Therefore, the clients (1 to n) 1921 transmit read
requests in cycles taking the maximum delay time in consideration,
whereby occurrence of discontinuous video information can be
prevented.
[0601] When execution rights are generated in a number beyond the
handling capacity of the server 1922 temporally on the average,
however, the number of remaining execution rights is increased as
the time elapses. In this case, occurrence of picture discontinuity
cannot be prevented by the aforementioned processing.
[0602] When a declaration for registration of Treq is received,
therefore, the registration instruction part 1811 instructs the
execution right generation cycle table 1812 to register the
declared Treq only when a determination is made that an average
number of the generated execution rights per Tslt is not in excess
of Nmax even if the declared Treq is further registered in addition
to the already registered ones.
[0603] Thus, it is possible to prevent occurrence of picture
discontinuity due to increase of the number of the remaining
execution rights with the lapse of time resulting from the total
number of the execution rights exceeding the handling capacity of
the server 1922 temporally on the average.
[0604] The execution right queue 1816 is provided on the execution
instruction part 1815 to queue the execution rights for every
evaluation index in the order of generation, whereby the execution
instruction part 1815 may select the execution rights from the head
of the queue having the minimum evaluation index. Thus, the
processing operations of the execution instruction part 1815 can be
reduced.
[0605] (Seventh Embodiment)
[0606] A seventh embodiment of the present invention is now
described with reference to the drawings.
[0607] FIG. 26 is a block diagram showing the structure of a
scheduling unit according to the seventh embodiment of the present
invention. The unit shown in FIG. 26 comprises a registration
instruction part 2691, an execution right generation cycle table
2692, an execution right generation part 2693, a processing queue
2694 and an execution instruction part 2695. The execution
instruction part 2695 includes an execution right queue 2696.
[0608] FIG. 27 is a block diagram showing the structure of a video
information providing system employing the scheduling unit shown in
FIG. 26. The system shown in FIG. 27 is formed by a video
information providing unit 2700 and a client 2701, which are
connected with each other by a transmission path 2703. The video
information providing unit 2700 includes a scheduling unit 2690 and
a plurality of servers (1 to m) 2702.
[0609] The client 2701 shown in FIG. 27 cyclically transmits read
requests to the plurality of servers (1 to m) 2702 of the video
information providing unit 2700 respectively. The client 2701 has a
plurality of buffers and a plurality of monitors, and temporarily
stores provided information from the servers (1 to m) 2702 in each
buffer, respectively, for displaying pictures on each monitor while
reading the stored information. The scheduling unit 2690 schedules
the read requests so that video information is cyclically provided
from the servers (1 to m) 2702 to the client 2701. The servers (1
to m) 2702 transmit video information to the client 2701 by
prescribed quantities in response to instructions from the
scheduling unit 2690. It is assumed that the total information
providability of the servers (1 to m) 2702 included in the video
information providing unit 2700 is in excess of the
transmittability of the transmission path 2703.
[0610] The registration instruction part 2691 shown in FIG. 26
receives a declaration from the client 2701 shown in FIG. 27, and
instructs the execution right generation cycle table 2692 to
register a cycle for generating an execution right every server (1
to m) 2702. The execution right generation cycle table 2692
registers the cycle for generating the execution right. The
execution right generation part 2693 is started in a prescribed
cycle (hereinafter referred to as Tslt), and generates the
execution right of every server (1 to m) 2702 on the basis of the
cycle registered in the execution right generation cycle table
2692. The execution right generation part 2693 also provides an
evaluation index (hereinafter referred to as Nsft) indicating
precedence to the generated execution right. The processing queue
2694 queues the read requests to the servers (1 to m) 2702. The
execution instruction part 2695 is started in the cycle Tslt,
acquires a read request to a server 2702 corresponding to the
execution right generated by the execution right generation part
2693 among those queued in the processing queue 2694, and instructs
the corresponding server 2702 to execute the read request.
[0611] Signals similar to those described in the sixth embodiment
with reference to FIG. 20 are transmitted/received to/from the
video information providing unit 2700 and the client 2701 shown in
FIG. 27. A resource acquisition request 31 includes a server ID, in
place of the client ID.
[0612] FIG. 28 illustrates the registered contents of the execution
right generation cycle table 2692 shown in FIG. 26. As shown in
FIG. 28, the execution right generation cycle table 2692 registers
the server ID, Titv and an execution right generation cycle offset
(hereinafter referred to as Tofs) for every server (1 to m) 2602.
While the cycles Treq in the table shown in FIG. 21 are values
declared by the clients (1 to n) 1921 shown in FIG. 19, values Titv
shown in FIG. 28 are calculated by a prescribed method on the basis
of Treq declared by the client 2701 shown in FIG. 27.
[0613] FIG. 29 illustrates queuing contents of the processing queue
2694 shown in FIG. 26. As shown in FIG. 29, the processing queue
2694 queues the read requests to the servers (1 to m) 2702 for
every server (1 to m) 2702.
[0614] FIG. 30 illustrates the queuing contents of the execution
right queue 2696 shown in FIG. 26. As shown in FIG. 30, the
execution right queue 2696 queues the generated execution rights
every provided Nsft.
[0615] Description is now made on an operation of the scheduling
unit 2690 shown in FIG. 27 for scheduling the read requests so that
video information is cyclically provided from the plurality of
servers (1 to m) 2702 to the client 2701 through the transmission
path 27043 respectively, with reference to FIGS. 20 and 24 to
30.
[0616] First, an operation of the registration instruction part
2691 shown in FIG. 26 for instructing the execution right
generation cycle table 2692 to register the server ID, Titv and
Tofs.
[0617] It is assumed here that the execution right generation cycle
table 2692 already registers the server IDs, Titv and Tofs of the
plurality of servers 2602. At this time, the client 2701 transmits
the resource acquisition request 31 shown in FIG. 20, to declare
the server ID and Treq of a desired server 2702 to the video
information providing unit 2700.
[0618] The registration instruction part 2691 recognizes the
information providability of the servers (1 to m) 2702 and the
transmittability of the transmission path 2703, and makes
determinations as to the following items (a) and (b):
[0619] (a) whether or not the information providability of the
specified server 2702 is capable of providing information when
already registered Titv is updated to a new Titv including the
declared Treq; and
[0620] (b) whether or not the transmittability of the transmission
path 2703 is capable of transmitting information provided from the
servers (1 to m) 2702 when the already registered Titv is updated
to the new Titv including the declared Treq.
[0621] If determinations of YES are made as to both of the above
items (a) and (b), the registration instruction part 2691 instructs
the execution right generation cycle table 2692 to update the
already registered Titv of the specified server 2702 to a new Titv
calculated by the following expression (9), and transmits the
resource acquisition response 32 to the client 2701, thereby
informing the client 2701 of acceptance of the request:
Titv=1/(1/Titv+1/Treq) (9)
[0622] The registration instruction part 2691 further instructs the
execution right generation cycle table 2692 to update the Tofs to a
new Tofs calculated by the following expression (10):
Tofs=Tofs+(Titv(new)-Titv(old)) (10)
[0623] where Titv(new) and Titv(old) represent the updated Titv and
the Titv not yet updated respectively.
[0624] If at least one of the determinations is of NO, on the other
hand, the registration instruction part 2691 transmits the resource
acquisition response 32 to the client 2701, to inform the client
2701 of no acceptance of the request.
[0625] When the determinations are of YES as to both of the above
items (a) and (b) while the server ID of the specified server 2702
is not registered in the execution right generation cycle table
2692, the registration instruction part 2691 instructs the
execution right generation cycle table 2692 to newly register the
server ID, Titv and Tofs. In this case, the declared Treq and "O"
are registered as the Titv and the Tofs respectively.
[0626] The operation of the execution right generation part 2693
for generating the execution right on the basis of the Titv and the
Tofs registered in the execution right generation cycle table 2692
is similar to that described in the sixth embodiment with reference
to FIG. 24. However, the execution right generation cycle table
2692 registers the server IDs, Titv and Tofs of the plurality of
servers (1 to m) 2702 in the aforementioned manner, dissimilarly to
that in the sixth embodiment.
[0627] This embodiment is different from the sixth embodiment also
in a point that the new Tofs is calculated by the following
expression (11) at the step S4 in FIG. 24, in place of the
expression (6):
Tofs=Tofs+Titv (11)
[0628] Similarly, this embodiment is different from the sixth
embodiment also in a point that the Nsft is calculated by the
following expression (12) at the step S8, in place of the
expression (7):
Nsft=f(Titv/Tslt) (12)
[0629] where f(x) represents the minimum integer exceeding x.
[0630] Then, the execution instruction part 2695 selects the
execution right on the basis of the provided evaluation index,
acquires the read request to the server 2702 corresponding to the
selected execution right among those queued in the processing queue
2694, and instructs the corresponding server 2702 to execute the
read request. The operation of the execution instruction part 2695
at this time is similar to that described in the sixth embodiment
with reference to FIG. 25. However, a count value C is a total
number of times of the execution instruction part 2695 instructing
execution to all servers (1 to m) 2702, and Nmax is the number of
read requests corresponding to the maximum information quantity
transmittable through the transmission path 2703 within a time
equal to the cycle Tslt.
[0631] When video information is provided in the aforementioned
manner and the provision is completed, the client 2701 transmits
the resource release request 35 shown in FIG. 20 similarly to the
client 1921 in the sixth embodiment, thereby informing the video
information providing unit 2700 of the fact that the desired video
information has been completely received. However, the server ID
and Treq are added to the resource release request 35 transmitted
by the client 2701, and the registration instruction part 2691
shown in FIG. 26 instructs the execution right generation cycle
table 2692 to update the registered Titv to a new Titv calculated
by the following expression (13):
Titv=1/(1/Titv-1/Treq) (13)
[0632] The registration instruction part 2691 instructs the
execution right generation cycle table 2692 to update the Tofs to a
new Tofs calculated by the above expression (10).
[0633] According to this embodiment, as hereinabove described,
operations similar to those in the sixth embodiment are performed
in case of scheduling read requests so that video information is
cyclically provided from the plurality of servers (1 to m) 2702 to
the client 2701. When the client declares updating of an already
registered cycle Titv for generating the execution right of a
certain server 2702 to that for generating the execution right in
the cycle Treq, further, the registration instruction part 2691
instructs the execution right generation cycle table 2692 to update
the registered Titv to the new cycle Titv calculated by the above
expression (9) only when the transmittability of the transmission
path 2703 is capable of transmitting the information provided from
all servers (1 to m) 2702 even if the already registered Titv is
updated to the new Titv including the declared Treq.
[0634] Thus, it is possible to prevent increase of the number of
the remaining execution rights with time due to the average number
of the generated execution rights Tslt exceeding the
transmittability of the transmission path when the registered cycle
is updated.
[0635] When the client 2701 declares updating of an already
registered cycle Titv for generating the execution right of a
certain server 2702 to that for generating the execution right
excluding the cycle Treq, the registration instruction part 2691
instructs the execution right generation cycle table 2692 to update
the registered Titv to the new cycle Titv calculated by the above
expression (13).
[0636] Thus, when the client 2701 declares updating of an already
registered cycle for generating the execution right to that for
generating the execution right excluding that generated in the
cycle Treq, the already registered cycle can be updated to the new
one.
[0637] While only a single client 2701 having a plurality of
buffers and a plurality of monitors is included in this embodiment,
a plurality of clients 2701 each having a single buffer and a
single monitor may alternatively be included through the common
transmission path 2703. In this case, however, the respective
clients 2701 must transmit read requests in determined cycles
respectively.
[0638] While the requests are scheduled due to the limit of the
transmittability of the transmission path 2703 in this embodiment,
the requests may alternatively be scheduled due to a limit of
receivability (capacities and processing speeds of the buffers
etc.) of the client 2701.
[0639] While the execution right generation parts 1813 and 2693 and
the execution instruction parts 1815 and 2695 are started in the
cycles Tslt in the sixth and seventh embodiments, these parts may
alternatively be started in different cycles.
[0640] While Nmax represents the maximum number of read requests
executable by the server 1922 in the time equal to the cycle Tslt
in the sixth embodiment, Nmax may alternatively represent the
maximum number of read requests executable by the server 1922 in a
unit time. While Nmax similarly represents the maximum number of
read requests corresponding to the information quantity
transmittable through the transmission path 2703 in the time equal
to the cycle Tslt in the seventh embodiment, Nmax may alternatively
represent the maximum number of read requests corresponding to the
information quantity transmittable through the transmission path
2703 in a unit time.
[0641] Scheduling may be so performed that a plurality of servers
cyclically provide video information to a plurality of clients
respectively by employing still another scheduling unit including
the scheduling units shown in FIGS. 18 and 26. Namely, the
scheduling unit shown in FIG. 18 first generates the execution
rights for the respective clients, then selects the execution right
of a certain client among the generated ones, and inputs the read
request corresponding to this execution right in the scheduling
unit shown in FIG. 26. Then, the scheduling unit shown in FIG. 26
generates execution rights for the respective servers, selects the
execution right of a certain server among the generated ones, and
instructs the server to execute the inputted read request.
[0642] While the execution right generation parts 1813 and 2693
calculate Nsft by the above expressions (7) and (12) respectively
in the sixth and seventh embodiments, Nsft may be defined by
integer parts of values obtained by dividing Treq by Tslt.
[0643] Further, the execution right generation cycle tables 1812
and 2692 may register Tnext indicating times for generating the
next execution rights in place of the execution right generation
cycle offsets Tofs so that the execution right generation parts
1813 and 2693 generate execution rights when the current times
match with Tnext.
[0644] While the execution right generation parts 1813 and 2693
calculate Nsft and the execution instruction parts 1815 and 2695
select execution rights having smaller Nsft, the execution right
generation parts 1813 and 2693 may alternatively calculate the
aforementioned Tnext so that the execution instruction parts 1815
and 2695 select execution rights having Tnext closer to the current
times.
[0645] While the execution instruction parts 1815 and 2695 instruct
the execution right queues 1816 and 2696 to decrement Nsft of the
remaining execution rights when the count values are greater than
or equal to Nmax, still another execution right queue shown in FIG.
31 may alternatively be employed in place of the execution right
queues 1816 and 2696 so that the execution instruction parts 1815
and 2695 instruct this execution right queue to displace a pointer
when the count values C are greater than or equal to Nmax. As shown
in FIG. 31, this execution right queue has a ring structure, so
that the values of Nsft are successively exchanged following
movement of the position of the pointer.
[0646] As hereinabove described, a file system such as a
video-on-demand system in a CATV network or a video edition system
in a broadcast station is provided with a server unit handling data
of pictures, sounds and the like. This server unit has a function
of reading data retrieving an internal storage unit and reading
data corresponding to a data read request received from a user
terminal or a client, and transmitting the data to the user
terminal or the client requiring reading.
[0647] In order to guarantee continuity of the transmitted data,
the conventional server unit executes data transmission after
ensuring an execution right for a resource (ability for processing
or transmitting data per unit time) in the server unit and a use
right for a communication resource (ability capable of transmitting
data per unit time) between the server unit and the user terminal
requiring data acquisition matching with the quantity of the
transmitted data.
[0648] However, the aforementioned conventional server unit ensures
the resource use right before data transmission, not only for data
such as dynamic images and sounds requiring continuity but for data
such as still pictures requiring no continuity. Thus, it is
difficult to ensure the resource for the data requiring continuity
as the transmission quantity of the data requiring no continuity is
increased, leading to incapability of data transmission at the
worst.
[0649] Description is now made on a server unit which can
efficiently use resources in case of transmitting data requiring no
continuity while exerting no influence on resource assurance for
transmitting data requiring continuity even if the transmission
quantity of the data requiring no continuity is increased.
[0650] (Eighth Embodiment)
[0651] 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. Referring to FIG. 32, this
data transmission system comprises a resource management part 3201,
a data storage part 3202, an exchange part 3203, an input/output
part 3204, and a plurality of user terminals 3208. The server unit
according to this embodiment is formed by the resource management
part 3201, the data storage part 3202, the exchange part 3203 and
the input/output part 3204. This server unit is connected with the
respective terminals 3208 through wire or wireless transmission
paths.
[0652] The resource management part 3201 manages resources
necessary for transmitting data to the respective user terminals
3208. The data storage part 3202 includes a plurality of
random-accessible storage units (such as hard disk drives or
optical disk drivers provided with auto changers, for example)
3205, and a plurality of MSFSs 3206 connected with the respective
storage units 3205 for controlling data reading. The exchange part
3203 exchanges data between the input/output part 3204 and the data
storage part 3202. According to this embodiment, ATM switches are
employed for the exchange part 3203, for example. The input/output
part 3204 includes a plurality of I/O units 3207, and controls data
input/output between the server unit and the respective user
terminals 3208. Each user terminal 3208 is connected to any I/O
unit 3207.
[0653] In the aforementioned structure, the exchange part 3203 sets
a connection in the form of a mesh between each I/O unit 3207 and
each MSFS 3206. The band of each connection is managed by the
resource management part 3201.
[0654] FIG. 33 is a block diagram showing a more detailed structure
of each I/O unit 3207 shown in FIG. 32. Referring to FIG. 33, the
I/O unit 3207 comprises a preferential input/output control part
3301 and a non-preferential input/output control part 3302. The
non-preferential input/output control part 3302 includes a command
queue 3321, a command queue control part 3322, a command
transmission part 3323, a data buffer part 3324, a buffer
management part 3325, a data transmission part 3326, and a command
acceptance part 3327.
[0655] The preferential input/output control part 3301 controls
input/output of data (hereinafter referred to as preferential data)
such as dynamic image data, for example, requiring continuity. On
the other hand, the non-preferential input/output control part 3302
controls input/output of data (hereinafter referred to as
non-preferential data) such as still picture data, for example,
requiring no continuity.
[0656] In the non-preferential input/output control part 3302, the
command queue 3321 stores commands requiring reading of
non-preferential data from the user terminals 3208 for every user
terminal 3208. The command queue control part 3322 controls fetch
of the command from the command queue 3321. The command
transmission part 3323 transmits the command fetched by the command
queue control part 3322 to the corresponding destination MSFS 3206.
The data buffer part 3324 stores data read by the MSFS 3206 from
the storage unit 3205. The buffer management part 3325 counts data
stored (or reserved to be stored) in the data buffer part 3324
every user terminal 3208 requiring reading. The data transmission
part 3326 transmits the data stored in the data buffer part 3324 to
the corresponding destination user terminal 3208, and sets the area
of the data buffer part 3324 completing transmission in a space
state. The command acceptance part 3327 manages whether or not the
command arriving from the user terminal 3208 is registered in the
command queue 3321.
[0657] The operation of the server unit having the aforementioned
structure is now described.
[0658] First, description is made on resource initialization
performed in starting of the system. In starting of the system, the
resource management part 3201 separates and allocates resources of
the respective parts in the data transmission system, i.e., the
data read band of each MSFS 3206, the communication band between
each I/O unit 3207 and the exterior, the communication band of each
ATM switch in the exchange part 3203 etc. into:
[0659] (1) resources (hereinafter referred to as preferential
resources) used for outputting the preferential data; and
[0660] (2) resources (hereinafter referred to as non-preferential
resources) used for outputting the non-preferential data.
Thereafter the resource management part 3201 individually manages
the respective separated resources.
[0661] The data read band of the MSFS 3206 is defined as the
maximum speed of data readable in a predetermined delay time below
a predetermined waste ratio when read data are stored at random and
the data are read in response to read requests received from the
MSFS 3206 at random intervals.
[0662] A preferential data output operation is now described. In
case of requiring output of preferential data to the server unit,
each user terminal 3208 requires assurance of a resource in a band
necessary for transmitting the preferential data. The preferential
input/output control part 3301 receiving the request for resource
assurance requests the resource management part 3201 to ensure the
resource while specifying the band width. The resource management
part 3201 ensures the communication band of the ATM switch, the
data read band of the MSFS 3206 and the communication band of the
I/O unit 3207 from the band width previously allocated as the
preferential resource, in order to transmit the data of the
required band width.
[0663] If the preferential resource is currently in use with no
allowance for the required band width, assurance of the resource is
in fail and the server unit cannot output the preferential data. If
the resource is successfully ensured, on the other hand, the
communication band of the I/O unit 3207, the data read band of the
MSFS 3206 and the communication band of the ATM switch of the
exchange part 3203 are set in each device for the data required to
be outputted by the user terminal 3208.
[0664] When a resource assurance completion notice is received from
the preferential input/output control part 3301, the user terminal
3208 issues a command requiring output of the preferential data.
The preferential input/output control part 3301 of the I/O unit
3207 receiving the command executes data output through the
resource ensured for the preferential data to be outputted.
[0665] FIG. 34 is a flow chart showing the operation of the command
acceptance part 3327 shown in FIG. 33. FIG. 35 is a flow chart
showing the operation of the command queue control part 3322 shown
in FIG. 33. FIG. 36 is a flow chart showing the operation of the
command transmission part 3323 shown in FIG. 33. With reference to
FIGS. 34 to 36, the non-preferential data output operation is now
described.
[0666] As shown in FIG. 34, the command acceptance part 3327
receives a command requiring reading of non-preferential data from
the user terminal 3208 (step S101), and determines whether or not
the command queue 3321 corresponding to the user terminal 3208
transmitting this command has a space area (step S102). If the
corresponding command queue 3321 has no space area, the command
acceptance part 3327 rejects acceptance of the command (step S103),
and returns to the operation at the step S101. If the corresponding
command queue 3321 has a space area, on the other hand, the command
acceptance part 3327 stores the received command in the final part
of the corresponding command queue 3321 (step S104), and completes
its operation. The non-preferential input/output control part 3302
may not ensure the resource for transmitting data to the user
terminal 3208, dissimilarly to the aforementioned preferential
input/output control part 3301.
[0667] As shown in FIG. 35, the command queue control part 3322
refers to management information stored in the buffer management
part 3325, thereby selecting a command queue corresponding to a
user terminal 3208 having the minimum or no data quantity stored in
the data buffer part 3324 (including not only the quantity of
actually stored data but the quantity of data reserved to be
stored) from the command queue 3321 of every user terminal 3208
storing commands. If there are a plurality of user terminals having
data of the same minimum quantities stored in the data buffer part
3324, a command queue having the maximum queue length (i.e.,
storing the largest number of commands) is selected. If there are a
plurality of command queues having the same queue lengths in this
case, further, the command queues are cyclically selected along
order determined by default.
[0668] Then, the command queue control part 3322 notes the selected
command queue, and defines the command stored in its head part as
COM(1) (step S202). Then, the command queue control part 3322 sets
initial values 1 and 0 in a command counter Nc and a transmission
command counter Ns respectively (step S203). Then, the command
queue control part 3322 determines whether or not the destination
MSFS 3206 for a command COM(Nc) is equal to that for the command
COM(1) (step S204). If the destination MSFSs 3206 for these
commands are equal to each other, the command queue control part
3322 fetches the command COM(Nc) from the selected command queue,
and outputs the same to the command transmission part 3323 (step
S205). Since the initial count value of the command counter Nc is
1, the command COM(Nc) is equal to the command COM(1) at first.
Therefore, the head command COM(1) is first fetched from the
selected command queue, and outputted to the command transmission
part 3323.
[0669] Then, the command queue control part 3322 increments the
transmission command counter Ns (step S206). Then, the command
queue control part 3322 determines whether or not the count value
of the transmission command counter Ns is less than a predetermined
threshold value N (step S207). The count value of the transmission
command counter Ns corresponds to the number of commands
transmitted by the command queue control part 3322 to a single MSFS
3206 from the selected command queue. If a number of commands are
substantially simultaneously transmitted to a single MSFS 3206,
congestion results in the MSFS 3206 receiving the commands, and
hence N or more commands are not simultaneously transmitted from a
single command queue 3321 according to this embodiment. In other
words, the command queue control part 3322 can shift to
transmission processing for the next command in the selected
command queue only when the count value of the transmission command
counter Ns is less than the predetermined threshold value N.
[0670] If the count value of the transmission command counter Ns is
less than the predetermined threshold value N at the step S207, the
command queue control part 3322 determines whether or not a command
represented by COM(Nc+1) is present in the selected command queue,
i.e., whether or not a command to be transmitted still exists in
the selected command queue (step S208). If the command COM(Nc+1) is
present in the selected command queue, i.e., if a command to be
transmitted still exists in the selected command queue, the command
queue control part 3322 increments the command counter Nc (step
S209), and thereafter returns to the operation at the step S204. In
the selected command queue, therefore, the command stored in the
next position is subjected to transmission processing to the
command transmission part 3323. Considering a command COM(2) stored
in the second position in the selected command queue, for example,
this command COM(2) is outputted to the command transmission part
3323 at the step S205 if the same is equal to the command COM(1) in
the head position. If the command(2) is unequal to the command
COM(1) of the head position, on the other hand, the steps S205 to
S207 are skipped after the step S204, so that the command COM(2) is
not outputted to the command transmission part 3323.
[0671] If no command COM(Nc+1) exists in the selected command
queue, on the other hand, the command queue control part 3322
determines whether or not the command transmission processing is
completed, i.e., whether or not the data corresponding to the
commands outputted to the command transmission part 3323 arrive
from the MSFS 3206 at the data buffer part 3324 (step S210), and
returns to the operation at the step S201 if the determination is
of YES. The command queue control part 3322 determines that the
command transmission processing is completed when a receiving
completion notice (refer to a step S308 in FIG. 36 described later)
is received from the command transmission part 3323.
[0672] If the count value of the transmission command counter Ns
exceeds the predetermined threshold value N at the aforementioned
step S207, the command queue control part 3322 advances to the
operation at the step S210, and executes no transmission processing
for the next command.
[0673] As shown in FIG. 36, the command transmission part 3323
receives commands requiring reading of non-preferential data from
the command queue control part 3322 and initializes a read
completion counter Nr (step S301). In other words, the command
transmission part 3323 sets the number of all commands received
from the command queue control part 3322 in the read completion
counter Nr as an initial value. Then, the command transmission part
3323 determines whether or not commands not transmitted to the MSFS
3206 are held in the interior (step S302). If untransmitted
commands are held, the command transmission part 3323 selects and
notes any one command (the next command, in general) from the
untransmitted commands as held, and determines whether or not a
space area capable of storing data corresponding to this command is
present in the data buffer part 3324 when this data is read from
the storage unit 3205 (step S303). Whether or not a space area is
present in the data buffer part 3324 can be determined by referring
to the management information (in more concrete terms, the count
value of each counter) in the buffer management part 3325.
[0674] If a space area is present in the data buffer part 3324, the
command transmission part 3323 reserves an area for storing the
data in the data buffer part 3324, informs the buffer management
part 3325 of this reservation, and transmits the selected command
to the destination MSFS 3206 (step S304). If the area cannot be
reserved, the command transmission part 3323 does not transmit the
command requiring reading of non-preferential data to the MSFS 3206
until a reservable state is attained. By virtue of this processing,
it is possible to prevent data received from the MSFS 3206 from
being disposed due to presence of no storage area in the data
buffer part 3324.
[0675] The buffer management part 3325 has a counter every user
terminal 3208, and increments the count value of the counter
corresponding to the user terminal 3208 transmitting the command
for reading the data whose storage area is reserved in the data
buffer part 3324 when the notice of reservation is received from
the command transmission part 3323.
[0676] Then, the command transmission part 3323 determines whether
or not the data buffer part 3324 receives data from the MSFS 3206
(step S305). If the data buffer part 3324 receives no data from the
MSFS 3206, the command transmission part 3323 returns to the
operation at the step S302, and performs transmission processing
for the next untransmitted command. If the data buffer part 3324
receives data from the MSFS 3206, on the other hand, the command
transmission part 3323 decrements the read completion counter Nr
(step S306). Thus, it comes to that the count value of the read
completion counter Nr indicates the number of commands for which
data are not yet completely transmitted from the MSFS 3206 among
the commands (i.e., all commands received from the command queue
control part 3322 this time) subjected to transmission processing
this time.
[0677] Thereafter the command transmission part 3323 determines
whether or not the count value of the read completion counter Nr
reaches zero (step S307). If the count value of the read completion
counter Nr is not zero, the command transmission part 3323 returns
to the operation at the step S302, and performs transmission
processing for the next untransmitted command. If the count value
of the read completion counter Nr is zeroed, on the other hand, the
command transmission part 3323 transmits a receiving completion
notice to the command queue control part 3322 (step S308), and
completes its operation.
[0678] As clearly understood from the above description, it comes
to that the command transmission part 3323 does not receive the
next command from the command queue control part 3322 until all
data corresponding to the transmitted commands are completely
received from the MSFS 3206 after transmitting all commands
transmitted from the command queue control part 3322.
[0679] The MSFS 3206 receiving the commands requiring reading of
non-preferential data temporarily stores the commands in a
non-preferential command queue provided in its interior. The MSFS
3206 fetches the commands from the non-preferential command queue
in the read band ensured as a non-preferential resource, and
executes data reading from the storage unit 3205. The read data are
transmitted through the communication band ensured between the I/O
unit 3207 requiring this reading and the MSFS 3206 for serving as a
non-preferential resource. At this time, this I/O unit 3207 does
not simultaneously communicate with a plurality of MSFSs 3206 as to
the receiving of the non-preferential data, whereby the MSFS 3206
can transmit the data through the whole communication bands of the
non-preferential resources provided in the I/O unit 3207.
[0680] The data arriving at the VO unit 3207 from the MSFS 3206 are
stored in the already reserved area of the data buffer part 3324.
The data transmission part 3326 fetches the data from the data
buffer part 3324 in a communication band with the exterior of the
server unit ensured as a non-preferential resource, to make the
area having stored the data free. At the same time, the data
transmission part 3326 informs the buffer management part 3325 of
the data fetch. The buffer management part 3325 receiving this
information decrements the counter corresponding to the user
terminal 3208 transmitting the data read commands fetched from the
data buffer part 3324. Then, the data transmission part 3326
transmits the fetched data to the corresponding user terminal
3208.
[0681] According to the eighth embodiment, as hereinabove
described, the resources of the respective parts of the system are
previously separated to those (preferential resources) used for
outputting the preferential data and those (non-preferential
resources) used for outputting the non-preferential data and
managed, whereby the resources employed for reading the
non-preferential data can be ensured independently of the
preferential resources. Consequently, no influence is exerted on
output of the preferential data even if the read quantity of the
non-preferential data is increased.
[0682] The receivability of each user terminal 3208 for the
non-preferential data from the server unit is limited. If a certain
user terminal 3208 still requires reading of non-preferential data
in a quantity exceeding the receivability thereof, the data read
from the storage unit 3205 in response to the request from this
user terminal 3208 is stored in the data buffer part 3324 in a
large quantity. Consequently, the processing for read requests from
the remaining user terminals 3208 is retarded in the server unit.
This phenomenon is now described in more detail with reference to a
concrete example.
[0683] It is assumed that 10 user terminals 3208 are connected to
the server unit, each user terminal 3208 has receivability of 10
Mbps, and the communication band between the server unit and the
exterior is 100 Mbps as a whole, for example. If a certain user
terminal 3208 issues a read request for non-preferential data in a
quantity exceeding 100 Mbps to the server unit, the data buffer
part 3324 is filled with storage data for the single user terminal
3208 issuing the read request. Further, the data stored in the data
buffer part 3324 at this time are reduced only at a speed of 10
Mbps. If a read request for non-preferential data is received from
another user terminal 3208 under such circumstances, transmission
processing for the request from this user terminal 3208 cannot be
executed until a space area capable of storing read data is formed
in the buffer part 3324. In this case, it is impossible to quickly
cope with a read request command requiring immediateness. In this
case, further, the server unit which has communicatability of 100
Mbps as a whole provokes communicatability of only 10 Mbps in
practice, and the best use of the limited communication band cannot
be made.
[0684] According to the eighth embodiment, therefore, the
management information stored in the buffer management part 3325 is
referred to thereby selecting the command queue corresponding to
the user terminal 3208 having the minimum quantity of data stored
in the data buffer part 3324 from the command queues 3321 for the
user terminals 3208 storing commands for preferentially executing
transmission processing of the commands stored in the selected
command queue, whereby a single user terminal 3208 hardly occupies
the non-preferential resources shared by the plurality of user
terminals 3208, and it is possible to make the best use of the
communicability of the server unit for the respective user
terminals 3208.
[0685] If the minimum data quantity stored in the data buffer part
3324 is in excess of a prescribed threshold value, the command
queue control part 3322 may interrupt command fetch from the
selected command queue 3321. Thus, it is possible to further
effectively prevent the data buffer part 3324 from being filled up
with data of a specific user terminal 3208, so that read requests
for non-preferential data from the remaining user terminals 3208
can also be processed.
[0686] In the eighth embodiment, further, the command transmission
part 3323 reserves the area for storing the data in the data buffer
part 3324, and thereafter transmits the commands requiring reading
of non-preferential data to the MSFS 3206. If no storage area can
be reserved, the command transmission part 3323 does not transmit
the commands requiring reading of non-preferential data to the MSFS
3206 until the area can be reserved. Due to the provision of such a
command transmission part 3323, the data received from the MSFS
3206 can be prevented from being disposed due to no storage area in
the data buffer part 3324.
[0687] In the eighth embodiment, further, the command transmission
part 3323 does not receive the next command from the command queue
control part 3322 until all commands transmitted from the command
queue control part 3322 are transmitted and all data corresponding
to the transmitted commands are completely received from the MSFS
3206. Thus, the I/O unit 3207 does not simultaneously communicate
with a plurality of MSFSs 3206 in relation to receiving of the
non-preferential data, whereby it is not necessary to take
collision of non-preferential data into consideration. Further, the
MSFS 3206 can transmit the data at a high speed through all
communication bands of the non-preferential resources provided in
the I/O unit 3207.
[0688] (Ninth Embodiment)
[0689] FIG. 37 is a block diagram showing a data transmission
system employing a server unit according to a ninth embodiment of
the present invention. Referring to FIG. 37, this data transmission
system comprises a resource management part 3701, a data storage
part 3702, an exchange part 3703, an input/output part 3704, and a
plurality of user terminals 3708. The server unit according to this
embodiment is formed by the resource management part 3701, the data
storage part 3702, the exchange part 3703 and the input/output part
3704. This server unit is connected with the respective terminals
3708 through wire or wireless transmission paths.
[0690] The resource management part 3701 manages resources which
are necessary for transmitting data to the respective user
terminals 3708. The data storage part 3702 includes a plurality of
random-accessible storage units (optical disk drivers provided with
auto changers, for example), and a plurality of MSFSs 3706 which
are connected to the storage units 3705 for controlling data
reading. The exchange part 3703 exchanges data between the
input/output part 3704 and the data storage part 3702. According to
this embodiment, ATM switches are employed for the exchange part
3703, for example. The input/output part 3704 includes a plurality
of I/O units 3707, for controlling data input/output between the
server unit and the user terminals 3708. Each user terminal 3708 is
connected to any I/O unit 3707.
[0691] In the aforementioned structure, the exchange part 3703 sets
a connection in the form of a mesh between each I/O unit 3707 and
each MSFS 3706. The band of each connection is managed by the
resource management part 3701.
[0692] The ninth embodiment is different from the aforementioned
eighth embodiment in the following points:
[0693] First, the resource management part 3701, which separates
the resources of the overall system into preferential resources and
non-preferential resources for managing the same, changes the
quantities of the resources allocated as the preferential and
non-preferential resources respectively in response to
increase/decrease of the necessary quantity of the preferential
resources.
[0694] Communication bands of the ATM switches in the exchange part
3703 serving as the non-preferential resources are ensured in an
ABR mode. "ABR" is a service category discussed in "the ATM Forum",
which is an industry body promoting standardization of ATM
communication. In communication through ABR, transmission rates are
automatically adjusted by ATM layers when congestion takes place,
thereby dissolving the congestion. If there are free bands, the
transmission rates are automatically increased to effectively
utilize the communication bands. This ABR is described in ATM Forum
Traffic Management Specification Version 4.0, October 1995, ATM
Forum/95-0013R8 etc.
[0695] FIG. 38 is a block diagram showing a more detailed structure
of the I/O unit 3707 in FIG. 37. Referring to FIG. 38, the I/O unit
3707 comprises a preferential input/output control part 3801 and a
non-preferential input/output control part 3802. The
non-preferential input/output control part 3802 includes a command
queue 3841, a command queue control part 3842, a command
transmission part 3843, a data buffer part 3844, a data
transmission part 3846, and a command acceptance part 3847. The
command transmission part 3843 includes a plurality of counters
3848 and a plurality of transmission queues 3849 provided for every
MSFS 3706.
[0696] The preferential input/output control part 3801 controls
input/output of preferential data such as dynamic image data. On
the other hand, the non-preferential input/output control part 3802
controls input/output of non-preferential data such as still
picture data.
[0697] In the non-preferential input/output control part 3802, the
command queue 3841 collectively stores commands from the user
terminals 3708 requiring reading of non-preferential data. The
command queue control part 3842 controls fetch of the commands from
the command queue 3841. The command transmission part 3843
transmits the commands fetched by the command queue control part
3842 to the corresponding destination MSFSs 3706. The data buffer
part 3844 stores data read by the MSFSs 3706 from the storage unit
3705. The data transmission part 3846 transmits the data stored in
the data buffer part 3844 to the corresponding destination user
terminals 3708. The command acceptance part 3847 manages whether or
not the commands arriving from the user terminals 3708 are
registered in the command queue 3841.
[0698] In the command transmission part 3843, each counter 3848
counts the number of commands whose data do not yet arrive from the
MSFS 3706 in the transmitted data reading commands for every MSFS
3706. Each transmission queue 3849 stores the transmitted commands
for every MSFS 3706.
[0699] FIG. 39 is a flow chart showing the operation of the
resource management part 3701 shown in FIG. 37. FIG. 40 is a flow
chart showing the operation of the command acceptance part 3847
shown in FIG. 38. FIG. 41 is a flow chart showing the operation of
the command queue control part 3842 shown in FIG. 38. FIG. 42 is a
flow chart showing the operation of the command transmission part
3843 shown in FIG. 38. With reference to FIGS. 39 to 42, the
operations of the server unit according to the ninth embodiment are
described.
[0700] First, initialization of the resources performed in starting
of the system is described. In starting of the system, the resource
management part 3701 decides the band width to be ensured for the
non-preferential resources at the minimum among the resources
(including the data read bands of the respective MSFSs 3706,
communication bands between the respective I/O units 3707 and the
exterior, communication bands of the respective ATM switches in the
exchange part 3703 and the like) of the overall data transmission
system. According to this embodiment, the preferential resources
are regularly ensured preferentially to the non-preferential
resources. Unless the minimum band width to be ensured for the
non-preferential resources is decided, therefore, no band can be
ensured for the non-preferential resources and the non-preferential
resources cannot be transmitted if the number of read requests for
the preferential data is increased. In starting of the system,
further, the resource management part 3701 sets ATM communication
paths between the MSFSs 3706 and the I/O units 3707 as the
non-preferential resources by the ABR mode.
[0701] An output operation for the preferential data is now
described. In case of requiring output of preferential data to the
server unit, each user terminal 3708 requires assurance of
resources of a band necessary for transmitting the preferential
data. The preferential input/output control part 3801 receiving the
request for the resource assurance requires the resource management
part 3701 to ensure the resources while specifying the band width.
The resource management part 3701 ensures a communication band of
the ATM switch in the exchange part 3703, a data read band of the
MSFS 3706 and a communication band of the I/O unit 3707 from the
band width previously allocated for the preferential resources, in
order to transmit data of the required band width.
[0702] If all or most part of the bands ensured for the
preferential resources is currently in use and there is no
allowance for a band width necessary for reading and transmitting
the required preferential data, the resource management part 3701
determines that a change request for the band width ensured for the
preferential resources is generated (step S401), as shown in FIG.
39. Thereafter the resource management part 3701 determines whether
or not the aforementioned minimum band width (set in starting of
the system) can be ensured for the non-preferential resources if
the band width for the preferential resources is changed to be
increased. If the minimum band width cannot be ensured for the
non-preferential resources when the band width for the preferential
resources is increased, the resource management part 3701 rejects
the increase of the preferential resources (step S403), and returns
to the operation at the step S401. In this case, assurance of the
preferential resources is unsuccessful and the server unit cannot
execute output of the preferential data.
[0703] If the minimum quantity can be ensured for the
non-preferential resources even if the band width of the
preferential resources is increased, on the other hand, the
resource management part 3701 sets the band width of the
non-preferential resources allocated as the remainder of the
preferential resources after change in the MSFS 3706 and the I/O
unit 3707, and informs the command transmission part 3843 of a
threshold value L of the counter 3848 (step S404). When the
preferential input/output control part 3801 completely outputs the
preferential data, the resource management part 3701 reduces the
corresponding band width from the ensured preferential
resources.
[0704] The operations of the resource management part 3701 and
others are similar to those of the resource management part 3201
etc. shown in FIG. 32, and hence redundant description is
omitted.
[0705] An output operation for the non-preferential data is now
described. When a command requiring reading of non-preferential
data is received from any user terminal 3708 (step S501), the
command acceptance part 3847 determines whether or not the command
queue 3841 has a free space (step S502), as shown in FIG. 40. If
the command queue 3841 has no free space, the command acceptance
part 3847 rejects acceptance of the command to the user terminal
3708 transmitting the same (step S503), and returns to the
operation at the step S501. If the command queue 3841 has a free
space, on the other hand, the command acceptance part 3847 stores
the received command in the final part of the command queue 3841
(step S504), and completes its operation.
[0706] As shown in FIG. 41, the command queue control part 3842
determines whether or not the command queue 3841 stores commands
(step S601), and determines whether or not at least one of the
transmission queues 3849 provided every MSFS 3706 is filled up
(i.e., stores commands up to the tail) if the determination is of
YES (step S602). If at least one of the queues is filled up, the
command queue control part 3842 stops fetch of the commands from
the command queue 3841 until the commands are transmitted and the
transmission queue 3849 has a free space. If no transmission queue
3849 is filled up, on the other hand, the command queue control
part 3842 fetches one command from the head of the command queue
3841, and stores the same in the transmission queue 3849
corresponding to the destination MSFS 3706 (step S603).
[0707] Then, the command queue control part 3842 determines whether
or not commands corresponding to a prescribed data quantity have
been transmitted to the command transmission part 3843 (step S604).
The prescribed data quantity is defined as a data quantity of
non-preferential resources allocated to the I/O unit 3707 at this
point of time and transmittable in a predetermined time through a
smaller one of communication bands between the I/O unit 3707 and
the MSFS 3706 and between the same and the user terminal 3708. If
no commands corresponding to the prescribed data quantity have been
transmitted to the command transmission part 3843, the command
queue control part 3842 returns to the operation at the step S601,
and fetches the next command from the command queue 3841 for
transmitting the same to the command transmission part 3843. When
commands corresponding to the prescribed data quantity have been
transmitted to the command transmission part 3843, on the other
hand, the command queue control part 3842 stops transmission of the
commands from the command queue 3841 to the command transmission
part 3843 for the time T (step S605).
[0708] Assuming that the communication band for the
non-preferential resources for the I/O unit 3707 for outputting
data to the exterior of the server unit is M (KB/s), the
communication band for the non-preferential resources for the I/O
unit 3707 for receiving read data from the MSFS 3706 is N (Kb/r),
the quantity of data read through a single read request command is
S (KB) and M>N, for example, it comes to that the command queue
control part 3842 fetches commands from the command queue 3841 in a
cycle of S/N (sec.) and transmits the same to the command
transmission part 3843.
[0709] As shown in FIG. 42, the command transmission part 3843
initializes a value i expressing the destination MSFS 3706 forthe
command, i.e., sets the value i at 1 (step S701). Then, the command
transmission part 3843 determines whether or not a count value
Co(i) of an i-th counter 3848 is less than the threshold value L
(set at the step S404) set by the resource management part 3701
(step S702). If the count value Co(i) is less than the threshold
value L (i.e., if Co(i)>L), the command transmission part 3843
increments the count value Co(i) of the i-th counter 3848 (step
S703), and fetches a single command from the i-th transmission
queue 3849 for transmitting the same to the corresponding
destination MSFS 3706 (step S704). Then, the command transmission
part 3843 increments the value i (step S705).
[0710] Thereafter the command transmission part 3843 determines
whether or not the data buffer part 3844 receives read data from
the MSFS 3706 (step S706), and decrements the count value of the
counter 3848 corresponding to the MSFS 3706 to which the received
data is transmitted if the determination is of YES (step S707).
Then, the command transmission part 3843 determines whether or not
the value i is greater than the total number of the MSFSs 3706
(step S708). If the value i is not more than the total number of
the MSFSs 3706, the command transmission part 3843 returns to the
operation at the step S702, and executes command transmission
processing to the next transmission queue 3849.
[0711] If the count value Co(i) of the i-th counter 3848 is in
excess of the threshold value L (i.e., if Co(i).gtoreq.L) at the
aforementioned step S702, the command transmission part 3843
transmits no command to the corresponding i-th transmission queue
3849, in order to avoid concentration of read processing to a
single MSFS 3706 and residence of commands in this MSFS 3706.
[0712] If the value i is greater than the total number of the MSFSs
3706 at the step S708, the command transmission part 3843 returns
to the operation at the step S701. Therefore, the value i is set at
the initial value 1, and the aforementioned series of operations
are repeated. Thus, the command transmission part 3843 successively
searches for the plurality of transmission queues 3849 from the
first one, and fetches only one command if a noted transmission
queue 3849 stores commands for transmitting the same to the
corresponding destination MSFS 3706. Thus, the respective MSFSs
3706 uniformly perform read processing, whereby it is possible to
prevent concentration of loads to any one MSFS 3706. Even if read
requests from the user terminals 3708 are concentrated to a single
MSFS 3706, command transmission processing for this MSFS 3706 is
stopped when the number of unprocessed commands (commands whose
data reading is not yet executed) with respect to this MSFS 3706
exceeds the threshold value L. Thus, it is also possible to cope
with such an unexpected accident.
[0713] The MSFS 3706 receiving a non-preferential data read request
temporarily stores this request in the internal non-preferential
command queue. Then, this MSFS 3706 fetches the command from the
non-preferential command queue in a read band ensured for the
non-preferential resources and executes data reading.
[0714] The read data is transmitted through the communication path
ensured between the I/O unit 3707 requiring the reading and the
MSFS 3706 in the ABR mode as a non-preferential resource.
[0715] The data from the MSFS 3706 arriving at the I/O unit 3707 is
stored in the data buffer part 3844. At this time, the count value
of the counter 3848 corresponding to the transmission MSFS 3706 is
decremented (the above step S707).
[0716] The data transmission part 3846 fetches the data from the
data buffer part 3844 along the communication band with the
exterior of the server unit ensured as a non-preferential resource,
and transmits the fetched data to the corresponding user terminal
3708.
[0717] According to the ninth embodiment, as hereinabove described,
all resources not used as preferential resources are managed as
non-preferential resources so that preferential resources are
allocated from the non-preferential resources under conditions that
the number of the non-preferential resources is not below the
prescribed resource quantity (minimum band width), whereby
input/output of the preferential data is not influenced even if
reading of the non-preferential data is increased, while reading of
the non-preferential data is efficiently executed since all unused
resources are used as non-preferential resources.
[0718] In the aforementioned ninth embodiment, the MSFSs 3706
asynchronously operate and hence data transmitted to the I/O units
3707 from these MSFSs 3706 may collide with each other to result in
congestion in the ATM switches provided in the exchange part 3703.
In the ninth embodiment, however, the communication bands of the
ATM switches serving as non-preferential resources are ensured in
the ABR mode so that the MSFSs 3706 reading data transmit the data
through the communication paths ensured in the ABR mode. Even if
congestion takes place, therefore, the transmission rates from the
MSFSs 3706 are immediately reduced to solve the problem of
congestion. Therefore, the I/O units 3707 can regularly normally
receive the data. If the communication bands have free spaces due
to release from the function as preferential resources, the
transmission rates are immediately increased for effectively
utilizing the bands.
[0719] According to the aforementioned ninth embodiment, further,
the commands are successively fetched from the head of the command
queue 3841 in such a cycle that the data quantity required by the
data read commands is equal to the smaller one of the communication
band for serving as a non-preferential resource for the I/O unit
3707 for outputting data to the exterior of the server unit and
that for the non-preferential resource for the I/O unit 3707 for
receiving the read data from the MSFS 3707. Thus, an average band
used by the data transmitted from the MSFS 3706 is equal to or less
than the communication band for the ATM switch for communicating
with the MSFS 3706, whereby an effect of suppressing congestion of
the ATM switches resulting from data transmission of the MSFS 3706
can be expected. Further, an average band used by the data
transmitted from the MSFS 3706 is also equal to or less than the
communication band for serving as a non-preferential resource for
outputting the data to the exterior of the server unit, whereby
increase of the quantity of the data stored in the data buffer part
3844 in the I/O unit 3707 can be suppressed.
[0720] In the aforementioned ninth embodiment, further, the command
transmission part 3843 transmits commands in a noted transmission
queue 3849 to the MSFS 3706 only when the count value of the
counter 3848 corresponding to the noted transmission queue 3849 is
less than the predetermined threshold value L, whereby the number
of data which may be simultaneously transmitted from the MSFS 3706
is limited and an effect of suppressing congestion of the ATM
switches can be expected.
[0721] While the commands are fetched from the internal
non-preferential command queue for executing data reading in the
read band ensured as a non-preferential resource in the ninth
embodiment, the commands may alternatively be fetched from the
non-preferential command queue for executing reading of the
non-preferential data when no I/O processing of data is performed
for the preferential resources. In this case, it is not necessary
to inform the MSFSs 3706 of the data read bands serving as
non-preferential resources in case of change of the band width of
the non-preferential resources.
[0722] While the counter 3848 and the transmission queue 3849 are
provided for every MSFS 3706 in the aforementioned ninth
embodiment, the number of data which may be simultaneously
transmitted from the MSFSs 3706 is limited similarly to the ninth
embodiment also when a single counter and a single transmission
queue are provided for every I/O unit 3707 with no attention to the
transmission MSFS, and an effect of suppressing congestion of the
ATM switches can be expected. When data read requests from the user
terminals 3708 are concentrated to a specific MSFS 3706 to some
extent, however, the read efficiency may conceivably be
deteriorated. This is because the requests cannot be transmitted to
the MSFS 3706 by the threshold control of the count value of the
counter 3848 if data from the MSFS 3706 to which the requests are
concentrated are not received, although a response must be
immediately obtainable if a request can be transmitted to an MSFS
3706 to which no requests are concentrated.
[0723] In general, a user of a file system specifies the range of
acquired file data and transmits a data transmission request to a
server in the file system. The server transmits all file data in
the range specified by the data transmission request to the user.
In the conventional file system, the user can perform an operation
of interrupting data transmission processing which is under
execution by the server, while he cannot perform an operation of
temporarily stopping data transmission processing in execution and
resuming the temporarily stopped data transmission processing.
[0724] In a file system handling digitized dynamic image data,
continuous transmission processing of the data at an arbitrary data
transmission speed is inevitable. In relation to such a file system
handling dynamic image data, the draft of ISO/IEC standard 13818-9
defines temporary stop and resume operations of continuous
transmission of data in relation to a single dynamic image file.
According to this draft, it is defined that data transmission is
temporarily stopped by "DSM stream pause", and resumed by "DSM
stream resume".
[0725] In relation to the pause for temporarily stopping continuous
transmission of data at a certain transmission speed and pause
release for resuming the temporarily stopped data transmission in
the conventional file system handling dynamic image data, however,
no pause control system of resuming the data transmission at an
arbitrarily specified data transmission speed in pause release has
been established.
[0726] In the conventional file system, further, a time necessary
for data acquisition in case of resuming data transmission by pause
release is taken into consideration. If the data transmission rate
is changed around the pause processing, therefore, this may result
in insufficiency of data necessary for continuous transmission,
overflow of the acquired data from a buffer, and necessity for a
time for the file system for acquiring next data before resuming of
data transmission.
[0727] Description is now made on an embodiment which causes no
data insufficiency in data transmission and can reduce the time up
to resuming also when the transmission speed after pause release is
arbitrarily specified in a file system for temporarily stopping and
resuming continuous transmission processing of data.
[0728] (Tenth Embodiment)
[0729] FIG. 43 is a block diagram showing the structure of a file
system according to a tenth embodiment of the present invention.
Referring to FIG. 43, this file system comprises a server unit 4301
and a data storage unit 4302.
[0730] The data storage unit 4302 stores data managed by the server
unit 4301 and used by a user 4303. The user 4303 issues a data
transmission request requiring transmission of data in a specified
range, a pause request requiring temporary stop of data
transmission, and a pause release request requiring resuming of the
temporarily stopped data transmission. The server unit 4301 is
adapted to receive the data transmission request from the user
4303, acquire data from the data storage unit 4303, and transmit
the data to the user 4303, and includes a data transmission part
4310, a data acquisition part 4311, a buffer 4312, a buffer
management part 4313, and a pause control part 4314.
[0731] The data acquisition part 4311 acquires data from the data
storage unit 4302 successively from a specified position and
continuously at a specified speed. The buffer 4312 stores the data
acquired from the data storage unit 4302. The buffer management
part 4313 operates the data stored in the buffer 4312 and manages
the data quantity. The data transmission part 4310 transmits the
data stored in the buffer 4312 to the user 4303 in the specified
order continuously at the specified arbitrary transmission speed.
The pause control part 4314 receives the pause request and the
pause release request from the user 4303 and controls the data
transmission part 4310, the data acquisition part 4311 and the
buffer management part 4313. It is assumed that all data handled by
the server unit 4301 and the data storage unit 4302 are operated in
units of blocks of fixed lengths, and block numbers indicating the
positions in the data are continuously provided to the respective
blocks.
[0732] FIG. 44 is a timing diagram showing the relation between the
data transmission request, data acquisition requests and data
transmission in a data transmission operation of the server unit
4301. With reference to FIG. 44, the operation of the server unit
4301 accepting the data transmission request from the user 4303 is
described.
[0733] Referring to FIG. 44, reference numerals 4441 and 4442
denote time bases, corresponding vertical positions of which
express identical times. Reference numeral 4431 denotes the data
transmission request from the user 4303 accepted by the server unit
4301 and the acceptance time. Reference numerals 4401A to 4403A
denote data acquisition requests issued by the data acquisition
part 4311 to the data storage unit 4302 and the issuance times.
Reference numerals 4411A to 4413A denote data acquired by the data
acquisition requests 4401A to 4403A and times when the data
transmission part 4310 transmits the data to the user 4303.
Reference numeral 4421 denotes the maximum time between the
issuance of the data acquisition request 4401 and storage of the
corresponding data 4411A in the buffer 4312. Reference numerals
4451 to 4454 denote time intervals at which the data transmission
part 4310 transmits the data to the user 4303.
[0734] The user 4303 issues the data transmission request 4431, and
specifies the data range and the transmission speed for
transmitting the data. The data range is specified by a start block
number and an end block number. The data transmission speed is
specified by a data transmission interval (hereinafter referred to
as Tsd) which is an average time interval between the transmitted
blocks.
[0735] When the data transmission request 4431 is accepted, the
data acquisition part 4311 issues the data acquisition request
4401A for acquiring a single block corresponding to the start block
number specified by this data transmission request 4431. After a
lapse of the data transmission interval Tsd from the issuance time
for the data acquisition request 4401A, the data acquisition part
4311 issues the data acquisition request 4402A for acquiring the
next single block to the data storage unit 4302. Through a similar
procedure, the data acquisition part 4311 repeatedly issues data
transmission requests until the end block number specified by the
data transmission request 4431 is reached.
[0736] The blocks acquired from the data storage unit 4302 by the
data acquisition request 4401A are stored in the buffer 4312. A
data acquisition time D, which is the maximum time between issuance
of a data acquisition request by the data acquisition part 4311 and
storage of the corresponding single block in the buffer 4312, is a
known value. Namely, it is guaranteed that the specified single
block can necessarily be acquired in this data acquisition time
D.
[0737] The block acquired by the data acquisition request 4401A and
stored in the buffer 4312 is transmitted by the data transmission
part 4310 to the user 4303 at the data transmission time 4411A
after a lapse of the data acquisition time D from the issuance time
for the data acquisition request 4401 A. Similarly, the block
acquired by the data acquisition request 4402A is transmitted from
the data transmission part 4310 to the user 4303 at the
transmission time 4412A after a lapse of the data acquisition time
D from the issuance time for the data acquisition request 4402A.
Through a similar procedure, data transmission is continuously
performed until data corresponding to the end block number
specified by the data transmission request 4431 is transmitted. Due
to the aforementioned operation, continuous data transmission at
the arbitrary data transmission speed specified by the user 4303 is
implemented.
[0738] 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 4301. With
reference to FIG. 45, the operation of the pause control part 4314
in the server unit 4301 receiving a pause request from the user
4303 is described.
[0739] Referring to FIG. 45, reference numeral 4432 denotes the
pause request from the user 4303 accepted by the pause control part
4314 and its acceptance time. Reference numerals 4404A to 4406A
denote the data acquisition requests issued by the data acquisition
part 4311 to the data storage unit 4302 and issuance times thereof
Reference numerals 4414A and 4415A denote data required by the data
acquisition requests 4044A and 4045A and times when the data
transmission part 4310 transmits the data to the user 4303.
Reference numeral 4422 denotes the maximum time between the
issuance of the data acquisition request 4404A and storage of the
corresponding data 4414A in the buffer 4312. Reference numerals
4455 to 4457 denote time intervals at which the data transmission
part 4310 transmits data to the user 4303.
[0740] If the pause control part 4314 accepts the pause request
4432 when the data acquisition part 4311 is in the process of
issuing the data acquisition requests 4404A to 4406A in response to
the data transmission request from the user 4303 and after the data
acquisition requests 4404A and 4405A are issued, the pause control
part 4314 controls the data acquisition part 4311 to immediately
stop issuance of the data acquisition requests. Thus, the data
acquisition request 4406A is not issued from the data acquisition
part 4311. Similarly, the pause control part 4314 controls the data
transmission part 4310 to immediately stop data transmission. The
transmission times for the blocks 4414A and 4415A acquired by the
data acquisition requests 4404A and 4405A are later than the pause
request acceptance time, and hence these blocks 4414A and 4415A
remain stored in the buffer 4312, and are not transmitted from the
data transmission part 4310 to the user 4303. Due to the
aforementioned operation, temporary stop of the continuously
transmitted data is implemented.
[0741] 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 4301.
With reference to FIG. 46, the operation of the pause control part
4314 receiving a pause release request from the user 4303 is
described.
[0742] Referring to FIG. 46, reference numeral 4433 denotes the
pause release request from the user 4303 accepted by the pause
control part 4314 and its acceptance time. Reference numerals 4406A
to 4408A denote data acquisition requests issued by the data
acquisition part 4311 to the data storage unit 4302 and issuance
times thereof Reference numerals 4414A and 4415A denote two blocks
remaining stored in the buffer 4312 in pause processing and
transmission times to the user 4303. Reference numerals 4416A and
4417A denote data acquired by the data acquisition requests 4406A
and 4407A after pause release and times when the data transmission
part 4310 transmits the data to the user 4303. Reference numeral
4423 denotes the maximum time D between the issuance of the data
acquisition request 4406A and storage of the corresponding data
4416A in the buffer 4312. Reference numerals 4458 to 4462 denote
time intervals at which the data transmission part 4310 transmits
data to the user 4303.
[0743] The user 4303 issues the pause release request 4433, and
specifies the data transmission speed after pause release. The data
transmission speed is specified by a data transmission interval
Tsd', which is an average time interval between transmitted blocks,
similarly to that in the data transmission request.
[0744] When the pause release request 4433 from the user 4303 is
accepted, the pause control part 4314 refers to the buffer
management part 4313, thereby acquiring the number N of blocks
remaining stored in the buffer 4312 after the pause processing.
[0745] A time when the pause control part 4314 controls the data
acquisition part 4311 to immediately resume data acquisition in
response to the pause release request 4433 is defined as a data
acquisition resume time trd. Similarly, a transmission time for a
block to be subsequently transmitted among those stored in the
buffer 4312, i.e., the data transmission time 4414A in FIG. 46, is
defined as a data transmission resume time tsd.
[0746] The pause control part 4314 substitutes the data acquisition
resume time trd, the number N of blocks in the buffer 4312, the
data transmission interval Tsd' after the pause release and the
data acquisition time D in the following expression (14), thereby
obtaining the data transmission resume time tsd:
tsd=trd+D-N.multidot.Tsd' (14)
[0747] Then, the pause control part 4314 compares the data
transmission resume time tsd obtained through the above expression
(14) with the data acquisition resume time trd, and decides the
time obtained through the expression (14) as the data transmission
resume time tsd if this data transmission resume time tsd is in
excess of the data acquisition resume time trd. If the data
transmission resume time tsd is less than the data acquisition
resume time trd, on the other hand, the pause control part 4314
decides a time equal to the data acquisition resume time trd as the
data transmission resume time tsd.
[0748] Then, the pause control part 4314 controls the data
acquisition part 4311 at the data acquisition resume time trd to
issue data acquisition requests successively from the data
acquisition request 4406A for acquiring the block 4416A next to the
final block 4415A stored in the buffer 4312 up to the end block.
Similarly, the pause control part 4314 controls the data
transmission part 4310 at the decided data transmission resume time
tsd to immediately transmit the data successively from the head
block 4414A stored in the buffer 4312 up to the end block.
[0749] According to the tenth embodiment, as hereinabove described,
the pause control part 4314 obtains the data transmission resume
time through the above expression (14) when an arbitrary
transmission speed is specified as the data transmission speed
after pause release, whereby the data are not interrupted after
pause release but can be transmitted at the specified transmission
speed.
[0750] (Eleventh Embodiment)
[0751] A file system according to an eleventh embodiment of the
present invention is now described with reference to the drawings.
The eleventh embodiment is similar in overall structure to the
tenth embodiment shown in FIG. 43, except functions of respective
blocks. Therefore, the eleventh embodiment is now described with
reference to the structure of the tenth embodiment shown in FIG.
43.
[0752] In the eleventh embodiment, an operation of a server unit
4301 accepting a data transmission request from a user 4303 is
identical to the operation of the tenth embodiment described with
reference to FIG. 44. Similarly, an operation of a pause control
part 4314 receiving a pause request from the user 4303 is identical
to that of the tenth embodiment described with reference to FIG.
45. Therefore, description of these operations is omitted.
[0753] 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 the server unit 4301.
With reference to FIG. 47, the operation of the pause control part
4314 accepting a pause release request from the user 4303 is now
described.
[0754] Referring to FIG. 47, reference numerals 4741 and 4742
denote time bases, vertical corresponding positions of which
express the same times. Reference numeral 4733 denotes the pause
release request from the user 4303 accepted by the pause control
part 4314 and its acceptance time. Reference numerals 4706B and
4707B denote data acquisition requests issued by the data
acquisition part 4311 for a data storage unit 4302 and issuance
times thereof. Reference numerals 4714B and 4715B denote two blocks
remaining stored in a buffer 4312 in pause processing and
transmission times to the user 4303. Reference numerals 4716B and
4717B denote data acquired by the data acquisition requests 4706B
and 4707B and times when the data transmission part 4310 transmits
the data to the user 4303. Reference numeral 4724 denotes the
maximum time D between issuance of the data acquisition request
4706B and storage of the corresponding data 4716B in the buffer
4312. Reference numerals 4763 to 4766 denote time intervals at
which the data transmission part 4310 transmits data to the user
4303.
[0755] The user 4303 issues the pause release request 4733, and
specifies a data transmission speed after pause release. The data
transmission speed is specified by a data transmission interval
Tsd' which is an average time interval between transmitted blocks,
similarly to the case of the data transmission request.
[0756] When the pause release request 4733 from the user 4303 is
accepted, the pause control part 4314 refers to a buffer management
part 4313, and acquires the number N of blocks remaining stored in
the buffer 4312 after pause processing.
[0757] A time when the pause control part 4314 controls the data
acquisition part 4311 to immediately resume data acquisition in
response to the pause release request 4733 is defined as a data
acquisition resume time trd. Similarly, a transmission time for a
block to be subsequently transmitted among those stored in the
buffer 4312, i.e., the data transmission time 4714B in FIG. 47, is
defined as a data transmission resume time tsd.
[0758] The pause control part 4314 substitutes the data
transmission resume time tsd, the number N of blocks in the buffer
4312, the data transmission interval Tsd' after pause release and a
data acquisition time D in the following expression (15), thereby
obtaining the data acquisition resume time trd:
trd=tsd+N.multidot.Tsd'-D (15)
[0759] The pause control part 4314 compares the data acquisition
resume time trd obtained through the above expression (15) with the
data transmission resume time tsd, and decides the time obtained
through the expression (15) as the data acquisition resume time trd
if this data acquisition resume time trd is in excess of the data
transmission resume time tsd. If the data acquisition resume time
trd is less than the data transmission resume time tsd, on the
other hand, the pause control part 4314 obtains the data
transmission resume time tsd by substituting the data acquisition
resume time trd, the number N of blocks in the buffer 4312, the
data transmission interval Tsd' after pause release and the data
acquisition time D, where the tenth embodiment is applied.
[0760] The pause control part 4314 controls the data acquisition
part 4311 at the decided data acquisition resume time trd to issue
data acquisition requests successively from the data acquisition
request 4706A for acquiring the block 4716B next to the final block
4715B stored in the buffer 4312 up to the end block. Similarly, the
pause control part 4314 controls the data transmission part 4310 at
the decided data transmission resume time tsd to immediately
transmit the data successively from the head block 4714B stored in
the buffer 4312 up to the end block.
[0761] According to the eleventh embodiment, as hereinabove
described, the pause control part 4314 obtains the data acquisition
resume time through the above expression (15) when an arbitrary
transmission speed is specified as the data transmission speed
after pause release, whereby the data are not interrupted after
pause release but can be transmitted at the specified transmission
speed.
[0762] (Twelfth Embodiment)
[0763] A file system according to a twelfth embodiment of the
present invention is now described with reference to the drawings.
The twelfth embodiment is similar in overall structure to the tenth
embodiment shown in FIG. 43, except functions of respective blocks.
Therefore, the twelfth embodiment is now described with reference
to the structure of the tenth embodiment shown in FIG. 43.
[0764] In the twelfth embodiment, an operation of a server unit
4301 accepting a data transmission request from a user 4303 is
identical to that in the tenth embodiment described with reference
to FIG. 44. Similarly, an operation of a pause control part 4314
receiving a pause request from the user 4303 is identical to that
of the tenth embodiment described with reference to FIG. 45.
Therefore, description of these operations is omitted.
[0765] FIG. 48 is a timing diagram for illustrating a method of
calculating a data transmission resume time in a pause release
operation. FIG. 49 is a timing diagram showing the relation between
a data transmission request, data acquisition requests and data
transmission in the pause release operation of the server unit
4301. With reference to FIGS. 48 and 49, the operation of the pause
control part 4314 accepting a pause release request from the user
4303 is now described.
[0766] Referring to FIG. 48, reference numerals 4841 and 4842
denote time bases, vertical corresponding positions of which
express the same times. Reference numeral 4833 denotes the pause
release request from the user 4303 accepted by the pause control
part 4314 and its acceptance time. Reference numeral 4806C denotes
a data acquisition request issued by the data acquisition part 4311
to a data storage unit 4302 and its scheduled issuance time.
Reference numerals 4814C and 4815C denote two blocks remaining
stored in a buffer 4312 in pause processing and scheduled
transmission times to the user 4303. Reference numeral 4816C
denotes data to be acquired by the data acquisition request 4306C
and a scheduled time for the data transmission part 4310 for
transmitting the data to the user 4303. Reference numeral 4825
denotes the maximum time D between issuance of the data acquisition
request 4806C and storage of the corresponding data 4816C in the
buffer 4312. Reference numerals 4867 and 4868 denote time intervals
at which the data transmission part 4310 transmits data to the user
4303.
[0767] Referring to FIG. 49, reference numeral 4833 denotes the
pause release request from the user 4303 accepted by the pause
control part 4314 and its acceptance time. Reference numerals
4805C', 4806C and 4807C denote issuance times of data acquisition
requests issued by the data acquisition part 4311 for a data
storage unit 4302. Reference numeral 4814C' denotes a block
remaining stored in the buffer 4312 after pause processing and a
transmission time to the user 4303. Reference numerals 4815C' and
4816C denote data acquired by the data acquisition requests 4805C'
and 4806C and times when the data transmission part 4310 transmits
the data to the user 4303. Reference numeral 4826 denotes the
maximum time D between issuance of the data acquisition request
4805C' and storage of the corresponding data 4815C' in the buffer
4312. Reference numerals 4869 to 4872 denote time intervals at
which the data transmission part 4310 transmits data to the user
4303.
[0768] The user 4303 issues the pause release request 4833, and
specifies a data transmission speed after pause release. The data
transmission speed is specified by a data transmission interval
Tsd' which is an average time interval between transmitted blocks,
similarly to the case of the data transmission request.
[0769] When the pause release request 4833 from the user 4303 is
accepted, the pause control part 4314 refers to a buffer management
part 4313, and acquires the number N of blocks remaining stored in
the buffer 4312 after pause processing.
[0770] A time when the pause control part 4314 controls the data
acquisition part 4311 to immediately resume data acquisition in
response to the pause release request 4833 is defined as a data
acquisition resume time trd. Similarly, a transmission time for a
block to be subsequently transmitted among those stored in the
buffer 4312, i.e., the data transmission time 4814C in FIG. 48 and
the data transmission time 4814C' in FIG. 49, is defined as a data
transmission resume time tsd.
[0771] The pause control part 4314 obtains a scheduled data
transmission resume time tsd through the above expression (14).
Then, the pause control part 4314 compares the scheduled data
transmission resume time tsd obtained through the expression (14)
with the data acquisition resume time trd, decides the time
obtained through the expression (14) as the data acquisition resume
time tsd when the scheduled data transmission resume time tsd is in
excess of the data acquisition resume time trd, and performs the
following processing, similarly to the pause release processing
described above with reference to the tenth embodiment: Namely, the
pause control part 4314 controls the data acquisition part 4311 at
the data acquisition resume time trd to immediately issue data
acquisition requests successively from a data acquisition request
for acquiring a block next to the final block stored in the buffer
4312 up to the end block. Similarly, the pause control part 4314
controls the data transmission part 4310 at the decided data
transmission resume time tsd to immediately transmit the data
successively from the head block stored in the buffer 4312 up to
the end block.
[0772] If the scheduled data transmission resume time tsd obtained
through the expression (14) is less than the data acquisition
resume time trd, i.e., in the case shown in FIG. 48, the following
processing is performed: Namely, the pause control part 4314
obtains at the data acquisition time 4825 in FIG. 48 the number L
of blocks which can be transmitted at the data transmission speed
Tsd' after pause release, i.e., the limit data quantity, through
the following expression (16):
L=[D/Tsd'] (16)
[0773] where [X] is assumed to be the maximum integer not exceeding
X.
[0774] Then, the pause control part 4314 obtains the number Nd of
blocks deleted from the buffer 4312 through the following
expression (17), and controls the buffer management part 4313 to
delete the Nd blocks obtained through the expression (17):
Nd=N-L (17)
[0775] The buffer management part 4313 deletes Nd blocks from the
buffer 4312 in order finally stored in the buffer, i.e., in order
from the largest block number. Thus, the block number in the buffer
4312 matches with L. Consequently, the block 4815C shown in FIG. 48
is deleted from the buffer 4312.
[0776] The pause control part 4314 substitutes the data acquisition
resume time trd, the block number L in the buffer 4312, the data
transmission interval Tsd' after pause release and the data
acquisition time D in the following expression (18), thereby newly
obtaining a data transmission resume time tsd':
tsd'=trd+D-L.multidot.Tsd' (18)
[0777] Then, the pause control part 4314 controls the data
acquisition part 4311 at the data acquisition resume time trd to
issue data acquisition requests successively from the data
acquisition request 4805C for acquiring the block 4815C' next to
the final block 4814C' stored in the buffer 4312 up to the end
block. Similarly, the pause control part 4314 controls the data
transmission part 4310 at the decided data transmission resume time
tsd' to immediately transmit the data successively from the head
block 4814C' stored in the buffer 4312 up to the end block.
[0778] According to the twelfth embodiment, as hereinabove
described, data exceeding the limit data quantity are deleted from
the buffer 4312 when an arbitrary transmission speed is specified
as the data transmission speed after pause release, whereby the
server unit 4301 may not have a buffer capacity exceeding the limit
data quantity but the data can be transmitted at the specified
transmission speed with no interruption of the data after pause
release.
[0779] While the invention has been described in detail, the
foregoing description is in all aspects illustrative and not
restrictive. It is understood that numerous other modifications and
variations can be devised without departing from the scope of the
invention.
* * * * *