주기억장치로 쓸 수 없는 것은 블루레이 디스크이다.
블루레이는 레이저로 읽고 쓰는 광학식 보조기억장치로, CPU가 직접 주소를 지정해 접근하는 주기억장치가 될 수 없다.
- SRAM: 반도체 RAM으로, 빠른 속도 덕분에 캐시 등에 쓰이는 주기억장치 계열이다.
- DRAM: 반도체 RAM으로, 일반적인 주기억장치(메인 메모리)에 쓰인다.
- EPROM: 반도체 ROM으로, 주기억장치의 ROM 영역(펌웨어 저장)에 쓰일 수 있다.
스택에서 임의의 위치에서 삽입·삭제가 가능하다는 설명이 옳지 않다.
스택은 한쪽 끝인 top에서만 삽입과 삭제가 일어나는 LIFO 구조이다.
- 연결 리스트로 구현: 배열뿐 아니라 연결 리스트로도 구현할 수 있다.
- push 연산: top에 데이터를 삽입하는 연산이다.
- 나중에 삽입된 데이터가 먼저 삭제: LIFO의 정의 그대로이다.
일정한 시간 간격으로 신호 값을 추출하는 단계는 표본화(sampling)이다.
아날로그-디지털 변환(PCM)은 표본화 → 양자화 → 부호화 순으로 진행되며, 표본화는 시간축을 이산화하는 첫 단계이다.
- 양자화: 표본화된 진폭 값을 유한한 단계의 값으로 근사하는 과정이다.
- 부호화: 양자화된 값을 2진 부호로 바꾸는 과정이다.
- 복호화: 수신 측에서 디지털 부호를 원래 신호로 되돌리는 과정이다.
데이터 링크 계층의 PDU는 프레임(frame)이다.
OSI 계층별 PDU는 물리 계층 비트, 데이터 링크 계층 프레임, 네트워크 계층 패킷, 전송 계층 세그먼트, 상위 계층 메시지(데이터)로 정리된다.
- 비트: 물리 계층의 전송 단위이다.
- 패킷: 네트워크 계층의 전송 단위이다.
- 메시지: 응용 계층 등 상위 계층의 데이터 단위이다.
#include <stdio.h>
int main(void)
{
int i;
char buf[]="1234567890123456789012345";
char *str, ch;
str = buf;
for(i = 0; i <= 20; i += 4)
{
printf("%c ", *str++);
ch = *++str;
}
return 0;
}
출력은 1 3 5 7 9 1이다.
반복은 i가 0, 4, 8, 12, 16, 20일 때 6회 수행된다. 매 회 printf의 *str++가 현재 문자를 출력한 뒤 포인터를 한 칸 옮기고, 이어서 *++str가 포인터를 다시 한 칸 옮기므로 한 회에 포인터가 2칸씩 전진한다.
따라서 buf의 인덱스 0, 2, 4, 6, 8, 10 위치 문자인 1, 3, 5, 7, 9, 1이 차례로 출력된다.
- 1 5 9 3 7 1은 포인터가 4칸씩 전진한다고 본 결과로, 반복 변수 i의 증가폭과 포인터 이동을 혼동한 것이다.
- 2 4 6 8 0 2는 출력 전에 포인터가 먼저 증가한다고 본 결과로, 후위 증가의 의미를 잘못 적용한 것이다.
- 2 6 0 4 8 2는 선증가와 4칸 전진을 함께 잘못 적용한 결과이다.
다항식 코드를 사용해 집단 오류 검출에 적합한 방식은 CRC(순환 중복 검사)이다.
CRC는 데이터를 생성 다항식으로 나눈 나머지를 검사 비트로 붙여, 연속된 비트가 한꺼번에 깨지는 집단 오류도 높은 확률로 검출한다.
- FEC: 수신 측에서 오류를 스스로 정정하는 전진 오류 정정 방식으로, 다항식 검출 방식과는 다르다.
- 단일 패리티 비트 검사: 홀수 개 비트 오류만 검출하며, 짝수 개 오류가 나는 집단 오류에 약하다.
- 블록 합 검사: 행·열 패리티를 쓰는 2차원 패리티 방식으로, 다항식을 사용하지 않는다.
단정도 부동소수점 수가 32비트 정수보다 많은 값을 표현한다는 설명이 옳지 않다.
둘 다 32비트이므로 비트 패턴 수는 같지만, 부동소수점은 +0과 -0이 같은 값이고 NaN 하나에 수많은 비트 패턴을 쓰므로 표현하는 서로 다른 수의 개수는 오히려 적다.
- 0과 1 사용: 컴퓨터는 2진수로 수를 표현한다.
- 1의 보수 표기: 부호 있는 정수 표현법(부호-크기, 1의 보수, 2의 보수) 중 하나이다.
- IEEE 754 구성: 부호, 지수, 소수(가수) 필드로 이루어진다.
n의 값은 6이다.
개선 후 실행시간 = 개선되지 않는 부분 + 개선된 부분이다.
이므로 이다. 즉 연산 A를 6배 빠르게 해야 전체 실행시간이 절반이 된다.
도메인 무결성을 기본 키의 널 금지·유일성으로 설명한 것이 옳지 않다.
기본 키가 널을 가질 수 없고 튜플을 유일하게 식별해야 한다는 것은 개체 무결성이며, 도메인 무결성은 속성 값이 정의된 도메인(자료형·범위)에 속해야 한다는 제약이다.
- 무결성 제약조건의 목적: 갱신으로 데이터 일관성이 깨지지 않도록 보장한다.
- DBMS의 검사 기능: DBMS는 제약조건 위반을 검사해 연산을 거부할 수 있다.
- 참조 무결성: 외래키 값은 참조 릴레이션의 기본 키 값이거나 널이어야 한다는 제약이다.
- 입력 C=0일 때, 출력 X=0, Y=0, Z=0
- 입력 B=0이고 C=1일 때, 출력 X=0, Y=0, Z=1
- 입력 B=1이고 C=1일 때, 출력 X=A, Y=B, Z=C
출력 함수는 X=ABC, Y=BC, Z=C이다.
X는 B=1이고 C=1일 때만 A 값을 내고 나머지는 0이므로 X=ABC이다. Y는 B=1, C=1일 때 B(=1)를 내고 나머지는 0이므로 Y=BC이다. Z는 C=0이면 0, C=1이면 1이므로 Z=C이다.
- X=AC, Y=BC, Z=C는 B=0, C=1, A=1일 때 X=1이 되어 조건(X=0)에 어긋난다.
- X=A'C, Y=B'C, Z=C'는 B=0, C=1일 때 Y=1, C=0일 때 Z=1이 되어 조건에 어긋난다.
- X=A'B'C, Y=B'C, Z=C'는 B=1, C=1일 때 X와 Y가 0이 되어 X=A, Y=B 조건을 만족하지 못한다.
회사원 갑이 출장지로 자동차를 운전하여 가던 중, 휘발유가 부족한 것을 알았다. 그래서 ( ) 유형의 앱을 실행하여 주변 주유소를 검색하고 가장 가까운 주유소를 선택하였다.
괄호에 들어갈 것은 위치기반 서비스이다.
사용자의 현재 위치를 GPS 등으로 파악해 주변 주유소를 검색하고 가장 가까운 곳을 안내하는 것은 위치 정보를 활용한 서비스의 전형이다.
- 빅데이터 서비스는 대용량 데이터를 수집·분석해 가치를 얻는 것으로, 현재 위치 기준 검색이 핵심이 아니다.
- 클라우드 서비스는 컴퓨팅 자원을 네트워크로 빌려 쓰는 형태로, 주변 시설 검색과 직접 관련이 없다.
- 가상현실 서비스는 컴퓨터로 만든 가상 환경을 체험하게 하는 것이다.

네 번째·다섯 번째·여섯 번째로 방문하는 노드는 B, A, E이다.
중위 순회는 왼쪽 서브트리 → 루트 → 오른쪽 서브트리 순으로 방문한다. A의 왼쪽 서브트리(B-D-F-G)를 먼저 돌면 F, D, G, B가 되고, 이어 루트 A, 그다음 오른쪽 서브트리에서 C의 왼쪽 자식 E와 C 순서가 된다.
전체 방문 순서는 F, D, G, B, A, E, C이므로 네 번째부터 여섯 번째까지는 B, A, E이다.
- A, B, C는 위에서부터 층별로 방문하는 레벨 순서의 앞부분으로, 중위 순회 순서가 아니다.
- B, E, C는 루트 A를 빠뜨린 순서이다.
- F, G, C는 어느 순회 순서에도 연속으로 나타나지 않는다.
하위 CASE가 계획 수립·요구 분석을 지원한다는 설명이 옳지 않다.
계획 수립·요구 분석·설계 등 앞 단계를 지원하는 것은 상위 CASE이고, 하위 CASE는 코드 생성·구현·테스트 등 뒤 단계를 지원한다.
- 품질 제어: 표준화된 도구 사용으로 소프트웨어 품질을 효율적으로 관리할 수 있다.
- 유지보수 비용 절감: 문서화·변경 관리 자동화로 유지보수 비용을 줄인다.
- 통합 CASE: 상위·하위를 통합해 개발 주기 전체 과정을 지원한다.
최댓값과 최솟값의 합은 -1이다.
n비트 2의 보수의 표현 범위는 다음과 같다.
합을 구하면 이다. 음수 쪽이 하나 더 많기 때문이다.
(단위 : 밀리초)
| 프로세스 | 대기 시간 | 서비스 시간 |
|---|---|---|
| P1 | 10 | 5 |
| P2 | 12 | 4 |
| P3 | 8 | 12 |
| P4 | 15 | 3 |
우선순위가 가장 높은 프로세스는 P4이다.
HRRN의 우선순위는 응답률 = (대기 시간 + 서비스 시간) ÷ 서비스 시간이며, 값이 클수록 먼저 실행된다.
- P1은 (10+5)÷5 = 3이다.
- P2는 (12+4)÷4 = 4이다.
- P3는 (8+12)÷12 ≒ 1.67이다.
- P4는 (15+3)÷3 = 6으로 가장 크다.
압축하지 않아 파일 크기가 큰 비트맵 형식은 BMP이다.
BMP는 윈도우 기본 비트맵 형식으로, 픽셀 정보를 무압축으로 저장하는 것이 일반적이다.
- AI: 어도비 일러스트레이터의 벡터 그래픽 형식으로, 비트맵 방식이 아니다.
- PNG: 무손실 압축을 사용하는 비트맵 형식이다.
- JPEG: 손실 압축을 사용해 파일 크기가 작은 비트맵 형식이다.
준비는 되었으나 우선순위에 밀려 CPU를 계속 할당받지 못하는 상태는 기아상태(starvation)이다.
기아는 우선순위 스케줄링 등에서 낮은 우선순위 프로세스가 무한정 대기하는 현상으로, 대기 시간에 따라 우선순위를 높이는 에이징(aging)으로 해결한다.
- 교착상태: 프로세스들이 서로가 가진 자원을 기다리며 아무도 진행하지 못하는 상태이다.
- 경쟁상태: 여러 프로세스가 공유 자원에 동시에 접근해 실행 순서에 따라 결과가 달라지는 상황이다.
- 상호배제: 한 번에 하나의 프로세스만 임계구역에 들어가도록 하는 성질이다.
- 남아 있는 수식 : * 4 * 5 + 6 +
- 스택의 상태 :
3 2
최종 결과 값은 35이다.
후위 표기 계산은 피연산자를 스택에 넣고, 연산자를 만나면 스택에서 두 값을 꺼내 연산한 결과를 다시 넣는다.
- *: 3과 2를 꺼내 2×3 = 6을 넣는다.
- 4를 넣고 *: 6×4 = 24를 넣는다.
- 5를 넣고 +: 24+5 = 29를 넣는다.
- 6을 넣고 +: 29+6 = 35가 남는다.
import java.util.Stack;
public class StackDemo1 {
public static void main(String[] args) {
Stack< ㉠ > stack = ㉡ Stack<>();
stack.push("java");
stack.push("stack");
stack.push("demo");
㉢ popResult = stack.pop();
System.out.println(popResult);
popResult = stack.pop();
System.out.println(popResult);
popResult = stack.pop();
System.out.println(popResult);
}
}
빈칸은 차례로 String, new, Object가 들어가야 한다.
스택에 문자열을 넣으므로 제네릭 타입은 String이고, 객체 생성에는 new 연산자를 쓴다. pop()이 돌려주는 String은 상위 타입인 Object 변수에 대입할 수 있으므로 popResult의 타입으로 Object가 가능하다.
- create는 Java에서 객체를 생성하는 키워드가 아니므로 이를 쓴 조합은 컴파일되지 않는다.
- Object, new, char 조합은 Object 스택에서 꺼낸 값을 기본형 char 변수에 대입할 수 없어 컴파일 오류가 난다.
직접 사상에서 교체 알고리즘이 필요하다는 설명이 옳지 않다.
직접 사상은 메모리 블록이 들어갈 캐시 라인이 하나로 고정되므로, 교체할 대상을 고를 필요가 없어 교체 알고리즘이 불필요하다.
- 분리형 캐시: 명령어 캐시와 데이터 캐시를 분리한 구조를 가질 수 있다.
- 다단계 캐시: L1, L2 등 여러 레벨로 구성할 수 있다.
- 쓰기 버퍼: write-through에서 주기억장치 쓰기를 버퍼에 맡겨 CPU 대기 시간을 줄인다.