1 |
1
멀티 프로세스/멀티 스레드에서 사용하는 공유 메모리에 대한 원자성 위반 결함 탐지 방법에서,프로세스 실행 전 공유 메모리를 사전 분석하고 상기 공유 메모리에 atomic하게 접근하여야 하는 함수 pair를 추출하는 공유 메모리 분석 단계 - 상기 함수 pair는 공유 메모리 atomic pair와 연관됨 - ; 상기 분석된 공유 메모리에 접근하기 위해 함수를 호출하고, 각 프로세스/스레드의 실행 정보를 수집하는 실행 로그 수집 단계;상기 실행 정보와 상기 공유 메모리 atomic pair를 이용하여 결함을 분석하는 결함 분석 단계; 및 Thread 1 및 Thread 2에서 사용되는 전역 변수가 상기 Thread 1 및 상기 Thread 2에 의해 실행되는 제1 함수와 제2 함수에서 모두 사용되는 경우, 상기 Thread 1의 write()가 수행되기 전에 상기 Thread 2의 read()가 호출된 경우, 상기 Thread 1의 write()가 수행된 이후에 상기 Thread 2의 read()가 수행되도록 제어하는 멀티 프로세스/멀티 스레드 제어 단계를 포함하고,상기 멀티 프로세스/멀티 스레드 제어 단계에서, 상기 Thread 1의 write()에 의해 변경되는 특징에 따라 상기 전역 변수를 변경하고, 상기 변경된 전역 변수에 따라 상기 Thread 2의 read()를 다시 수행하도록 제어하여, 이미 상기 Thread 2가 실행되어 원자성 공유 위반이 발생한 경우에도 상기 Thread 1이 실행 완료된 이후 상기 변경된 전역 변수에 따라 보상하여 상기 Thread 2를 재실행하는, 원자성 위반 결함 탐지 방법
|
2 |
2
제1 항에 있어서,상기 실행 로그 수집 단계는,실행 환경에 미치는 영향을 최소화 하면서 상기 공유 메모리에 접근하는 실행 로그를 수집하기 위해서 read/write 함수 호출을 모니터링하고,상기 수집된 실행 정보는 상기 read/write 함수에서 사용하는 파라미터 값과 상기 각 프로세스/스레드의 실행 정보로 각 프로세스/스레드의 ID와 상태를 포함하는, 원자성 위반 결함 탐지 방법
|
3 |
3
제2 항에 있어서,상기 결함 분석 단계는,테스트 대상 시스템의 실행이 종료된 후, 상기 read/write 함수에서 사용하는 파라미터 값, 상기 각 프로세스/스레드의 실행 정보로 각 프로세스/스레드의 ID와 상태와 상기 공유 메모리 atomic pair를 이용하여 결함을 분석하는 것을 특징으로 하는, 원자성 위반 결함 탐지 방법
|
4 |
4
제2 항에 있어서,상기 결함 분석 단계에서,상기 read/write 함수의 실행 로그를 수집하여 분석하고,Thread 1의 read()가 수행되고 write()가 수행되기 전에 Thread 2의 read()나 write() 함수가 수행된 경우, 상기 공유 메모리에 대한 원자성 위반 결함 후보로 판정하는 것을 특징으로 하는, 원자성 위반 결함 탐지 방법
|
5 |
5
삭제
|
6 |
6
삭제
|
7 |
7
삭제
|
8 |
8
멀티 프로세스/멀티 스레드에서 사용하는 공유 메모리에 대한 원자성 위반 결함 탐지 장치에서,멀티 프로세스/멀티 스레드에서 접근 가능하도록 구성되고, 변수와 정보를 저장하는 공유 메모리;프로세스 실행 전 상기 공유 메모리를 사전 분석하고 상기 공유 메모리에 atomic하게 접근하여야 하는 함수 pair를 추출하는 공유 메모리 분석 모듈 - 상기 함수 pair는 공유 메모리 atomic pair와 연관됨 - ; 상기 분석된 공유 메모리에 접근하기 위해 함수를 호출하고, 각 프로세스/스레드의 실행 정보를 수집하는 실행 로그 수집 모듈; 상기 실행 정보와 상기 공유 메모리 atomic pair를 이용하여 결함을 분석하는 결함 분석 모듈; 및상기 결함 분석 모듈에서, Thread 1 및 Thread 2에서 사용되는 전역 변수가 상기 Thread 1 및 상기 Thread 2에 의해 실행되는 제1 함수와 제2 함수에서 모두 사용되는 경우, 상기 Thread 1의 write()가 수행되기 전에 상기 Thread 2의 read()가 호출된 경우, 상기 Thread 1의 write()가 수행된 이후에 상기 Thread 2의 read()가 수행되도록 제어하는 프로세스/스레드 제어부를 포함하고,상기 프로세스/스레드 제어부는 상기 Thread 1의 write()에 의해 변경되는 특징에 따라 상기 전역 변수를 변경하고, 상기 변경된 전역 변수에 따라 상기 Thread 2의 read()를 다시 수행하도록 제어하여, 이미 상기 Thread 2가 실행되어 원자성 공유 위반이 발생한 경우에도 상기 Thread 1이 실행 완료된 이후 상기 변경된 전역 변수에 따라 보상하여 상기 Thread 2를 재실행하는, 원자성 위반 결함 탐지 장치
|
9 |
9
제8 항에 있어서,상기 실행 로그 수집 모듈은,실행 환경에 미치는 영향을 최소화 하면서 상기 공유 메모리에 접근하는 실행 로그를 수집하기 위해서 read/write 함수 호출을 모니터링하고,상기 수집된 실행 정보는 상기 read/write 함수에서 사용하는 파라미터 값과 상기 각 프로세스/스레드의 실행 정보로 각 프로세스/스레드의 ID와 상태를 포함하는, 원자성 위반 결함 탐지 장치
|
10 |
10
제9 항에 있어서,상기 결함 분석 모듈은,테스트 대상 시스템의 실행이 종료된 후, 상기 read/write 함수에서 사용하는 파라미터 값, 상기 각 프로세스/스레드의 실행 정보로 각 프로세스/스레드의 ID와 상태와 상기 공유 메모리 atomic pair를 이용하여 결함을 분석하는 것을 특징으로 하는, 원자성 위반 결함 탐지 장치
|
11 |
11
제9 항에 있어서,상기 실행 로그 수집 모듈에서, 상기 read/write 함수의 실행 로그를 수집하고,상기 결함 분석 모듈에서, Thread 1의 read()가 수행되고 write()가 수행되기 전에 Thread 2의 read()나 write() 함수가 수행된 경우, 상기 공유 메모리에 대한 원자성 위반 결함 후보로 판정하는 것을 특징으로 하는, 원자성 위반 결함 탐지 장치
|
12 |
12
삭제
|