LabHub

컴퓨터 구조 · CPU · 퀴즈

컴퓨터 구조 확인

LabHub 에서 이어서 보기

문항 7개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.

  1. 캐시 밖 데이터를 읽으면 느린 이유는?

    1. 캐시 미스가 나면 CPU 가 클럭을 낮춰 기다리기 때문
    2. 메모리까지 다녀와야 해서
    3. 캐시에 없는 데이터는 항상 디스크까지 내려가서 읽기 때문
    4. 전력 절약 기능이 메모리 접근 속도를 일부러 낮추기 때문
  2. 메모리는 한 번에 얼마씩 가져오나?

    1. 요청한 1바이트만 정확히 가져온다
    2. 캐시 라인 통째로, 대개 64바이트씩
    3. 가상 메모리 페이지 단위로 4KB 씩
    4. 요청한 크기에 맞춰 필요한 만큼만
  3. 배열을 순서대로 읽으면 빠른 이유는?

    1. CPU 분기 예측기가 반복문을 미리 알아채기 때문
    2. 컴파일러가 순차 접근 코드만 최적화해 주기 때문
    3. 한 번 가져온 라인에서 여러 개를 공짜로 쓰기 때문
    4. 무작위 접근은 측정이 불안정해 우연히 느리게 나온 것
  4. `0.1 + 0.2 == 0.3` 이 거짓인 이유는?

    1. 0.1 이 2진수로 딱 떨어지지 않아서
    2. 파이썬 부동소수점 구현에 있는 버그라서
    3. 기본 정밀도 설정이 소수점 아래 자릿수를 줄여서
    4. 출력할 때 반올림 설정이 값을 바꿔 버려서
  5. 돈 계산에 float 을 쓰면 안 되는 이유는?

    1. 반올림 오차가 쌓여 1원 단위가 어긋나기 때문
    2. 정수 연산보다 느려서 처리량이 떨어지기 때문
    3. float 이 정수보다 메모리를 많이 차지하기 때문
    4. 기계마다 float 표현이 달라 이식성이 없기 때문
  6. `1e16 + 1 - 1e16` 과 `1e16 - 1e16 + 1` 의 결과가 다른 이유는?

    1. 두 식의 연산자 우선순위가 서로 다르기 때문
    2. 큰 수에 작은 수를 더하면 작은 쪽이 밀려나 사라져서
    3. 1e16 이 중간에 정수로 변환되면서 값이 달라져서
    4. 부동소수점 덧셈 구현에 있는 버그이기 때문
  7. 네트워크 바이트 순서가 빅엔디안으로 정해진 이유는?

    1. 서로 다른 기계가 같은 숫자를 같게 읽으려면 약속이 필요해서
    2. 빅엔디안이 리틀엔디안보다 처리 속도가 빠르기 때문
    3. 빅엔디안을 쓰는 기계가 더 많아 다수를 따른 것이라서
    4. 바이트 순서를 뒤집어 두면 도청자가 값을 읽기 어려워서