1 |
1
비휘발성 메모리를 포함하는 메모리 모듈 및 복수의 코어를 포함하는 프로세서를 포함하는 컴퓨팅 장치의 지속성 지원 방법으로서,파워 오류 시에 제1 절차와 제2 절차를 포함하는 중지 절차를 수행하는 단계를 포함하며,상기 제1 절차를 수행하는 단계는,실행 중인 복수의 프로세스의 프로세스 제어 블록에 접근하는 단계,각 프로세스를 상기 복수의 코어에 포함되는 복수의 제1 코어 중 대응하는 제1 코어의 실행 큐에 스케줄하는 단계,상기 실행 큐에서 스케줄된 프로세서를 삭제하고 대기 큐에 대기시키는 단계, 그리고유휴 태스크를 실행하는 단계를 포함하며,상기 제2 절차를 수행하는 단계는 상기 컴퓨팅 장치에 포함되는 장치를 중지하는 단계를 포함하는지속성 지원 방법
|
2 |
2
제1항에서,상기 복수의 코어는 제2 코어를 더 포함하며,상기 제2 코어가 상기 프로세스 제어 블록에 접근하는 단계, 상기 스케줄하는 단계 및 상기 장치를 중지하는 단계를 실행하고,상기 복수의 제1 코어가 상기 대기 큐에 대기시키는 단계 및 상기 유휴 태스크를 실행하는 단계를 실행하는지속성 지원 방법
|
3 |
3
제2항에서,상기 복수의 코어 중에서 상기 파워 오류의 이벤트를 처리하는 인터럽트 핸들러를 실행하는 코어가 상기 제2 코어로 되는, 지속성 지원 방법
|
4 |
4
제2항에서,상기 스케줄하는 단계는, 각 프로세스를 상기 대응하는 제1 코어의 실행 큐에 스케줄한 후에 상기 대응하는 제1 코어에 인터럽트를 보내는 단계를 포함하는, 지속성 지원 방법
|
5 |
5
제1항에서,상기 제1 절차를 수행하는 단계는 상기 파워 오류 시에 시스템 전체의 지속 플래그를 설정하는 단계를 더 포함하며,상기 프로세스 제어 블록에 접근하는 단계는 상기 프로세스 제어 블록에 접근하면서 각 프로세스의 상기 프로세스 제어 블록의 시그널 펜딩 플래그를 설정하는 단계를 포함하는지속성 지원 방법
|
6 |
6
제5항에서,상기 대기 큐에 대기시키는 단계는상기 시그널 펜딩 플래그에 응답하여 시그널 핸들러를 실행하는 단계, 그리고상기 지속 플래그에 응답하여 상기 시그널 핸들러가 각 프로세스를 인터럽트할 수 없는 상태로 변경하는 단계를 포함하는 지속성 지원 방법
|
7 |
7
제1항에서,상기 장치를 중지하는 단계는 상기 장치를 비활성화하고, 상기 장치의 컨텍스트 정보를 상기 메모리 모듈의 장치 제어 블록에 저장하는 단계를 포함하는 지속성 지원 방법
|
8 |
8
제7항에서,상기 장치를 중지하는 단계는 장치 파워 관리(device power management) 메커니즘에 기초해서 상기 장치를 중지하는 단계를 더 포함하는, 지속성 지원 방법
|
9 |
9
제1항에서,상기 복수의 코어는 제2 코어를 더 포함하며,상기 제2 절차를 수행하는 단계는상기 복수의 제1 코어의 오프라인을 준비하는 단계, 그리고상기 메모리 모듈에 상기 제2 코어의 레지스터를 저장하는 단계를 포함하는지속성 지원 방법
|
10 |
10
제9항에서,상기 오프라인을 준비하는 단계는각 제1 코어의 커널 포인터를 널로 초기화하는 단계,각 제1 코어의 캐시를 플러시하고, 펜스 명령을 실행하는 단계, 그리고각 제1 코어의 메모리 요청이 완료된 경우 상기 제2 코어로 각 제1 코어의 오프라인이 가능함을 보고하는 단계를 포함하는 지속성 지원 방법
|
11 |
11
제10항에서,상기 레지스터를 저장하는 단계는상기 복수의 제1 코어로부터 수신한 오프라인이 가능하다는 보고에 응답하여, 실행 환경을 커널에서 부트로더로 전환하는 단계,상기 레지스터를 상기 메모리 모듈의 부트로더 제어 블록에 저장하는 단계, 그리고상기 중지 절차가 진행되었음을 나타내는 커밋을 상기 부트로더 제어 블록에 저장하는 단계를 포함하는 지속성 지원 방법
|
12 |
12
제10항에서,상기 제2 코어의 레지스터는 파워 복구 시에 진행될 계속 절차를 수행할 때 필요한 레지스터를 포함하며,상기 필요한 레지스터는 상기 계속 절차에서 시스템을 다시 실행할 리턴 주소를 포함하는 지속성 지원 방법
|
13 |
13
제12항에서,상기 실행 환경을 커널에서 부트로더로 전환하는 단계는 시스템 레벨 예외를 발생시켜 상기 실행 환경을 커널에서 부트로더로 전환하는 단계를 포함하며,머신 예외 프로그램 카운터가 상기 시스템 레벨 예외를 위한 명령 다음의 커널측 명령 주소를 상기 리턴 주소로 기록하는지속성 지원 방법
|
14 |
14
제1항에서,파워 복구 시에 계속 절차를 수행하는 단계를 더 포함하며,상기 복수의 코어는 제2 코어를 더 포함하고,상기 계속 절차를 수행하는 단계는,상기 메모리 모듈에 저장된 레지스터를 상기 제2 코어에 복구하는 단계,상기 제2 코어와 상기 복수의 제1 코어의 초기화를 수행하는 단계,각 제1 워커의 커널 포인터를 설정하고 각 제1 워커로 인터럽트를 보내는 단계, 그리고상기 복수의 프로세스의 상기 프로세스 제어 블록에 접근하여 상기 프로세스를 스케줄하는 단계를 포함하는지속성 지원 방법
|
15 |
15
제14항에서,상기 레지스터는 상기 메모리 모듈의 부트로더 제어 블록에 저장되어 있으며,상기 계속 절차를 수행하는 단계는 상기 초기화를 수행한 후에 상기 실행 환경을 부트로더에서 커널로 전환하는 단계를 더 포함하는지속성 지원 방법
|
16 |
16
제15항에서,상기 레지스터는 상기 중지 절차를 마지막으로 실행한 명령의 다음 주소인 리턴 주소를 저장하며,상기 실행 환경을 부트로더에서 커널로 전환하는 단계는 상기 리턴 주소로 이동하는 단계를 포함하는지속성 지원 방법
|
17 |
17
제14항에서,상기 계속 절차를 수행하는 단계는, 각 제1 워커의 커널 포인터이 설정된 후에, 상기 복수의 제1 워커가 유휴 태스크를 실행하면서 스케줄을 대기하는 단계를 더 포함하는, 지속성 지원 방법
|
18 |
18
제14항에서,상기 계속 절차를 수행하는 단계는상기 중지 절차가 진행되었음을 나타내는 커밋을 확인하는 단계, 그리고상기 커밋이 유효한 경우에 상기 계속 절차를 수행하는 단계를 더 포함하는 지속성 지원 방법
|
19 |
19
비휘발성 메모리를 포함하는 메모리 모듈, 그리고복수의 코어를 포함하며, 상기 메모리 모듈에 저장된 명령어를 실행함으로써, 파워 오류 시에 중지 절차를 수행하고, 파워 복구 시에 계속 절차를 수행하며, 프로세서를 포함하며,상기 프로세서는, 상기 중지 절차에서,실행 중인 복수의 프로세스의 프로세스 제어 블록에 접근하고,각 프로세스를 상기 복수의 코어에 포함되는 복수의 제1 코어 중 대응하는 제1 코어의 실행 큐에 스케줄하고,상기 실행 큐에서 스케줄된 프로세서를 삭제하고 대기 큐에 대기시키고,유휴 태스크를 실행하고,상기 컴퓨팅 장치에 포함되는 장치를 중지하는 컴퓨팅 장치
|
20 |
20
비휘발성 메모리를 포함하는 메모리 모듈 및 복수의 코어를 포함하는 프로세서를 포함하는 컴퓨팅 장치에 의해 실행되며, 기록 매체에 저장되어 있는 컴퓨터 프로그램으로서,상기 컴퓨터 프로그램은, 상기 컴퓨팅 장치가,파워 오류 시에,실행 중인 복수의 프로세스의 프로세스 제어 블록에 접근하는 단계,각 프로세스를 상기 복수의 코어에 포함되는 복수의 제1 코어 중 대응하는 제1 코어의 실행 큐에 스케줄하는 단계,상기 실행 큐에서 스케줄된 프로세서를 삭제하고 대기 큐에 대기시키는 단계,유휴 태스크를 실행하는 단계, 그리고상기 컴퓨팅 장치에 포함되는 장치를 중지하는 단계를 실행하도록 하는 컴퓨터 프로그램
|