KR20060075478A - 엠엠유를 이용한 운영체제 기반 이중화 방법 - Google Patents

엠엠유를 이용한 운영체제 기반 이중화 방법 Download PDF

Info

Publication number
KR20060075478A
KR20060075478A KR1020040114275A KR20040114275A KR20060075478A KR 20060075478 A KR20060075478 A KR 20060075478A KR 1020040114275 A KR1020040114275 A KR 1020040114275A KR 20040114275 A KR20040114275 A KR 20040114275A KR 20060075478 A KR20060075478 A KR 20060075478A
Authority
KR
South Korea
Prior art keywords
operating system
error
redundancy
mmu
page
Prior art date
Application number
KR1020040114275A
Other languages
English (en)
Other versions
KR100675136B1 (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 엘지노텔 주식회사
Priority to KR1020040114275A priority Critical patent/KR100675136B1/ko
Publication of KR20060075478A publication Critical patent/KR20060075478A/ko
Application granted granted Critical
Publication of KR100675136B1 publication Critical patent/KR100675136B1/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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45537Provision of facilities of other operating environments, e.g. WINE
    • 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/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Hardware Redundancy (AREA)

Abstract

본 발명은 MMU를 이용한 운영체제 기반 이중화 방법을 제공하기 위한 것으로, 프로세스 실행중 일 때 MMU에서 페이지 오류 예외를 발생시키고, 이를 이중화 전용 운영체제가 더티 페이지 리스트에 저장하는 제 1 단계와; 상기 제 1 단계 후 프로세스 사이에서 컨텍스트 스위칭이 있으면, 기존에 보관하였던 더티 페이지에 대한 정보와 현재 실행중인 프로세스에 대한 컨텍스트들을 범용 통신 디바이스를 통해 상대편으로 전송하는 제 2 단계와; 상기 제 2 단계 후 프로세스에 오류가 발생하면, 커널에서 예외를 발생시켜 현재 저장 중이던 더티 페이지의 내용과 프로세스 컨텍스트를 상대편으로 전송하고, 상대편에서는 전송받은 정보를 가지고 오류 처리를 수행하는 제 3 단계를 포함하여 구성함으로서, 하드웨어나 응용프로그램의 수정 없이 운영체제만으로 이중화하고, 기존 이중화 방식이 대응하지 못하는 하드웨어 오류 및 소프트웨어 오류를 모두 복구할 수 있게 되는 것이다.

Description

엠엠유를 이용한 운영체제 기반 이중화 방법{Method for operating system based duplication by using MMU}
도 1은 종래 하드웨어를 이용한 이중화 장치의 블록구성도이고,
도 2는 종래 응용프로그램 라이브러리를 이용한 이중화 장치의 블록구성도이며,
도 3은 도 1의 동작을 보인 블록구성도이고,
도 4는 도 2의 동작을 보인 블록구성도이며,
도 5는 본 발명이 적용되는 MMU를 이용한 운영체제 기반 이중화 장치의 블록구성도이고,
도 6은 본 발명에 의한 MMU를 이용한 운영체제 기반 이중화 방법을 보인 흐름도이며,
도 7은 도 6에서 제 1 단계의 동작 예를 보인 흐름도이고,
도 8은 도 7의 동작 예를 보인 블록구성도이며,
도 9는 도 6에서 제 2 단계의 동작 예를 보인 흐름도이고,
도 10은 도 9의 동작 예를 보인 블록구성도이며,
도 11은 도 6에서 제 3 단계의 동작 예를 보인 흐름도이고,
도 12는 도 11의 동작 예를 보인 블록구성도이다.
* 도면의 주요 부분에 대한 부호의 설명 *
20 : 시스템
21 : 범용 애플리케이션
22 : 이중화 전용 운영체제
23 : CPU
24 : 메모리
25 : 범용 하드웨어
본 발명은 CPU(Central Processing Unit, 중앙처리장치) 내에 있는 MMU(Memory Management Unit, 메모리 관리 장치)를 이용한 운영체제 기반 이중화 방법에 관한 것으로, 특히 하드웨어(Hardware, H/W)나 응용프로그램(Application)의 수정 없이 운영체제(Operating System, OS)만으로 이중화하고, 기존 이중화 방식이 대응하지 못하는 하드웨어 오류(Fault) 및 소프트웨어(Software, S/W) 오류를 모두 복구하기에 적당하도록 한 MMU를 이용한 운영체제 기반 이중화 방법에 관한 것이다.
일반적으로 이중화란 시스템의 회복 기법 중의 하나로서, 해당 시스템을 둘로 중복시켜 놓고 동시에 갱신하여 오류를 복구하는 것이다.
그리고 이중화를 하는 방식과 기법은 매우 많이 있으나, 크게 전용 하드웨어 를 이용하는 방식과 전용 라이브러리를 이용하는 방식의 두 가지로 나누어 볼 수 있다.
도 1은 종래 하드웨어를 이용한 이중화 장치의 블록구성도이다.
여기서 참조번호 10은 시스템이고, 11은 범용 응용프로그램이며, 12는 이중화 전용 운용체제이고, 13은 CPU이며, 14는 메모리이고, 15는 이중화 전용 하드웨어이며, 16은 범용 하드웨어이다.
그래서 전용 하드웨어를 이용한 이중화 방식은 두 개의 동일한 시스템(10)에 이중화 전용 하드웨어(15)가 있고, 이를 제어하는 이중화 전용 운영체제(12), 그리고 이를 이용하고 있는 범용 응용프로그램(11)으로 구성된다.
도 2는 종래 응용프로그램 라이브러리를 이용한 이중화 장치의 블록구성도이다.
여기서 참조번호 10은 시스템이고, 13은 CPU이며, 14는 메모리이고, 16은 범용 하드웨어이며, 17은 전용 응용프로그램이고, 18은 전용 라이브러리 및 도구이며, 19는 범용 운용체제이다.
그래서 전용 응용프로그램 라이브러리를 이용한 이중화 방식은 두 개의 동일한 시스템(10)에 범용 하드웨어(16)와 범용 운영체제(19), 그리고 이중화 전용 라이브러리(18)를 이용한 이중화 전용 응용프로그램(17)으로 구성된다.
이러한 종래 기술의 동작을 첨부한 도면에 의거하여 상세히 설명하면 다음과 같다.
1. 하드웨어를 이용한 이중화 방법
그래서 이중화 전용 하드웨어가 이중화 전용 운영체제의 도움을 이용하여 두 개의 시스템(10)의 CPU(13), 메모리(14) 그리고 각종 장치들을 동기화 시킨다.
그리고 이중화 전용 하드웨어(15)가 다른 시스템(10)과 통신하면서 이중화 처리를 한다.
이중화 전용 하드웨어(15)가 이중화 처리를 하기 때문에 별도의 CPU(13) 부하가 거의 없고, 하위 계층(OS와 하드웨어)에서 이중화를 처리하기 때문에 상위의 범용 응용프로그램(11)은 이중화를 고려하지 않아도 된다.
또한 이중화 전용 하드웨어(15)가 이중화를 처리하기 때문에 액티브(Active)되어 실행중인 시스템에서 대기중인 스탠바이(Stand-by) 시스템으로의 절체(Switch Over)가 빠르게 이루어 질 수 있기 때문에, 복잡하고 높은 신뢰성이 요구되는 대형 시스템에 사용하기에 적합하다.
도 3은 도 1의 동작을 보인 블록구성도이다.
1) CPU(13)가 메모리(14)로 데이터를 업데이트 한다.
2) CPU(13)와 메모리(14)간 BUS를 감시하고, 이중화 전용 하드웨어(15)는 이 내용을 상대편 시스템(스탠바이)의 이중화 전용 하드웨어(15)로 넘겨준다.
3) 스탠바이 측의 이중화 전용 하드웨어(15)는 CPU(13)와 메모리(14)간 BUS에 업데이트된 내용을 업데이트 시켜준다.
4) 디바이스가 CPU(13)를 거치지 않고 직접 DMA(Direct Memory Access, 직접 기억 장치 액세스) 오퍼레이션(Operation)을 수행한다.
5) 액티브 측의 이중화 전용 하드웨어(15)는 DMA 오퍼레이션 내용을 감시한 다.
6) 액티브 측의 이중화 전용 하드웨어(15)는 DMA 오퍼레이션 내용을 스탠바이 측의 이중화 전용 하드웨어(15)로 넘겨준다.
7) 스탠바이 측의 이중화 전용 하드웨어(15)는 메모리(14)의 내용을 업데이트 시킨다.
2. 응용프로그램 라이브러리 이용한 이중화 방법
이는 범용 하드웨어와 범용 OS에 이중화를 구현할 수 있게 하는 라이브러리를 이용하여 응용프로그램이 이중화를 하는 방법으로, 이중화 전용 라이브러리가 범용 통신 하드웨어를 이용하여 두 개의 시스템을 동기화 시키는 역할을 한다.
응용프로그램은 동기화 시켜야 할 내용을 이중화 전용 라이브러리에 지정하고, 이중화 전용 라이브러리가 이를 동기화 시킨다.
따라서 범용 하드웨어와 OS를 사용하기 때문에 하드웨어 이식성이 높은 장점이 있고, 또한 높은 신뢰성이 요구되지 않는 중, 소형 시스템에서 사용하기에 적합하다.
도 4는 도 2의 동작을 보인 블록구성도이다.
1) 상대편(스탠바이)과 동기화 될 내용이 있을 경우, 이중화 라이브러리를 이용한 전용 응용프로그램(17)이 이중화 전용 라이브러리(18)를 이용하여 업데이트 요청을 한다.
2) 이중화 라이브러리(18)를 범용 통신 장치를 통해 상대편으로 전송한다.
3) 액티브 측의 범용 통신 장치는 스탠바이 측의 범용통신 장치로 데이터를 전송한다.
4) 스탠바이 측의 범용 통신 장치는 이중화 라이브러리로 데이터를 올려준다.
5) 이중화 라이브러리는 응용프로그램으로 업데이트된 내용을 전송한다.
그러나 이러한 종래 기술은 다음과 같은 문제점이 있었다.
1) 하드웨어를 이용한 이중화 방법의 문제점
이는 이중화 전용 하드웨어와 이중화 전용 OS가 필요하기 때문에 많은 비용과 개발 시간이 많이 소요되고, 하드웨어 호환성이 떨어지는 문제점이 있었다.
또한 소프트웨어적인 논리적(Logical) 오류인 경우에는 복구가 불가능한 문제점도 있었다.
2) 응용프로그램 라이브러리를 이용한 이중화 방법의 문제점
이는 이중화 전용 라이브러리를 사용해야 하므로 응용프로그램을 재설계해야 하는 문제점이 있었다.
또한 절체(Switch Over)시에 수행중인 프로세스의 컨텍스트(Context)를 복구할 수 없거나, 복구할 경우에도 매우 높은 CPU 부하가 요구되며, 소프트웨어 호환성이 떨어지는 문제점도 있었다.
이에 본 발명은 상기와 같은 종래의 제반 문제점을 해결하기 위해 제안된 것으로, 본 발명의 목적은 하드웨어나 응용프로그램의 수정 없이 운영체제만으로 이중화하고, 기존 이중화 방식이 대응하지 못하는 하드웨어 오류 및 소프트웨어 오류 를 모두 복구할 수 있는 MMU를 이용한 운영체제 기반 이중화 방법을 제공하는데 있다.
상기와 같은 목적을 달성하기 위하여 본 발명의 일실시예에 의한 MMU를 이용한 운영체제 기반 이중화 방법은,
프로세스 실행중 일 때 MMU에서 페이지 오류 예외를 발생시키고, 이를 이중화 전용 운영체제가 더티 페이지 리스트에 저장하는 제 1 단계와; 상기 제 1 단계 후 프로세스 사이에서 컨텍스트 스위칭이 있으면, 기존에 보관하였던 더티 페이지에 대한 정보와 현재 실행중인 프로세스에 대한 컨텍스트들을 범용 통신 디바이스를 통해 상대편으로 전송하는 제 2 단계와; 상기 제 2 단계 후 프로세스에 오류가 발생하면, 커널에서 예외를 발생시켜 현재 저장 중이던 더티 페이지의 내용과 프로세스 컨텍스트를 상대편으로 전송하고, 상대편에서는 전송받은 정보를 가지고 오류 처리를 수행하는 제 3 단계를 포함하여 수행함을 그 기술적 구성상의 특징으로 한다.
이하, 상기와 같은 본 발명, MMU를 이용한 운영체제 기반 이중화 방법의 기술적 사상에 따른 일실시예를 도면을 참조하여 설명하면 다음과 같다.
도 5는 본 발명이 적용되는 MMU를 이용한 운영체제 기반 이중화 장치의 블록구성도이다.
여기서 참조번호 20은 시스템이고, 21은 범용 애플리케이션이며, 22는 이중화 전용 운영체제이고, 23은 CPU이며, 24는 메모리이고, 25는 범용 하드웨어이다.
도 6은 본 발명에 의한 MMU를 이용한 운영체제 기반 이중화 방법을 보인 흐름도이다.
이에 도시된 바와 같이, 프로세스 실행(Running)중 일 때 MMU에서 페이지 오류 예외(Page Fault Exception)를 발생시키고, 이를 이중화 전용 운영체제가 더티 페이지 리스트(Dirty Page List)에 저장하는 제 1 단계(ST1)와; 상기 제 1 단계 후 프로세스 사이에서 컨텍스트 스위칭(Context Switching, 프로세스 #1에서 프로세스 #2로 천이)이 있으면, 기존에 보관하였던 더티 페이지(Dirty Page)에 대한 정보와 현재 실행중인 프로세스에 대한 컨텍스트들을 범용 통신 디바이스를 통해 상대편(스탠바이측)으로 전송하는 제 2 단계(ST2)와; 상기 제 2 단계 후 프로세스에 오류가 발생하면, 커널(Kernel)에서 예외(Exception)를 발생시켜 현재 저장 중이던 더티 페이지(Dirty Page)의 내용과 프로세스 컨텍스트를 상대편(스탠바이측)으로 전송하고, 상대편(스탠바이측)에서는 전송받은 정보를 가지고 오류 처리를 수행하는 제 3 단계(ST3)를 포함하여 수행한다.
도 7은 도 6에서 제 1 단계의 동작 예를 보인 흐름도이고, 도 8은 도 7의 동작 예를 보인 블록구성도이다.
이에 도시된 바와 같이, 상기 제 1 단계는, 프로세스 #1에서 메모리의 내용을 수정하고자 하면, MMU는 페이지 오류 예외(Page Fault Exception)를 발생시키는 제 11 단계(ST11)(ST12)와; 상기 제 11 단계 후 이중화 전용 운영체제(22)는 해당 페이지에 대한 위치를 더티 페이지 리스트(Dirty Page List)에 보관하는 제 12 단계(ST13)를 포함하여 수행한다.
도 9는 도 6에서 제 2 단계의 동작 예를 보인 흐름도이고, 도 10은 도 9의 동작 예를 보인 블록구성도이다.
이에 도시된 바와 같이, 상기 제 2 단계는, 상기 제 1 단계 후 프로세스 #1에서 프로세스 #2로 컨텍스트 스위칭이 있으면, 이중화 전용 운영체제(22)는 프로세스 #1에 대한 더티 페이지(Dirty Page)에 대한 위치와 프로세스 컨텍스트 정보를 수집하는 제 21 단계(ST21)(ST22)와; 상기 제 21 단계 후 상기 이중화 전용 운영체제(22)는 더티 페이지의 내용과 프로세스 컨텍스트 정보를 범용 통신 디바이스로 전송하는 제 22 단계(ST23)와; 상기 제 22 단계 후 범용 통신 디바이스로 상대편(스탠바이측)의 범용 하드웨어(25)로 데이터를 전송하는 제 23 단계(ST24)와; 상기 제 23 단계 후 스탠바이의 이중화 전용 운영체제(22)는 범용 통신 디바이스로부터 더티 페이지와 프로세스 컨텍스트 정보를 읽어와서 업데이트 시키는 제 24 단계(ST25)와; 상기 제 24 단계 후 스탠바이 측의 이중화 전용 운영체제(22)는 액티브 측과 동일하게 프로세스 #2로 컨텍스트 스위칭을 수행하는 제 25 단계(ST26)를 포함하여 수행한다.
도 11은 도 6에서 제 3 단계의 동작 예를 보인 흐름도이고, 도 12는 도 11의 동작 예를 보인 블록구성도이다.
이에 도시된 바와 같이, 상기 제 3 단계는, 상기 제 2 단계 후 프로세스 #1에 오류가 발생하면, 이중화 전용 운영체제(22)가 페이지 오류 예외를 통해 오류 상태를 감지하는 제 31 단계(ST31)(ST32)와; 상기 제 31 단계 후 이중화 전용 운영체제(22)가 더티 페이지와 프로세스 컨텍스트를 범용 통신 디바이스를 통해 상대편 (스탠바이측)으로 전송하는 제 32 단계(ST33)와; 상기 제 32 단계 후 범용 통신 디바이스로 상대편(스탠바이측)으로 데이터를 전송하는 제 33 단계(ST34)와; 상기 제 33 단계 후 스탠바이 측의 이중화 전용 운영체제(22)는 범용 통신 디바이스로부터 더티 페이지와 프로세스 컨텍스트를 읽어오는 제 34 단계(ST35)와; 상기 제 34 단계 후 스탠바이 측의 이중화 전용 운영체제(22)는 더티 페이지와 프로세스 컨텍스트를 통해 액티브와 동일하게 오페레이션을 수행하고, 오류 처리를 수행하는 제 35 단계(ST36)(ST37)를 포함하여 수행한다.
상기에서 제 35 단계는, 액티브 측의 오류 원인이 하드웨어였을 경우에는 스탠바이 측의 하드웨어가 이상이 없을 때 스탠바이 측이 정상 동작하도록 하는 것을 특징으로 한다.
상기에서 제 35 단계는, 액티브 측의 오류 원인이 소프트웨어의 오류일 경우에는 액티브 측과 동일하게 스탠바이 측에서도 오류가 발생하도록 하는 것을 특징으로 한다.
상기에서 제 35 단계는, 액티브 측과 동일하게 스탠바이 측에서 오류가 발생하였을 경우에는 이전에 저장해 두었던 이전 프로세스 #1의 프로세스 컨텍스트 정보를 통해 롤백(Roll Back)해서 이전 상태로 되돌아가도록 하는 것을 특징으로 한다.
이와 같이 구성된 본 발명에 의한 MMU를 이용한 운영체제 기반 이중화 방법의 동작을 첨부한 도면에 의거 상세히 설명하면 다음과 같다.
먼저 본 발명은 하드웨어나 응용프로그램의 수정 없이 운영체제만으로 이중 화하고, 기존 이중화 방식이 대응하지 못하는 하드웨어 오류 및 소프트웨어 오류를 모두 복구하고자 한 것이다.
그래서 본 발명은 이중화 전용 운영체제(22)가 CPU(23)의 MMU를 이용해서 더티 페이지(Dirty Page)를 찾고, 이를 범용 하드웨어(25) 내의 범용 통신 장치를 이용해서 다른 시스템(스탠바이측)으로 전송해서 동기화 시키도록 한다.
그리고 CPU(23)의 MMU를 이용해서 범용 응용프로그램(21)이 메모리(24)의 내용을 변경시킬 때 마다, 페이지 오류 예외(Page Fault Exception)를 발생시킬 수 있다.
하지만, 일반적으로 CPU(23)에서 사용하는 페이지의 크기는 통상 4096 바이트이므로, 이 때마다 데이터를 전송 시켜 동기화 시키는 것은 많은 지나치게 많은 CPU 부하를 발생시킨다.
이를 방지하기 위해 본 발명에서는 페이지 오류시마다 동기화 시키지 않고, 페이지 위치만을 저장해 놓는다. 그리고 컨텍스트 스위칭이 발생할 때나 또는 오류 가 발생했을 때, 해당 페이지들을 상대편(스탠바이측)으로 전송하도록 한다.
여기서 MMU(Memory Management Unit)란 대부분의 CPU(23) 내에 포함되어 있는 주요장치의 하나로서, 메모리 매핑(Mapping)과 메모리 보호(Protection) 기능 등을 수행하는 장치이다.
또한 이중화란 하나의 시스템이 하드웨어나 소프트웨어 오류로 인해 정상적인 수행을 하지 못할 경우를 대비하여 동일한 하나의 시스템을 더 두고 오류시에 절체(Switch Over) 하여 서비스의 단절이 없도록 하는 방식을 말한다.
또한 DMA(Direct Memory Access)란 디바이스가 메모리에 직접 값을 라이트(Write)하는 오퍼레이션(Operation)을 말한다.
또한 페이지 오류 예외(Page Fault Exception)란 MMU의 페이지 테이블 엔트리(Page Table Entry)에 해당 페이지가 없거나 접근권한이 없을 때 MMU가 발생 시키는 예외(Exception)이다.
또한 더티 페이지 리스트(Dirty Page List)란 응용프로그램이 값을 수정한 메모리 페이지의 번지를 가지고 있는 리스트를 말한다.
또한 컨텍스트(Context)란 프로세스가 수행하기 위한 리소스 정보(CPU 레지스터 정보, I/O(Input/Output, 입출력) 자원 정보 등)를 말한다.
또한 컨텍스트 스위칭(Context Switching)이란 하나의 프로세스가 다른 프로세스로 천이 되는 과정을 말한다.
이러한 본 발명의 동작을 좀더 상세히 설명하면 다음과 같다.
1. 제 1 단계 : 프로세스 실행 (도 7 및 도 8 참조)
이는 프로세스 실행 중일 경우의 처리 과정이다.
그래서 프로세스 실행(Running)중 일 때 MMU에서 페이지 오류 예외(Page Fault Exception)를 발생시키고, 이를 이중화 전용 운영체제가 더티 페이지 리스트(Dirty Page List)에 저장하도록 한다(ST1).
1) 프로세스 #1에서 메모리의 내용을 수정하고자 하면(ST11), MMU는 페이지 오류 예외(Page Fault Exception)를 발생시킨다(ST12).
2) 이중화 전용 운영체제(22)는 해당 페이지에 대한 위치를 더티 페이지 리 스트(Dirty Page List)에 보관한다(ST13).
2. 제 2 단계 : 컨텍스트 스위칭 (도 9 및 도 10 참조)
이는 컨텍스트 스위칭 시의 처리 과정이다.
그래서 프로세스 사이에서 컨텍스트 스위칭(Context Switching, 프로세스 #1에서 프로세스 #2로 천이)이 있으면, 기존에 보관하였던 더티 페이지(Dirty Page)에 대한 정보와 현재 실행중인 프로세스에 대한 컨텍스트들을 범용 통신 디바이스를 통해 상대편(스탠바이측)으로 전송한다(ST2)
1) 프로세스 #1에서 프로세스 #2로 컨텍스트 스위칭이 있으면(ST21), 이중화 전용 운영체제(22)는 프로세스 #1에 대한 더티 페이지(Dirty Page)에 대한 위치와 프로세스 컨텍스트 정보를 수집한다(ST22).
2) 범용 통신 디바이스로 상대편(스탠바이측)의 범용 하드웨어(25)로 데이터를 전송한다(ST24).
3) 스탠바이의 이중화 전용 운영체제(22)는 범용 통신 디바이스로부터 더티 페이지와 프로세스 컨텍스트 정보를 읽어와서 업데이트 시킨다(ST25).
4) 스탠바이 측의 이중화 전용 운영체제(22)는 액티브 측과 동일하게 프로세스 #2로 컨텍스트 스위칭을 수행한다(ST26).
3. 제 3 단계 : 오류 처리 (도 11 및 도 12 참조)
이는 오류 발생 시의 처리 과정이다.
그래서 프로세스에 오류가 발생하면, 커널(Kernel)에서 페이지 오류 예외(Exception)를 발생시켜 현재 저장 중이던 더티 페이지(Dirty Page)의 내용과 프로 세스 컨텍스트를 상대편(스탠바이측)으로 전송하고, 상대편(스탠바이측)에서는 전송받은 정보를 가지고 오류 처리를 수행하도록 한다(ST3).
1) 프로세스 #1에 오류가 발생하면(ST31), 이중화 전용 운영체제(22)가 페이지 오류 예외를 통해 오류 상태를 감지한다(ST32).
2) 이중화 전용 운영체제(22)가 더티 페이지와 프로세스 컨텍스트를 범용 통신 디바이스를 통해 상대편(스탠바이측)으로 전송한다(ST33).
3) 범용 통신 디바이스로 상대편(스탠바이측)으로 데이터를 전송한다(ST34).
4) 스탠바이 측의 이중화 전용 운영체제(22)는 범용 통신 디바이스로부터 더티 페이지와 프로세스 컨텍스트를 읽어온다(ST35).
5) 스탠바이 측의 이중화 전용 운영체제(22)는 더티 페이지와 프로세스 컨텍스트를 통해 액티브와 동일하게 오페레이션을 수행하고, 오류 처리를 수행한다.
이때 액티브 측의 오류 원인이 하드웨어였을 경우에는 스탠바이 측의 하드웨어가 이상이 없을 때 스탠바이 측이 정상 동작하도록 한다.
또한 액티브 측의 오류 원인이 소프트웨어의 오류일 경우에는 액티브 측과 동일하게 스탠바이 측에서도 오류가 발생하도록 한다(ST36).
6) 액티브 측과 동일하게 스탠바이 측에서 오류가 발생하였을 경우에는 이전에 저장해 두었던 이전 프로세스 #1의 프로세스 컨텍스트 정보를 통해 롤백(Roll Back)해서 이전 상태로 되돌아가도록 한다(ST37)
이처럼 본 발명은 하드웨어나 응용프로그램의 수정 없이 운영체제만으로 이중화하고, 기존 이중화 방식이 대응하지 못하는 하드웨어 오류 및 소프트웨어 오류 를 모두 복구하게 되는 것이다.
이러한 본 발명은 기간 통신 시스템 제품군(Gateway 장비, IMT2000, 교환기 등), 네트워크 제품군(스위치, 라우터, 보안장비 등), 서버 제품군 (웹 서버, 게임서버, 파일 서버 등) 등에 적용될 수 있다.
이상에서 본 발명의 바람직한 실시예를 설명하였으나, 본 발명은 다양한 변화와 변경 및 균등물을 사용할 수 있다. 본 발명은 상기 실시예를 적절히 변형하여 동일하게 응용할 수 있음이 명확하다. 따라서 상기 기재 내용은 하기 특허청구범위의 한계에 의해 정해지는 본 발명의 범위를 한정하는 것이 아니다.
이상에서 살펴본 바와 같이, 본 발명에 의한 MMU를 이용한 운영체제 기반 이중화 방법은 하드웨어나 응용프로그램의 수정 없이 운영체제만으로 이중화하고, 기존 이중화 방식이 대응하지 못하는 하드웨어 오류 및 소프트웨어 오류를 모두 복구할 수 있는 효과가 있게 된다.
따라서 본 발명은 이중화 하드웨어를 이용한 이중화 방식이 대응하지 못하는 소프트웨어 오류에 대해 대응할 수 있고, 이중화 라이브러리를 이용한 이중화 방식이 대응하지 못하는 하드웨어 오류에 대해서도 대응할 수 있는 효과가 있게 된다.
또한 본 발명은 기존의 일반적인 목적의 응용프로그램을 바이너리 레벨(Binary Level)로 이중화된 시스템에서 재사용하는 것이 가능한 장점도 있게 된다.
또한 본 발명은 운영체제에서 이중화를 지원하므로 응용프로그램의 신규 개발 시 이중화를 고려하지 않아도 되기 때문에 개발 시간이 줄어들게 되고, 이중화 의 복잡도가 낮아지며 호환성이 높아지는 효과가 있게 된다.
또한 본 발명은 CPU 내부의 MMU를 이용하고, 필요한 부분만 동기화 하기 때문에 이중화 라이브러리를 이용한 이중화에 비해 이중화에 소요되는 CPU 부하가 낮은 장점도 있다.
또한 본 발명은 범용 하드웨어를 이용하기 때문에 개발비용과 시간을 줄일 수 있는 효과가 있게 된다.

Claims (7)

  1. 프로세스 실행중 일 때 MMU에서 페이지 오류 예외를 발생시키고, 이를 이중화 전용 운영체제가 더티 페이지 리스트에 저장하는 제 1 단계와;
    상기 제 1 단계 후 프로세스 사이에서 컨텍스트 스위칭이 있으면, 기존에 보관하였던 더티 페이지에 대한 정보와 현재 실행중인 프로세스에 대한 컨텍스트들을 범용 통신 디바이스를 통해 상대편으로 전송하는 제 2 단계와;
    상기 제 2 단계 후 프로세스에 오류가 발생하면, 커널에서 예외를 발생시켜 현재 저장 중이던 더티 페이지의 내용과 프로세스 컨텍스트를 상대편으로 전송하고, 상대편에서는 전송받은 정보를 가지고 오류 처리를 수행하는 제 3 단계를 포함하여 수행하는 것을 특징으로 하는 MMU를 이용한 운영체제 기반 이중화 방법.
  2. 제 1 항에 있어서, 상기 제 1 단계는,
    프로세스 #1에서 메모리의 내용을 수정하고자 하면, MMU는 페이지 오류 예외를 발생시키는 제 11 단계와;
    상기 제 11 단계 후 이중화 전용 운영체제는 해당 페이지에 대한 위치를 더티 페이지 리스트에 보관하는 제 12 단계를 포함하여 수행하는 것을 특징으로 하는 MMU를 이용한 운영체제 기반 이중화 방법.
  3. 제 1 항에 있어서, 상기 제 2 단계는,
    상기 제 1 단계 후 프로세스 #1에서 프로세스 #2로 컨텍스트 스위칭이 있으면, 이중화 전용 운영체제는 프로세스 #1에 대한 더티 페이지에 대한 위치와 프로세스 컨텍스트 정보를 수집하는 제 21 단계와;
    상기 제 21 단계 후 상기 이중화 전용 운영체제는 더티 페이지의 내용과 프로세스 컨텍스트 정보를 범용 통신 디바이스로 전송하는 제 22 단계와;
    상기 제 22 단계 후 범용 통신 디바이스로 상대편의 범용 하드웨어로 데이터를 전송하는 제 23 단계와;
    상기 제 23 단계 후 스탠바이의 이중화 전용 운영체제는 범용 통신 디바이스로부터 더티 페이지와 프로세스 컨텍스트 정보를 읽어와서 업데이트 시키는 제 24 단계와;
    상기 제 24 단계 후 스탠바이 측의 이중화 전용 운영체제는 액티브 측과 동일하게 프로세스 #2로 컨텍스트 스위칭을 수행하는 제 25 단계를 포함하여 수행하는 것을 특징으로 하는 MMU를 이용한 운영체제 기반 이중화 방법.
  4. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서, 상기 제 2 단계는,
    상기 제 2 단계 후 프로세스 #1에 오류가 발생하면, 이중화 전용 운영체제가 페이지 오류 예외를 통해 오류 상태를 감지하는 제 31 단계와;
    상기 제 31 단계 후 이중화 전용 운영체제가 더티 페이지와 프로세스 컨텍스트를 범용 통신 디바이스를 통해 상대편으로 전송하는 제 32 단계와;
    상기 제 32 단계 후 범용 통신 디바이스로 상대편으로 데이터를 전송하는 제 33 단계와;
    상기 제 33 단계 후 스탠바이 측의 이중화 전용 운영체제는 범용 통신 디바이스로부터 더티 페이지와 프로세스 컨텍스트를 읽어오는 제 34 단계와;
    상기 제 34 단계 후 스탠바이 측의 이중화 전용 운영체제는 더티 페이지와 프로세스 컨텍스트를 통해 액티브와 동일하게 오페레이션을 수행하고, 오류 처리를 수행하는 제 35 단계를 포함하여 수행하는 것을 특징으로 하는 MMU를 이용한 운영체제 기반 이중화 방법.
  5. 제 4 항에 있어서, 상기 제 35 단계는,
    액티브 측의 오류 원인이 하드웨어였을 경우에는 스탠바이 측의 하드웨어가 이상이 없을 때 스탠바이 측이 정상 동작하도록 하는 것을 특징으로 하는 MMU를 이용한 운영체제 기반 이중화 방법.
  6. 제 4 항에 있어서, 상기 제 35 단계는,
    액티브 측의 오류 원인이 소프트웨어의 오류일 경우에는 액티브 측과 동일하게 스탠바이 측에서도 오류가 발생하도록 하는 것을 특징으로 하는 MMU를 이용한 운영체제 기반 이중화 방법.
  7. 제 4 항에 있어서, 상기 제 35 단계는,
    액티브 측과 동일하게 스탠바이 측에서 오류가 발생하였을 경우에는 이전에 저장해 두었던 이전 프로세스 #1의 프로세스 컨텍스트 정보를 통해 롤백해서 이전 상태로 되돌아가도록 하는 것을 특징으로 하는 MMU를 이용한 운영체제 기반 이중화 방법.
KR1020040114275A 2004-12-28 2004-12-28 엠엠유를 이용한 운영체제 기반 이중화 방법 KR100675136B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020040114275A KR100675136B1 (ko) 2004-12-28 2004-12-28 엠엠유를 이용한 운영체제 기반 이중화 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040114275A KR100675136B1 (ko) 2004-12-28 2004-12-28 엠엠유를 이용한 운영체제 기반 이중화 방법

Publications (2)

Publication Number Publication Date
KR20060075478A true KR20060075478A (ko) 2006-07-04
KR100675136B1 KR100675136B1 (ko) 2007-01-29

Family

ID=37168015

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040114275A KR100675136B1 (ko) 2004-12-28 2004-12-28 엠엠유를 이용한 운영체제 기반 이중화 방법

Country Status (1)

Country Link
KR (1) KR100675136B1 (ko)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09185556A (ja) * 1995-12-27 1997-07-15 Toshiba Corp 二重化メモリの管理方法、及び二重化メモリ管理装置

Also Published As

Publication number Publication date
KR100675136B1 (ko) 2007-01-29

Similar Documents

Publication Publication Date Title
US6687849B1 (en) Method and apparatus for implementing fault-tolerant processing without duplicating working process
US6622263B1 (en) Method and apparatus for achieving system-directed checkpointing without specialized hardware assistance
US8966315B2 (en) System-directed checkpointing implementation using a hypervisor layer
US6651182B1 (en) Method for optimal system availability via resource recovery
JP2002287999A (ja) サーバの二重化方法、二重化サーバシステム、および二重化データベースサーバ
KR100408047B1 (ko) 이동통신 시스템의 프로세서 보드 이중화 장치 및 방법
US7260739B2 (en) Method, apparatus and program storage device for allowing continuous availability of data during volume set failures in a mirrored environment
WO2020233001A1 (zh) 双控构架分布式存储系统、数据读取方法、装置和存储介质
CN111488247B (zh) 一种管控节点多次容错的高可用方法及设备
KR100675136B1 (ko) 엠엠유를 이용한 운영체제 기반 이중화 방법
CN111858187A (zh) 一种电子设备及业务切换方法、装置
KR20000033935A (ko) 이중화된 교환시스템의 이더넷 통신 장애에대한 대처 방법
JPH10133926A (ja) ミラー化ディスク復旧方法と復旧システム
JPH03265951A (ja) 故障回復型計算機
JPH07219802A (ja) 2重化制御方式
JPS59180897A (ja) バツテリバツクアツプメモリの二重化方式
JPS62140153A (ja) 二重化デ−タ処理装置
JP3340284B2 (ja) 冗長システム
JP2000163276A (ja) ネットワークワイド予備方式
JPH05265789A (ja) メモリ複写方式
CN117093143A (zh) 一种输入输出进程处理方法、装置、电子设备及存储介质
JP4494263B2 (ja) サービスシステムの冗長化方式
JPH0793173A (ja) コンピュータネットワークシステムおよびそのコンピュータネットワークシステムの計算機に対するプロセス割り当て方法
KR100249809B1 (ko) 주기억 장치 데이터 베이스 시스템을 위한 이중 포트 램 사용무중단 연속 메모리 백업 장치 및 방법
JPH01220049A (ja) 二重化記憶制御方式

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20111209

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee