[프로그램과 컴파일 과정]
·
CS/Computer Architecture
프로세스는 메모리에 올려진 프로그램을 말한다. 프로그램은 컴파일러가 컴파일 과정을 거쳐 컴퓨터가 이해할 수 있는 언어로 번역되어 실행될 수 있는 파일을 의미한다. 컴파일 과정 참고로, 위의 그림은 C언어 기반의 프로그램을 기준으로 컴파일 과정을 도식화한 것이다. (번역과 실행이 동시에 이루어지는 인터프리터 언어로 된 프로그램과 다르다) 전처리: #으로 시작하는 구문을 읽으면서 필요한 헤더 파일을 병합한다. 컴파일러: 소스코드를 어셈블리어로 변환해준다. 즉, 고수준 언어를 저수준 언어로 변환해주는 것이다. 이때, 오류를 처리하고 코드 최적화 작업을 한다. 어셈블러: 어셈블리어를 목적코드로 변환해준다. 즉, 기계어로된 파일로 변환해주는 것이다. 이때, 확장자는 운영처제마다 다른데, 리눅스에서는 .o 이다. ..
[메모리 계층]
·
CS/Computer Architecture
메모리 계층 메모리 계층은 레지스터, 캐시, 메모리, 저장장치로 구성되어 있다. 높은 계층일수록 속도가 빨라지지만 가격에 비해 용량이 작아진다는 특징을 가진다. 이러한 계층이 있는 이유는 대표적으로 '경제성'과 '캐시' 때문이다. 예를 들어, 같은 용량이어도 HDD가 RAM보다 훨씬 싸게 살 수 있다. 이러한 경제성 때문에 계층을 두어 메모리를 관리한다. 메모리 계층구조는 우리가 일상생활 속에서도 쉽게 경험할 수 있다. 예를 들어서 어떤 프로그램을 실행하면 '로딩 중'이라는 이미지가 뜨는 것을 확인할 수 있는데, 이는 저장장치에 있는 데이터를 메모리로 이전하는 작업이 진행 중이라는 것을 의미한다. 캐시 캐시는 데이터를 미리 복사해놓는 임시 저장소를 말한다. 캐시에 데이터를 미리 복사해놓으면 다음 번에는 ..
중앙처리장치(CPU) 작동 원리
·
CS/Computer Architecture
[CPU 구성 요소] CPU는 컴퓨터에서 가장 핵심적인 부분이다. 인간으로 따지면 '두뇌'에 해당된다. 크게 연산장치, 제어장치, 레지스터 3가지로 구성된다. 연산 장치 (ALU) 산술연산과 논리연산 수행한다. 연산에 필요한 데이터를 레지스터에서 가져오고, 연산 결과를 다시 레지스터에 보낸다. 제어 장치 (CU) 명령어를 순서대로 실행할 수 있도록 해주는 장치이다. 주기억장치에서 프로그램 명령어를 해독하고, 그 결과에 따라 명령어 실행에 필요한 제어 신호를 기억장치, 연산장치, 입출력장치로 보낸다. 또한 이들 장치가 보낸 신호를 받아, 다음에 수행할 동작을 결정한다. 레지스터 고속 기억장치로 CPU 내부 메모리이다. 명령어 주소, 코드, 연산에 필요한 데이터, 연산 결과 등을 임시로 저장한다. 용도에 따..
컴퓨터의 구성
·
CS/Computer Architecture
컴퓨터 시스템은 크게 하드웨어와 소프트웨어 나뉜다. 하드웨어: 컴퓨터를 구성하는 기계적 장치 소프트웨어: 하드웨어의 동작을 지시하고 제어하는 명령어 집합 하드웨어의 구성요소 중앙처리장치 (CPU) 기억장치: RAM, HDD 입출력 장치: 마우스, 프린터 소프트웨어 종류 시스템 소프트웨어: 운영체제, 컴파일러 응용 소프트웨어: 워드프로세스, 스프레드 시트 등 하드웨어 중앙처리장치 (CPU) 인간으로 따지면 두뇌에 해당하는 부분 CPU는 주기억장치에서 프로그램 명령어와 데이터를 읽어와 처리하고 명령어의 수행 순서를 제어한다. - 산술논리연산장치(ALU): 비교와 연산을 담당한다. - 제어장치: 명령어의 해석과 실행을 담당한다. - 레지스터: 속도가 빠른 데이터 기억장소 기억장치 프로그램, 데이터, 연산의 중..