KR100299193B1 - 후방회복형입출력제어장치및입출력제어방법 - Google Patents

후방회복형입출력제어장치및입출력제어방법 Download PDF

Info

Publication number
KR100299193B1
KR100299193B1 KR1019970037855A KR19970037855A KR100299193B1 KR 100299193 B1 KR100299193 B1 KR 100299193B1 KR 1019970037855 A KR1019970037855 A KR 1019970037855A KR 19970037855 A KR19970037855 A KR 19970037855A KR 100299193 B1 KR100299193 B1 KR 100299193B1
Authority
KR
South Korea
Prior art keywords
request
input
device driver
output
failure generation
Prior art date
Application number
KR1019970037855A
Other languages
English (en)
Other versions
KR19980063401A (ko
Inventor
구니오 야마다
Original Assignee
니시무로 타이죠
가부시끼가이샤 도시바
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 니시무로 타이죠, 가부시끼가이샤 도시바 filed Critical 니시무로 타이죠
Publication of KR19980063401A publication Critical patent/KR19980063401A/ko
Application granted granted Critical
Publication of KR100299193B1 publication Critical patent/KR100299193B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1405Saving, restoring, recovering or retrying at machine instruction level
    • G06F11/1407Checkpointing the instruction stream
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/24Resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Retry When Errors Occur (AREA)

Abstract

디바이스 드라이버의 개조나 계산 소자와 I/O 소자와의 분리 등을 행하는 일 없이, 후방 회복 기능을 실현하는 입출력 제어 장치 및 입출력 제어 방법을 제공한다.
파일 시스템(12)으로부터 I/O 요구를 수취하였을 때, 시스템 고장 세대 설정부(21)에 의해 현재의 고장 세대를 그 I/O 요구안에 격납하여 두고, 체크포인트 취득후에, 이 I/O 요구를 소프트웨어 드라이버(13)에 인도한다. 한편, 소프트웨어 드라이버(13)로부터 이 I/O 요구를 수취하였을 때, 고장 세대 판정부(24)는 그 I/O 요구에 격납된 고장 세대와 현재의 고장 세대가 일치하는지를 판정하여 일치하지 않는 경우에, I/O 요구 에러 반환부(26)가 이 I/O 요구를 디바이스 드라이버(14)에 인도하는 일 없이 소프트웨어 드라이버(13)에 반환함으로써 I/O 요구 완료 처리부(223)에 다시 그 I/O 요구를 재발행시킨다.

Description

후방 회복형 입출력 제어 장치 및 입출력 제어 방법{APPARATUS AND METHOD FOR CONTROLLING I/O OPERATIONS IN BACKWARD RECOVERY TYPE COMPUTER SYSTEMS}
본 발명은 체크포인트 롤백(checkpoint rollback) 방식의 내장해성 컴퓨터 시스템에 적용하는데 적합한 입출력 제어 장치 및 입출력 제어 방법과 그 입출력 제어 프로그램을 구비한 기록 매체에 관한 것이다.
「시스템의 일관성이 유지되고 있는 상태」를 정기적으로 채취하여 두고, 고장이 발생하였을 때에 시스템의 상태를 그 일관성이 취해진 상태로 되돌린 후, 중단된 처리를 재개하는 방법을 체크포인트·롤백 또는 후방 회복(backward recovery)이라고 칭한다. 일반적으로,「시스템의 일관성이 유지되고 있는 상태」라고 칭하는 정의내에는 메모리나 CPU 레지스터 등의 상태는 포함되지만, I/0(예컨대, 인터페이스 카드)의 상태는 포함되어 있지 않다.
즉, CPU나 메모리 등의 상태가 가역인데 반하여, I/0의 상태는 불가역이다. 이것을 해결하기 위해서, 종래에는, I/0를 실행하는 프로세서 소자(element)를 계산을 실행하는 소자와 분리하여 계산을 실행하는 소자의 장해 발생이 I/0 소자에 대하여 영향을 주지 않도록 구성하는 것이 일반적이었다. 또한, I/0 소자 그 자체는 내장해성을 구비하지 않고, I/0 소자를 다중화함으로써 내장해성을 실현하고 있었다. 이 I/0 소자를 동작하는 OS는 각 메이커의 독자적인 OS이다.
그렇지만, 예컨대 UNIX 등이 사실상의 표준 OS로서 확립되어 있는 현상태에 있어서는, 디바이스 드라이버를 개조하는 일이나, 계산 소자와 I/0 소자를 분리하는 것은 호환성이나 가격 대 성능(cost performance)의 면에서 큰 불이익(demerit)이 된다.
본 발명은 이러한 실정을 감안하여 이루어진 것으로, I/0 플로우중에 후방 회복 기능을 실현하는 소프트웨어 모듈을 삽입함으로써 디바이스 드라이버를 개조하지 않고, 또한 계산 소자와 I/0 소자를 분리하지 않고 후방 회복을 실현하는 입출력 제어 장치 및 입출력 제어 방법을 제공하는 것을 목적으로 한다.
또한, 본 발명은 후방 회복시에, I/O 요구의 재발행을 보장하는 입출력 제어 장치/방법을 제공하는 것을 목적으로 한다.
도 1은 본 발명의 제1 및 제2 실시 형태에 관한 컴퓨터 시스템의 기기 구성을 도시하는 도면.
도 2는 본 발명의 제1 실시 형태의 컴퓨터 시스템의 I/0에 관한 기능 블록을 도시하는 도면.
도 3은 제1 실시 형태의 I/0 요구 수리부의 동작 순서를 나타내는 플로우차트.
도 4는 제1 실시 형태의 체크포인트 완료시 처리부의 동작 순서를 나타내는 플로우차트.
도 5는 제1 실시 형태의 I/0 요구 완료 처리부의 동작 순서를 나타내는 플로우차트.
도 6은 제1 실시 형태의 소프트웨어 드라이버로부터 I/0 요구를 수취하였을 때의 I/0 제어부의 동작 순서를 나타내는 플로우차트.
도 7은 제1 실시 형태의 후방 회복이 행하여졌을 때의 동작 순서를 나타내는 플로우차트.
도 8은 본 발명의 제2 실시 형태의 컴퓨터 시스템의 I/O에 관한 기능 블록을도시하는 도면.
도 9는 제2 실시 형태의 I/O 요구 수리부의 동작 순서를 나타내는 플로우차트.
도 10은 제2 실시 형태의 체크포인트 완료시 처리부의 동작 순서를 나타내는 플로우차트.
도 11은 제2 실시 형태의 I/O 요구 완료 처리부의 동작 순서를 나타내는 플로우차트.
도 12는 제2 실시 형태의 후방 회복이 행하여졌을 때의 동작 순서를 나타내는 플로우차트.
〈도면의 주요 부분에 대한 부호의 설명〉
1 : CPU
2 : 주기억 장치
3 : 외부 기억 장치
11 : 응용 프로그램
12 : 파일 시스템
13 : 소프트웨어 드라이버
14 : 디바이스 드라이버
20 : I/O 제어부
21 : 시스템 고장 세대 설정부
22 : I/O 요구 관리부
221 : I/O 요구 수리부
222 : 체크포인트 완료 처리부
223 : I/O 요구 완료 처리부
23 : I/O 요구 수리부
24 : 고장 세대 판정부
25 : I/O 요구 송출부
26 : I/O 요구 에러 반환부
27 : DMA 정지부
28 : 디바이스 드라이버 리셋 핸들러 호출부
29 : 고장 세대 관리부
30a : 펜딩 큐우
30b : 송출 확정 큐우
30c : 실행중 큐우
30d : I/O 실행 큐우
본 발명의 입출력 제어 장치는 체크포인트를 정기적으로 채취하면서 응용 프로그램을 실행하여 고장이 발생할 때에는 그 직전에 채취한 체크포인트로부터 응용 프로그램의 실행을 재개시하는 후방 회복 기능을 가지며, 데이타의 입출력이 다단계로 배치된 복수의 모듈을 통해 행해지는 컴퓨터 시스템에 적용되는 입출력 제어 장치에 있어서, 상기 복수의 모듈내에서 재실행해야 할 단위를 취급하는 어느 한 모듈과 그 모듈의 하위의 모듈과의 사이에 제1 입출력 제어 수단을 개재시킴과 동시에, 상기 복수의 모듈 안에서 하드웨어를 직접 제어하는 모듈과 그 모듈의 상위의 모듈과의 사이에 제2 입출력 제어 수단을 개재시켜, 후방 회복이 행하여질 때마다 고장 세대를 계수하여 관리하는 고장 세대 관리 수단과, 후방 회복이 행하여지기 전에 직접 메모리 액세스(DMA)를 정지시키는 수단과, 후방 회복이 행하여질 때에 상기 하드웨어를 직접 제어하는 모듈이 구비하는 리셋 핸들러를 호출하는 수단과, 상기 제1 입출력 제어 수단에 상위 모듈에서 데이타의 입출력을 요구하는 입출력 요구를 수취하였을 때, 상기 고장 세대 관리 수단에 의해 관리된 고장 세대를 그 입출력 요구내에 격납하는 수단과, 다음 체크포인트가 취득될 때까지 상기 수취한 입출력 요구의 하위 모듈에 대한 입출력 요구의 발행을 지연시키는 수단과, 하위 모듈에서 고장 세대 불일치 에러 또는 리셋 에러가 반환되었을 때, 상기 고장세대 격납 수단에 의해 관리된 새로운 고장 세대를 그 입출력 요구에 격납하여 재발행하는 수단과, 상기 제2 입출력 제어 수단에 상위 모듈에서 입출력 요구를 수취하였을 때, 그 입출력 요구에 격납된 고장 세대와 상기 고장 세대 관리 수단에 의해 관리된 고장 세대를 비교하는 수단과, 이 비교 수단의 비교 결과가 일치하였을 때, 그 입출력 요구를 하위 모듈에 대해 발행하고, 불일치하였을 때, 그 입출력 요구를 하위 모듈에 대하여 발행하지 않고 고장 세대 불일치 에러를 상위 모듈에 반환하는 입출력 요구 제어 수단과, 상기 하드웨어를 직접 제어하는 모듈에 상기 입출력 요구를 유지한 상태로 리셋 핸들러를 호출하였을 때, 상위 모듈에 대하여 리셋 에러를 반환하는 수단을 구비하며, 후방 회복이 행하여졌을 때, 재개 시점인 체크포인트의 취득을 대기한 미확정의 입출력 요구의 재발행을 보증하는 것을 특징으로 한다.
본 발명의 입출력 제어 장치에 있어서는, 후방 회복이 행하여질 때마다 증가되는 고장 세대를 관리하여 두고, 재실행해야 할 단위를 취급하는 어느 한 모듈이 하위 모듈에 대하여 발행하는 입출력 요구내에 이 고장 세대를 격납함과 동시에, 이 입출력 요구의 하위 모듈로의 발행을 다음 체크포인트 취득까지 대기시킨다.
한편, 하드웨어를 직접 제어하는 예컨대, 디바이스 드라이버에 대하여 입출력 요구가 발행되었을 때, 그 입출력 요구에 격납된 고장 세대와 관리한 고장 세대를 비교한다. 여기에서, 이 비교가 불일치하였을 경우에는 그 입출력 요구는 후방 회복이 행하여지기 전에 체크포인트를 지나 발행된 입출력 요구가 된다. 그리고, 이 경우에는, 이 입출력 요구를 디바이스 드라이버에 인도하는 것을 그만두고, 상위 모듈에 대하여 고장 세대 불일치 에러를 응답한다. 이것은 예컨대, 전술한 재실행해야 할 단위를 취급하는 모듈이 발행하는 입출력 요구가 하위 모듈에서 복수의 처리 단위에 분할되는 등의 경우로서, 개개의 처리가 완료하더라도 전부가 완료하지 않으면 의미가 없는 등의 경우를 고려한 것으로, 이 고장 세대 불일치 에러의 응답이 전술한 재실행해야 할 단위를 취급하는 모듈에 대하여 행하여졌을 때는 새로운 고장 세대를 그 입출력 요구에 다시 격납한 후에 그 입출력 요구를 재발행한다.
이것에 의해, 디바이스 드라이버의 개조나, 계산 소자와 I/0 소자와의 분리 등을 하는 일없이, 미확정의 입출력 요구의 재발행을 보증할 수 있어 후방 회복을 실현하는 것이 가능해진다.
또한, 디바이스 드라이버로부터의 리셋 에러의 응답이 전술한 재실행해야 할 단위를 취급하는 모듈에 대하여 행하여졌을 때에도, 새로운 고장 세대를 그 입출력 요구에 다시 격납한 후에 그 입출력 요구를 재발행한다. 이에 따라, 후방 회복에 따른 리셋 핸들러의 호출시에 디바이스 드라이버가 유지하고 있던 입출력 요구에 대해서도 재발행이 보증된다.
또한, 본 발명의 입출력 제어 장치는 체크포인트를 정기적으로 취득하면서 응용 프로그램의 실행을 진행시켜 고장이 발생하였을 때 상기 체크포인트로부터 상기 응용 프로그램의 실행을 재개시하는 후방 회복 기능을 갖는 컴퓨터 시스템으로서, 하드웨어를 직접 제어하는 모듈과 이 모듈에 대하여 데이타의 입출력을 요구하는 입출력 요구를 발행하는 모듈과의 2단계의 모듈을 통해 데이타의 입출력이 실행되는 컴퓨터 시스템에 적용되는 입출력 제어 장치에 있어서, 상기 2개의 모듈 사이에 입출력 제어 수단을 개재시켜 후방 회복이 행하여지기 전에 DMA를 정지시키는 DMA 정지 수단과, 후방 회복이 행하여졌을 때 상기 하드웨어를 직접 제어하는 모듈이 구비하는 리셋 핸들러를 호출하는 리셋 핸들러 호출 수단과, 상기 입출력 제어 수단에 다음 체크포인트가 취득될 때까지 상위 모듈에서 받아들인 입출력 요구의 하위의 모듈에 대한 입출력 요구의 발행을 지연시키는 지연 수단과, 하위의 모듈에서 리셋 에러가 반환되었을 때 입출력 요구를 재발행하는 재발행 수단과, 상기 하드웨어를 직접 제어하는 모듈에 입출력 요구를 유지한 상태로 리셋 핸들러를 호출되었을 때 상위의 모듈에 대하여 리셋 에러를 반환하는 수단을 구비하고, 후방 회복이 행하여졌을 때, 재개시점에서 어느 체크포인트의 취득을 대기한 미확정의 입출력 요구의 재발행을 보증하는 것을 특징으로 한다.
본 발명의 입출력 제어 장치는 예컨대, 디바이스 드라이버와 파일 시스템 등의 상위 모듈과의 사이에 다른 모듈을 개재시키지 않은 구성을 전제로 하는 것이며, 이 경우에는 고장 세대의 관리는 하지 않고, 상위 모듈에 대하여 리셋 에러가 응답되었을 때에만 그 입출력 요구의 재발행을 실행한다. 이 경우, 상위 모듈은 필연적으로 재실행해야 할 단위를 취급하는 모듈이 되기 때문에, 전술한 바와 같이 디바이스 드라이버의 개조나 계산 소자와 I/0 소자와의 분리 등을 행하는 일없이 미확정의 입출력 요구의 재발행을 보증할 수가 있어 후방 회복 기능을 실현하는 것이 가능해진다.
또, 직접 메모리 액세스(DMA)가 사용하는 영역이 고정으로서, 상기 하드웨어를 직접 제어하는 모듈의 리셋 핸들러에 의해 상기 영역의 초기화가 보증될 때에, 상기 정지 수단에 의한 직접 메모리 액세스(DMA)의 정지를 생략하면, 후방 회복에 소비하는 오버 헤드를 삭감하는 것이 가능해진다.
이하, 도면을 참조하여 본 발명의 실시 형태를 설명한다.
(제1 실시 형태)
우선, 본 발명의 제1 실시 형태를 설명한다. 도 1은 컴퓨터 시스템의 기기 구성을 도시한 도면이다. 도 1에 도시한 바와 같이, 컴퓨터 시스템은 주기억 장치(2)에 격납된 오퍼레이팅 시스템이나 유틸리티를 포함하는 응용 프로그램 등을 실행 제어하는 CPU(1)와, 이 CPU(1)에 의해서 실행 제어되는 오퍼레이팅 시스템이나 유틸리티를 포함하는 응용 프로그램 및 이들의 실행에 따른 데이타를 격납하는 주기억 장치(2) 및 주기억 장치(2)와의 사이에서 데이타를 송수신하여 외부 기억으로서 동작하는 대기억 용량의 외부 기억 장치(3)를 구비한다.
도 2에는 제 1 실시 형태의 컴퓨터 시스템의 I/O에 관한 기능 블록이 도시되어 있다. 도 2에 도시한 바와 같이, 응용 프로그램(11)에 의해서 요구된 I/O는 파일 시스템(12), 소프트웨어 드라이버(13) 및 디바이스 드라이버(14) 등의 다단계로 배치된 복수의 모듈 사이에서 I/0 요구 박스를 수수(授受)함으로써 실행된다. 그리고, 재실행해야 할 단위를 취급하는 파일 시스템(12)과 소프트웨어 드라이버(13)와의 사이 및 소프트웨어 드라이버(13)와 하드웨어를 직접 제어하는 디바이스 드라이버(14)와의 사이에 I/O 제어부(20)를 개재시킨다.
I/O 제어부(20)의 고장 세대 관리부(29)는 고장 발생에 의해 후방 회복이 행하여질 때마다 고장 세대를 증가하여 관리한다. 그리고, 파일 시스템(12)이 소프트웨어 드라이버(13)에 대하여 I/O 요구를 발행하면, I/O 요구 관리부(22)의 I/O요구 수리부(221)가 이 I/O 요구를 수리하여 고장 세대 관리부(29)가 관리하는 고장 세대를 시스템 고장 세대 설정부(21)에 의해 그 I/O 요구내에 격납한 후, 펜딩 큐우(30a)에 연결한다.
체크포인트 완료시 처리부(222)는 체크포인트의 취득이 행하여졌을 때, 펜딩 큐우(30a)에 연결된 I/O 요구를 송출 확정 큐우(30b)에 연결하여 바꾼다. 그리고, 체크포인트 완료시 처리부(222)는 이 송출 확정 큐우(30b)에 연결된 I/O 요구를 하위 모듈로 송출함과 동시에, 그 송출한 I/O 요구를 실행중 큐우(30c)에 연결하여 간다. 또한, 체크포인트 완료시 처리부(222)는 I/O 완료 큐우(30d)에 연결된 I/0 요구의 삭제도 실행한다.
이 체크포인트 완료시 처리부(222)에 의해 송출된 I/O 요구는 소프트웨어 드라이버(13)에 인도되고, 이 소프트웨어 드라이버(13)에 포함되는 복수의 소프트웨어 모듈(131)을 지나 디바이스 드라이버(14)에 대하여 I/0 요구를 발행한다.
이 디바이스 드라이버(14)에 대한 I/O 요구는 I/O 제어부(20)의 I/O 요구 수리부(23)에 의해 수리되어 고장 세대 판정부(24)에 의해 그 I/O 요구가 격납하는 고장 세대와 고장 세대 관리부(21)가 관리하는 고장 세대가 일치하는지 여부가 판정된다. 그리고, 이 판정 결과가 일치하는 경우에는, I/O 요구 송출부(25)에 의해 그 I/O 요구가 디바이스 드라이버(14)로 인도된다. 한편, 불일치하는 경우에는, 디바이스 드라이버(14)로의 인도는 행하여지지 않고, I/O 요구 에러 반환부(26)에 의해 고장 세대 불일치 에러가 소프트웨어 드라이버(13)에 대하여 반환된다. 이 고장 세대 불일치 에러가 반환되는 경우에는, 그 I/0 요구가 송출 확정 큐우(30a)에 연결된 이후에 후방 회복이 행하여진 경우이다. 즉, 이 I/0 요구에 관해서는 재발행을 보증해야만 한다. 그래서, 이 고장 세대 불일치 에러를 수취한 I/O 요구 완료 처리부(223)는 시스템 고장 세대 설정부(21)에 의해서 고장 세대 관리부(29)가 관리하는 새로운 고장 세대를 다시 이 I/0 요구로 격납한 후, 이 I/0 요구를 송출 확정 큐우(39b)에 연결하여 바꾼다. 또, 이 때 I/O 요구 완료 처리부(223)는 실행 중 큐우(30c)에 연결된 그 I/O 요구를 삭제해 두기도 한다.
이것에 의해, 장해가 발생하였을 때, I/O 제어부(20)의 체크포인트 완료시 처리부(222)에 의해 발행되고 나서 디바이스 드라이버(14)에 도달하기까지의 사이에 존재하는 I/0 요구의 재발행은 보증된다.
여기에서, 후방 회복을 행할 때의 순서를 설명한다. 후방 회복이 행하여질 경우에는, 우선, 직접 메모리 액세스(DMA) 정지부(27)에 의해 I/O 에 관한 직접 메모리 액세스가 정지된다. 이것은 메모리가 DMA에 의해서 갱신되는 일이 없도록 하기 위함이다. 이어서, 고장 세대 관리부(29)에 의한 고장 세대의 증가가 실행된다. 그리고, 디바이스 드라이버 리셋 핸들러 호출부(28)에 의해 디바이스 드라이버(14)가 갖는 리셋 핸들러가 호출된다.
즉, 고장이 발생하였을 때, 디바이스 드라이버(14)에 유지되고 있던 I/O 요구에 대해서는 디바이스 드라이버(14)에 의해서 리셋 에러가 응답되게 된다. 그리고, 이 리셋 에러를 수취한 I/0 요구 완료 처리부(223)는 고장 세대 불일치 에러의경우와 같이, 시스템 고장 세대 설정부(21)에 의해 고장 세대 관리부(29)가 관리하는 새로운 고장 세대를 다시 이 I/O 요구로 격납한 후, 이 I/O 요구를 송출 확정 큐우(39b)에 연결하여 바꾼다. 또, 이 때 I/O 요구 완료 처리부(223)는 실행중 큐우(30c)로 연결된 그 I/O 요구를 삭제해 두기도 한다.
이것에 의해, 장해가 발생하였을 때, 디바이스 드라이버(14)에 유지되어 있던 I/0 요구의 재발행도 보증된다.
즉, 제1 실시 형태의 시스템에 의하면, 디바이스 드라이버(14)의 개량이나 계산 소자와 I/0 소자와의 분리 등을 행하는 일없이 후방 회복이 실현되게 된다.
또, 전술한 4종류의 큐우(30a, 30b, 30c, 30d)는 고장이 발생하더라도 롤백되는 일이 없는 영역에 확보할 필요가 있다.
이어서, 도 3 내지 도 7을 참조하여 제1 실시 형태의 동작 순서를 설명한다.
도 3은 I/O 요구 수리부(221)의 동작 순서를 나타내는 플로우차트이다.
I/O 요구 수리부(221)는 파일 시스템(12)으로부터의 I/O 요구를 수리하면, 시스템 고장 세대 설정부(21)에 의해 고장 세대 관리부(29)가 관리하는 고장 세대를 그 I/O 요구내에 격납한 후(단계 A1), 펜딩 큐우(30a)에 연결한다(단계 A2)
도 4는 체크포인트 완료시 처리부(222)의 동작 순서를 나타내는 플로우차트이다.
체크포인트 완료시 처리부(222)는 체크포인트의 취득이 행하여졌을 때, 펜딩 큐우(30a)에 연결된 I/O 요구를 송출 확정 큐우(30b)에 연결하여 바꾼다(단계 B1). 그리고, 체크포인트 완료시 처리부(222)는 이 송출 확정 큐우(30b)에 연결된 I/O요구를 하위 모듈로 송출함과 동시에, 그 송출한 I/0 요구를 실행중 큐우(30c)에 연결해 간다(단계 B2). 또한, 체크포인트 완료시 처리부(222)는 I/O 완료 큐우(30d)에 연결된 I/O 요구의 삭제도 실행한다(단계 B3).
도 5는 I/O 요구 완료 처리부(223)의 동작 순서를 나타내는 플로우차트이다.
I/O 요구 완료 처리부(223)는 하위 모듈에서 반환된 I/O 요구의 완료 상태(status)를 조사하여(단계 C1), 이 완료 상태가 리셋 에러나 세대 불일치 에러인 경우에는(단계 C2의 YES 브랜치), 시스템 고장 세대 설정부(21)에 의해 고장 세대 관리부(29)가 관리하는 새로운 고장 세대를 I/O 요구 속에 설정하여(단계 C3), 이 I/O 요구를 송출 확정 큐우(30b)에 연결한다(단계 C4). 한편, 완료 상태가 리셋 에러나 세대 불일치 에러가 아닌 경우에는(단계 C2의 NO 브랜치), 그 I/O 요구를 I/O 완료 큐우(30d)에 연결함과 동시에(단계 C5), I/O 요구 완료 통지를 상위 모듈에 통지한다(단계 C6).
도 6은 소프트웨어 드라이버(13)로부터 I/O 요구를 수취하였을 때의 I/O 제어부(20)의 동작 순서를 나타내는 플로우차트이다.
소프트웨어 드라이버(13)로부터의 I/O 요구는 I/O 요구 수리부(23)에 의해 수리되어 고장 세대 판정부(24)에 의해 그 I/O 요구가 격납하는 고장 세대와 고장 세대 관리부(29)가 관리하는 고장 세대가 일치하는지 여부가 판정된다(단계 D1). 이 판정 결과가 일치하는 경우에는(단계 D2의 YES 브랜치), I/O 요구 송출부(25)에 의해 그 I/O 요구가 디바이스 드라이버(14)에 인도된다(단계 D3). 한편, 불일치하는 경우에는(단계 D2의 NO 브랜치), I/O 요구 에러 반환부(26)에 의해 고장 세대불일치 에러가 소프트웨어 드라이버(13)에 대하여 반환된다(단계 D4).
도 7은 후방 회복이 행하여질 때의 동작 순서를 나타내는 플로우차트이다.
우선, DMA 정지부(27)에 의해 I/O에 관한 DMA가 정지되고(단계 E1), 계속해서 시스템 고장 세대 설정부(21)에 의해서 시스템 고장 세대 관리부(29)에 의해 고장 세대의 증가가 실행된다(단계 E2). 그리고, 디바이스 드라이버 리셋 핸들러 호출부(28)에 의해 디바이스 드라이버(14)가 갖는 리셋 핸들러가 호출됨으로써, 디바이스 드라이버(14)에 유지되어 있던 I/O 요구의 리셋 에러가 디바이스 드라이버(14)로부터 응답된다(단계 E3).
이것에 의해, 디바이스 드라이버(14)의 개량이나 계산 소자와 I/0 소자와의 분리 등을 하는 일 없이 후방 회복 대응이 실현되게 된다.
(제2 실시 형태)
이어서, 본 발명의 제2 실시 형태를 설명한다. 이 제2 실시 형태에 관한 컴퓨터 시스템의 기본 기기 구성은 제 1 실시 형태와 같다(도 1 참조). 도 8에는 제2 실시 형태의 컴퓨터 시스템의 I/O에 관한 기능 블록이 도시되어 있다. 이 제2 실시 형태와 제1 실시 형태와의 차이는 상위 모듈인 파일 시스템(12)과 디바이스 드라이버(14)와의 사이에 다른 모듈이 개재하지 않는 점이고, 이 결과, 제1 실시 형태와 비교하여 이 제2 실시 형태는 고장 세대를 관리하지 않고 후방 회복 대응을 실현하는 것을 특징으로 한다.
즉, 체크포인트 완료시 처리부(222)로부터 발행된 I/O 요구는 전부 디바이스 드라이버(14)에 유지되기 때문에, I/0 요구 완료 처리부(223)는 리셋 에러가 응답되었을 때에 I/O 요구의 재발행을 하면 되는 것이다.
이하, 도면을 참조하여 제2 실시 형태의 동작 순서를 설명한다.
도 9는 I/O 요구 수리부(221)의 동작 순서를 나타내는 플로우차트이다.
I/O 요구 수리부(221)는 파일 시스템(12)으로부터의 I/O 요구를 수리하면, 이 I/O 요구를 펜딩 큐우(30a)에 연결한다(단계 F1).
도 10은 체크포인트 완료시 처리부(222)의 동작 순서를 나타내는 플로우차트이다.
체크포인트 완료시 처리부(222)는 체크포인트의 취득이 행하여졌을 때, 펜딩 큐우(30a)에 연결된 I/O 요구를 송출 확정 큐우(30b)에 연결하여 바꾼다(단계 G1). 그리고, 체크포인트 완료시 처리부(222)는 이 송출 확정 큐우(30b)에 연결된 I/O 요구를 하위 모듈로 송출함과 동시에, 그 송출한 I/0 요구를 실행중 큐우(30c)로 연결해 간다(단계 G2). 또한, 체크포인트 완료시 처리부(222)는 I/O 완료 큐우(30d)에 연결된 I/O 요구의 삭제도 실행한다(단계 G3).
도 11은 I/O 요구 완료 처리부(223)의 동작 순서를 나타내는 플로우차트이다.
I/O 요구 완료 처리부(223)는 하위 모듈에서 반환된 I/O 요구의 완료 상태를 조사하고(단계 H1), 이 완료 상태가 리셋 에러인 경우에는(단계 H2의 YES), 이 I/O 요구를 송출 확정 큐우(30b)에 연결한다(단계 H3). 한편, 완료 상태가 리셋 에러가 아닌 경우에는(단계 H2의 NO), 그 I/O 요구를 I/O 완료 큐우(30d)에 연결함과 동시에(단계 H4), I/O 요구 완료 통지를 상위 모듈에 통지한다(단계 H5).
도 12는 후방 회복이 행하여질 때의 동작 순서를 나타내는 플로우차트이다.
우선, DMA 정지부(27)에 의해 I/O에 관한 DMA가 정지되고(단계 I1), 계속해서 디바이스 드라이버 리셋 핸들러 호출부(28)에 의해 디바이스 드라이버(14)가 갖는 리셋 핸들러가 호출됨으로써, 디바이스 드라이버(14)에 유지되어 있던 I/O 요구의 리셋 에러가 디바이스 드라이버(14)로부터 응답된다(단계 I2).
이것에 의해, 제1 실시 형태와 같이 디바이스 드라이버(14)의 개량이나 계산소자와 I/0 소자와의 분리 등을 하는 일없이 후방 회복 대응이 실현되게 된다.
또, 제1 및 제2 실시 형태의 양쪽 다에 예컨대, DMA가 사용하는 영역이 고정되고, 디바이스 드라이버(14)의 리셋 핸들러에 의해 DMA가 사용하는 영역의 초기화가 보증될 때에는, 후방 회복시의 DMA 정지부(27)에 의한 DMA 정지를 생략하는 것이 가능해지기 때문에, 후방 회복에 소비하는 오버 헤드를 삭감할 수가 있다.
또한, 전술한 실시 형태에 기재한 입출력 제어의 방법은 컴퓨터에 실행시킬 수 있는 프로그램으로서 플로피 디스크, 광 디스크 및 반도체 메모리 등의 기억 매체에 격납하고 반포하는 것이 가능하다.
이상 상술한 바와 같이, 본 발명에 의하면, I/0 플로우중에 고장 세대를 관리함과 동시에 고장 세대의 일치나 리셋 유무를 감시하는 소프트웨어 모듈을 삽입하여 입출력 요구의 재발행을 보증함으로써, 디바이스 드라이버의 개조나 계산 소자와 I/0 소자의 분리 등을 행하는 일없이 후방 회복에 대응시키는 것이 가능해진다.

Claims (5)

  1. 체크 포인트를 정기적으로 취득하면서 애플리케이션 프로그램의 실행을 진행시키고, 고장이 발생했을 때에 상기 체크 포인트로부터 상기 애플리케이션 프로그램의 실행을 재개하는 후방 회복 기능을 갖는 컴퓨터 시스템에 적용되는 입출력 제어 장치로서,
    파일 시스템과 소프트웨어 드라이버 사이에 개재하는 제1 입출력 제어 수단과,
    상기 소프트웨어 드라이버와 디바이스 드라이버 사이에 개재하는 제2 입출력 제어 수단과,
    후방 회복이 행해질 때마다 고장 세대를 계수하여 관리하는 고장 세대 관리 수단과,
    후방 회복이 행해질 때에, 입출력에 관한 직접 메모리 액세스(DMA)가 정지된 후에, 상기 디바이스 드라이버가 구비하는 리셋 핸들러를 호출하는 수단을 구비하고,
    상기 제1 입출력 제어 수단은,
    상기 파일 시스템으로부터 입출력 요구를 수취했을 때에, 상기 고장 세대 관리 수단에 의해 관리된 고장 세대를 그 입출력 요구 중에 격납하여 보류 큐로 하는 고장 세대 설정 수단과,
    상기 체크 포인트가 취득되었을 때에, 상기 보류 큐의 입출력 요구를 상기소프트웨어 드라이버에 송출하는 동시에, 그 입출력 요구를 실행중 큐로 하는 수단과,
    상기 디바이스 드라이버로부터의 입출력 요구의 완료 상태를 조사하여, 그 완료 상태가 고장 세대 불일치 에러, 또는 리셋 에러였을 경우, 상기 고장 세대 관리 수단에 의해 관리된 새로운 고장 세대를 그 입출력 요구에 격납하고, 그 입출력 요구를 재발행하는 입출력 요구 완료 처리 수단을 가지며,
    상기 제2 입출력 제어 수단은,
    상기 소프트웨어 드라이버로부터 상기 입출력 요구를 수취했을 때에, 그 입출력 요구중의 고장 세대와 상기 고장 세대 관리 수단에 의해 관리된 고장 세대를 비교하는 수단과,
    상기 비교 수단의 비교 결과가 일치했을 때에, 그 입출력 요구를 상기 디바이스 드라이버에 대하여 발행하고, 불일치일 때에, 상기 디바이스 드라이버에 대하여 발행하지 않고서, 상기 고장 세대 불일치 에러를 상기 소프트웨어 드라이버를 통해 상기 입출력 요구 완료 처리 수단에 송출하는 입출력 요구 제어 수단과,
    고장 발생시에, 상기 디바이스 드라이버에 입출력 요구가 유지된 상태로 상기 리셋 핸들러가 호출되었을 때에, 상기 소프트웨어 드라이버를 통해 상기 입출력 요구 완료 처리 수단에 상기 리셋 에러를 송출하는 수단을 갖는 것을 특징으로 하는 입출력 제어장치.
  2. 체크 포인트를 정기적으로 취득하면서 애플리케이션 프로그램의 실행을 진행시키고, 고장이 발생했을 때에 상기 체크 포인트로부터 상기 애플리케이션 프로그램의 실행을 재개하는 후방 회복 기능을 갖는 컴퓨터 시스템에 적용되는 입출력 제어 장치로서,
    파일 시스템과 소프트웨어 드라이버 사이에 개재하는 입출력 제어 수단과,
    후방 회복이 행해질 때에, 입출력에 관한 직접 메모리 액세스(DMA)가 정지된 후에, 상기 디바이스 드라이버가 구비하는 리셋 핸들러를 호출하는 수단을 구비하고,
    상기 입출력 제어 수단은,
    상기 파일 시스템으로부터 발행된 입출력 요구를 수신하여 보류 큐로 하는 수단과,
    상기 체크 포인트가 취득되었을 때에, 상기 보류 큐의 입출력 요구를 상기 디바이스 드라이버에 송출하는 동시에, 그 입출력 요구를 실행중 큐로 하는 수단과,
    상기 디바이스 드라이버로부터 반환된 입출력 요구의 완료 상태를 조사하여, 그 완료 상태가 리셋 에러였을 경우, 그 입출력 요구를 재발행하는 수단과,
    상기 디바이스 드라이버는,
    고장 발생시에, 상기 디바이스 드라이버에 입출력 요구가 유지된 상태로 상기 리셋 핸들러가 호출되었을 때에, 상기 입출력 제어 수단에 대하여 상기 리셋 에러를 반환하는 수단을 구비하고,
    후방 회복이 행해졌을 때, 재개 시점인 체크 포인트의 취득을 대기한 미확정입출력 요구의 재발행을 보증하는 것을 특징으로 하는 입출력 제어 장치.
  3. 제1항 또는 제2항에 있어서, 상기 직접 메모리 액세스가 사용하는 영역이 고정이며, 상기 디바이스 드라이버의 리셋 핸들러에 의해 상기 영역의 초기화가 보증될 때, 상기 직접 메모리 액세스 정지 수단에 의한 직접 메모리 액세스의 정지를 생략하는 것을 특징으로 하는 입출력 장치.
  4. 체크 포인트를 정기적으로 취득하면서 애플리케이션 프로그램의 실행을 진행시키고, 고장이 발생했을 때에 상기 체크 포인트로부터 상기 애플리케이션 프로그램의 실행을 재개하는 후방 회복 기능을 갖는 컴퓨터 시스템에 적용되는 입출력 제어 방법으로서,
    후방 회복이 행해질 때마다 고장 세대를 계수하여 관리해 두고,
    파일 시스템으로부터 입출력 요구가 발행되었을 때에, 상기 고장 세대를 그 입출력 요구 내에 격납하는 동시에, 보류 큐로 연결할 수 있으며,
    상기 체크 포인트가 취득되었을 때에, 상기 보류 큐의 입출력 요구를 소프트웨어 드라이버로 송출하고,
    상기 소프트웨어 드라이버로부터 디바이스 드라이버에 대하여 상기 입출력 요구가 발행되었을 때에, 그 입출력 요구에 격납된 고장 세대와 상기 관리된 고장 세대를 비교하며,
    그 비교 결과가 일치했을 때에, 그 입출력 요구를 상기 디바이스 드라이버로인도하고, 불일치일 때에, 그 입출력 요구를 상기 디바이스 드라이버로 인도하지 않고서 고장 세대 불일치 에러를 상기 소프트웨어 드라이버로 반환하며,
    후방 회복이 행해질 때에, 입출력에 관한 직접 메모리 액세스가 정지된 후에, 상기 디바이스 드라이버가 구비하는 리셋 핸들러를 호출하고,
    고장 발생시에, 상기 디바이스 드라이버에 입출력 요구가 유지된 상태로 상기 리셋 핸들러를 호출 받았을 때, 상기 소프트웨어 드라이버에 대하여 리셋 에러를 반환하며,
    상기 소프트웨어 드라이버에 반환된 입출력 요구의 완료 상태를 조사하여, 그 상태가 상기 고장 세대 불일치 에러, 또는 상기 리셋 에러였을 경우, 상기 관리한 새로운 고장 세대를 그 입출력 요구에 저장하여 입출력 요구를 재발행함으로써,
    후방 회복이 행해졌을 대, 재개 시점인 체크 포인트의 취득을 대기한 미확정 입출력 요구의 재발행을 보증하는 것을 특징으로 하는 입출력 제어 방법.
  5. 체크 포인트를 정기적으로 취득하면서 애플리케이션 프로그램의 실행을 진행시키고, 고장이 발생했을 때에 상기 체크 포인트로부터 상기 애플리케이션 프로그램의 실행을 재개하는 후방 회복 기능을 갖는 컴퓨터 시스템에 적용되는 입출력 제어 방법으로서,
    파일 시스템으로부터 발행된 입출력 요구를 보류 큐로 연결할 수 있으며,
    상기 체크 포인트를 취득했을 때에, 상기 보류 큐의 입출력 요구를 디바이스 드라이버로 송출하고,
    후방 회복이 행해졌을 때에, 입출력에 관한 직접 메모리 액세스를 정지한 후, 상기 디바이스 드라이버가 구비하는 리셋 핸들러를 호출하며,
    고장 발생시에, 상기 디바이스 드라이버가 입출력 요구를 유지한 상태로 상기 리셋 핸들러를 호출 받았을 때에 리셋 에러를 반환하고,
    상기 디바이스 드라이버로부터 반환된 입출력 요구의 완료 상태를 조하여, 그 완료 상태가 상기 리셋 에러였을 경우, 그 입출력 요구를 재발행함으로써,
    후방 회복이 행해졌을 때, 재개 시점인 체크 포인트의 취득을 대기한 미확정 입출력 요구의 재발행을 보증하는 것을 특징으로 하는 입출력 제어 방법.
KR1019970037855A 1996-12-26 1997-08-08 후방회복형입출력제어장치및입출력제어방법 KR100299193B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP96-348063 1996-12-26
JP34806396 1996-12-26

Publications (2)

Publication Number Publication Date
KR19980063401A KR19980063401A (ko) 1998-10-07
KR100299193B1 true KR100299193B1 (ko) 2001-09-03

Family

ID=18394503

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970037855A KR100299193B1 (ko) 1996-12-26 1997-08-08 후방회복형입출력제어장치및입출력제어방법

Country Status (6)

Country Link
US (1) US6029255A (ko)
EP (1) EP0851352B1 (ko)
KR (1) KR100299193B1 (ko)
CN (1) CN1093661C (ko)
DE (1) DE69718432T2 (ko)
TW (1) TW355762B (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4111472B2 (ja) 1998-05-15 2008-07-02 キヤノン株式会社 通信制御方法及び装置及び通信システム
US6668287B1 (en) * 1999-12-15 2003-12-23 Transmeta Corporation Software direct memory access
US6883114B2 (en) * 2001-11-08 2005-04-19 M-Systems Flash Disk Pioneers Ltd. Block device driver enabling a ruggedized file system
JP4120436B2 (ja) * 2003-03-24 2008-07-16 富士ゼロックス株式会社 連携処理装置及びプログラム
US7124323B2 (en) * 2003-06-18 2006-10-17 International Business Machines Corporation Method, system, and program for recovery of a reverse restore operation

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08328887A (ja) * 1995-05-31 1996-12-13 Toshiba Corp 入出力制御方式及び入出力制御方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3688274A (en) * 1970-12-23 1972-08-29 Ibm Command retry control by peripheral devices
US4740969A (en) * 1986-06-27 1988-04-26 Hewlett-Packard Company Method and apparatus for recovering from hardware faults
JPH02287858A (ja) * 1989-04-28 1990-11-27 Toshiba Corp 分散処理システムのリスタート方式
DE69435090T2 (de) * 1993-12-01 2009-06-10 Marathon Technologies Corp., Stow Rechnersystem mit Steuereinheiten und Rechnerelementen
US5790397A (en) * 1996-09-17 1998-08-04 Marathon Technologies Corporation Fault resilient/fault tolerant computing
US5896523A (en) * 1997-06-04 1999-04-20 Marathon Technologies Corporation Loosely-coupled, synchronized execution

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08328887A (ja) * 1995-05-31 1996-12-13 Toshiba Corp 入出力制御方式及び入出力制御方法

Also Published As

Publication number Publication date
CN1186276A (zh) 1998-07-01
DE69718432T2 (de) 2003-11-20
TW355762B (en) 1999-04-11
CN1093661C (zh) 2002-10-30
EP0851352B1 (en) 2003-01-15
KR19980063401A (ko) 1998-10-07
US6029255A (en) 2000-02-22
DE69718432D1 (de) 2003-02-20
EP0851352A2 (en) 1998-07-01
EP0851352A3 (en) 1999-12-08

Similar Documents

Publication Publication Date Title
US5796937A (en) Method of and apparatus for dealing with processor abnormality in multiprocessor system
US7062676B2 (en) Method and system for installing program in multiple system
US7076689B2 (en) Use of unique XID range among multiple control processors
EP1650653B1 (en) Remote enterprise management of high availability systems
US5448718A (en) Method and system for time zero backup session security
US7111026B2 (en) Method and device for acquiring snapshots and computer system with snapshot acquiring function
EP1119806B1 (en) Configuring system units
US6658489B1 (en) Method for replacing a device driver during system operation
US20070299904A1 (en) Method, system, and program for remote resource management
US6754736B1 (en) Information processing apparatus, data inputting/outputting method, and program storage medium therefor
US20080114933A1 (en) Disk array system
JP2004342109A (ja) 入出力ファブリックにおけるハードウェア・エラーからの自動回復
US7127638B1 (en) Method and apparatus for preserving data in a high-availability system preserving device characteristic data
US6754682B1 (en) Method and apparatus for enabling consistent ancillary disk array storage device operations with respect to a main application
US5983359A (en) Processor fault recovering method for information processing system
US4977500A (en) System recovery method for computer system having a standby system with a wait job operation capability
US7191275B2 (en) System and method for the management of hardware triggered hotplug operations of input/output cards
KR100299193B1 (ko) 후방회복형입출력제어장치및입출력제어방법
JP5154843B2 (ja) クラスタシステム、計算機、および障害回復方法
KR100605031B1 (ko) Usb 메모리 장치를 이용한 임베디드 시스템의 장애복구 및 업그레이드 방법
US20040260773A1 (en) Method, system, and program for communication code changes
CN115629920A (zh) 数据请求的异常处理方法及其装置、计算机可读存储介质
US20060195849A1 (en) Method for synchronizing events, particularly for processors of fault-tolerant systems
JPH07121395A (ja) 予備装置優先選択方法
JP3312652B2 (ja) マルチプロセッサアーキテクチャでのデータベース管理方式

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20070531

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee