기억장치를 접근 속도가 빠른 것부터 순서대로 바르게 나열한 것은?
CPU의 연산을 처리하기 위한 데이터의 기본 단위로서 CPU가 한 번에 처리할 수 있는 데이터 크기를 나타내는 것은?
특정 환경에서 선택 가능한 행동들 중 보상(reward)을 최대화하는 행동을 선택하는 머신러닝(machine learning) 기법은?
10진수 연산 (-25 + 4)를 2의 보수를 이용하여 계산한 결과를 2진수로 표현한 것은? (단, 저장 공간은 8비트로 한다)
네트워크 시스템을 관리하기 위한 UDP 기반의 프로토콜은?
레지스터에 저장된 10진수 정수 29를 2비트만큼 논리적 우측 시프트(logical right shift)한 결과에 해당하는 10진수의 값은?
다음 설명에 해당하는 소프트웨어 개발 프로세스 모델은?
초기 요구분석 후 프로토타입을 개발하기 이전에 위험 분석 단계를 거친다. 이렇게 만들어진 프로토타입을 사용자가 평가하고, 개발자는 추가 요구사항을 반영하여 다시 위험 분석을 거쳐 2차 프로토타입을 만든다. 이 과정을 반복하면서 사용자의 요구사항이 충분히 반영된 최종 제품을 완성해 나간다.
메모리에 대한 설명으로 옳은 것만을 모두 고르면?
- ▪ㄱ. 플래시 메모리는 NAND형과 NOR형이 있다.
- ▪ㄴ. SRAM은 DRAM에 비해 접근 속도가 빠른 편이다.
- ▪ㄷ. ROM은 휘발성 메모리로 전원 없이 데이터를 유지할 수 없다.
- ▪ㄹ. EPROM은 자외선 등을 사용하여 여러 번 저장된 내용을 지우고 다른 내용을 기록할 수 있다.
모듈의 응집도(cohesion) 및 결합도(coupling)에 대한 설명으로 옳지 않은 것은?
다음 C 프로그램의 출력 결과는?
#include <stdio.h>
void func(int *p, int *q) {
if (p > q) return;
printf("%d ", *p + *q);
func(p + 1, q - 1);
}
int main(void) {
int a[] = { 3, 1, 4, 1, 5 };
func(a, a + 4);
return 0;
}데이터베이스 뷰(view)에 대한 설명으로 옳지 않은 것은?
2진 소수로 변환하면 무한 순환 소수가 되는 10진 소수는?
다음 릴레이션에서 속성 A ~ D의 함수 종속을 화살표(→)로 표현할 때 옳은 것은? (단, 아래 투플을 기준으로 판단하며, 새로운 투플은 추가되지 않는다고 가정한다)
- ▪A | B | C | D
- ▪1 | 2 | 7 | 7
- ▪2 | 8 | 5 | 6
- ▪2 | 6 | 5 | 6
- ▪4 | 8 | 7 | 2
FIFO 페이지 교체 알고리즘을 사용하는 가상메모리에서 프로세스 P가 다음과 같은 페이지 번호 순서대로 페이지에 접근할 때, 페이지 부재(page-fault) 발생 횟수는? (단, 프로세스 P가 사용하는 페이지 프레임은 총 3개이고, 빈 상태에서 시작한다)
8 1 2 3 1 4 5 3 4 1 4 3
IPv4 주소의 첫 번째 바이트와 각 바이트에 해당하는 클래스가 옳게 짝지어지지 않은 것은?
다음 Java 프로그램의 출력 결과는?
class ClassA {
ClassA() {
System.out.print("1");
}
static {
System.out.print("4");
}
}
public class ClassB extends ClassA {
ClassB() {
System.out.print("2");
}
public static void main(String[] args) {
System.out.print("3");
new ClassB();
}
}교착상태(deadlock)에 대한 설명으로 옳은 것만을 모두 고르면?
- ▪ㄱ. 교착상태 발생의 필요조건은 상호 배제, 선점, 점유와 대기, 선형 대기이다.
- ▪ㄴ. 프로세스를 강제로 종료해서 교착상태 문제를 처리하는 것은 교착상태 회복 기법에 해당한다.
- ▪ㄷ. 어떤 제약을 가하지 않고 자원 할당 그래프를 지속적으로 모니터링하면서 교착상태 발생 여부를 살펴보는 것은 교착상태 예방 기법에 해당한다.
- ▪ㄹ. 은행원 알고리즘(banker's algorithm) 등을 이용하여 안전(safe) 상태를 유지할 수 있는 범위 내에서 자원을 할당하는 것은 교착상태 회피 기법에 해당한다.
다음 파이썬 코드로 작성된 partition() 함수를 이용하여, 주어진 배열을 퀵 정렬(quick sort)로 오름차순 정렬하고자 한다. 정렬 과정에서 단계별 정렬 순서로 나타날 수 없는 것은? (단, 피벗(pivot)은 정렬하고자 하는 대상의 마지막 원소로 선택한다)
# 정렬하고자 하는 대상인 A[first]…A[last]를
# 피벗(A[last]) 기준으로 분할하는 함수
def partition(A, first, last):
p = A[last]
low = first
high = last
while low < high:
while p > A[low] and low < high:
low += 1
while p <= A[high] and low < high:
high -= 1
if low < high:
A[low], A[high] = A[high], A[low]
A[low], A[last] = A[last], A[low]
return low배열: 7 3 2 19 13 5 11 17
디스크 스케줄링 기법 중 SSTF를 사용하여 다음과 같은 작업 대기 큐(디스크 큐)의 작업을 처리하고자 하는 경우, 처리되는 트랙의 순서를 바르게 나열한 것은? (단, 추가 I/O 요청은 없다고 가정한다)
- ▪○ 작업 대기 큐: 15, 4, 8, 120, 65, 70, 105
- ▪○ 헤드 시작 위치: 50
다음 C 프로그램의 출력 결과는?
#include <stdio.h>
void rotate(int *a, int n, int k) {
k %= n;
while (k--) {
int first = a[0];
int i;
for (i = 0; i < n - 1; i++) {
a[i] = a[i + 1];
}
a[n - 1] = first;
}
}
int main(void) {
int arr[] = {1, 2, 3, 4, 5};
rotate(arr, 5, 7);
int i;
for (i = 0; i < 5; i++) {
printf("%d ", arr[i]);
}
return 0;
}20:00
0/20