개요
- 우리는 프로그래밍을 공부하는 프로그래머이기 때문에, 프로그램 실행 과정에 대해서 잘 알고 있어야 원활한 프로그래밍이 가능하다.
- 이 글은 우리가 프로그램을 실행시켰을 때, 어떠한 절차에 의해 프로그램이 실행되는지 컴퓨터의 구조와 함께 간단하게 설명한 글이다.
- 먼저 이 글을 통해 컴퓨터의 전체적인 구조를 눈에 익혀두고, 추후 각 장치의 상세 동작 과정 또는 운영체제 공부에 도움이 되었으면 좋겠다.
컴퓨터 구조

- 컴퓨터는 크게 CPU, Memory, 보조기억장치, I/O Device로 구성되어있다.
- 각 장치별 역할은 아래와 같다.
- CPU
- Memory
- 프로그램 실행시, 실행된 프로그램이 적재되는 곳이다.
- CPU는 Memory에 적재된 프로그램 내용을 가져와서 연산을 수행한다.
- 주기억장치(Main Memory)라고 부른다.
- 보조기억장치
- HDD, SSD와 같은 저장 장치들을 말한다.
- 프로그래머에 의해 만들어진 프로그램을 저장하는 공간이며, 아직 실행 중이지 않은 프로그램들이 저장되어 있는 곳이다.
- 프로그램 뿐만 아니라, 프로그램에 필요한 데이터 파일(텍스트 파일, 사진, 동영상 등)도 저장되어 있다.
- I/O Device
- 입력 또는 출력을 위한 장치들을 말한다.
- 입력 장치의 대표적인 종류로는 키보드, 마우스가 있다.
- 출력 장치의 대표적인 종류로는 모니터, 프린트가 있다.
💡 왜 컴퓨터는 저장 장치를 Memory와 보조기억장치 두 종류로 나눠서 사용할까?
- Memory와 보조기억장치는 속도와 용량의 차이가 있다.
- Memory는 속도가 빠르지만 용량이 작기 때문에, 많은 프로그램들을 저장해둘 수 없다.
- 보조기억장치는 속도가 느리지만 용량이 크기 대문에, 많은 프로그램들을 저장해둘 수 있다.
- 따라서, 우선 만들어진 프로그램을 보조기억장치에 저장해두고, 프로그램이 실행되면 Memory에 적재해서 사용한다.
- 또한, 실제로 연산을 수행하는 CPU는 속도가 엄청 빠르기 때문에, 훨씬 느린 속도의 HDD, SSD로부터 직접 데이터를 가져와 연산하는 경우, CPU는 놀게되고 프로그램 실행 속도도 느릴 것이다.
- 효율적인 프로그램 실행을 위해 Memory와 보조기억장치를 병행하여 사용한다.
- 아래는 HDD, SSD, Memory(RAM)의 속도 차이를 보여준다.

단계별 컴퓨터 동작 과정

1. 프로그램 실행 (보조기억장치 → Memory)
- 프로그램을 실행한다는 것은, 보조기억장치에 저장되어 있는 프로그램을 Memory에 복사한다는 것이다.
- 실행된 프로그램의 내용은 Memory에 복사되어 적재된다.
- Memory에 적재된 프로그램이 Memory의 어디에 있는지 알기 위해, Memory는 주소라는 개념을 사용하여 특정 주소에 프로그램을 적재한다.
- 하나의 프로그램은 여러 메모리 주소에 나뉘어져 적재된다.