### 연습문제 ###

  1. CPU의 구성에 대해 설명하시오.

제어유닛(CU) : 명령어 인출, 해독 및 실행

산술.논리 연산 유닛(ALU) : 산술연산(더하기, 빼기 등)과 논리연산(AND, XOR, NOR 등)을 수행

레지스터
일반 레지스터 : 일반적인 목적의 레지스터로 대부분의 레지스터가 여기에 해당된다.
데이터 레지스터(DR) : 데이터 저장
주소 레지스터(AR) : 주소 저장
특수 레지스터 : CPU가 특수한 목적으로 사용하는 레지스터
명령어 레지스터(IR) : 인출된 명령어가 저장되는 레지스터
프로그램 카운터(PC) : 다음에 실행될 명령어의 주소가 저장되는 레지스터
메모리 주소 레지스터(MAR) : 메모리로 나갈 주소가 저장되는 곳. 메모리 관리자가 이 레지스터를 참조한다.
메모리 버퍼 레지스터(MBR) : 메모리로 나가거나 메모리에서 들어오는 데이터가 저장되는 곳. 메모리 관리자가 이 레지스터를 참조하거나 여기에 데이터를 넣는다.


  1. 폰노이만 구조의 가장 중요한 특징을 설명하시오.

현대 컴퓨터들의 시초라 할 수 있다. 메모리에 있는 프로그램만 바꾸면 다른 프로그램을 실행할 수 있다. 그리고 프로그램을 실행하려면 항상 메모리에 올려야한다. 즉, 프로그래밍 가능한 컴퓨터 방식이다.


  1. 버스의 종류를 나열하시오

CPU 내부 버스, 시스템버스


  1. 단방향 버스에 대해 설명하시오.

데이터의 이동이 한 방향인 버스이다. 메모리 주소 레지스터(MAR)이 여기에 해당된다.


  1. 다음에 실행할 명령어의 주소를 가지고 있는 레지스터는 무엇인가?

프로그램 카운터(PC)


  1. 다음에 실행할 명령어를 보관하는 레지스터는 무엇인가?

명령어 레지스터(IR)


  1. 메모리 주소를 보관하는 레지스터는 무엇인가?

메모리 주소 레지스터(MAR)


  1. 메모리에 저장할 데이터나 메모리에서 가져온 데이터를 임시로 보관하는 레지스터는 무엇인가?

메모리 버퍼 레지스터(MBR)


  1. 주소 버스와 연결되어 있는 레지스터는 무엇인가?

메모리 주소 레지스터(MAR)


  1. 데이터 버스와 연결되어 있는 레지스터는 무엇인가?

메모리 버퍼 레지스터(MBR)


  1. 프로그램을 보호하기 위해 사용하는 두 가지 레지스터는 무엇인가?

경계 레지스터, 한계 레지스터. 프로그램이 이 범위에서 벗어나는 메모리 주소에 접근하면 인터럽트가 발생하고 운영체제가 프로그램을 강제 종료한다.


  1. 속도 차이가 나는 두 장치 사이에서 속도를 완화하는 장치를 무엇이라고 통칭하는가?

버퍼(buffer). 데이터를 매번 이동시키지 않고 일정량 이상 버퍼에 쌓아서 한 번에 이동시켜 효율을 높일 수 있다.


  1. 응용 프로그램과 프린터 사이에서 속도 차이를 완화하는 소프트웨어를 무엇이라고 하는가?

스풀(spool). 일종의 버퍼이다. 버퍼와 다른점은 프로그램이 스풀을 사용하는 중에는 다른 프로그램이 스풀을 사용할 수 없고 대기해야한다. 즉, 프로그램간에 공유되지 않는다.


  1. 부팅 시 운영체제를 메모리로 가져오기 위해 사용하는 작은 프로그램은 무엇인가?

부트스트랩(bootstrap)

PC 전원 ON -> ROM 0번지에 있는 BIOS 실행 -> 이상 없으면 마스터 부트 레코드(MBR)에 있는 부트스트랩 코드를 메모리에 올려 실행 -> 부트스트랩 코드가 운영체제를 메모리에 로드하여 실행


  1. 속도가 빠르고 값이 비싼 저장장치를 CPU 가까운 쪽에 두고, 값이 싸고 용량이 큰 저장장치를 반대쪽에 배열하는 방식을 무엇이라고 하는가?

메모리 계층구조(CPU - 레지스터 - 캐시 - 메모리 - 저장장치). 메모리 계층구조를 통해 장치간 속도차이를 완화할 수 있다.


  1. 작업의 효율성을 높이기 위해 CPU가 입출력 관리자에게 입출력 작업을 요청하면 작업을 마친 입출력 관리자는 CPU에 무엇을 보내는가?

인터럽트(interrupt). CPU는 명령을 지시한 후 그동안 다른일을 수행하고 있으면 된다. 인터럽트가 도착하면 그때 처리해야 할 부분을 실행한다.


  1. CPU의 도움 없이도 메모리를 사용할 수 있도록 입출력 관리자에게 주는 권한을 무엇이라고 하는가?

메모리 직접 접근(DMA - Direct Memory Access). DMA 제어기를 두고 I/O 장치들과 버스를 통해 연결시킨다. CPU는 DMA에 입출력 명령만 내려주면 나머지 과정은 DMA가 처리한다. 요즘은 이를 더욱 발전시킨 I/O 프로세서가 DMA를 대신하는데, DMA에 몇 가지 기능을 추가한 것이다.


  1. CPU와 입출력 관리자가 서로 다른 메모리 영역을 사용하는 기법을 무엇이라고 하는가?

메모리 매핑 입출력(Memory Mapped I/O). 메모리 매핑 입출력을 통해 영역을 나눔으로써 메모리에 CPU가 사용하는 데이터와 입출력 장치의 데이터가 복잡하게 섞이지 않고 체계적으로 관리될 수 있다.


### 심화문제 ###

  1. 컴퓨터에서 클록이 하는 역할을 설명하시오.

주기적인 파형을 만들어낸다. 모든 작업은 이 파형의 주기에 맞춰 한 번씩 일괄적으로 수행된다. CPU의 명령어 인출, 해독, 실행 뿐만 아니라 버스에서의 데이터 이동 역시 클럭 주파수에 맞춰 발생한다. 시스템 버스는 메인보드 클럭의 주파수에 맞춰 데이터를 이동시킨다.


  1. 프로그램 카운터 레지스터의 역할을 설명하시오.

프로그램이 실행 중 다음에 인출할 명령어가 있는 메모리의 주소를 가지고있다. 일반적으로는 순차적인 실행 흐름에따라 이 값은 메모리 주소 단위로 하나씩 증가하지만 분기나 루틴 호출이 발생하면 다음에 실행할 명령어의 주소가 PC에 적재된다.


  1. 제어 버스, 주소 버스, 데이터 버스에 대해 설명하시오.

제어버스 : 제어유닛과 연결되어 있고 제어신호가 나가거나 주변장치의 완료확인 신호 등이 들어오는 버스이다.

주소버스 : CPU에서 주소를 내보내는 버스로 단방향이다.

데이터버스 : 데이터가 이동하는 버스이며 양방향이다.


  1. 휘발성 메모리와 비휘발성 메모리를 비교하여 설명하시오.

휘발성 메모리 : PC 전원이 꺼지면 데이터가 사라지는 메모리이며 메인 메모리는 휘발성 메모리를 사용한다. 종류로는 SRAM, DRAM, SDRAM, DDR SDRAM 등이 있다.

비휘발성 메모리 : PC 전원이 꺼져도 데이터가 남아있다. 보조기억장치가 비휘발성 메모리를 사용한다. 하드디스크, CD, 플래시 메모리(SSD) 등이 대표적이다.


  1. DDR SDRAM에 대해 설명하시오.

DRAM을 동기식으로 클록 주파수에 맞춰 일을 시키고 그동안 CPU는 다른일을 할 수 있게 하는 SDRAM이 있다. SDRAM의 버스 클록 주파수를 2배 높임으로써 데이터 전송 속도를 더욱 개선시킨 것이 DDR SDRAM이다. 이와같은 방식으로 대역폭을 2배씩 계속 높여 현재는 DDR4 SDRAM까지 상용화 되었다.


  1. 스풀에 대해 설명하시오.

일종의 버퍼이다. 버퍼와 다른점은 프로그램이 스풀을 사용하는 중에는 다른 프로그램이 스풀을 사용할 수 없고 대기해야한다. 즉, 프로그램간에 공유되지 않는다.


  1. 즉시 쓰기 방식의 캐시와 지연 쓰기 방식의 캐시를 비교하여 설명하시오.

캐시에 있는 데이터를 변경했을 때 이를 메모리에 있는 데이터와 동기화 시켜주어야한다. 즉시 쓰기 방식은 캐시 변경이 있을 때마다 메모리의 데이터도 바로바로 동기화 시켜주는 것이다. 지연 쓰기 방식은 변경된 내용을 모아 한 번에 변경시켜주는 것이다.

즉시 쓰기 방식은 캐시와 메모리 사이의 데이터 일관성이 보장되지만 그만큼 데이터 전송이 빈번하여 효율적이지 못하다. 지연 쓰기 방식은 데이터를 한 번에 모아 이동시키기 때문에 효율적이지만 캐시와 메모리 사이 데이터의 일관성이 깨질 수 있다.


  1. 인터럽트 번호를 사용하는 이유를 설명하시오.

인터럽트 번호는 운영체제에서 장치마다 고유하게 할당된다. 인터럽트를 보내는 장치가 어떤 장치인지 알리기 위해서 사용한다.


  1. 메모리 직접 접근(DMA)에 대해 설명하시오.

원래는 메모리 접근 권한은 CPU만 가지고 있었다. 따라서 제어장치와 메모리 사이 데이터 이동이 있을때마다 CPU가 사이에서 중재하며 데이터를 받오오고 보내주어야 했기 때문에 효율적인 측면에서 매우 불리했다.

현재는 DMA 제어기를 따로 두고 CPU가 DMA에 데이터 입출력 명령만 내리면 데이터 이동 및 저장은 DMA 제어기가 알아서 관리한다. 이 때 CPU는 다른일을 할 수 있으므로 컴퓨터 성능면에서 유리하다.


  1. 메모리 매핑 입출력에 대해 설명하시오.

CPU와 입출력 관리자가 서로 다른 메모리 영역을 사용하는 것이다. 메모리 매핑 입출력을 통해 영역을 나눔으로써 메모리에 CPU가 사용하는 데이터와 입출력 장치의 데이터가 복잡하게 섞이지 않고 체계적으로 관리될 수 있다.

+ Recent posts