1. 다음 소스 코드의 결과는 ‘0.30000000000000004’입니다. 그 이유를 설명해주세요

    print(0.1 + 0.2)
    
  2. 다음 소스 코드에 있는 성능상의 문제가 어떤 문제인지 설명해보세요

    matrix = [[0 for _ in range(1000000)] for _ in range(1000000)]
    
    for i in range(1000000):
    	for j in range(1000000):
    		matrix[j][i] = 5000
    
  3. 인터럽트는 발생 원인에 따라 동기적 인터럽트와 비동기적 인터럽트로 나눌 수 있는데, 이 둘을 각각 대표적인 예시들을 들어 설명해주세요.

  4. CPU의 성능을 향상시키는 기술 중 하나인 파이프라이닝 기법에 대해 설명해주세요.

  5. 유닉스 계열에서 실행 파일의 표준 형식인 ELF에 대해 설명하고, 이 파일이 메모리에 로드될 때 코드(.text), 데이터(.data), 스택 영역으로 분할되는 과정을 설명해 주세요.

  6. DMA가 필요한 이유와 작동 원리를 설명해 주세요. DMA를 사용하면 CPU의 역할이 어떻게 변화하나요?

  7. DRAM과 SRAM 각각의 성능 비교

  8. 캐시가 무엇인지, 왜 필요한지

  9. 페이지 폴트가 발생했을 때 컴퓨터 내부에서 일어나는 전체 과정을 (하드웨어/소프트웨어 역할 분담을 포함하여) 설명해 주세요.

  10. 빅 엔디안과 리틀 엔디안을 설명해주세요(93p).