[9급 국가직 컴퓨터일반] 08년 1회차
9급 국가직 컴퓨터일반 기출문제

08년 1회차

총 20문항 · 객관식 · A4 약 1장

1 / 1
A4정답 포함
9급 국가직 컴퓨터일반 기출문제모두CBT · moducbt.com

08년 1회차

총 20문항 · 객관식 · 정답·해설 포함
문제 1
다음 설명 중 인터럽트(interrupt)와 서브루틴 호출(subroutine call)이 공통적으로 갖는 특징은?

ㄱ. 순차적으로 다음 명령어가 아닌 다른 명령어 주소에서 부터 명령어들을 실행한다.
ㄴ. 호출되는 루틴(routine)을 사용자(user) 프로그램이 선택할 수 있다.
ㄷ. 호출되는 루틴으로부터 돌아오기 위해 필요한 복귀주소(return address)를 저장한다.
ㄹ. 프로그램의 명령어 실행에 의해서만 발생한다.

1ㄱ, ㄴ
2ㄱ, ㄷ
3ㄴ, ㄷ
4ㄴ, ㄹ
정답 및 해설

공통 특징은 ㄱ(다른 주소의 명령어로 분기)과 ㄷ(복귀 주소 저장)이다.

인터럽트와 서브루틴 호출 모두 실행 흐름을 다른 루틴으로 옮겼다가 원래 위치로 돌아와야 하므로 복귀 주소를 저장한다.

  • ㄴ — 호출할 루틴을 사용자 프로그램이 고르는 것은 서브루틴 호출뿐이고, 인터럽트 서비스 루틴은 인터럽트 원인에 따라 정해진다.
  • ㄹ — 서브루틴은 호출 명령어로만 발생하지만, 인터럽트는 입출력 완료·정전 등 외부 요인으로도 발생한다.
문제 2
슬라이딩 윈도우 기법에 대한 설명으로 옳지 않은 것은?
1흐름제어와 에러제어를 위한 기법으로 윈도우 크기만큼의 데이터 프레임을 연속적으로 전송할 수 있는 방법이다.
2윈도우 크기를 지정하여 응답없이 전송할 수 있는 데이터 프레임의 최대 개수를 제한할 수 있다.
3송신측 윈도우는 데이터 프레임을 전송할 때마다 하나씩 줄어들고 응답을 받을 때마다 하나씩 늘어나게 된다.
4수신측 윈도우는 데이터 프레임을 수신할 때마다 하나씩 늘어나고 응답을 전송할 때마다 하나씩 줄어들게 된다.
정답 및 해설

옳지 않은 것은 수신측 윈도우가 프레임을 수신할 때마다 늘어나고 응답을 전송할 때마다 줄어든다는 설명이다.

수신측 윈도우는 반대로 프레임을 수신하면 줄어들고, 확인 응답(ACK)을 보내면 그만큼 늘어난다. 받을 수 있는 버퍼 여유가 수신으로 줄고 응답 후 다시 확보되기 때문이다.

  • 윈도우 크기만큼 연속 전송하는 흐름·오류 제어 기법이다 — 옳다.
  • 윈도우 크기로 응답 없이 보낼 수 있는 최대 프레임 수를 제한한다 — 옳다.
  • 송신측 윈도우는 전송 시 줄고 응답 수신 시 늘어난다 — 옳다.
문제 3
IEEE 802.11 방식의 무선 LAN에 사용되는 물리매체 제어방식은?
1CDMA
2CSMA/CD
3CSMA/CA
4ALOHA
정답 및 해설

IEEE 802.11 무선 LAN의 매체 접근 제어 방식은 CSMA/CA이다.

무선 환경에서는 송신 중 충돌을 감지하기 어려우므로, 전송 전에 대기 시간과 RTS/CTS 등을 이용해 충돌을 회피(Collision Avoidance)한다.

  • CDMA — 코드 분할 다중 접속으로 이동통신에 쓰인다.
  • CSMA/CD — 충돌을 감지하는 방식으로 유선 이더넷(IEEE 802.3)에 쓰인다.
  • ALOHA — 초기 무선 패킷망의 임의 접근 방식이다.
문제 4
데이터 링크 계층(Data link layer)에서 수행하는 기능이 아닌 것은?
1프레임 기법
2오류제어(Error control)
3흐름제어(Flow control)
4연결제어(Connection control)
정답 및 해설

데이터 링크 계층의 기능이 아닌 것으로 제시된 것은 연결제어이다.

데이터 링크 계층은 인접 노드 간 프레임 전송을 위해 프레임 구성(프레임 기법), 오류 제어, 흐름 제어를 수행한다. 종단 간 연결의 설정·유지·해제를 관리하는 연결 제어는 전송 계층의 기능으로 분류된다.

  • 프레임 기법 — 비트열을 프레임 단위로 구분하는 데이터 링크 계층 기능이다.
  • 오류제어 — 오류 검출·재전송(ARQ)을 수행한다.
  • 흐름제어 — 정지-대기, 슬라이딩 윈도우 등으로 전송량을 조절한다.
문제 5
전자우편에 사용되는 프로토콜이 아닌 것은?
1IMAP
2SMTP
3POP3
4VPN
정답 및 해설

전자우편 프로토콜이 아닌 것은 VPN이다.

VPN(Virtual Private Network)은 공중망 위에 암호화된 터널을 만들어 사설망처럼 쓰는 기술로, 전자우편과는 무관하다.

  • IMAP — 메일 서버의 메일을 서버에 둔 채 조회·관리하는 수신 프로토콜이다.
  • SMTP — 메일을 전송(송신)하는 프로토콜이다.
  • POP3 — 메일 서버의 메일을 내려받는 수신 프로토콜이다.
문제 6
OSI 7 계층과 관련된 표준의 연결로 옳지 않은 것은?
1물리 계층 - RS-232C
2데이터 링크 계층 - HDLC
3네트워크 계층 - X.25
4전송 계층 - ISDN
정답 및 해설

옳지 않은 연결은 전송 계층 - ISDN이다.

ISDN은 음성과 데이터를 디지털로 통합 전송하는 통신망 규격으로, 주로 하위 계층(물리·데이터 링크·네트워크)에 걸쳐 정의되며 전송 계층 표준이 아니다.

  • 물리 계층 - RS-232C — 직렬 인터페이스 규격으로 옳다.
  • 데이터 링크 계층 - HDLC — 비트 지향 링크 제어 프로토콜로 옳다.
  • 네트워크 계층 - X.25 — 패킷 교환망 인터페이스 규격으로 옳다.
문제 7
다음은 1부터 100까지 더하는 BASIC 프로그램이다. ( )안에 들어갈 명령문으로 적당한 것은?
10 I=0
20 SUM=0
30 I=I+1
40 ( )
50 IF (I < 100) THEN GOTO 30
60 PRINT I, SUM
70 END
1SUM=SUM+ I
2SUM=SUM
3SUM=SUM+ 1
4SUM=SUM+ 100
정답 및 해설

괄호에 들어갈 명령문은 SUM=SUM+ I이다.

30행에서 I를 1씩 증가시키고 40행에서 그 I를 SUM에 누적한다. I가 100이 되면 100까지 더한 뒤 50행의 조건 I < 100이 거짓이 되어 반복을 마치므로 SUM = 1+2+…+100 = 5050이 된다.

  • SUM=SUM — 아무것도 더하지 않아 0이 된다.
  • SUM=SUM+ 1 — 반복 횟수(100)만 센다.
  • SUM=SUM+ 100 — 100을 100회 더해 10000이 된다.
문제 8
프로그램 작성 시 매크로(macro)에 대한 설명으로 옳은 것은?
1매크로 호출(macro call)은 호출된 해당 매크로의 내용이 호출된 위치로 복사되어 컴파일 되기 때문에 일반적으로 실행 속도가 함수 호출을 사용하는 경우에 비해 빠르다.
2매크로(macro)를 사용할 경우에 함수 호출을 사용한 경우보다 일반적으로 컴파일된 코드의 양이 감소하게 된다.
3일반적으로 매크로 호출(macro call)은 인터럽트에 의해 발생하기 때문에 호출된 매크로를 실행하기 전에 현재의 플래그 상태(flag status)를 스택에 저장해야 한다.
4매크로(macro)는 함수와는 다르게 형식 인자(parameter)를 사용할 수 없다.
정답 및 해설

옳은 것은 매크로 호출은 내용이 호출 위치에 복사되어 컴파일되므로 함수 호출보다 일반적으로 실행 속도가 빠르다는 설명이다.

매크로는 전처리 단계에서 본문이 그대로 펼쳐지므로(매크로 확장) 호출·복귀에 따른 스택 처리 부담이 없다.

  • 코드 양이 감소한다 — 호출 위치마다 본문이 복사되므로 오히려 증가한다.
  • 인터럽트에 의해 발생해 플래그를 스택에 저장한다 — 매크로는 인터럽트와 무관한 텍스트 치환이다.
  • 형식 인자를 사용할 수 없다 — 매크로도 인자를 받을 수 있다.
문제 9
다음 중 가장 큰 수는? (단, 오른쪽 괄호 밖의 아래 첨자는 진법을 의미한다)
1(10000000000)2
2(302)16
3(2001)8
4(33333)4
정답 및 해설

가장 큰 수는 (2001)8{}_{8}이다.

모두 10진수로 바꿔 비교한다.

  • (10000000000)2{}_{2} = 2102^{10} = 1024
  • (302)16{}_{16} = 3×256 + 2 = 770
  • (2001)8{}_{8} = 2×512 + 1 = 1025
  • (33333)4{}_{4} = 454^{5} − 1 = 1023
문제 10
다음 C 프로그램의 실행 결과로서 옳은 것은?
#include <stdio.h>
int func(int n)
{
        if(n%2==1)
                n=n-1;
        if(n==0)
                return 0;
        return (func(n-2)+n);
}
void main()
{
        int result;
        result = func(19);
        printf("result = %d", result);
}
1result = 60
2result = 70
3result = 80
4result = 90
정답 및 해설

출력은 result = 90이다.

func(19)에서 19는 홀수이므로 n=18로 바뀌고, 이후 func(n−2)+n 형태로 n이 0이 될 때까지 짝수를 더한다.
func(19) = 18 + func(16) = 18+16+14+…+2+func(0)

func(0)=0이므로 결과는 2+4+…+18 = 90이다.

  • result = 60 — 2부터 18까지 짝수 9개의 합 90과 다르다.
  • result = 70 — 같은 이유로 90과 다르다.
  • result = 80 — 같은 이유로 90과 다르다.
문제 11
중앙처리장치(CPU)에 대한 설명으로 옳지 않은 것은?
1CPU는 산술연산과 논리연산을 수행하는 ALU를 갖는다.
2CPU 내부의 임시기억장치로 사용되는 레지스터는 DRAM으로 구성된다.
3MIPS(Million Instructions per Second)는 CPU의 처리속도를 나타내는 단위 중 하나이다.
4CPU는 주기억장치로부터 기계 명령어(machine instruction)를 읽어 해독하고 실행한다.
정답 및 해설

옳지 않은 것은 레지스터가 DRAM으로 구성된다는 설명이다.

레지스터는 CPU 내부의 가장 빠른 기억 소자로 플립플롭(정적 회로)으로 구성된다. 재충전이 필요한 DRAM은 주기억 장치에 주로 쓰인다.

  • CPU는 산술·논리 연산을 하는 ALU를 갖는다 — 옳다.
  • MIPS는 초당 백만 명령어 단위의 처리 속도 척도이다 — 옳다.
  • CPU는 명령어를 읽어 해독하고 실행한다 — 옳다.
문제 12
2의 보수를 이용한 4비트 2진수의 덧셈 연산 가운데 범람(overflow) 오류가 발생되는 것은?
10100+0010
21011+0111
31100+1010
40110+1001
정답 및 해설

범람이 발생하는 것은 1100+1010이다.

2의 보수 4비트의 표현 범위는 −8~7이다. 1100(−4)+1010(−6) = −10으로 범위를 벗어나며, 실제 결과 0110은 양수로 나와 같은 부호끼리 더했는데 부호가 바뀌는 범람이 생긴다.

  • 0100+0010 = 4+2 = 6 — 범위 안이다.
  • 1011+0111 = −5+7 = 2 — 부호가 다른 수의 덧셈은 범람이 없다.
  • 0110+1001 = 6+(−7) = −1 — 범위 안이다.
문제 13
다음의 카르노 맵(Karnaugh-map)을 간략화한 결과를 논리식으로 올바르게 표현한 것은?
AB\CD00011110
001111
011111
110110
101001
1A'+B·D+B'·D'
2A+B·D+B'·D'
3D+A·B+B'·D'
4D'+A·B+B'·D'
정답 및 해설

간략화 결과는 A'+B·D+B'·D'이다.

카르노 맵에서 1을 가장 크게 묶는다.
AB=00, 01 두 행 8칸이 모두 1 → A'
AB=01, 11 행의 CD=01, 11 열(B=1, D=1) → B·D
AB=00, 10 행의 CD=00, 10 열(B=0, D=0, 양 끝 인접) → B'·D'

  • A+B·D+B'·D' — A 항 때문에 0인 칸 AB=11, CD=00이 1이 된다.
  • D+A·B+B'·D' — A·B 항 때문에 같은 칸 AB=11, CD=00이 1이 된다.
  • D'+A·B+B'·D' — 역시 A·B 항 때문에 AB=11, CD=00이 1이 된다.
문제 14
다음 회로에 대한 설명으로 옳지 않은 것은?
1B의 값이 1이고 A의 값이 0이면, Q의 값이 1이 된다.
2Q'의 값이 1이고 Q의 값이 0일때, A=B=0이면 Q와 Q'의 값에는 변화가 없다.
3Q'의 값이 0이고 Q의 값이 1일때, A=1, B=0이면 Q와 Q'의 값에는 변화가 없다.
4Q'의 값이 0이고 Q의 값이 1일때, A=B=0이면 Q와 Q'의 값에는 변화가 없다.
정답 및 해설

옳지 않은 것은 Q'=0, Q=1일 때 A=1, B=0이면 Q와 Q'에 변화가 없다는 설명이다.

회로는 NOR 게이트 두 개를 교차 결합한 SR 래치로, Q = (A+Q')', Q' = (B+Q)'이다. A=1이면 위쪽 NOR 출력 Q가 무조건 0이 되므로 Q=1이던 상태가 Q=0, Q'=1로 바뀐다.

  • B=1, A=0 — Q'=0이 되고 Q=(0+0)'=1이 되므로 옳다.
  • Q'=1, Q=0에서 A=B=0 — 각 NOR 출력이 상대 출력에 의해서만 정해져 이전 상태(Q=0)를 유지하므로 옳다.
  • Q'=0, Q=1에서 A=B=0 — 같은 이유로 이전 상태(Q=1)를 유지하므로 옳다.
문제 15
다음 그림과 같은 동작을 하는 플립플롭은?
1T 플립플롭
2RS 플립플롭
3D 플립플롭
4JK 플립플롭
정답 및 해설

그림의 플립플롭은 D 플립플롭으로 동작한다.

입력 in이 J에 그대로, K에는 인버터를 거쳐 반전되어 들어가므로 J와 K는 항상 서로 반대 값이다.

  • in=1 → J=1, K=0 → 클록에서 Q=1(세트)
  • in=0 → J=0, K=1 → 클록에서 Q=0(리셋)

즉 클록마다 입력값이 그대로 Q에 저장된다. J=K=1이 될 수 없으므로 토글(T)이나 JK의 동작은 나타나지 않는다.

문제 16
다중 프로세서 시스템에 대한 설명으로 옳지 않은 것은?
1다수의 프로세서가 하나의 운영체제 하에서 동작할 수 있는 시스템이다.
2밀결합 시스템(tightly-coupled system)은 모든 프로세서들이 공유 기억장치(shared memory)를 이용하여 통신한다.
3다중 프로세서 시스템에서는 캐시 일관성(cache coherence) 문제를 고려할 필요가 없다.
4하나의 프로그램에서 다수의 프로세서들에 의해 병렬처리가 가능하도록 프로그래머의 프로그램 작성이나 컴파일 과정에서 데이터 의존성이 없는 프로그램의 부분들을 분류할 수 있다.
정답 및 해설

옳지 않은 것은 캐시 일관성 문제를 고려할 필요가 없다는 설명이다.

다중 프로세서에서는 각 프로세서가 자기 캐시에 같은 데이터의 사본을 가질 수 있으므로, 한 곳의 변경이 다른 캐시에 반영되도록 하는 캐시 일관성(coherence) 유지가 핵심 문제이다.

  • 하나의 운영체제 아래 여러 프로세서가 동작한다 — 옳다.
  • 밀결합 시스템은 공유 기억장치로 통신한다 — 옳다.
  • 데이터 의존성이 없는 부분을 분류해 병렬 처리할 수 있다 — 옳다.
문제 17
다음 설명 중 옳은 것을 모두 묶은 것은?

ㄱ. 폰 노이만(von Neumann) 컴퓨터에서는 명령어 메모리와 데이터 메모리가 분리되어 존재하기 때문에, 명령어와 데이터를 동시에 접근할 수 있다.
ㄴ. 다섯 단계(stage)의 파이프라이닝(pipelining)을 사용하는 CPU는 파이프라이닝을 사용하지 않는 CPU보다 5배 더 빠르다.
ㄷ. 파이프라이닝을 사용하는 CPU의 각 파이프라인 단계는 서로 다른 하드웨어 자원을 사용한다.
ㄹ. 파이프라이닝을 사용하는 CPU에서는 파이프라인 해저드 (pipeline hazard)로 인해 일부 명령어의 실행이 잠시 지연되기도 한다.

1ㄱ, ㄷ
2ㄴ, ㄷ
3ㄴ, ㄹ
4ㄷ, ㄹ
정답 및 해설

옳은 것은 ㄷ과 ㄹ이다.

파이프라인은 각 단계가 서로 다른 하드웨어 자원을 써서 여러 명령어를 겹쳐 실행하며, 자원 충돌·데이터 의존·분기 등 해저드가 생기면 일부 명령어가 지연(stall)된다.

  • ㄱ — 명령어 메모리와 데이터 메모리를 분리한 것은 하버드 구조이다. 폰 노이만 구조는 하나의 메모리를 공유한다.
  • ㄴ — 5단계 파이프라인의 속도 향상은 이상적인 경우의 최대치일 뿐, 단계 간 불균형과 해저드 때문에 실제로는 5배에 못 미친다.
문제 18
임베디드(embedded) 시스템에 대한 설명으로 옳지 않은 것은?
1제품에 내장되어 있는 컴퓨터 시스템으로 일반적으로 범용보다는 특정 용도에 사용되는 컴퓨터 시스템이라고 할 수 있다.
2일반적으로 실시간 제약(real-time constraints)을 갖는 경우가 많다.
3휴대전화기, PDA, 게임기 등도 임베디드 시스템이라고 할 수 있다.
4일반적으로 임베디드 소프트웨어는 하드웨어와 밀접하게 연관되어 있지 않다.
정답 및 해설

옳지 않은 것은 임베디드 소프트웨어가 하드웨어와 밀접하게 연관되어 있지 않다는 설명이다.

임베디드 소프트웨어는 특정 하드웨어를 제어하도록 만들어지므로 하드웨어와 밀접하게 결합되어 있다.

  • 제품에 내장된 특정 용도의 컴퓨터 시스템이다 — 옳다.
  • 실시간 제약을 갖는 경우가 많다 — 옳다.
  • 휴대전화, PDA, 게임기 등이 예이다 — 옳다.
문제 19
객체지향 시스템의 특성이 아닌 것은?
1캡슐화(Encapsulation)
2재귀용법(Recursion)
3상속성(Inheritance)
4다형성(Polymorphism)
정답 및 해설

객체지향 시스템의 특성이 아닌 것은 재귀용법(Recursion)이다.

재귀는 함수가 자기 자신을 호출하는 일반적인 프로그래밍 기법으로, 절차적 언어에서도 쓰이며 객체지향 고유 특성이 아니다.

  • 캡슐화 — 데이터와 연산을 객체로 묶고 내부를 은닉한다.
  • 상속성 — 상위 클래스의 속성과 메소드를 하위 클래스가 물려받는다.
  • 다형성 — 같은 메시지에 객체마다 다르게 반응한다.
문제 20
CISC와 비교하여 RISC의 특징으로 옳지 않은 것은?
1명령어의 집합 구조가 단순하다.
2많은 수의 주소지정모드를 사용한다.
3많은 수의 범용 레지스터를 사용한다.
4효율적인 파이프라인 구조를 사용한다.
정답 및 해설

RISC의 특징으로 옳지 않은 것은 많은 수의 주소지정모드를 사용한다는 설명이다.

RISC는 명령어와 주소지정 방식을 단순하고 적게 두어 고정 길이 명령어를 빠르게 처리한다. 다양한 주소지정 모드는 CISC의 특징이다.

  • 명령어 집합 구조가 단순하다 — 옳다.
  • 많은 범용 레지스터를 사용한다 — 옳다(적재/저장 구조).
  • 효율적인 파이프라인 구조를 사용한다 — 옳다.
9급 국가직 컴퓨터일반 기출문제모두CBT · moducbt.com
08년 1회차
총 20문항 · 객관식 · 정답·해설 포함
문제 1
다음 설명 중 인터럽트(interrupt)와 서브루틴 호출(subroutine call)이 공통적으로 갖는 특징은?

ㄱ. 순차적으로 다음 명령어가 아닌 다른 명령어 주소에서 부터 명령어들을 실행한다.
ㄴ. 호출되는 루틴(routine)을 사용자(user) 프로그램이 선택할 수 있다.
ㄷ. 호출되는 루틴으로부터 돌아오기 위해 필요한 복귀주소(return address)를 저장한다.
ㄹ. 프로그램의 명령어 실행에 의해서만 발생한다.

1ㄱ, ㄴ
2ㄱ, ㄷ
3ㄴ, ㄷ
4ㄴ, ㄹ
정답 및 해설

공통 특징은 ㄱ(다른 주소의 명령어로 분기)과 ㄷ(복귀 주소 저장)이다.

인터럽트와 서브루틴 호출 모두 실행 흐름을 다른 루틴으로 옮겼다가 원래 위치로 돌아와야 하므로 복귀 주소를 저장한다.

  • ㄴ — 호출할 루틴을 사용자 프로그램이 고르는 것은 서브루틴 호출뿐이고, 인터럽트 서비스 루틴은 인터럽트 원인에 따라 정해진다.
  • ㄹ — 서브루틴은 호출 명령어로만 발생하지만, 인터럽트는 입출력 완료·정전 등 외부 요인으로도 발생한다.
문제 2
슬라이딩 윈도우 기법에 대한 설명으로 옳지 않은 것은?
1흐름제어와 에러제어를 위한 기법으로 윈도우 크기만큼의 데이터 프레임을 연속적으로 전송할 수 있는 방법이다.
2윈도우 크기를 지정하여 응답없이 전송할 수 있는 데이터 프레임의 최대 개수를 제한할 수 있다.
3송신측 윈도우는 데이터 프레임을 전송할 때마다 하나씩 줄어들고 응답을 받을 때마다 하나씩 늘어나게 된다.
4수신측 윈도우는 데이터 프레임을 수신할 때마다 하나씩 늘어나고 응답을 전송할 때마다 하나씩 줄어들게 된다.
정답 및 해설

옳지 않은 것은 수신측 윈도우가 프레임을 수신할 때마다 늘어나고 응답을 전송할 때마다 줄어든다는 설명이다.

수신측 윈도우는 반대로 프레임을 수신하면 줄어들고, 확인 응답(ACK)을 보내면 그만큼 늘어난다. 받을 수 있는 버퍼 여유가 수신으로 줄고 응답 후 다시 확보되기 때문이다.

  • 윈도우 크기만큼 연속 전송하는 흐름·오류 제어 기법이다 — 옳다.
  • 윈도우 크기로 응답 없이 보낼 수 있는 최대 프레임 수를 제한한다 — 옳다.
  • 송신측 윈도우는 전송 시 줄고 응답 수신 시 늘어난다 — 옳다.
문제 3
IEEE 802.11 방식의 무선 LAN에 사용되는 물리매체 제어방식은?
1CDMA
2CSMA/CD
3CSMA/CA
4ALOHA
정답 및 해설

IEEE 802.11 무선 LAN의 매체 접근 제어 방식은 CSMA/CA이다.

무선 환경에서는 송신 중 충돌을 감지하기 어려우므로, 전송 전에 대기 시간과 RTS/CTS 등을 이용해 충돌을 회피(Collision Avoidance)한다.

  • CDMA — 코드 분할 다중 접속으로 이동통신에 쓰인다.
  • CSMA/CD — 충돌을 감지하는 방식으로 유선 이더넷(IEEE 802.3)에 쓰인다.
  • ALOHA — 초기 무선 패킷망의 임의 접근 방식이다.
문제 4
데이터 링크 계층(Data link layer)에서 수행하는 기능이 아닌 것은?
1프레임 기법
2오류제어(Error control)
3흐름제어(Flow control)
4연결제어(Connection control)
정답 및 해설

데이터 링크 계층의 기능이 아닌 것으로 제시된 것은 연결제어이다.

데이터 링크 계층은 인접 노드 간 프레임 전송을 위해 프레임 구성(프레임 기법), 오류 제어, 흐름 제어를 수행한다. 종단 간 연결의 설정·유지·해제를 관리하는 연결 제어는 전송 계층의 기능으로 분류된다.

  • 프레임 기법 — 비트열을 프레임 단위로 구분하는 데이터 링크 계층 기능이다.
  • 오류제어 — 오류 검출·재전송(ARQ)을 수행한다.
  • 흐름제어 — 정지-대기, 슬라이딩 윈도우 등으로 전송량을 조절한다.
문제 5
전자우편에 사용되는 프로토콜이 아닌 것은?
1IMAP
2SMTP
3POP3
4VPN
정답 및 해설

전자우편 프로토콜이 아닌 것은 VPN이다.

VPN(Virtual Private Network)은 공중망 위에 암호화된 터널을 만들어 사설망처럼 쓰는 기술로, 전자우편과는 무관하다.

  • IMAP — 메일 서버의 메일을 서버에 둔 채 조회·관리하는 수신 프로토콜이다.
  • SMTP — 메일을 전송(송신)하는 프로토콜이다.
  • POP3 — 메일 서버의 메일을 내려받는 수신 프로토콜이다.
문제 6
OSI 7 계층과 관련된 표준의 연결로 옳지 않은 것은?
1물리 계층 - RS-232C
2데이터 링크 계층 - HDLC
3네트워크 계층 - X.25
4전송 계층 - ISDN
정답 및 해설

옳지 않은 연결은 전송 계층 - ISDN이다.

ISDN은 음성과 데이터를 디지털로 통합 전송하는 통신망 규격으로, 주로 하위 계층(물리·데이터 링크·네트워크)에 걸쳐 정의되며 전송 계층 표준이 아니다.

  • 물리 계층 - RS-232C — 직렬 인터페이스 규격으로 옳다.
  • 데이터 링크 계층 - HDLC — 비트 지향 링크 제어 프로토콜로 옳다.
  • 네트워크 계층 - X.25 — 패킷 교환망 인터페이스 규격으로 옳다.
문제 7
다음은 1부터 100까지 더하는 BASIC 프로그램이다. ( )안에 들어갈 명령문으로 적당한 것은?
10 I=0
20 SUM=0
30 I=I+1
40 ( )
50 IF (I < 100) THEN GOTO 30
60 PRINT I, SUM
70 END
1SUM=SUM+ I
2SUM=SUM
3SUM=SUM+ 1
4SUM=SUM+ 100
정답 및 해설

괄호에 들어갈 명령문은 SUM=SUM+ I이다.

30행에서 I를 1씩 증가시키고 40행에서 그 I를 SUM에 누적한다. I가 100이 되면 100까지 더한 뒤 50행의 조건 I < 100이 거짓이 되어 반복을 마치므로 SUM = 1+2+…+100 = 5050이 된다.

  • SUM=SUM — 아무것도 더하지 않아 0이 된다.
  • SUM=SUM+ 1 — 반복 횟수(100)만 센다.
  • SUM=SUM+ 100 — 100을 100회 더해 10000이 된다.
문제 8
프로그램 작성 시 매크로(macro)에 대한 설명으로 옳은 것은?
1매크로 호출(macro call)은 호출된 해당 매크로의 내용이 호출된 위치로 복사되어 컴파일 되기 때문에 일반적으로 실행 속도가 함수 호출을 사용하는 경우에 비해 빠르다.
2매크로(macro)를 사용할 경우에 함수 호출을 사용한 경우보다 일반적으로 컴파일된 코드의 양이 감소하게 된다.
3일반적으로 매크로 호출(macro call)은 인터럽트에 의해 발생하기 때문에 호출된 매크로를 실행하기 전에 현재의 플래그 상태(flag status)를 스택에 저장해야 한다.
4매크로(macro)는 함수와는 다르게 형식 인자(parameter)를 사용할 수 없다.
정답 및 해설

옳은 것은 매크로 호출은 내용이 호출 위치에 복사되어 컴파일되므로 함수 호출보다 일반적으로 실행 속도가 빠르다는 설명이다.

매크로는 전처리 단계에서 본문이 그대로 펼쳐지므로(매크로 확장) 호출·복귀에 따른 스택 처리 부담이 없다.

  • 코드 양이 감소한다 — 호출 위치마다 본문이 복사되므로 오히려 증가한다.
  • 인터럽트에 의해 발생해 플래그를 스택에 저장한다 — 매크로는 인터럽트와 무관한 텍스트 치환이다.
  • 형식 인자를 사용할 수 없다 — 매크로도 인자를 받을 수 있다.
문제 9
다음 중 가장 큰 수는? (단, 오른쪽 괄호 밖의 아래 첨자는 진법을 의미한다)
1(10000000000)2
2(302)16
3(2001)8
4(33333)4
정답 및 해설

가장 큰 수는 (2001)8{}_{8}이다.

모두 10진수로 바꿔 비교한다.

  • (10000000000)2{}_{2} = 2102^{10} = 1024
  • (302)16{}_{16} = 3×256 + 2 = 770
  • (2001)8{}_{8} = 2×512 + 1 = 1025
  • (33333)4{}_{4} = 454^{5} − 1 = 1023
문제 10
다음 C 프로그램의 실행 결과로서 옳은 것은?
#include <stdio.h>
int func(int n)
{
        if(n%2==1)
                n=n-1;
        if(n==0)
                return 0;
        return (func(n-2)+n);
}
void main()
{
        int result;
        result = func(19);
        printf("result = %d", result);
}
1result = 60
2result = 70
3result = 80
4result = 90
정답 및 해설

출력은 result = 90이다.

func(19)에서 19는 홀수이므로 n=18로 바뀌고, 이후 func(n−2)+n 형태로 n이 0이 될 때까지 짝수를 더한다.
func(19) = 18 + func(16) = 18+16+14+…+2+func(0)

func(0)=0이므로 결과는 2+4+…+18 = 90이다.

  • result = 60 — 2부터 18까지 짝수 9개의 합 90과 다르다.
  • result = 70 — 같은 이유로 90과 다르다.
  • result = 80 — 같은 이유로 90과 다르다.
문제 11
중앙처리장치(CPU)에 대한 설명으로 옳지 않은 것은?
1CPU는 산술연산과 논리연산을 수행하는 ALU를 갖는다.
2CPU 내부의 임시기억장치로 사용되는 레지스터는 DRAM으로 구성된다.
3MIPS(Million Instructions per Second)는 CPU의 처리속도를 나타내는 단위 중 하나이다.
4CPU는 주기억장치로부터 기계 명령어(machine instruction)를 읽어 해독하고 실행한다.
정답 및 해설

옳지 않은 것은 레지스터가 DRAM으로 구성된다는 설명이다.

레지스터는 CPU 내부의 가장 빠른 기억 소자로 플립플롭(정적 회로)으로 구성된다. 재충전이 필요한 DRAM은 주기억 장치에 주로 쓰인다.

  • CPU는 산술·논리 연산을 하는 ALU를 갖는다 — 옳다.
  • MIPS는 초당 백만 명령어 단위의 처리 속도 척도이다 — 옳다.
  • CPU는 명령어를 읽어 해독하고 실행한다 — 옳다.
문제 12
2의 보수를 이용한 4비트 2진수의 덧셈 연산 가운데 범람(overflow) 오류가 발생되는 것은?
10100+0010
21011+0111
31100+1010
40110+1001
정답 및 해설

범람이 발생하는 것은 1100+1010이다.

2의 보수 4비트의 표현 범위는 −8~7이다. 1100(−4)+1010(−6) = −10으로 범위를 벗어나며, 실제 결과 0110은 양수로 나와 같은 부호끼리 더했는데 부호가 바뀌는 범람이 생긴다.

  • 0100+0010 = 4+2 = 6 — 범위 안이다.
  • 1011+0111 = −5+7 = 2 — 부호가 다른 수의 덧셈은 범람이 없다.
  • 0110+1001 = 6+(−7) = −1 — 범위 안이다.
문제 13
다음의 카르노 맵(Karnaugh-map)을 간략화한 결과를 논리식으로 올바르게 표현한 것은?
AB\CD00011110
001111
011111
110110
101001
1A'+B·D+B'·D'
2A+B·D+B'·D'
3D+A·B+B'·D'
4D'+A·B+B'·D'
정답 및 해설

간략화 결과는 A'+B·D+B'·D'이다.

카르노 맵에서 1을 가장 크게 묶는다.
AB=00, 01 두 행 8칸이 모두 1 → A'
AB=01, 11 행의 CD=01, 11 열(B=1, D=1) → B·D
AB=00, 10 행의 CD=00, 10 열(B=0, D=0, 양 끝 인접) → B'·D'

  • A+B·D+B'·D' — A 항 때문에 0인 칸 AB=11, CD=00이 1이 된다.
  • D+A·B+B'·D' — A·B 항 때문에 같은 칸 AB=11, CD=00이 1이 된다.
  • D'+A·B+B'·D' — 역시 A·B 항 때문에 AB=11, CD=00이 1이 된다.
문제 14
다음 회로에 대한 설명으로 옳지 않은 것은?
1B의 값이 1이고 A의 값이 0이면, Q의 값이 1이 된다.
2Q'의 값이 1이고 Q의 값이 0일때, A=B=0이면 Q와 Q'의 값에는 변화가 없다.
3Q'의 값이 0이고 Q의 값이 1일때, A=1, B=0이면 Q와 Q'의 값에는 변화가 없다.
4Q'의 값이 0이고 Q의 값이 1일때, A=B=0이면 Q와 Q'의 값에는 변화가 없다.
정답 및 해설

옳지 않은 것은 Q'=0, Q=1일 때 A=1, B=0이면 Q와 Q'에 변화가 없다는 설명이다.

회로는 NOR 게이트 두 개를 교차 결합한 SR 래치로, Q = (A+Q')', Q' = (B+Q)'이다. A=1이면 위쪽 NOR 출력 Q가 무조건 0이 되므로 Q=1이던 상태가 Q=0, Q'=1로 바뀐다.

  • B=1, A=0 — Q'=0이 되고 Q=(0+0)'=1이 되므로 옳다.
  • Q'=1, Q=0에서 A=B=0 — 각 NOR 출력이 상대 출력에 의해서만 정해져 이전 상태(Q=0)를 유지하므로 옳다.
  • Q'=0, Q=1에서 A=B=0 — 같은 이유로 이전 상태(Q=1)를 유지하므로 옳다.
문제 15
다음 그림과 같은 동작을 하는 플립플롭은?
1T 플립플롭
2RS 플립플롭
3D 플립플롭
4JK 플립플롭
정답 및 해설

그림의 플립플롭은 D 플립플롭으로 동작한다.

입력 in이 J에 그대로, K에는 인버터를 거쳐 반전되어 들어가므로 J와 K는 항상 서로 반대 값이다.

  • in=1 → J=1, K=0 → 클록에서 Q=1(세트)
  • in=0 → J=0, K=1 → 클록에서 Q=0(리셋)

즉 클록마다 입력값이 그대로 Q에 저장된다. J=K=1이 될 수 없으므로 토글(T)이나 JK의 동작은 나타나지 않는다.

문제 16
다중 프로세서 시스템에 대한 설명으로 옳지 않은 것은?
1다수의 프로세서가 하나의 운영체제 하에서 동작할 수 있는 시스템이다.
2밀결합 시스템(tightly-coupled system)은 모든 프로세서들이 공유 기억장치(shared memory)를 이용하여 통신한다.
3다중 프로세서 시스템에서는 캐시 일관성(cache coherence) 문제를 고려할 필요가 없다.
4하나의 프로그램에서 다수의 프로세서들에 의해 병렬처리가 가능하도록 프로그래머의 프로그램 작성이나 컴파일 과정에서 데이터 의존성이 없는 프로그램의 부분들을 분류할 수 있다.
정답 및 해설

옳지 않은 것은 캐시 일관성 문제를 고려할 필요가 없다는 설명이다.

다중 프로세서에서는 각 프로세서가 자기 캐시에 같은 데이터의 사본을 가질 수 있으므로, 한 곳의 변경이 다른 캐시에 반영되도록 하는 캐시 일관성(coherence) 유지가 핵심 문제이다.

  • 하나의 운영체제 아래 여러 프로세서가 동작한다 — 옳다.
  • 밀결합 시스템은 공유 기억장치로 통신한다 — 옳다.
  • 데이터 의존성이 없는 부분을 분류해 병렬 처리할 수 있다 — 옳다.
문제 17
다음 설명 중 옳은 것을 모두 묶은 것은?

ㄱ. 폰 노이만(von Neumann) 컴퓨터에서는 명령어 메모리와 데이터 메모리가 분리되어 존재하기 때문에, 명령어와 데이터를 동시에 접근할 수 있다.
ㄴ. 다섯 단계(stage)의 파이프라이닝(pipelining)을 사용하는 CPU는 파이프라이닝을 사용하지 않는 CPU보다 5배 더 빠르다.
ㄷ. 파이프라이닝을 사용하는 CPU의 각 파이프라인 단계는 서로 다른 하드웨어 자원을 사용한다.
ㄹ. 파이프라이닝을 사용하는 CPU에서는 파이프라인 해저드 (pipeline hazard)로 인해 일부 명령어의 실행이 잠시 지연되기도 한다.

1ㄱ, ㄷ
2ㄴ, ㄷ
3ㄴ, ㄹ
4ㄷ, ㄹ
정답 및 해설

옳은 것은 ㄷ과 ㄹ이다.

파이프라인은 각 단계가 서로 다른 하드웨어 자원을 써서 여러 명령어를 겹쳐 실행하며, 자원 충돌·데이터 의존·분기 등 해저드가 생기면 일부 명령어가 지연(stall)된다.

  • ㄱ — 명령어 메모리와 데이터 메모리를 분리한 것은 하버드 구조이다. 폰 노이만 구조는 하나의 메모리를 공유한다.
  • ㄴ — 5단계 파이프라인의 속도 향상은 이상적인 경우의 최대치일 뿐, 단계 간 불균형과 해저드 때문에 실제로는 5배에 못 미친다.
문제 18
임베디드(embedded) 시스템에 대한 설명으로 옳지 않은 것은?
1제품에 내장되어 있는 컴퓨터 시스템으로 일반적으로 범용보다는 특정 용도에 사용되는 컴퓨터 시스템이라고 할 수 있다.
2일반적으로 실시간 제약(real-time constraints)을 갖는 경우가 많다.
3휴대전화기, PDA, 게임기 등도 임베디드 시스템이라고 할 수 있다.
4일반적으로 임베디드 소프트웨어는 하드웨어와 밀접하게 연관되어 있지 않다.
정답 및 해설

옳지 않은 것은 임베디드 소프트웨어가 하드웨어와 밀접하게 연관되어 있지 않다는 설명이다.

임베디드 소프트웨어는 특정 하드웨어를 제어하도록 만들어지므로 하드웨어와 밀접하게 결합되어 있다.

  • 제품에 내장된 특정 용도의 컴퓨터 시스템이다 — 옳다.
  • 실시간 제약을 갖는 경우가 많다 — 옳다.
  • 휴대전화, PDA, 게임기 등이 예이다 — 옳다.
문제 19
객체지향 시스템의 특성이 아닌 것은?
1캡슐화(Encapsulation)
2재귀용법(Recursion)
3상속성(Inheritance)
4다형성(Polymorphism)
정답 및 해설

객체지향 시스템의 특성이 아닌 것은 재귀용법(Recursion)이다.

재귀는 함수가 자기 자신을 호출하는 일반적인 프로그래밍 기법으로, 절차적 언어에서도 쓰이며 객체지향 고유 특성이 아니다.

  • 캡슐화 — 데이터와 연산을 객체로 묶고 내부를 은닉한다.
  • 상속성 — 상위 클래스의 속성과 메소드를 하위 클래스가 물려받는다.
  • 다형성 — 같은 메시지에 객체마다 다르게 반응한다.
문제 20
CISC와 비교하여 RISC의 특징으로 옳지 않은 것은?
1명령어의 집합 구조가 단순하다.
2많은 수의 주소지정모드를 사용한다.
3많은 수의 범용 레지스터를 사용한다.
4효율적인 파이프라인 구조를 사용한다.
정답 및 해설

RISC의 특징으로 옳지 않은 것은 많은 수의 주소지정모드를 사용한다는 설명이다.

RISC는 명령어와 주소지정 방식을 단순하고 적게 두어 고정 길이 명령어를 빠르게 처리한다. 다양한 주소지정 모드는 CISC의 특징이다.

  • 명령어 집합 구조가 단순하다 — 옳다.
  • 많은 범용 레지스터를 사용한다 — 옳다(적재/저장 구조).
  • 효율적인 파이프라인 구조를 사용한다 — 옳다.