본문 바로가기

Books

(11)
[뇌자극] 03. 컴퓨터 구조에 대한 세 번째 이야기 이번 장에서는 함수가 호출되는 원리와 호출이 될 때마다 할당되는 메모리 관리방식에 대해서 이야기하고자 한다. 프로그램이 실행되는 원리에 보다 근접한 내용을 언급하는 것이다. 절차적 함수 호출(Procedure Call) 지원 CPU 모델 함수가 호출되는 방식은 CPU에 따라서 차이를 보인다. 한 예로 ARM 코어에서는 ATPCS(ARM Procedure Call Standard)라는 것을 정의하였는데, 이는 함수의 전달인자와 리턴 어드레스(함수 호출이 완료되고 나면 되돌아 갈 주소)를 레지스터에 저장하기로 결정하고, 그 저장방식에 대한 표준을 정의한 것이다. 따라서 컴퓨터 구조를 이해하기 위해 설명할 모델은 이 표준을 고려하여 ARM 코어의 레지스터들도 디자인되어 있고, ARM 컴파일러도 이 표준에 맞게..
[뇌자극] 02. 컴퓨터 구조에 대한 두 번째 이야기 컴퓨터 구조의 접근방법 컴퓨터 구조에 대한 보다 근본적인 이해는, 이후에 공부하게 될 프로세스(컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램)와 쓰레드(프로세스 내에서 실행되는 흐름의 단위)를 이해하는 데도 큰 도움이 된다. 때문에 가장 일반적인 형태의 컴퓨터 구조에 대해서 함께 살펴보고자 한다. 컴퓨터를 디자인하자 디자인할 요소는 CPU이다.CPU를 구성하는 기본적인 요소 중 ALU와 Control Unit은 이미 존재한다고 가정하고 레지스터만 디자인할 것이다.시스템 프로그래머 입장에서 CPU를 보는 관점은 대부분이 레지스터에 집중되기 때문에 레지스터에 대한 이해는 아주 중요하다. 레지스터를 디자인하자 다음은 레지스터를 디자인하는데 있어서 결정해야 할 중요 요소이다. 레지스터를 몇 비트로 구성할 ..
[뇌자극] 01. 컴퓨터 구조에 대한 첫 번째 이야기 시스템 프로그래밍의 이해와 접근 컴퓨터 요소요소에 대한 내용들은 시간이 지나면 잊혀지기 마련이다. 그러나 전체적인 그림은 쉽게 잊혀지지 않을 뿐만 아니라, 다른 분야를 공부함에 있어서 보다 더 유용한 지식이 되기도 한다. 중요한 것은 "작은 그림이 아니라 큰 그림이다!" Windows 시스템 프로그래밍이란? Windows 운영체제 기반의 컴퓨터에게 일을 시키기 위한 프로그램을 구현하는 것이다.Windwos 시스템 프로그래머가 되기 위해서는 MSDN에서 제공하는 함수의 기능을 아주 정확히 이해하면 된다.Windows가 제공하는 시스템 함수들을 정확히 이해하려면 운영체제와 컴퓨터 구조를 잘 알아야 한다.결국 시스템 프로그래밍을 제대로 공부하기 위해서는 운영체제와 컴퓨터 구조를 잘 알아야 하기 때문에 컴퓨터 ..