KR100243461B1 - 프로세스 전환 장치 및 프로세스 전환 방법 - Google Patents

프로세스 전환 장치 및 프로세스 전환 방법 Download PDF

Info

Publication number
KR100243461B1
KR100243461B1 KR1019970021844A KR19970021844A KR100243461B1 KR 100243461 B1 KR100243461 B1 KR 100243461B1 KR 1019970021844 A KR1019970021844 A KR 1019970021844A KR 19970021844 A KR19970021844 A KR 19970021844A KR 100243461 B1 KR100243461 B1 KR 100243461B1
Authority
KR
South Korea
Prior art keywords
checkpoint
check point
executed
storage means
execution
Prior art date
Application number
KR1019970021844A
Other languages
English (en)
Other versions
KR980004095A (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 KR980004095A publication Critical patent/KR980004095A/ko
Application granted granted Critical
Publication of KR100243461B1 publication Critical patent/KR100243461B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Retry When Errors Occur (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 정합성의 확보를 위해 필요로 하는 각종 처리의 지연의 영향을 최소한도로 제한하여 시스템의 처리량을 향상시키는 프로세스 전환 장치를 제공한다.
프로세스 전환부(2)는, 체크 포인트의 직전에서만 실행되어야 되는 것으로 미리 지정된 프로세스의 식별자를 지연 프로세스 기록 테이블(5)에, 체크 포인트를 취득하는 프로세스의 식별자를 체크 포인트 프로세스 기록 테이블(6)에 각각 기록해 두고, 실행가능 큐(3)로부터 프로세스를 선택했을 때, 체크 포인트 프로세스 기록 테이블(6)을 참조함으로써 체크 포인트의 채취점을 검출하며, 그 채취점을 검출했을 때에는 지연 실행가능 큐에 격납된 프로세스를, 그 체크 포인트의 직전에 실행한다. 이것에 의해, 정합성의 확보를 위해서 필요로 하는 각종 처리의 지연의 영향을 최소한도로 제한하는 것이 가능해진다.

Description

프로세스 전환 장치 및 프로세스 전환 방법
본 발명은 예컨대, 체크 포인팅(checkpointing)과 롤백(roll back)을 이용하여 고장 회복을 가능하게 한 계산기 시스템의 프로세스 디스패처(process dispatcher)등에 적용하여 적합한 프로세스 전환 장치 및 프로세스 전환 방법에 관한 것으로, 특히 정합성의 확보를 위해 필요로 하는 각종 처리의 지연의 영향을 최소한도로 제한함으로써 시스템의 처리량을 향상시키고, 또한 체크 포인트 채취 후의 캐시·미스(cache miss)를 대폭 감소시킬 수 있는 프로세스 전환 장치 및 프로세스 전환 방법에 관한 것이다.
종래의 데이타 베이스 관리 시스템에서는, 트랜잭션(transaction)의 로그(log)를 디스크 장치등에 기록하기 위해서, 이 기록을 행하기 위한 프로세스(이하 로그·라이터(log writer)라 한다)를 전용으로 설치하여 가동시키고 있다. 이 로그·라이터는 다른 프로세스로부터의 지시를 받아서, 또는 스스로가 소정의 타이밍으로, 메모리상에 확보되는 로그·버퍼 영역에 기록된 데이타를 디스크 장치에 기록하는 처리를 실행한다. 데이타 베이스의 일관성을 유지하기 위해서는, 트랜잭션을 커미트(commit)할 때에, 그 커미트·로그를 디스크 장치등에 기록하지 않으면 안된다. 따라서, 트랜잭션을 실행하고 있는 프로세스는 커미트 처리에 들어 가면, 자신의 커미트·로그를 디스크 장치등에 기록하도록 로그·라이터에 지시한다. 그리고, 그 커미트·로그가 디스크 장치등에 기록되고, 로그·라이터로부터 그 취지의 응답이 있으면, 트랜잭션을 실행하고 있는 프로세스는 그 커미트 처리를 완료한다.
여기서, 이러한 데이타 베이스 관리 시스템을, 체크 포인트까지 디스크 장치로의 기록을 지연시키는 계산기 시스템으로 동작시킨 경우를 생각할 수 있다. 이 체크 포인트는 고장등으로 처리가 중단되었을 때에, 시스템 전체의 정합성을 유지하면서 재개시를 가능하게 하기 위해서 적절하게 채취되는 시점이고, 이 시점마다 처리의 속행에 필요한 시스템의 상태(프로그램, 데이타 및 CPU의 상태)의 전부 또는 일부가 기록된다.
도 9에 도시된 바와 같이, 트랜잭션1(T1)를 실행하고 있는 프로세스가 커미트 처리에 들어 가면(도 9의 (1)), 그 프로세스는 자신의 커미트·로그를 디스크 장치에 기록하도록 로그·라이터에 지시한다. 그리고, 로그·라이터는 그 지시된 데이타를, 디스크 장치에 기록하는 조작(write)을 발행한다(도 9의 (2)). 그러나, 이 계산기 시스템에서는, 디스크 장치로의 기록이 다음 체크 포인트(도 9의 (3))까지 지연되기 때문에(도 9의 (4)), 그것까지 로그·라이터는 기록 완료 대기 상태(sleep)가 된다.
이러한 상태로, 별도의 트랜잭션2(T2)를 실행하고 있는 프로세스가, 커미트 처리에 들어 갔을 때(도 9의 (5)), 이 로그·라이터에 커미트·로그의 기록을 지시하더라도, 그 기록의 접수는 직전의 로그 기록이 완료(도 9의 (6))할 때까지 지연된다. 또한, 그 기록을 접수한 로그·라이터에의한 로그의 기록은, 또 다음 체크 포인트(도 9의 (7))의 시점까지 지연되게 된다(도 9의 (8)).
또한, 본 종류의 계산기 시스템에서는, 체크 포인트를 취하기 위한 전용 프로세스(이하 체크 포인트·프로세스라 부른다)를 프로세서로 실행하고, 그 이외의 프로세스가 체크 포인트의 채취 중에 동작하지 않도록 하고 있다. 이 체크 포인트·프로세스는 최고의 우선순위로 스케줄링되기 때문에, 체크 포인트 직전에 실행되고 있던 프로세스가 프리엠프트(preempt)되고, 체크 포인트·프로세스가 실행된다. 이 체크 포인트·프로세스는 하드웨어가 캐시내의 더티·라인을 메모리로에 재기록하는 동안, 유휴·루프를 돌리고 있을 뿐이고, 캐시내의 데이타를 거의 치환하는 일은 없다. 따라서, 체크 포인트의 종료 시점에서는, 체크 포인트의 직전에 실행되고 있던 프로세스가 액세스하고 있던 데이타가, 캐시내에 그대로 유지되어 있게 된다. 그러나, 체크 포인트 처리가 종료한 시점에서는, 직전에 실행되고 있는 프로세스가 우선하여 실행되는 것은 아니기 때문에, 별도의 프로세스가 실행된 경우에는, 캐싱되어 있는 명령이나 데이타를 사용하지 않고, 즉 캐시·미스가 많아진다.
전술한 종래의 첫번째의 문제점은, 로그·라이터로의 프로세스 전환을 체크 포인트의 꽤 이전에 행해 버릴 경우가 있다. 그러나, 로그·라이터로의 프로세스 전환을 체크 포인트의 직전까지 지연시키면, 뒤에서 지시된 커미트·로그에 관해서도, 그룹·커미트로서 전에 지시된 커미트·로그와 함께 다음 체크 포인트의 시점에서 일괄해서 디스크 장치에 기록가능하게 되어, 처리량을 향상시킬 수 있다.
또한, 두번째의 문제점은, 체크 포인트가 종료한 시점에서, 체크 포인트의 직전에 실행하고 있던 프로세스를 우선적으로 실행하지 않게 된다. 그러나, 체크 포인트·프로세스가 캐시내의 데이타를 거의 치환하는 일이 없는 것을 고려하면, 체크 포인트의 직전에 실행하고 있던 프로세스를 우선적으로 실행함으로써, 캐시·미스를 대폭 감소시킬 수 있다.
본 발명은, 이러한 실정에 감안하여 이뤄진 것으로서, 정합성의 확보를 위해 필요로 하는 처리의 지연의 영향을 최소한도로 제한함으로써 시스템의 처리량을 향상시키고, 또한 체크 포인트 채취 후의 캐시·미스를 대폭 감소시키는 것을 가능하게 하는 프로세스 전환 장치 및 프로세스 전환 방법을 제공하는 것을 목적으로 한다.
도 1은 본 발명의 제 1 실시 형태의 개략 구성을 나타내는 도면.
도 2는 도 1의 실시 형태의 처리 순서를 나타내는 도면.
도 3은 도 1의 실시 형태의 프로세스 전환부의 동작을 나타내는 흐름도.
도 4는 본 발명의 제 2 실시 형태의 개략 구성을 나타내는 도면.
도 5는 도 4의 실시 형태의 프로세스 전환부의 동작을 나타내는 흐름도.
도 6은 도 4의 실시 형태의 실행가능 큐에 존재하는 각 프로세스의 우선순위의 상태를 예시하는 도면.
도 7은 도 4의 실시 형태의 실행 프로세스 기록 테이블의 기록 상태를 예시하는 도면.
도 8은 도 4의 실시 형태의 실행가능 큐에 존재하는 각 프로세스의 우선순위의 변경 결과를 예시하는 도면.
도 9는 종래의 계산기 시스템의 로그·라이터를 포함하는 처리 순서를 나타내는 도면.
〈도면의주요부분에대한부호의설명〉
1 : 프로세스 큐잉부
2 : 프로세스 전환부
3 : 실행가능 큐
4 : 지연 실행가능 큐
5 : 지연 프로세스 기록 테이블
6 : 체크 포인트 프로세스 기록 테이블
7 : 실행 프로세스 기록 테이블
뵨 발명은, 중단한 처리를 재개시하기 위한 체크 포인트를 적절하게 설정하는 계산기 시스템으로서, 연속하는 2개의 체크 포인트 사이에서 발생하고 네트워크나 디스크등을 포함하는 외부 장치로의 출력 요구에 대응하는 출력 조작을 다음 체크 포인트까지 지연시키는 계산기 시스템의 프로세스 전환 장치에 있어서, 상기 체크 포인트의 직전에서만 실행되어야 되는 것으로 미리 지정된 상기 출력 요구의 발행을 포함하는 프로세스를 기억하는 기억 수단과, 상기 체크 포인트의 채취점을 검출하는 검출 수단과, 상기 검출 수단이 체크 포인트의 채취점을 검출했을 때에, 상기 기억 수단에 기억된 프로세스중에서 실행가능 상태에 있는 프로세스를, 그 체크 포인트의 직전에 실행하는 실행 제어 수단을 구비하는 것을 특징으로 한다.
본 발명에 의하면, 예컨대 전술한 로그·라이터와 같이, 오로지 디스크로의 기록을 행하는 포르세서로의 전환을, 체크 포인트 직전까지 지연시킬 수 있으며, 1개의 체크 포인트 간격의 사이에 지시된 기록 요구를 1회의 기록에 합쳐서 다음 체크 포인트의 시점에서 발행할 수 있게 된다. 이것에 의해, 예컨대 로그·라이터의 경우에는, 커미트 처리의 응답 시간을 단축할 수 있을 뿐만 아니라, 그룹·커미트에 의해 처리량을 향상시키는 것이 가능해진다.
또한, 본 발명은 중단한 처리를 재개시하기 위한 체크 포인트를 적절하게 채취하는 계산기 시스템의 프로세스 전환 장치에 있어서, 상기 체크 포인트의 직전에 실행하고 있던 프로세스를 기록하는 기억 수단과, 상기 체크 포인트가 채취된 직후에 상기 기억 수단에 기억된 프로세스가 실행가능 상태일 때에, 그 프로세스를 우선하여 실행하는 실행 제어 수단을 구비하는 것을 특징으로 한다.
본 발명에 있어서는, 체크 포인트의 직전에 실행하고 있던 프로세스가 실행가능 상태에 있을 때, 그 프로세스를 우선하여 실행한다. 체크 포인트 종료 시점에서는, 체크 포인트의 직전에 실행하고 있던 프로세스의 액세스한 데이타가 캐시에 많이 남아 있기 때문에, 다른 프로세스를 실행하는데 비하여, 캐시의 히트율이 향상하여 성능이 향상한다.
또한, 본 발명은, 중단한 처리를 재개시하기 위한 체크 포인트를 적절하게 채취하는 계산기 시스템의 프로세스 전환 장치에 있어서, 상기 체크 포인트 이전에 실행된 프로세스의 실행 순서를 기억하는 기억 수단과, 상기 체크 포인트가 채취된 직후에 상기 기억 수단에 기억된 실행 순서를 참조하여, 상기 체크 포인트에 의해 가까운 시점에서 실행된 프로세스를 우선하여 실행하는 실행 제어 수단을 구비하는 것을 특징으로 한다.
본 발명에서는 체크 포인트에 의해 가까운 시점에서 실행되고 있던 프로세스를 체크 포인트의 직후에 우선하여 실행한다. 일반적으로, 체크 포인트에 의해 가까운 시점에서 실행되고 있던 프로세스의 데이타만큼 캐시에 남아 있을 가능성이 높다고 할 수 있기 때문에, 캐시의 히트율이 향상하여 성능이 향상한다.
또한, 본 발명은 중단한 처리를 재개시하기 위한 체크 포인트를 적절하게 채취하는 계산기 시스템으로서, 그 프로세서가 프로세스 각각의 실행 명령수를 카운트하는 카운트 기능을 갖는 계산기 시스템의 프로세스 전환 장치에 있어서, 상기 체크 포인트 이전에 실행된 프로세스를 상기 카운트 기능에 측정되는 실행 명령수와 함께 기억하는 기억 수단과, 상기 체크 포인트가 채취된 직후에 상기 기억 수단에 기억된 프로세스가 실행가능 상태일 때에, 이 프로세스중에서 그 실행 명령수가 많은 프로세스를 우선하여 실행하는 실행 제어 수단을 구비하는 것을 특징으로 한다.
본 발명에 있어서는, 체크 포인트 이전에 실행된 프로세스 내에서, 현시점에서 실행가능 상태에 있는 프로세스중에서 그 실행 명령수가 많은 프로세를 우선하여 실행한다. 일반적으로, 프로세서로 연속하여 실행되는 명령수가 많은 프로세스일수록, 그 프로세스에 관한 명령 및 데이타가 보다 많이 캐시에 유지되기 때문에, 그와 같은 프로세스를 체크 포인트 종료 후에 우선하여 실행하면, 캐시·히트율을 높게 하는 것이 가능해진다.
또한, 본 발명은 상기 실행 제어 수단이, 상기 기억 수단에 기억된 프로세스의 실행 종료 시점에서 현시점까지의 사이에 개재하여 실행된 다른 프로세스의 실행 명령수에 따라서, 상기 기억 수단에 기억된 프로세스 및 상기 기억 수단에 기억되어 있지 않은 프로세스 상호간의 우선 관계를 결정하는 수단을 구비하는 것을 특징으로 한다.
어떤 프로세스가, 프로세서에서의 실행을 종료하고나서, 다음에 실행을 개시할 때까지의 사이에, 다른 프로세스가 많이 실행되면 될수록, 재개된 프로세스의 캐시·미스율은 높아지게 된다고 생각된다. 그래서, 카운터기능에 의해 재개까지의 사이의 실행 명령수를 측정함으로써, 재개시의 캐시·미스율을 추정할 수 있기 때문에, 다른 프로세스와의 관계에 있어서, 캐시·미스율이 낮은 프로세스만을 우선하여 실행한다는 것이 가능해진다.
또한, 본 발명은 상기 프로세서의 카운트 기능이, 캐시미스수를 카운트하는 기능을 포함하고, 상기 기억 수단은 상기 프로세스 각각의 연속하여 실행된 구간에서의 미스율을 기억하는 수단을 구비하며, 상기 실행 제어 수단은 상기 우선순위를 높인 프로세스의 미스율이 통상시와 비교하여 저하하고 있는지 아닌지 검사하는 검사 수단과, 그 결과를 상기 우선순위의 결정에 반영시키는 수단을 구비하는 것을 특징으로 한다.
이와 같이, 우선순위를 올린 프로세스의 미스율을 측정하여, 통상시의 미스수와 비교함으로써, 우선순위를 올린 것의 효과를 알 수 있다. 그리고, 그 결과를 우선순위 결정에 피드백하면, 보다 적절한 우선순위를 행하는 것이 가능해진다.
이하, 도면을 참조하여 본 발명의 실시 형태를 설명한다.
(제 1 실시 형태)
도 1에는 본 발명의 제 1 실시 형태의 개략 구성이 나타내고 있다. 본 실시 형태의 대상이 되는 계산기 시스템에서는, 체크 포인트의 채취시에, 각 프로세서에 있어서 최고 우선순위의 체크 포인트·프로세스가 인터럽트 금지 상태로 움직이고 있다. 도 1에 있어서, 체크 포인트·프로세스 기록 테이블(6)에는, 체크 포인트·프로세스의 식별자가 미리 기록되어 있다. 또한, 지연 프로세스 기록 테이블(5)에는, 체크 포인트 개시 시점의 직전에서만 실행하는 것을 지시된 프로세스의 식별자가 미리 기록되어 있다.
프로세스·큐잉(cueing)부(1)는 실행가능 상태가 된 프로세스가 지연 프로세스 기록 테이블(5)에 기록되어 있는 프로세스인지 아닌지를 조사하고, 기록되어 있지 않은 경우에는 실행가능 큐(3)에, 기록되어 있는 경우에는 지연 실행가능 큐(4)에 그 프로세스를 큐잉한다. 또한, 프로세스 전환부(2)는 실행가능 큐(3)중에서, 최고 우선순위의 프로세스를 우선 선택한다. 이 때, 프로세스 전환부(2)는 체크 포인트·프로세스 기록 테이블(6)을 참조하여, 그 선택된 프로세스가 체크 포인트·프로세스인 경우에는, 지연 실행가능 큐(4)를 조사한다. 그리고, 지연 실행가능 큐(4)에 프로세스가 없는 경우에는, 그대로 체크포인트·프로세스를 실행가능 큐(3)로부터 아웃풋하여 실행한다. 한편, 지연가능 큐(4)에 프로세스가 있는 경우에는 그 프로세스를 지연 실행가능 큐(4)로부터 아웃풋하여, 최고 우선순위 및 인터럽트 금지 상태에 따라 실행한다.
이 지연 프로세스의 실행이 종료하면, 프로세스 전환부(2)는 실행가능 큐(3)중에서 최고 우선순위의 프로세스(필연적으로 체크 포인트·프로세스가 된다)를 선택하여, 전술과 같은 동작을 반복한다.
여기서, 도 2를 참조하여 본 실시 형태의 처리 순서를 나타낸다. 도 2에 있어서, 트랜잭션1(Tl)이 커미트를 요구한 시점에서(도 2의 (1)), 로그·라이터는 실행가능 상태가 되어, 지연 실행가능 큐(4)에 연결된다(로그·라이터는 지연 프로세스 기록 테이블(5)에 기록되어 있는 것으로 한다). 또한, 트랜잭션2(T2)가 커미트를 요구한 시점에서는(도 2의 (2)), 로그·라이터는 아직 실행되어 있지 않고, 로그 버퍼에는 트랜잭션2(T2)가 기록한 커미트·로그도 기록된다. 그리고, 프로세스 전환부(2)가 실행가능 상태가 된 체크 포인트·프로세스를 선택한 시점에서, 체크 포인트가 개시되게 되지만(도 2의 (3)), 그 때, 지연 실행가능 큐(4)에는 로그·라이터가 존재하기 때문에, 본 실시 형태에서는, 그 직전에 로그·라이터가 실행된다(도 2의 (4)). 이 체크 포인트·프로세스의 검지는 체크 포인트·프로세스 기록 테이블(6)의 참조에 의해서 행해진다(이 체크 포인트·프로세스는, 미리 체크 포인트·프로세스 기록 테이블(6)에 기록되어 있는 것으로 한다). 로그·라이터는 로그·버퍼에 기록된 트랜잭션1(T1), 트랜잭션2(T2)의 커미트·로그를 디스크에 기록하기 위해서 라이트(write) 시스템·콜을 발행하며, 기록 완료 대기를 위해 정지한다(도 2의 (5)). 이 시점에서 지연 실행가능 큐(4)에는 프로세스가 없어지기 때문에, 프로세스 전환부(2)는 체크 포인트·프로세스를 실행한다.
여기서, 도 3을 참조하여 본 실시 형태의 프로세스 전환부의 동작을 설명한다.
프로세스 전환부(2)는 실행가능 큐(3)로부터 최고 우선순위의 프로세스를 선택하고(단계 Al), 이 프로세스가 체크 포인트·프로세스인지 아닌지를 체크 포인트·프로세스 기록 테이블(6)을 참조하여 조사한다(단계 A2).
이 프로세스가 체크 포인트·프로세스가 아닌 경우(단계 A3의 아니오), 실행가능 큐(3)로부터 그 프로세스를 아웃풋하여 실행한다(단계 A4). 한편, 체크 포인트·프로세스인 경우에는(단계 A3의 예), 지연 실행가능 큐(4)를 참조하여, 그 체크 포인트·프로세스의 직전에 실행하여야 할 프로세스가 없는지 조사한다(단계 A5).
프로세스가 지연 실행가능 큐(4)에 존재한 경우(단계 A6의 아니오), 지연 실행가능 큐(4)로부터 그 프로세스를 아웃풋하여 실행하고(단계 A7), 단계 A5로부터의 처리를 반복한다. 그리고, 지연 실행가능 큐(4)에 프로세스가 존재하지 않을 경우 및 존재하지 않게 된 경우에는(단계 A6의 예), 실행가능 큐(3)로부터 체크 포인트·프로세스를 아웃풋하여 실행한다(단계 A8).
이것에 의해, 정합성의 확보를 위해 필요로 하는 각종 처리의 지연의 영향을 최소한도로 제한할 수 있으며, 그 결과, 시스템 전체의 처리량을 향상시키는 것이 가능해진다.
(제 2 실시 형태)
다음에, 도 4 내지 도 8을 참조하여 본 발명의 제 2 실시 형태를 설명한다.
도 4에는, 본 발명의 제 2 실시 형태의 개략 구성이 나타내고 있다. 도 4에 있어서, 체크 포인트·프로세스 기록 테이블(6)에는, 체크 포인트·프로세스의 식별자가 미리 기록되어 있다. 그리고, 프로세스 전환부(2)는 이 체크 포인트·프로세스 기록 테이블(6)을 참조하여, 다음에 전환하는 프로세스가 체크 포인트·프로세스인지 아닌지를 조사한다. 혹시, 채쿠 포인트·프로세스가 아니면, 프로세스 전환부(2)는 실행 프로세스 기록 테이블(7)에 다음에 전환하는 프로세스를 기록한다. 한편, 체크 포인트·프로세스였다면, 실행 프로세스 기록 테이블(7)에는 기록하지 않는다. 또한, 프로세스 전환부(2)는 실행 프로세스 기록 테이블(7)을 참조하여, 현재 실행 중인 프로세스가 체크 포인트·프로세스인지 아닌지를 조사한다. 혹시, 체크 포인트·프로세스라면, 프로세스 전환부(2)는 체크 포인트·프로세스 기록 테이블(6)을 조사하여, 이 체크 포인트·프로세스 기록 테이블(6)에 기록되어 있는 프로세스가 실행가능 큐(3)에 있는지 어떤지를 검색한다. 그리고, 실행가능 큐(3)에 그 프로세스가 있으면 그것을 실행하고, 없으면 가장 우선순위가 높은 프로세스를 실행한다.
도 5에는, 본 실시 형태의 프로세스 전환부의 동작이 도시되어 있다.
프로세스 전환부(2)는 실행가능 큐(3)로부터 최고 우선순위의 프로세스를 선택하여(단계 B1), 이 프로세스가 체크 포인트·프로세스인지 아닌지를 체크 포인트·프로세스 기록 테이블(6)을 참조하여 조사한다(단계 B2).
이 프로세스가 체크 포인트·프로세스인 경우(단계 B3의 예), 실행가능 큐(3)로부터 그 프로세스(체크 포인트·프로세스)를 아웃풋하여 실행한다(단계 B10) . 한편, 체크 포인트·프로세스가 아닌 경우에는(단계 B3의 아니오), 현재 실행 중인 프로세스가 체크 포인트·프로세스인지 아닌지를 조사한다(단계 B4). 그리고, 체크 포인트·프로세스인 경우에는(단계 B5의 예), 실행 프로세스 기록 테이블(7)에 기록되어 있는 프로세스가 실행가능 큐(3)에 존재하는지 어떤지를 조사하며(단계 B6), 프로세스가 있는 경우에는(단계 B7의 아니오) 실행가능 큐(3)로부터 실행 프로세스 기록 테이블(7)에 기록되어 있는 프로세스를 아웃풋하여 실행한다(단계 B8).
한편, 실행 프로세스 기록 테이블(7)에 기록되어 있는 프로세스가 실행가능 큐(3)에 존재하지 않는 경우(단계 B7의 예) 및 현재 실행 중인 프로세스가, 체크 포인트·프로세스가 아닌 경우에는(단계 B5의 아니오), 실행가능 큐(3)로부터 선택된 프로세스를 실행 프로세스 기록 테이블(7)에 기록한 후(단계 B9), 실행가능 큐(3)로부터 그 프로세스를 아웃풋하여 실행한다(단계 B10).
이것에 의해, 체크 포인트·프로세스의 다음에는, 그 직전에 실행되고 있던 프로세스가 실행가능 상태이면 실행되게 되고, 캐시·미스율을 대폭 감소시키는 것이 가능하게 된다.
또, 이 실행 프로세스 기록 테이블(7)의 입력을 복수 설치하고, 최근 실행된 몇개의 프로세스를 기록할 수 있도록 하는 것도 유효하다. 이 경우, 프로세스 전환부(2)는 체크 포인트·프로세스의 종료시에 실행 프로세스 기록 테이블(7)을 참조하고, 체크 포인트 직전에 실행되고 있던 프로세스가 실행가능 상태이면 그것을 실행하고, 그렇지 않으면 실행 프로세스 기록 테이블(7)에 기록되어 있는 프로세스중에서 실행가능 상태인 것의 우선순위를 올린다. 이 때, 체크 포인트에 의해 가까운 시간에 실행되고 있던 프로세스일수록 높은 우선순위를 부여한다. 예컨대, 실행가능 큐(3)에 존재하는 각 프로세스의 우선순위가 도 6에 나타내는 것과 같은 상태이고, 또한 체크 포인트 종료시의 실행 프로세스 기록 테이블(7)의 기록 상태가 도 7에 나타내는 바와 같은 상태인 경우를 생각할 수 있다. 또, 실행 프로세스 기록 테이블(7)은 순회하여 사용되고(로테이트), 포인터는 최신의 기록 위치의 다음 입력(재기록 포인트)를 항상 지시하고 있다.
이 경우, 실행 프로세스 기록 테이블(7)에 기록되어 있는 프로세스중에서, 예컨대 「P1」, 「P3」, 「P4」가 실행가능할 때, 이 실행가능한 프로세스「Pl」, 「P3」, 「P4」의 우선순위를, 그 실행순에 따라서 각각 5,3 및 2만큼 올린다. 그 결과, 그 우선순위는 도 8에 도시한 바와 같이 되고, 체크 포인트 종료시에는, 프로세스「P1」에 실행이 선택되어 이 프로세스로의 전환이 행해지게 된다.
또한, 프로세서가 실행 명령수를 카운트할 수 있는 경우에는, 각각의 프로세스의 연속하여 실행되는 구간의 실행 명령수를 카운트하는 것도 유효하다. 왜냐하면, 연속하여 실행되는 명령수가 많은 프로세스일수록, 그 프로세스에 관한 명령 및 데이타가 보다 많이 캐시에 유지되어 있는 것을 고려한 우선순위 제어가 가능해지기 때문이다. 또, 예컨대, 실행 프로세스 기록 테이블(7)에 기록된 프로세스와, 실행 프로세스 기록 테이블(7)에 기록되어 있지 않은 프로세스와의 사이에서 우선순위를 결정할 경우에, 이 실행 프로세스 기록 테이블(7)에 기록된 프로세스를 항상 우선하여 실행하는 것은 아니고, 그 실행 프로세스 기록 테이블(7)에 기록된 프로세스가 실행을 종료한 시점에서 현시점까지 실행된 다른 프로세스의 실행 명령수를 고려하여, 그 수에 따라서는 본래의 우선순위에 따라서 실행 프로세스 기록 테이블(7)에 기록되어 있지 않은 프로세스를 미리 실행하는 제어도 가능해진다. 또, 이 우선순위의 제어에 있어서는, 체크 포인트 종료시에 프로세스의 우선순위 그자체를 올리는 것은 아니고, 전환 프로세스의 선택시에 실행 명령수에 따라서 임시의 우선순위를 구하여 일시적으로 사용하는 것이 바람직하다.
또한, 프로세서가 미스수를 카운트할 수 있는 경우에는, 지금까지 나타낸 방법에 의해 우선하여 실행한 프로세스의 미스율이 통상의 경우에 비하여 낮아지는지 어떤지를 판정할 수 있다. 만약 통상에 비하여 미스율이 낮은 경우에는 상관없지만, 그렇지 않은 경우에는 프로세스의 직전에 실행되고 부터의 실행 명령수와 미스율의 상관 관계로부터, 프로세스마다 실행 명령수의 상한을 구하여, 그것보다도 실행 명령수가 큰 경우에는 우선순위를 올리지 않도록 한다.
이것에 의해, 계산기 시스템의 가동 상황을 반영한 보다 적절한 프로세스의 전환이 가능해진다.
이상 상술한 바와 같이, 본 발명에 의하면, 특정한 프로세스를 체크 포인트 채취의 직전에만 실행하도록 관리할 수 있기 때문에, 정합성의 확보를 위해 필요로 하는 각종 처리 지연의 영향을 최소한도로 제한함으로써 시스템의 처리량을 향상시키는 것이 가능해진다.
또한, 체크 포인트 채취의 직전에 실행하고 있던 프로세스를 체크 포인트 채취 직후에 우선하여 실행함으로써, 캐시·미스율을 대폭 감소시키는 것이 가능해진다.

Claims (8)

  1. 중단한 처리를 재개시하기 위한 체크 포인트를 적절하게 채취하는 계산기 시스템으로서, 연속하는 2개의 체크 포인트 사이에서 발생하고, 네트워크나 디스크등을 포함하는 외부 장치로의 출력 요구에 대응하는 출력 조작을 다음 체크 포인트까지 지연시키는 계산기 시스템의 프로세스 전환 장치에 있어서,
    상기 체크 포인트의 직전에서만 실행되어야 되는 것으로 미리 지정된 상기 출력 요구의 발행을 포함하는 프로세스를 기억하는 기억 수단과,
    상기 체크 포인트의 채취점을 검출하는 검출 수단과,
    상기 검출 수단이 체크 포인트의 채취점을 검출했을 때에, 상기 기억 수단에 기억된 프로세스중에서 실행가능 상태에 있는 프로세스를, 그 체크 포인트의 직전에 실행하는 실행 제어 수단을 구비하는 것을 특징으로 하는 프로세스 전환 장치.
  2. 중단한 처리를 재개시하기 위한 체크 포인트를 적절하게 채취하는 계산기 시스템의 프로세스 전환 장치에 있어서,
    상기 체크 포인트의 직전에 실행하고 있던 프로세스를 기록하는 기억 수단과,
    상기 체크 포인트가 채취된 직후에 상기 기억 수단에 기억된 프로세스가 실행가능 상태일 때에, 그 프로세스를 우선하여 실행하는 실행 제어 수단을 구비하는 것을 특징으로 하는 프로세스 전환 장치.
  3. 중단한 처리를 재개시하기 위한 체크 포인트를 적절하게 채취하는 계산기 시스템의 프로세스 전환 장치에 있어서,
    상기 체크 포인트 이전에 실행된 프로세스의 실행 순서를 기억하는 기억 수단과,
    상기 체크 포인트가 채취된 직후에 상기 기억 수단에 기억된 실행 순서를 참조하여, 상기 체크 포인트에 의해 가까운 시점에서 실행된 프로세스를 우선하여 실행하는 실행 제어 수단을 구비하는 것을 특징으로 하는 프로세스 전환 장치.
  4. 중단한 처리를 재개시하기 위한 체크 포인트를 적절하게 채취하는 계산기 시스템으로서, 그 프로세서가 프로세스 각각의 실행 명령수를 카운트하는 카운트 기능을 갖는 계산기 시스템의 프로세스 전환 장치에 있어서,
    상기 체크 포인트 이전에 실행된 프로세스를 상기 카운트 기능에 의해 측정되는 실행 명령수와 함께 기억하는 기억 수단과,
    상기 체크 포인트가 채취된 직후에 상기 기억 수단에 기억된 프로세스가 실행가능 상태일 때에, 이 프로세스중에서 그 실행 명령수가 많은 프로세스를 우선하여 실행하는 실행 제어 수단을 구비하는 것을 특징으로 하는 프로세스 전환 장치.
  5. 제 4 항에 있어서, 상기 실행 제어 수단은, 기억 수단에 기억된 프로세스의 실행 종료 시점에서 현시점까지의 사이에 개재하여 실행된 다른 프로세스의 실행 명령수에 따라서, 상기 기억 수단에 기억된 프로세스 및 상기 기억 수단에 기억되어 있지 않은 프로세스 상호간의 우선 관계를 결정하는 수단을 구비하는 것을 특징으로 하는 프로세스 전환 장치.
  6. 제 4 항에 있어서, 상기 프로세서의 카운트 기능은, 캐시·미스수를 카운트하는 기능을 포함하고,
    상기 기억 수단은 상기 프로세스 각각의 연속하여 실행된 구간에서의 미스율을 기억하는 수단을 구비하며,
    상기 실행 제어 수단은 상기 우선순위를 높인 프로세스의 미스율이 통상시와 비교하여 저하하고 있는지 아닌지 검사하는 검사 수단과, 그 결과를 상기 우선순위의 결정에 반영시키는 수단을 구비하는 것을 특징으로 하는 프로세스 전환 장치.
  7. 중단한 처리를 재개시하기 위한 체크 포인트를 적절하게 채취하는 계산기 시스템으로서, 연속하는 2개의 체크 포인트 사이에서 발생하고 네트워크나 디스크등을 포함하는 외부 장치로의 출력 요구에 대응하는 출력 조작을 다음 체크 포인트까지 지연시키는 계산기 시스템의 프로세스 전환 방법에 있어서,
    상기 체크 포인트의 직전에서만 실행되어야 되는 것으로 미리 지정된 상기 출력 요구의 발행을 포함하는 프로세스를 기억하는 단계와,
    상기 체크 포인트의 채취점을 검출하는 단계와,
    상기 체크 포인트의 채취점을 검출했을 때에, 상기 기억한 프로세스 중에서 실행가능 상태에 있는 프로세스를 그 체크 포인트의 직전에 실행하는 단계를 포함하는 것을 특징으로 하는 프로세스 전환 방법.
  8. 중단한 처리를 재개시하기 위한 체크 포인트를 적절하게 채취하는 계산기 시스템의 프로세스 전환 방법에 있어서,
    상기 체크 포인트의 직전에 실행하고 있던 프로세스를 기록하는 단계와,
    상기 체크 포인트가 설정된 직후에 상기 기억된 프로세스가 실행가능 상태일 때에, 그 프로세스를 우선하여 실행하는 단계를 포함하는 것을 특징으로 하는 프로세스 전환 방법.
KR1019970021844A 1996-06-07 1997-05-30 프로세스 전환 장치 및 프로세스 전환 방법 KR100243461B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP8146039A JPH09330237A (ja) 1996-06-07 1996-06-07 プロセス切り替え装置およびプロセス切り替え方法
JP96-146039 1996-06-07

Publications (2)

Publication Number Publication Date
KR980004095A KR980004095A (ko) 1998-03-30
KR100243461B1 true KR100243461B1 (ko) 2000-02-01

Family

ID=15398731

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970021844A KR100243461B1 (ko) 1996-06-07 1997-05-30 프로세스 전환 장치 및 프로세스 전환 방법

Country Status (6)

Country Link
US (2) US5968168A (ko)
EP (1) EP0811912A3 (ko)
JP (1) JPH09330237A (ko)
KR (1) KR100243461B1 (ko)
CN (1) CN1096022C (ko)
TW (1) TW339429B (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7200623B2 (en) * 1998-11-24 2007-04-03 Oracle International Corp. Methods to perform disk writes in a distributed shared disk system needing consistency across failures
US6532520B1 (en) * 1999-09-10 2003-03-11 International Business Machines Corporation Method and apparatus for allocating data and instructions within a shared cache
US20020173862A1 (en) * 2000-06-20 2002-11-21 Danyang Liu Methods of designing optimal pid controllers
JP4242155B2 (ja) * 2001-03-07 2009-03-18 オラクル・インターナショナル・コーポレイション 永続的記憶装置へのダーティデータ項目の書込を調整するための方法、当該方法をコンピュータに行なわせるためのプログラムを格納したコンピュータ読出可能な媒体、および、永続的記憶装置へのダーティデータ項目の書込を調整するための装置
JP5064794B2 (ja) * 2003-03-31 2012-10-31 タイタン ファーマシューティカルズ インコーポレイテッド ドパミンアゴニストの徐放のための移植可能なポリマーデバイス
US20050138290A1 (en) * 2003-12-23 2005-06-23 Intel Corporation System and method for instruction rescheduling
US7523343B2 (en) * 2004-04-30 2009-04-21 Microsoft Corporation Real-time file system repairs
JP4555145B2 (ja) * 2005-04-28 2010-09-29 富士通株式会社 バッチスケジューリングプログラム、バッチスケジューリング方法およびバッチスケジューリング装置
US8768890B2 (en) * 2007-03-14 2014-07-01 Microsoft Corporation Delaying database writes for database consistency
JP2009276908A (ja) * 2008-05-13 2009-11-26 Toshiba Corp コンピュータシステム及びプログラム
JP5432596B2 (ja) * 2009-05-29 2014-03-05 日本電信電話株式会社 ログファイル管理装置、ログファイル管理システム、ログファイル管理方法及びそのプログラム
JP5408330B2 (ja) 2010-02-23 2014-02-05 富士通株式会社 マルチコアプロセッサシステム、スレッド制御方法、およびスレッド制御プログラム
CN101986602B (zh) * 2010-08-11 2012-08-15 山东大学 基于报文数目检验无阻塞检查点设置和故障进程恢复方法
US8996782B2 (en) 2012-03-23 2015-03-31 Kabushiki Kaisha Toshiba Memory system and bank interleaving method

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2650965B2 (ja) * 1988-05-27 1997-09-10 株式会社日立製作所 計算機システムおよびそのタスクスケジュール方法
JPH0752399B2 (ja) * 1988-06-30 1995-06-05 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン 記憶システム
US5325536A (en) * 1989-12-07 1994-06-28 Motorola, Inc. Linking microprocessor interrupts arranged by processing requirements into separate queues into one interrupt processing routine for execution as one routine
US5261053A (en) * 1991-08-19 1993-11-09 Sequent Computer Systems, Inc. Cache affinity scheduler
US5185861A (en) * 1991-08-19 1993-02-09 Sequent Computer Systems, Inc. Cache affinity scheduler
EP0529303A3 (en) * 1991-08-29 1993-09-22 International Business Machines Corporation Checkpoint synchronization with instruction overlap enabled
US5574902A (en) * 1994-05-02 1996-11-12 International Business Machines Corporation Efficient destaging of updated local cache pages for a transaction in a multisystem and multiprocess database management system with a high-speed shared electronic store
US5561795A (en) * 1994-05-13 1996-10-01 Unisys Corporation Method and apparatus for audit trail logging and data base recovery
JPH10506483A (ja) * 1994-06-10 1998-06-23 テキサス・マイクロ・インコーポレーテッド フォールト・トレラントなコンピュータ・システムのためのメイン・メモリ・システム及びチェックポイント用プロトコル
JPH096546A (ja) * 1995-06-19 1997-01-10 Toshiba Corp ディスク制御システム

Also Published As

Publication number Publication date
CN1168998A (zh) 1997-12-31
TW339429B (en) 1998-09-01
US6279027B1 (en) 2001-08-21
US5968168A (en) 1999-10-19
EP0811912A3 (en) 2006-05-24
JPH09330237A (ja) 1997-12-22
EP0811912A2 (en) 1997-12-10
KR980004095A (ko) 1998-03-30
CN1096022C (zh) 2002-12-11

Similar Documents

Publication Publication Date Title
KR100243461B1 (ko) 프로세스 전환 장치 및 프로세스 전환 방법
US5845326A (en) Computer system and method for obtaining memory check points and recovering from faults using the checkpoints and cache flush operations
US8041900B2 (en) Method and apparatus for improving transactional memory commit latency
US5802267A (en) Method for checkpointing in computer system under distributed processing environment
JP5270268B2 (ja) 共有データへの排他的アクセスを許すためのコンピュータ・システム、並びにその方法及びコンピュータ読み取り可能な記録媒体
JP2718031B2 (ja) 履歴情報取得方法
JP2667039B2 (ja) データ管理システムおよびデータ管理方法
US5752268A (en) Minimum-delay recoverable disk control system using checkpoints and nonvolatile memory
US6678794B1 (en) Smoothing bursts of disk load in a file system
JPWO2003040948A1 (ja) コンピュータ及び制御方法
JP5155655B2 (ja) マイクロプロセッサ出力ポート、及び、そこから提供された命令の制御
JPH05101015A (ja) シミユレーシヨン装置及びシミユレーシヨン方法
JP4423757B2 (ja) 例外処理システム及び方法、並びに、プロセッサ
JP2760747B2 (ja) 入出力命令発行方式
JP2713218B2 (ja) チェックポイント/リスタート処理方式
JPH05204678A (ja) オンライントランザクションデータ処理システム
JPH0594373A (ja) データフラツシユ間隔制御方式
JP3116819B2 (ja) マイクロプログラムのリトライ制御方式
JPH0335339A (ja) Os障害発生時における後始末処理方式
JP3033509B2 (ja) トランザクションの遅延リカバリ方式、遅延リカバリ方法および遅延リカバリプログラムを記録した記録媒体
JP2001060147A (ja) 遅延ライトの障害制御方法
JP2001005689A (ja) トレース採取回路
JP2933011B2 (ja) ファイルの排他制御システム
JP2919457B1 (ja) 二重化装置i/o制御方式およびそのプログラム記録媒体
JPH0324648A (ja) ファイル同時アクセス制御方式

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20051031

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee