1. Addressing Mode의 종류에 대하여 ADD 명령 사례를 이용하여 설명하시오.
Addressing Mode는 명령어가 피연산자를 지정하는 방식을 의미합니다. 다양한 Addressing Mode는 프로그램의 유연성과 효율성을 높여줍니다. ADD 명령을 사례로 몇 가지 Addressing Mode를 살펴보겠습니다.
Immediate Addressing:
설명: 피연산자가 명령어에 직접 포함됩니다.
예시: ADD R1, #5 (R1에 5를 더함)
Direct Addressing:
설명: 피연산자의 주소가 명령어에 포함됩니다.
예시: ADD R1, 1000 (메모리 주소 1000에 있는 값을 R1에 더함)
Indirect Addressing:
설명: 명령어에 포함된 주소가 피연산자의 주소를 가리킵니다.
예시: ADD R1, (R2) (R2가 가리키는 주소에 있는 값을 R1에 더함)
Indexed Addressing:
설명: 기본 주소와 인덱스 레지스터의 값을 더하여 피연산자의 주소를 계산합니다.
예시: ADD R1, 1000(R2) (메모리 주소 1000에 R2의 값을 더한 주소에 있는 값을 R1에 더함)
Register Addressing:
설명: 피연산자가 레지스터에 있습니다.
예시: ADD R1, R2 (R2의 값을 R1에 더함)
2. 멀티스래딩(Multithreading)의 개념과 종류에 대하여 설명하고, Latency와 Throughput 관점에서 장단점을 설명하시오.
멀티스래딩(Multithreading)은 하나의 프로세스 내에서 여러 스레드를 병렬로 실행하여 성능을 향상시키는 기술입니다.
종류:
코어 수준 멀티스레딩(CSMT):
각 스레드가 별도의 CPU 코어에서 실행됩니다.
하이퍼스레딩(HT):
하나의 CPU 코어에서 두 개의 스레드를 병렬로 실행합니다.
Latency와 Throughput 관점에서의 장단점:
Latency(지연 시간):
장점: 멀티스레딩은 I/O 작업과 계산 작업을 병렬로 처리하여 지연 시간을 줄입니다.
단점: 스레드 간의 컨텍스트 스위칭 오버헤드로 인해 지연 시간이 증가할 수 있습니다.
Throughput(처리량):
장점: 병렬 처리를 통해 전체 처리량을 증가시킵니다.
단점: 자원 경쟁으로 인해 처리량이 제한될 수 있습니다.
3. 분산처리 시스템에서 Mutual Exclusion을 구현하기 위한 Time Ring 알고리즘과 Time Ordering 알고리즘의 동작을 설명하시오.
Time Ring 알고리즘:
설명: 시스템의 각 노드가 시간적으로 순환하며 자원 접근 권한을 가집니다. 각 노드는 순서대로 권한을 얻고, 사용 후 다음 노드로 전달합니다.
동작:
링 형태의 논리적 구조를 구성합니다.
각 노드가 순차적으로 자원 접근 권한을 획득합니다.
자원 사용 후, 권한을 다음 노드로 전달합니다.
Time Ordering 알고리즘:
설명: 각 프로세스에 타임스탬프를 부여하여 요청을 시간 순서대로 처리합니다.
동작:
각 요청에 타임스탬프를 부여합니다.
모든 노드가 타임스탬프를 비교하여 자원 접근 순서를 결정합니다.
가장 작은 타임스탬프를 가진 요청이 자원에 접근합니다.
4. 데이터 압축기법인 런렝스(Run Length) 코딩과 허프만(Huffman) 코딩에 대하여 설명하시오.
런렝스(Run Length) 코딩:
설명: 동일한 값이 연속해서 반복되는 경우, 반복 횟수와 값을 쌍으로 저장하는 방법.
예시: 원본 데이터가 AAAABBBCCDAA인 경우 4A3B2C1D2A로 압축.
허프만(Huffman) 코딩:
설명: 빈도가 높은 문자는 짧은 코드로, 빈도가 낮은 문자는 긴 코드로 변환하여 압축하는 방법.
동작:
각 문자의 빈도를 계산합니다.
빈도를 기반으로 이진 트리를 생성합니다.
이진 트리를 따라 각 문자에 이진 코드를 할당합니다.
5. 스마트폰 기반의 보안위협 및 대응책을 스마트폰 하드웨어, 스마트폰 소프트웨어, 네트워크, 애플리케이션 마켓 등의 관점에서 설명하시오.
스마트폰 하드웨어:
위협: 물리적 손상, 도난.
대응책: 암호화, 생체인식 사용.
스마트폰 소프트웨어:
위협: 악성 소프트웨어, 루팅/탈옥.
대응책: 보안 업데이트, 안티바이러스 소프트웨어 사용.
네트워크:
위협: 스니핑, 중간자 공격.
대응책: VPN 사용, HTTPS 연결.
애플리케이션 마켓:
위협: 악성 앱 다운로드.
대응책: 공식 마켓 사용, 앱 권한 관리.
6. 소프트웨어 테스트 프로세스 성숙도 평가모델 TMMi(Test Maturity Model Integration)와 시스템개발 프로세스 성숙도 평가모델 CMMi(Capacity Maturity Model Integration)는 5 레벨의 단계적 평가 프레임워크이다. TMMi 모델과 CMMi 모델을 각각 설명하시오