본문 바로가기
프로그래밍/java

컴퓨터의 구조 및 프로그램 실행 과정

by 신일석 2019. 10. 28.

컴퓨터의 구조 및 프로그램 실행 과정

CPU <=> Main Memory <=> Hard Disk

  • 두뇌에 해당하는 중앙처리장치(CPU)
  • 중앙처리장치가 처리할 프로그램과 데이터를 임시로 저장하는 주기억장치(Main Memory)
  • 프로그램과 데이터 등을 반영구적으로 저장할 수 있는 하드디스크
  • 키보드, 모니터, 프린터 등의 주변장치로 구성

CPU

ALU(Arithmetic and Logic Unit)

덧셈, 뺄셈과 같은 산술연산과 논리합, 논리곱과 같은 논리연산을 수행하는 ALU(Arithmetic and Logic Unit)
레지스터로부터 데이터를 가져와서 연산하고 그 결과 값 역시 다시 레지스터에 저장

레지스터(register)

ALU가 연산을 수행할 때 그 대상이 되는 데이터를 임시로 저장하는 CPU내의 저장 공
간인 레지스터(register)
보통 CPU내에는 이런 레지스터들이 다수 존재하게 되는데 CPU가 명령을 수행하는 데 필요한 _시스템 레지스터_와 프로그래머에 의해서 사용 가능한 _범용 레지스터_들이 있다.

컨트롤 로직(control logic)

CPU내에는 ALU와 레지스터 파일 외에 명령을 해석한 후에 실행을 위해 ALU와 레지스터
파일을 제어하는 회로가 존재하게 되는데 이를 컨트롤 로직(control logic)이라고 한다

프로그램의 실행

보통 프로그래머가 작성한 프로그램은

  1. CPU가 바로 해석할 수 있는 기계어의 형태로 번역되어 하드디스크에 저장되었다가
  2. 운영체제에 의해서 실행될 때 주기억장치에 올려지고
  3. CPU의 컨트롤 로직에 의해서 하나씩 실행되게 된다.

프로그램이 실행될 때 필요한 데이터 역시

  1. 하드디스크에 저장되었다가
  2. 메모리를 통하여 레지스터에 저장된 후 연산에 사용된다.

연산의 결과 값은 반대로

  1. 레지스터에 저장된 후에
  2. 메모리를 거쳐 하드디스크에 저장하게 된다.

물론 입력데이터는 하드디스크가 아닌 키보드나 다른 입력장치를 통해 입력 될 수도 있
으며 출력 역시 모니터나 프린터 등의 장치가 될 수 있다.

참고

'프로그래밍 > java' 카테고리의 다른 글

자바 메모리 구조  (0) 2019.10.17
멀티 스레드  (0) 2019.05.30
String, StringBuffer, StringBuilder 중에 어떤 것을 사용해야 하나  (0) 2019.05.29