표제지
목차
약어표 12
제1장 서론 14
1.1. 연구 배경 및 필요성 14
1.2. 연구 동향 18
1.3. 연구 목적 및 연구 내용 20
1.4. 논문의 구성 22
제2장 관련 연구 23
2.1. 서드 파티 23
2.1.1. RTX 23
2.1.2. INtime 26
2.2. RTiK 계열 28
2.2.1. RTiK 28
2.2.2. RTiK-MP 31
2.3. 로컬 APIC 34
2.4. 지연처리호출 36
2.5. 윈도우 프로세서와 스레드 스케줄링 39
2.6. RM 스케줄링 알고리즘 40
2.7. CPU C-States 44
2.8. MIL-STD-1553B 46
제3장 휴대용점검장비 50
3.1. 개요 50
3.2. 장비 구성 및 역할 53
제4장 실시간성 처리 58
4.1. 개요 58
4.2. 로컬 APIC 타이머 제어 61
4.3. FSB로 타이머 인터럽트 제어 62
4.4. C-States 제어로 시간 결정성 보장 65
4.5. RTiK+의 사용자 영역 처리 69
4.6. 우선순위 기반 스케줄링 알고리즘 76
4.7. 실시간 MIL-STD-1553B 통신 79
4.7.1. 더블 버퍼 폴링 방식 79
4.7.2. BC 통신 실시간 처리 82
4.7.3. RT 통신 실시간 처리 85
4.8. MIL-STD-1553B 통신을 위한 스케줄링 알고리즘 87
4.9. RTiK+ API 92
4.9.1. RTiK+ 설치 92
4.9.2. RTiK+ 초기화 95
4.9.3. RTiK+ 스레드 생성 95
4.9.4. RTiK+ 주기 설정 97
4.9.5. RTiK+ 타이머 시작 함수 98
4.9.6. RTiK+ 타이머 정지 함수 99
제5장 실험 및 결과 분석 100
5.1. 실험환경 100
5.2. 실험 방법 102
5.2.1. 하드웨어적 검증 102
5.2.2. 소프트웨어적 검증 104
5.2.3. 워크로드 106
5.3. 측정 및 결과 109
5.3.1. RTiK+의 실시간 처리 성능 109
5.3.2. C-States 활성화에서 RTiK+ 실시간 성능 117
5.3.3. 서드 파티 RTX와 비교 119
5.3.4. MIL-STD-1553B 통신의 실시간 성능 120
5.3.5. 실시간 성능 평가 133
제6장 결론 136
참고문헌 140
ABSTRACT 147
[표 2-1] RTX의 윈도우 운영체제와 개발 도구 호환성 25
[표 2-2] RTX와 INtime 실시간 운영체제 주요 특성 28
[표 2-3] 인터럽트 요청 레벨 (IRQL) 37
[표 2-4] 스케줄링 알고리즘 표기 요약 42
[표 2-5] RM 스케줄링에 4-tuple 형태의 T₁, T₂, T₃ 태스크 적용 예시 43
[표 2-6] 인텔 CPU의 C-States 모드 46
[표 3-1] 경성 실시간 시스템과 연성 실시간 시스템 특성 52
[표 3-2] 휴대용점검장비와 유도무기 사이의 MIL-STD-1553B 통신 56
[표 4-1] 로컬 APIC 레지스터 Address Map 58
[표 4-2] C-States 설정에 따른 CPU 클록 변화 68
[표 4-3] 윈도우 프로세스 우선순위 72
[표 4-4] 스레드 우선순위 73
[표 4-5] 윈도우 기본 우선순위 74
[표 4-6] RM 스케줄링을 위한 10개 태스크 예시 78
[표 4-7] 스케줄링 알고리즘 표기 요약표 88
[표 4-8] MIL-STD-1553 통신 Tx 명령/Rx 명령 스케줄링 관련 태스크 90
[표 4-9] RTiK+ API 94
[표 5-1] 호스트와 타겟컴퓨터의 실험환경 101
[표 5-2] 워크로드를 위한 임의 파라미터 표기 요약 107
[표 5-3] 10개의 워크로드 108
[표 5-4] 워크로드가 없을 시 RTiK+의 1ms 주기 측정 결과 111
[표 5-5] 워크로드가 있을 시 RTiK+의 1ms 주기 측정 결과 112
[표 5-6] 워크로드가 없을 시 RTiK+의 0.1ms 주기 측정 결과 114
[표 5-7] 워크로드가 있을 시 RTiK+의 0.1ms 주기성 측정 결과 115
[표 5-8] RTiK+의 3ms, 5ms, 10ms, 25ms 주기 측정 결과 117
[표 5-9] C-State 활성화 시 RTiK+의 1ms 주기 측정 결과 118
[표 5-10] RTiK와 RTX의 5ms, 10ms 주기 성능 비교 119
[표 5-11] 워크로드가 없을 시 RTiK과 RTX 주기 비교 125
[표 5-12] 워크로드가 있을 시 RTiK과 RTX 주기 비교 131
[표 5-13] RTiK+가 적용된 MIL-STD-1553B 통신 스케줄링 실시간 성능 135
[그림 2-1] RTX의 RTOS 아키텍처 24
[그림 2-2] INtime의 RTOS 아키텍처 26
[그림 2-3] 윈도우 스레드와 INtime 실시간 스레드 사이의 통신 27
[그림 2-4] RTiK의 RTOS 아키텍처 29
[그림 2-5] 이벤트 기반 RTiK 동작 계통 30
[그림 2-6] RTiK-MP의 RTOS 아키텍처 32
[그림 2-7] RTiK-MP의 인터럽트 처리 계통 33
[그림 2-8] RTiK-MP의 로컬 APIC 타이머 인터럽트 동작 36
[그림 2-9] 인터럽트 처리 시 IRQL 상태 변화 38
[그림 2-10] 윈도우의 스레드 스케줄링 방식 39
[그림 2-11] 실시간 스케줄링 기법 분류 41
[그림 2-12] T₁, T₂, T₃ 처리 RM 스케줄링 알고리즘 43
[그림 2-13] 테스트에 따른 노트북 전력소비 유형 45
[그림 2-14] MIL-STD-1553B 통신 인터페이스 47
[그림 2-15] MIL-STD-1553B 메시지 포맷 48
[그림 2-16] MIL-STD-1553B 메시지 프로토콜 49
[그림 3-1] 실시간 시스템 특성 51
[그림 3-2] 유도무기와 휴대용점검장비 인터페이스 53
[그림 3-3] 휴대용점검장비 구성 54
[그림 3-4] 휴대용점검장비와 유도무기 사이의 MIL-STD-1553B 통신 55
[그림 3-5] 휴대용점검장비의 타겟컴퓨터 소프트웨어 계층 구조 57
[그림 4-1] 로컬 APIC 타이머 레지스터 59
[그림 4-2] RTiK+의 RTOS 아키텍처 60
[그림 4-3] RTiK+에 의한 실시간 처리 동작 과정 62
[그림 4-4] x86 아키텍처의 칩셋 블록도 63
[그림 4-5] MSR_FSB_FREQ 레지스터 64
[그림 4-6] StrongARM 110 전력관리 상태 천이도 66
[그림 4-7] HWM BlackBox에 의한 프로세서 클록 속도 측정 67
[그림 4-8] MSR_PKR_CST_CONFIG_CONTROL 레지스터 69
[그림 4-9] 실시간 처리를 위한 RTiK+ 동작 과정 70
[그림 4-10] 프로세스 우선순위 설정 71
[그림 4-11] 스레드의 우선순위 설정 73
[그림 4-12] 더블 버퍼를 적용한 MIL-STD-1553B 통신 80
[그림 4-13] 실시간 MIL-STD-1553B 통신 BC 기능 구현 83
[그림 4-14] 실시간 MIL-STD-1553B 통신 RT 기능 구현 86
[그림 4-15] MIL-STD-1553B 통신 스케줄링 알고리즘 89
[그림 4-16] RTiK 설치 화면 93
[그림 4-17] RTiK+ 초기화 함수(int rtik_init(void)) 95
[그림 4-18] RTiK+ 스레드 생성 함수(DWORD rtik_taskCreate()) 96
[그림 4-19] RTiK+ 주기 설정 함수(int readParam(void)) 97
[그림 4-20] RTiK+ 타이머 시작 함수(int rtik_coreStartTimer(void)) 98
[그림 4-21] RTiK+ 타이머 시작 함수(int rtik_coreStopTimer(void)) 99
[그림 5-1] RTiK+ 동작 검증을 위한 실험구성 101
[그림 5-2] 오실로스코프로 RTiK+의 1ms 주기 측정 102
[그림 5-3] RTiK+에서 오실로스코프로 "0"과 "1" 이산신호 출력 103
[그림 5-4] RDTSC로 RTiK+의 주기 측정 105
[그림 5-5] wihile() 함수의 무한 루프 워크로드 107
[그림 5-6] 워크로드가 없을 시 RTiK+의 1ms 주기 그래프 110
[그림 5-7] 워크로드가 있을 시 RTiK+의 1ms 주기 그래프 111
[그림 5-8] 워크로드가 없을 시 RTiK+의 0.1ms 주기 그래프 113
[그림 5-9] 워크로드가 있을 시 RTiK+의 0.1ms 주기 그래프 114
[그림 5-10] RTiK+의 3ms, 5ms, 10ms, 25ms 주기 그래프 116
[그림 5-11] C-States 활성화 시 RTiK+의 1ms 주기 그래프 118
[그림 5-12] 주기 측정을 위한 MIL-STD-1553B 통신 실험구성 121
[그림 5-13] 실시간 MIL-STD-1553B 통신 Tx 명령과 Rx 명령 동작 123
[그림 5-14] MIL-STD-1553B 통신 주기 측정 124
[그림 5-15] MIL-STD-1553B 통신 스케줄링 알고리즘 분석도 126
[그림 5-16] MIL-STD-1553B 통신 1ms 주기 스케줄링 127
[그림 5-17] 워크로드가 없을 시 MT 모니터링 결과 128
[그림 5-18] 워크로드가 있을 시 MT 모니터링 결과 132
[그림 5-19] 2ms 주기의 MIL-STD-1553B 통신 실시간 성능 133
[그림 5-20] MIL-STD-1553B 통신의 실패율 134