`
`11111
`
`III
`
`111111
`
`11111111
`
`III 111111111111111111111111111111111111111
`
`11111
`
`US005293618A
`Patent Number
`
`Date of Patent
`
`5293618
`Mar
`
`1994
`
`grammer of Hitachi Program Product VOS 3/ES Sys
`tem 1988 pp 97104
`
`Primary ExaminerGareth
`Assistant ExaminerA Katbab
`Attorney Agent or FirmAntonelli Terry Stout
`Kraus
`
`Shaw
`
`ABSTRACT
`
`file
`
`In an information processing system including
`shared by computer systems each having
`central pro
`cessing system and main memory method for con
`trolling access to the shared file includes
`step of stor
`read from the file into the main memory
`ing blocks
`when the blocks of the file are updated and
`step of
`portion of the blocks held in
`least
`comparing at
`cache memory with at
`portion of the blocks
`least
`stored in the main memory When the comparison of at
`the portion of the blocks held in the cache memory
`with at least
`the portion of the blocks stored in the main
`memory indicates mismatching the block is read from
`the file into the main memory and when the compari
`son indicates matching the block of the main memory is
`updated The data to be updated may be in
`resident
`same area
`area an input/output
`buffer or
`
`least
`
`Claims Drawing Sheets
`
`501
`
`IY
`
`503
`
`504
`
`UPDATE UPDATE STATUS
`INDICATOR IN CACHE
`MEMORY AND UPDATE
`BLOCK ON DISK MEDIUM
`
`BLOCK INTO
`WRITE
`MAIN MEMORY
`
`CEND
`
`United States Patent
`
`Tandal et al
`
`METHOD FOR CONTROLLING ACCESS TO
`SHARED FILE AND APPARATUS
`ThEREFOR
`
`Inventors
`
`Michio Tandai Yokohama Masaaki
`llama Fujisawa Fujio Fujita
`Yokohama all of Japan
`
`Assignees Hitachi Ltd Tokyo Hitachi
`Software Engineering Co Ltd
`Yokohama both of Japan
`AppI No 614088
`Nov 15 1990
`
`Filed
`
`Foreign Application Priority Data
`
`Japan
`
`1-300611
`
`Nov 18 1989
`mt Q5
`
`U.S Cl
`
`Field of Search
`
`364/246.6
`
`GO6F 7/00 GO6F 7/20
`GO6F 7/04
`395/650 364/DIG
`364/243.41
`364/228.1
`395/650 364/DIG
`364/246.6
`228.1 243.41
`
`References Cited
`U.S PATENT DOCUMENTS
`
`4823310
`4897782
`
`4/1989
`
`Grand
`
`1/1990
`
`Bennett et al
`
`364/900
`
`364/200
`
`OTHER PUBLICATIONS
`DASD sharing with other systems Manual for Pro
`
`START
`
`READ UPDATE STATUS
`OF BLOCK TO
`INDICATOR
`BE UPDATED
`IN CACHE
`MEMORY
`
`AND UPDATE
`STATUS INDICATOR IN
`CACHE MEMORY EQUAL
`
`ARE CONTENT OF SAVEffAREA
`
`Petitioner IBM – Ex. 1062, p. 1
`
`
`
`U.S Patent
`
`Mar
`
`1994
`
`Sheet
`
`of
`
`5293618
`
`I/O BUFFER
`
`106
`
`L5i
`
`RESIDENT
`AREA
`
`RESIDENT
`AREA
`
`RESI DENT
`AREA
`
`RESIDENT
`AREA
`
`RESIDENT
`AREA
`
`RESIDENT
`AREA
`
`_I08
`
`Petitioner IBM – Ex. 1062, p. 2
`
`
`
`U.S Patent
`
`Mar
`
`1994
`
`Sheet
`
`of
`
`5293618
`
`FIG
`
`-20I
`
`201
`
`DATA
`ACCESSING
`UNIT
`
`DATA
`ACCESSING
`UNIT
`
`CHANNEL
`PROGRAM
`UNIT
`
`202
`
`OPERATION OF DATA
`ACCESSING UNIT
`
`301
`
`304
`
`ISSUE CHANNEL PROGRAM
`HAVING PROCESS OF FIG.4
`AND START
`TO READ
`BLOCK TO BE UPDATED
`INTO I/O BUFFER
`
`302
`SAVE UPDATE STATUS
`INTO SAVE
`INDICATOR
`AREA
`
`303
`
`UPDATE
`CONTENT OF
`BLOCK IN I/O BUFFER
`
`ISSUE CHANNEL PROGRAM
`HAVING PROCESS OF FIG
`
`IS DECISION IN 502
`OF FIG.5 YES
`
`NQ
`
`YES
`
`CENDD
`
`Petitioner IBM – Ex. 1062, p. 3
`
`
`
`U.S Patent
`
`Mar
`
`1994
`
`Sheet
`
`of
`
`5293618
`
`FIG
`
`START
`
`POSITION READING OF BLOCK
`BY CHANNEL PROGRAM UNIT
`TO THE BLOCK ON DISK MEDIUM
`
`401
`
`READ BLOCK INTO MAIN
`MEMORY AND STORE
`UPDATE STATUS INDICATOR
`INTO CACHE MEMORY
`
`402
`
`CENDD
`
`FIG
`
`START
`
`50I
`
`NO
`
`503
`
`504
`
`BLOCK INTO
`WRITE
`MAIN MEMORY
`
`READ UPDATE
`STATUS
`INDICATOR OF BLOCK TO
`BE UPDATED IN CACHE
`MEMORY
`
`/SA\
`
`AREA AND UPDATE
`STATUS INDICATOR
`IN
`CACHE MEMORY EQUAL
`
`IYES
`
`UPDATE
`UPDATE
`STATUS
`INDICATOR IN CACHE
`MEMORY AND UPDATE
`BLOCK ON DISK MEDIUM
`
`CEDD
`
`Petitioner IBM – Ex. 1062, p. 4
`
`
`
`U.S Patent
`
`Mar
`
`1994
`
`Sheet
`
`of
`
`5293618
`
`FIG
`
`READ INDEX BLOCK
`AND
`HAVING POINTER
`WRITE BLOCK AT ADDRESS
`POINTED BY POINTER
`sTAm DATA ACCESSING UNIT
`
`PROGRAM
`ISSUE CHANNEL
`HAVING PROCESS OF FIG
`AND START READING OF
`INDEX BLOCK FROM DISK
`INTO I/O BUFFER
`
`601
`
`DETERMINE TARGET BLOCK
`ADDRESS BASED ON POINTER
`IN INDEX BLOCK
`
`602
`
`ISSUE CHANNEL PROGRAM
`HAVING PROCESS OF FIG
`FOR READING TARGET BLOCK
`
`YES
`
`CEND
`
`Petitioner IBM – Ex. 1062, p. 5
`
`
`
`U.S Patent
`
`Mar
`
`1994
`
`Sheet
`
`of
`
`5293618
`
`FIG
`
`POINTER RELATIONSHIP
`
`IN FILE
`
`109
`
`FIG
`TARD
`
`_______________________
`
`_______________________
`
`POSITION TO BLOCK
`ON DISK MEDIUM
`
`701
`
`BLOCK INTO MAIN
`WRITE
`MEMORY AND STORE
`BLOCK INTO CACHE
`MEMORY
`
`.--- 702
`
`CENDD
`
`Petitioner IBM – Ex. 1062, p. 6
`
`
`
`U.S Patent
`
`Mar
`
`1994
`
`Sheet
`
`of
`
`5293618
`
`FIG
`
`STARD
`
`COMPARE INDEX BLOCK
`STORED IN I/O BUFFER
`INDEX BLOCK IN
`WITH
`CORRESPONDING
`CACHE MEMORY
`
`801
`
`ARE COENT OF I/O
`BUFFER AND CONTENT CF
`
`CEMYEQUAL
`
`803
`
`YES
`
`WRITE TARGET BLOCK
`POINTED BY POINTER CF
`INDEX BLOCK INTO
`MAIN MEMORY
`
`WRITE INDEX BLOCK
`INTO MAIN MEMORY
`
`ENDD
`
`Petitioner IBM – Ex. 1062, p. 7
`
`
`
`U.S Patent
`
`Mar
`
`1994
`
`Sheet
`
`of
`
`5293618
`
`FIG 10
`
`START_D
`
`ISSUE CHANNEL
`AND DJMINE 901
`PROGRAM HAVING_PROCESS
`CF FIG
`WHETHER
`CONTENT OF
`BLOCK IN RESIDENT
`AREA IS LATEST ONE
`
`USE CONTENT OF BLOCK
`IN RESIDENT AREA
`
`STORE CCNTENT OF
`NEWLY
`READ BLOCK INTO
`RESIDENT AREA AND USE
`THE CONTENT
`
`END
`
`Petitioner IBM – Ex. 1062, p. 8
`
`
`
`U.S Patent
`
`Mar
`
`1994
`
`Sheet
`
`of
`
`5293618
`
`FIG II
`
`START
`
`UPDATE STATUS
`READ
`INDICATOR IN CACHE
`MEMORY CORRESPONDING
`TO BLOCK TO BE WRITTEN
`
`I00I
`
`/ARE CONTENT OF
`RESIDENT AREA AND
`UPDATE STATUS
`IN CACHE
`INDICATOR
`MEMORY EQUAL
`
`1002
`
`NO
`
`YES
`
`1003
`
`BLOCK INTO
`WRITE
`MAIN MEMORY
`
`LEND
`
`Petitioner IBM – Ex. 1062, p. 9
`
`
`
`5293618
`
`METHOD FOR CONTROLLING ACCESS TO
`SHARED FILE AND APPARATUS THEREFOR
`
`cuted by another computer system Thus the resident
`function cannot be used among the computer systems
`SUMMARY OF THE INVENTION
`
`to
`
`It
`
`is
`
`cessing
`
`10
`
`plurality
`
`It
`
`is
`
`20
`
`It
`
`BACKGROUND OF THE INVENTION
`invention to enhance
`first object of the present
`information pro-
`processing efficiency of an overall
`The present
`invention relates to access control
`system by eliminating the exclusive control
`shared file stored for example on
`disk drive or mag-
`time period from the reading of desired block
`during
`netic tape drive which is shared and updated by
`plu-
`to the writing of update data in an update process for
`rality of computer systems and more particularly to
`plurality of computer systems with the
`file shared by
`access control which eliminates need for exclusive con-
`updating or from the reading of
`block having
`in an update process and improves performance of
`trol
`pointer such as an index to the reading of
`desired
`data accessing in block writing
`block at an address pointed by the pointer
`In middle size to large size information processing
`second object of the present invention to en-
`systems one disk file is frequently shared by
`file shared by
`data access performance in
`15 hance
`of computer systems Especially
`system register disk
`plurality of computer
`systems with the updating by
`on which files are registered is shared and fre-
`file
`suppressing the reading from the file and using the con
`quently updated or overwritten
`tent of the block stored in main memory when the
`In the past when one file is shared by
`plurality of
`desired block has not been updated
`computer systems duplicate updating is prevented by
`invention to pro-
`is another object of the present
`exclusive control of the writing of desired block to the
`data accessing perfor
`system which enhances
`vide
`reading for updating when data processing is to be per-
`mance of computer systems of multi-computer
`system
`formed for the desired stored block by
`computer sys-
`file shared by the computer system with the updat
`for
`in the DASD Sharing
`tem For example as described
`ing by using resident area of main memory of each of
`with other systems manual for Programmer of Hitachi
`cache memory of the file
`the computer systems and
`Program Product VOS3/ES
`System 1988
`pages
`shared by the computer systems so that
`the input/out-
`97104 when an I/O request
`shared file is issued
`put to the file medium is reduced
`to
`disk drive on which the shared file is stored is exclu-
`the above objects in accordance
`In order
`to achieve
`computer system by
`by the associated
`with the present
`cache
`invention
`there are provided
`an instruction set such as RESERVE macro which is 30 memory for storing all or
`predetermined portion of
`issued from CPU to the disk drive to designate
`block written from shared file into main memory
`occupy the disk drive and I/O requests
`from other
`block
`and means for comparing at the time of updating
`computer systems have to wait until
`the occupation is
`all or portion of the block stored in the cache memory
`released by an instruction set such as DEQ macro
`with the content of data in the main memory and read-
`which is issued to release the designated disk drive from
`the comparison indicates mismatch-
`ing the shared file if
`the occupation exclusive control
`ing In order
`the above sequence
`there is
`to support
`The file such as
`system register comprises an index
`scheme wherein when
`block on the shared
`provided
`data field and in many cases it
`field and
`file to be accessed is written into the main memory an
`file struc-
`relationship among blocks of the
`ture having
`portion of the block
`entire portion of the block or
`file When the file is shared with updating the exclusive
`an update status of the block
`40 which uniquely represents
`is performed even for an input process without
`referred to as an update indicator
`hereinafter
`is also
`period from the reading of an index
`stored in the cache memory The entire block in the
`updating during
`desired data block to the read-
`having the pointer into
`cache memory or the update indicator
`is updated in the
`cache memory when the block is written into the file
`ing by the disk drive of the data block which is at the
`address pointed by the pointer This is done in order to
`Thus
`the cache memory can also be shared by the
`if addition updating
`plurality of computer systems By comparing the entire
`prevent process discrepancy that
`of
`record to
`data block is done in an updating pro-
`block in the cache memory or the update indicator with
`cess by another computer system during the period
`the entire content of the block or the content
`of the
`update area stored in the main memory when the block
`from the reading of the index in the input process to the
`reading of the data block the target data which was in
`was written into the main memory it
`to
`is possible
`the time of read-
`the data block pointed by the index at
`determine whether
`the block has been updated by
`ing of the index in the input process has been moved to
`process of another computer system or not without
`actually reading the block stored in the file The deci
`another data block and the target data which should
`sion may be made without physical movement such as
`exist cannot be located
`In the prior art when the computer system accesses 55
`the movement of an access arm of
`disk drive or the
`disk Since no physical movement which
`the shared file the exclusive control
`is performed to
`rotation of
`suppress simultaneous access by other computer
`time
`considerable portion of an input/output
`occupies
`sys-
`tems Accordingly the processing performance of the
`to the disk file is involved the decision time for the
`information
`be en-
`processing system cannot
`process of another computer system is very small and
`overall
`hanced In
`single computer system resident area is 60 negligible
`When the block is written in
`main memory to reduce
`block update process
`input/output
`provided in
`the content of the cache memory is compared with the
`operation of the file and enhance data accessing perfor-
`mance On the other hand in multi-computer
`content of the corresponding data stored in the main
`system
`the updating has been
`memory to determine whether
`from the computer system to the
`in the input process
`shared file the content of the desired block which has 65 made by
`process of another computer system during
`time period from the reading of the block to the writing
`been previously written into the main memory is not
`used but the block on the file is fetched on the assump-
`In the writing of the block for updating the content
`tion tht the block has been updated by
`when the block was written into the main memory is
`process exe-
`
`sively occupied
`
`pointer
`
`control
`
`and
`
`is
`
`25
`
`35
`
`45
`
`50
`
`Petitioner IBM – Ex. 1062, p. 10
`
`
`
`5293618
`
`10
`
`compared with the content of the cache memory and if
`the comparison matches it means that no updating by
`another computer system has been made and the block
`is updated If
`the comparison mismatches the block is
`read out In this manner
`the data is correctly updated
`without
`the exclusive control and the duplicate updat
`ing by the plurality of computer systems is prevented
`structure which has
`pointer rela
`In
`file having
`plurality of com
`tionship such as an index shared by
`puter systems with the updating when
`target block is
`read in an input process is which an index block having
`pointer is written into the main memory and the target
`block is read based on an address pointed by the pointer
`the content of the index block written into the main
`memory is compared with the content of
`the index 15
`block stored in the cache memory to determine whether
`the index block has been updated by another computer
`time period from the reading of the
`system during
`index block to the reading of the target block Namely
`is determined whether
`the address of the target block 20
`the time of reading of the target
`may be determined at
`block based on the content of the index block at the time
`of writing into the main memory Thus when the target
`block is read the content of the index block stored in
`the main memory is compared with the content of the 25
`index block stored in the cache memory and if
`the
`comparison matches the target block is read and if the
`comparison mismatches the index block is read In this
`manner the process from the reading of the index block
`to the reading of the target block at 30
`having the pointer
`the address pointed by the pointer
`is correctly carried
`out without exclusive control
`
`it
`
`indicator of the
`Further by comparing the update
`block which is in the cache memory when the block is
`read with the update indicator of the block which was 35
`in the main memory when the block was written into
`the main memory it
`is possible to determine whether
`the content of the block stored in the main memory can
`be used as it
`is or not
`the comparison matches the
`If
`input/output operation to the file which is accompanied
`by the physical movement
`is not carried out but
`the
`content of the block stored in the main memory is used
`the comparison mismatches the block is read
`is If
`as it
`from the file In this manner the input/output
`operation
`to the file which is accompanied
`by the physical move- 45
`ment can be reduced
`high advantage
`is expected
`particularly when the present
`technique is applied to the
`index having
`frequency and
`high access
`small stor
`age capacity
`
`40
`
`FIG shows
`process of the channel program unit
`target block pointed by an index block
`for reading
`used in FIG
`FIG 10 shows
`process of the data accessing unit for
`residential area in main
`block reading by utilizing
`memory and
`FIG 11 shows
`process of the channel program unit
`for block reading used in FIG 10
`DESCRIPTION OF THE PREFERRED
`EMBODIMENTS
`
`resi
`
`invention will now be
`Embodiments of the present
`to the accompanying draw
`explained with reference
`ings
`FIG shows
`system configuration of one embodi
`ment of the present
`in which two computer
`invention
`common file 108 In the
`systems 101 and 101 share
`disk file The disk
`following description the file 108 is
`file 108
`plurality of disk media 109 and
`includes
`cache memory 110
`block data in
`block 111 stored
`on the disk medium 109 contains
`data field stored in an
`predetermined update area 112 to represent an update
`status The update status of the block can be detected by
`the update area 112 The computer system 101
`checking
`central processing unit 102
`channel
`103 and
`includes
`main memory 104 The central processing unit 102
`operation and carries out arith
`starts an input/output
`103 con
`metic and logical operations and the channel
`to the disk file 108 to transfer data
`trols the input/output
`with the main memory 104 The main memory 104 has
`an input/output buffer 105 for the block 111 on the disk
`medium 109 of the disk file 108
`save area 106
`for
`saving the update area 112 of the block 111 and
`dent area 107 for reducing the input/output
`operation
`to the disk file 108 The cache memory 110 in the disk
`file 108 may store the entire block inputted or outputted
`command from the channel 103 or only the content
`by
`of the update area which is
`portion of the block In the
`present embodiment only the latter is stored at an up
`113 in the cache memory 110
`date status indicator
`FIG shows
`relationship of the processing units of
`In FIG numerals 201 and 201
`invention
`the present
`denote
`data accessing Units in the central processing
`units 102 and 102 of the computer systems 101 and 101
`for executing I/O operations and numeral 202 denotes
`channel program unit
`channel pro
`for executing
`gram for the disk file in the input/output
`channel
`103 or
`the disk file 108
`referring to FIGS to
`the operation of the
`First
`data accessing units 201 and 201 and the channel pro
`gram unit 202 in the update process is explained FIG
`shows
`flow chart of the data accessing unit 201 in the
`present example in the update process FIG shows
`flow chart of the channel program unit 202 for block
`reading and FIG shows
`flow chart of the channel
`program unit 202 for block updating
`The data accessing
`channel
`unit 201
`issues
`process shown in FIG to the channel
`program of
`program unit 202 in order to read prior to the updating
`the block 111 to be updated which is stored on the disk
`medium 109 of the disk file 108 into the input/output
`buffer 105 of the main memory 104 step 301 In accor
`dance with the process shown in FIG the channel
`program unit 202 locates the block 111 on the disk me
`dium 109 step 401 writes the block 111 into the input
`/output buffer 105 in the main memory 104 and stores
`portion of the block 111 or the content of the update
`
`first
`
`50
`
`55
`
`data accessing unit which
`in an update process
`channel program unit for
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`FIG shows as system configuration of one embodi
`ment of the present
`invention
`FIG shows
`relational configuration of processing
`units of the present
`invention
`FIG shows
`process of
`eliminates exclusive control
`FIG shows
`process of
`block reading used in FIG
`FIG shows
`process of the channel program unit 60
`for block updating used in FIG
`FIG shows
`process of
`data accessing unit which
`in an input process for
`eliminates exclusive control
`having an index
`FIG shows
`view of pointer
`conceptual
`plurality of blocks
`ship among
`in
`file
`FIG shows
`process of the channel program unit
`for index block reading used in FIG
`
`file
`
`relation-
`
`65
`
`Petitioner IBM – Ex. 1062, p. 11
`
`
`
`5293618
`
`indicator
`
`15
`
`first
`
`35
`
`45
`
`113 of the
`
`area 112 into the update
`status
`cache memory 110 step 402
`The update area may store count data or time which
`may be used as an index of history of the updating of the
`block which is frequently updated Alternatively the
`entire content of the block 111 may be stored in the area
`112 clhis will be described
`later with reference to
`FIGS and
`The data accessing unit 201 than saves the content of
`buffer 105 into the 10
`the data stored in the input/output
`save area 106 step 302 Then the data accessing unit
`201 updates
`the content of the block under consider
`buffer 105 step 303 and
`ation in the input/output
`into the disk file 108 by issuing
`channel pro
`writes it
`process shown in FIG to the channel pro-
`gram of
`gram unit 202 step 304 In accordance with the pro
`cess shown in FIG the channel program unit
`reads the content stored in the cache memory 110 that
`is the content of the block to be updated which has
`been in the update status indicator 113 step 501 Then 20
`it compares the content of the update area 112 at
`the
`time of the reading which has been saved in the save
`area 106 of the main memory with the content of the
`update status indicator 113 in the cache memory 110 to
`determine whether
`the update status indicator 113 of 25
`the cache memory 110 of the disk file has been updated
`by the other computer system 101 after the reading of
`the block or not step 502 Since the decision is made
`by comparing the data in the cache memory 110 with
`out reading the block from the disk medium 109 no 30
`rotation waiting time of the disk medium 109 due to the
`the physical movement due to the
`read operation nor
`movement of the access arm of the disk file 108 is in
`time is minimized In the step
`volved and the process
`502 if
`there has been no updating by the other com-
`is YES and the updated
`puter system 101 the decision
`data is overwritten on the update status indicator 113 of
`the block in the cache memory 110 and it
`is written into
`the disk medium 109 step 503 to complete the desired
`the decision is NO it means 40
`updating In the step 502 if
`there has been updating of the disk data by the
`that
`other computer system 101 the channel program unit
`202 writes the block into the main memory 104 to up
`date the data which has been updated
`by the other
`computer system step 504
`On the other hand the data accessing unit 201 exam
`ines the result of execution of the channel program of
`FIG by the channel program unit 202 and if
`the
`decision in the step 502 is YES it means that the block
`has been read for updating and the process
`the decision is NO it means that
`nated If
`the updating
`has been made by the other computer system 101 and
`returns to the step 302 to process block
`the process
`which has been updated by the other computer system
`101 step 305
`In this manner by the processes of the data accessing
`unit and the channel program unit shown in FIGS to
`the duplicate updating due to the duplication of the
`can be
`plurality of computer
`updating by
`systems
`prevented without
`the exclusive control
`Referring now to FIGS to
`the operation of the
`data accessing unit 201 and the channel program unit
`202 when the input process for
`block is carried out by
`blocks
`pointer between
`tracking
`file having
`for
`relationship among blocks 65
`structure which has pointer
`as represented by an index FIG shows
`flow chart of
`the data accessing unit 201 from the reading of an index
`block having
`from the disk file to the reading
`pointer
`
`is termi- 50
`
`55
`
`60
`
`first
`
`issues
`
`the address pointed by the pointer
`target block at
`of
`and FIG shows
`relationship between
`pointer
`block 664 in the file and an index block 662 having
`pointer which indicates the location of the block FIG
`flow chart of the channel program unit 202
`shows
`and FIG shows
`for reading the index block
`flow
`chart of the channel program unit 202 for reading the
`target block pointed by the index block
`The disk medium 109 shown in FIG has
`second group of blocks 664
`group of blocks 662 and
`The former contains an index to indicate the location of
`the latter on the disk medium
`The data accessing unit 201 first
`channel
`program of the process shown in FIG to the channel
`to write the index block
`program unit 202 in order
`stored on the disk medium 109 of the disk file 108 into
`buffer 105 of the main memory 104
`the input/output
`step 601 The process of the channel program of FIG
`differs from that of FIG only in that the entire block
`portion of the block as in FIG is stored
`instead of
`into the cache memory 110 The channel program of
`FIG may also be used in the present embodiment by
`using the pointer field in the index block of FIG as the
`update status indicator In response to the issuance of
`the channel program of FIG the channel program
`read head to the block 111 to be read
`unit 202 positions
`on the disk medium 109 step 701 and reads the block
`buffer 105
`in the main memory
`into the input/output
`104 and also stores the content of the block 111 into the
`cache memory 110 step 702
`Then the data accessing unit 201 determines the
`address of the target block based on the pointer
`in the
`index block step 602 and issues the channel
`fetched
`program of FIG to the channel program unit 202 to
`read the target block step 603 In accordance with the
`process of FIG the channel program unit 202 com
`pares the content of the index block fetched
`into the
`buffer 105 of the main memory 104 with
`input/output
`the content of the index block stored in the cache mem
`ory 110 step 801 to determine whether the index block
`has been updated by the other computer system 101
`time period from the reading of the index block
`during
`to the reading of the target block step 802 If the com
`parison matches YES in the step 802 it means that
`there has been no updating of the index block by the
`other computer system 101 and the pointer of the index
`block stored in the input/output buffer 105 may be used
`Thus the target block designated by the pointer
`is read
`step 803 If
`the content of the index block has not been
`modified it
`for the processing unit which
`is necessary
`updates the index block and the target block pointed by
`the pointer of the index block to follow the process
`sequence of first updating the index block and then
`updating the target block or carry out
`the exclusive
`time period from the updating of the
`control during
`target block to the updating of the index block to pre
`vent
`operation during the period from
`the input/output
`the updating of the target block to the updating of the
`index block in order
`the content of the
`to assure that
`target block pointed by the pointer of the index block
`matches the content of the index block If
`the decision
`in the step 802 is NO it means that there has been updat
`ing of the index block by the other computer system
`101 and the index block is written again into the input
`/output buffer 105 to recycle the process step 804
`Like the step 502 of FIG the decision of the step 802
`in minimum process
`time without
`can be processed
`rotation waiting time of the disk medium
`
`Petitioner IBM – Ex. 1062, p. 12
`
`
`
`5293618
`
`10
`
`15
`
`25
`
`35
`
`On the other hand the data accessing unit 201 exam
`ines the result of execution of the channel program of
`FIG and if
`the decision in the step 802 is YES it
`means that
`the target block has been written and the
`is NO it means
`is terminated If
`the decision
`process
`there has been updating by the other computer
`that
`system 101 and the process
`returns to the step 602 to
`recycle the process step 604
`By the processes of the data accessing unit and the
`channel program unit shown in FIGS to
`the exclu-
`in the input process of the file can be elimi
`sive control
`nated where the file having the structure which has the
`relationship among blocks is shared by plural
`pointer
`ity of computer systems with the updating
`Referring now to FIGS 10 and 11 the enhancement
`of performance of data accessing by the resident area
`107 of the block on the main memory 104 for each of the
`101 and 101 is explained FIG 10
`computer systems
`shows
`flow chart of the data accessing unit 201 for
`operation to the disk medium 20
`reducing the input/output
`109 to enhance the speed of data accessing by providing
`the resident area 107 in the main memory 104 and FIG
`11 shows
`flow chart of the channel program unit 202
`for reading the block
`The data accessing unit 201 first
`issues the channel
`program of FIG 11 to the channel program unit 202
`step 901 to determine whether the content of the block
`in the resident area 107 of the main memory 104 is the
`is whether
`the content of the
`latest one or not
`that
`block in the resident area 107 may be used as it
`is or not 30
`The channel program unit 202 reads the update status
`indicator 113 in the cache memory 110 corresponding
`to the block be read step 1001 to and determines if
`the
`content of the update area in the block in the resident
`area 107 is equal
`to the content of the update status
`113 in the cache memory 110 step 1002 If
`indicator
`it means that the content of the block in
`they are equal
`is YES in the
`the resident area 107 may be used as it
`step 1002 and the process is terminated If they are not
`equal or the content corresponding to the block has not 40
`yet been stored in the update area 113 of the cache
`memory 110 NO in the step 1002 the block is read
`from the disk medium 109 step 1003 If
`the content
`corresponding to the block has not been stored in the
`113 of the cache memory 110 45
`update status indicator
`the update
`is newly stored into the
`status
`indicator
`cache memory 110
`On the other hand the data accessing unit examines
`the result of execution of the channel program in FIG
`11 step 902 If the decision in the step 1002 is YES the 50
`content of the block in the resident area 107 is used for
`the processing step 903 and if the decision is NO the
`block newly written from the disk medium 109 to the
`buffer 105 is stored into the resident area
`input/output
`107 and the content of the block is used for the process-
`ing step 904
`By the processes shown in FIGS 10 and 11
`portion
`of the block is stored in the update status indicator 113
`of the cache memory 110 The content of the update
`113 is compared with the update status 60
`status indicator
`in the block in the resident area 107 of the
`indicator
`main memory 104 so that
`the high performance and
`high efficiency data accessing with the resident area 107
`of the main memory of the computer system is attained
`in the disk file shared by the computer systems 101 and 65
`101 with the updating Since only
`portion of the block
`need be stored in the cache memory 110
`memory
`capacity required for the cache memory 110 is small
`
`55
`
`in the main
`
`from the cache
`
`Further like in the step 502 of FIG the comparison
`in the cache memory 110 is done in minimum process
`the rotation waiting time of the disk me
`time without
`dium 109
`We claim
`An information processing system comprising
`plurality of computer
`each including
`systems
`channel connected
`central processing unit
`to the
`central processing unit and main memory con
`nected to the central processing unit and
`to the channel of
`shared storage device connected
`each of the computer systems for storing plurality
`of data blocks each including an update area indi
`cating an update status of the associated data block
`cache
`wherein the shared storage device
`includes
`to the channel of each of the
`memory connected
`computer systems and
`wherein the central processing unit and the channel
`of each of the computer systems include means for
`data block to be updated from the shared
`reading
`storage device
`storing the data block to be updated in the main mem
`ory of the associated computer system
`the update area of the data block to be
`storing at least
`updated in the cache memory as an update status
`indicator
`updating the data block to be updated
`memory
`reading the update status
`memory
`determining whether
`the update status indicator
`from the cache memory and
`corresponding por
`tion of the updated data block in the main memory
`are equal
`the update status indicator and the corresponding
`portion of the updated data block are equal updat
`in the cache mem
`ing the update status indicator
`ory reading the updated data block from the main
`memory and storing the updated data block in the
`shared storage device in place of the data block to
`be updated and
`the update status indicator and the corresponding
`portion of the updated
`data block are not equal
`reading the data block to be updated
`from the
`shared storage device storing the data block to be
`in the main memory and repeating the
`updated
`preceding functions beginning with updating the
`data block to be updated in the main memory
`An information processing system comprising
`plurality of computer
`each including
`systems
`channel connected
`central processing unit
`to the
`central processing unit and main memory con
`nected to the central processing unit and
`to the channel of
`shared storage device connected
`each of the computer systems for storing plurality
`of data blocks each including an update area indi
`cating an update status of the associated data block
`wherein the main memory of each of the computer
`resident area for storing one of
`systems includes
`the data blocks stored in the shared storage device
`cache
`wherein the shared storage device
`includes
`to the channel of each of the
`memory connected
`systems
`least
`the update
`for storing at
`computer
`area of the one data block as an update status indi
`cator and
`wherein the central processing unit and the channel
`of each of the computer systems include means for
`
`read
`
`indicator
`
`if
`
`if
`
`Petitioner IBM – Ex. 1062, p. 13
`
`
`
`5293618
`
`status indicator
`
`from the cache
`
`reading the update
`memory
`determining whether
`the update status indicator
`from the cache memory and
`corresponding por
`tion of the one data block in the resident area are
`
`read
`
`if
`
`10
`ory reading the updated data block from the main
`memory and storing the updated data block in the
`shared storage device in place of the data block to
`be updated and
`the update status indicator and the corresponding
`portion of the updated
`data block are not equal
`reading the data block to be updated
`from the
`shared storage device storing the data block to be
`in the main memory and repeating the
`updated
`preceding fun