1 |
1
복수의 컨텍스트를 포함하는 시스템 운영체제(OS)가 실행되며 상기 복수의 컨텍스트 간의 전환을 수행하는 프로세서 및 상기 프로세서의 상태정보가 저장되는 저장장치를 포함하는 에뮬레이션 장치가 비결정적인 하드웨어 인터럽트에 대한 요청을 처리하는 에뮬레이션 방법에 있어서,상기 프로세서가, 하드웨어 인터럽트 요청이 발생한 경우 프로그램 실행 컨텍스트로부터 인터럽트 컨텍스트로 전환하여, 기록 에뮬레이션 동작을 수행하는 단계;상기 프로세서가, 상기 기록 에뮬레이션 동작을 수행하는 것에 대응하여 상기 인터럽트 컨텍스트로부터 에뮬레이션 컨텍스트로 전환하고, 상기 프로세서의 상태정보를 상기 저장장치에 저장하는 단계; 및상기 프로세서가, 상기 프로세서의 상태정보를 상기 저장장치에 저장한 후 상기 에뮬레이션 컨텍스트로부터 상기 인터럽트 컨텍스트로 전환하여, 상기 요청된 하드웨어 인터럽트를 처리하는 단계를 포함하는 에뮬레이션 방법
|
2 |
2
제1항에 있어서,상기 요청된 하드웨어 인터럽트를 처리하는 단계는,상기 요청된 하드웨어 인터럽트가 처리된 후, 상기 인터럽트 컨텍스트를 상기 프로그램 실행 컨텍스트로 전환하는 단계; 및상기 전환된 프로그램 실행 컨텍스트에서, 상기 하드웨어 인터럽트 요청의 발생으로 중지된 프로세스를 재개하는 단계를 포함하는 에뮬레이션 방법
|
3 |
3
제1항에 있어서,상기 기록 에뮬레이션 동작을 수행하는 단계는,상기 프로그램 실행 컨텍스트에서 실행 중인 프로세스를 중지하는 단계를 포함하는 에뮬레이션 방법
|
4 |
4
제1항에 있어서,상기 저장장치에 저장되는 프로세서의 상태정보는,상기 하드웨어 인터럽트 요청이 발생한 때 및 상기 기록 에뮬레이션 동작이 수행된 때의 프로세서의 상태정보를 포함하며,상기 프로세서의 상태정보는 컨텍스트 상태 간 상호배타성을 유지하기 위해 저장되는 것을 특징으로 하는 에뮬레이션 방법
|
5 |
5
복수의 컨텍스트를 포함하는 시스템 운영체제(OS)가 실행되며 상기 복수의 컨텍스트 간의 전환을 수행하는 프로세서 및 상기 프로세서의 상태정보가 저장되는 저장장치를 포함하는 에뮬레이션 장치가 비결정적인 하드웨어 인터럽트 요청을 처리하는 에뮬레이션 방법에 있어서,상기 프로세서가, 하드웨어 인터럽트에 대한 에뮬레이션 요청이 발생한 경우 프로그램 실행 컨텍스트에서 탐색 에뮬레이션 동작을 수행하는 단계;상기 프로세서가, 상기 탐색 에뮬레이션 동작을 수행하는 것에 대응하여 상기 프로그램 실행 컨텍스트로부터 에뮬레이션 컨텍스트로 전환하고, 상기 프로세서의 상태정보를 로드(load)하는 단계;상기 프로세서가, 상기 로드된 프로세서의 상태정보에 포함된 상기 인터럽트 요청의 발생 위치에 브레이크포인트를 설정하는 단계; 및상기 프로세서가, 상기 브레이크포인트를 설정한 후, 상기 에뮬레이션 컨텍스트로부터 상기 프로그램 실행 컨텍스트로 전환하여, 상기 설정된 브레이크포인트에 대응하는 이벤트가 발생하는지 판단하는 단계를 포함하는 에뮬레이션 방법
|
6 |
6
제5항에 있어서,상기 설정된 브레이크포인트에 대응하는 이벤트가 발생하는지 판단하는 단계는,상기 설정된 브레이크포인트에 대응하는 이벤트가 발생하는 경우, 상기 프로그램 실행 컨텍스트로부터 전환된 디버그 컨텍스트에서 재현 에뮬레이션 동작을 수행하는 단계;상기 디버그 컨텍스트로부터 전환된 에뮬레이션 컨텍스트에서, 상기 이벤트가 발생한 때의 프로세서의 상태정보와 상기 로드된 프로세서의 상태정보를 상기 수행된 재현 에뮬레이션 동작을 통해 비교하는 단계;상기 이벤트가 발생한 때의 프로세서의 상태정보와 상기 로드된 프로세서의 상태정보가 다를 경우, 상기 프로그램 실행 컨텍스트로 복귀하여 상기 이벤트 발생으로 중지된 프로세스를 재개하는 단계를 포함하는 에뮬레이션 방법
|
7 |
7
제6항에 있어서,상기 재현 에뮬레이션 동작을 수행하는 단계는,상기 프로그램 실행 컨텍스트에서 실행 중인 프로세스를 중지하는 단계를 포함하는 에뮬레이션 방법
|
8 |
8
제5항에 있어서,상기 설정된 브레이크포인트에 대응하는 이벤트가 발생하는지 판단하는 단계는,상기 설정된 브레이크포인트에 대응하는 이벤트가 발생하는 경우, 상기 프로그램 실행 컨텍스트로부터 전환된 디버그 컨텍스트에서 재현 에뮬레이션 동작을 수행하는 단계;상기 디버그 컨텍스트로부터 전환된 에뮬레이션 컨텍스트에서, 상기 이벤트가 발생한 때의 프로세서의 상태정보와 상기 로드된 프로세서의 상태정보를 상기 수행된 재현 에뮬레이션 동작을 통해 비교하는 단계;상기 이벤트가 발생한 때의 프로세서의 상태정보와 상기 로드된 프로세서의 상태정보가 동일한 경우, 상기 이벤트가 발생한 때의 프로세서의 상태정보에 포함된 복귀 정보를 상기 로드된 프로세서의 상태정보에 포함된 복귀 정보로 변경하는 단계; 및상기 변경된 복귀 정보에 따라, 상기 에뮬레이션 컨텍스트로부터 전환된 인터럽트 컨텍스트에서 상기 요청된 하드웨어 인터럽트를 처리하는 단계를 포함하는 에뮬레이션 방법
|
9 |
9
제8항에 있어서,상기 재현 에뮬레이션 동작을 수행하는 단계는,상기 프로그램 실행 컨텍스트에서 실행 중인 프로세스를 중지하는 단계를 포함하는 에뮬레이션 방법
|
10 |
10
제8항에 있어서,상기 요청된 하드웨어 인터럽트를 처리하는 단계는,상기 요청된 하드웨어 인터럽트가 처리된 후, 상기 인터럽트 컨텍스트를 상기 프로그램 실행 컨텍스트로 전환하는 단계; 및상기 전환된 프로그램 실행 컨텍스트에서, 상기 하드웨어 인터럽트 요청의 발생으로 중지된 프로세스를 재개하는 단계를 포함하는 에뮬레이션 방법
|
11 |
11
제5항에 있어서,상기 로드된 프로세서의 상태정보는,상기 하드웨어 인터럽트 요청이 발생한 때 및 기록 에뮬레이션 동작이 실행된 때의 프로세서의 상태정보를 포함하며,상기 프로세서의 상태정보는 컨텍스트 상태 간 상호배타성을 유지하기 위해 저장되는 것을 특징으로 하는 에뮬레이션 방법
|
12 |
12
비결정적인 하드웨어 인터럽트에 대한 요청을 처리하는 에뮬레이션 장치에 있어서,저장장치; 및복수의 컨텍스트를 포함하는 시스템 운영체제(OS)가 실행되며 상기 컨텍스트 간의 전환을 수행하는 프로세서를 포함하고,상기 프로세서는,하드웨어 인터럽트 요청이 발생한 경우 프로그램 실행 컨텍스트로부터 인터럽트 컨텍스트로 전환하여, 기록 에뮬레이션 동작을 수행하며,상기 기록 에뮬레이션 동작을 수행하는 것에 대응하여 상기 인터럽트 컨텍스트로부터 에뮬레이션 컨텍스트로 전환하고, 상기 프로세서의 상태정보를 상기 저장장치에 저장하고,상기 프로세서의 상태정보를 저장장치에 저장한 후, 상기 에뮬레이션 컨텍스트로부터 상기 인터럽트 컨텍스트로 전환하여, 상기 요청된 하드웨어 인터럽트를 처리하는 에뮬레이션 장치
|
13 |
13
비결정적인 하드웨어 인터럽트에 대한 요청을 처리하는 에뮬레이션 장치에 있어서,저장장치; 및복수의 컨텍스트를 포함하는 시스템 운영체제(OS)가 실행되며 상기 컨텍스트 간의 전환을 수행하는 프로세서를 포함하고,상기 프로세서는,하드웨어 인터럽트에 대한 에뮬레이션 요청이 발생한 경우 프로그램 실행 컨텍스트에서 탐색 에뮬레이션 동작을 수행하고,상기 탐색 에뮬레이션 동작을 수행하는 것에 대응하여 상기 프로그램 실행 컨텍스트로부터 에뮬레이션 컨텍스트로 전환하여, 상기 프로세서의 상태정보를 상기 저장장치로부터 로드(load)하고,상기 로드된 프로세서의 상태정보에 포함된 상기 에뮬레이션 요청의 발생 위치에 브레이크포인트를 설정하고,상기 브레이크포인트를 설정한 후 상기 에뮬레이션 컨텍스트로부터 상기 프로그램 실행 컨텍스트로 전환하여, 상기 설정된 브레이크포인트에 대응하는 이벤트가 발생하는지 판단하는 에뮬레이션 장치
|
14 |
14
제1항 내지 제11항 중 어느 한 항의 방법을 실행하기 위한 프로그램이 기록된 컴퓨터에서 판독 가능한 기록 매체
|