하드웨어

From DevNote

Jump to: navigation, search
이 문서는 아직 완성되지 않아 내용이 불완전합니다. 꾸준히 업데이트 되고 있으니 나중에 다시 들러 확인해 주시기 바랍니다.


하드웨어에 대한 이해의 중요성

컴퓨터가 처음 소개된 이후 눈부신 발전을 이루어 왔다. 초창기에는 매우 한정된 메모리와 낮은 성능의 CPU로 구성된 개인용 컴퓨터에서 프로그램을 실행하려면 엄청난 최적화가 필수적이었다. 따라서 하드웨어에 관한 이해가 요구되었고 어셈블리 언어도 많이 사용되었으며 하드웨어를 직접 제어하는 여러가지 꼼수가 동원되기도 하였다. 하지만, 이제 높은 성능의 CPU와 엄청난 용량의 메모리와 하드디스크 덕분에 대부분의 소프트웨어 개발자는 더 이상 하드웨어와 밀접한 부분에 관해 깊은 이해가 없어도 충분히 훌륭한 프로그램을 제작할 수 있게 되었다. 그러나, 멀티코어가 보편화되기 시작한 이제 그 상황이 다시 바뀌었다.

   
하드웨어
멀티프로세서를 제대로 이해하지 않고 최적화된 고성능의 멀티스레드 프로그램을 제작하는 것은 매우 어렵다. 현재 가장 많이 사용되는 컴퓨터 언어는 단일 CPU의 순차적 실행에 기반하여 설계되어 멀티스레드 프로그램을 제작하기에 여러가지 어려움을 가지고 있다. 멀티스레드 프로그램을 보다 쉽고 버그 없이 제작할 수 있는 언어가 나오기 전까지는 프로그래머는 CPU와 기타 하드웨어에 대한 지식과 이해를 가지고 있어야 가장 효율적인 멀티스레드 프로그램을 제작할 수 있다. 단일 CPU 프로그래밍에서 통하던 상식이 때론 멀티 프로세서 프로그래밍에서는 전혀 맞지 않는다. 예를 들면 간결한 프로그램이 복잡한 프로그램 보다 오히려 시간이 많이 걸리는 경우를 찾을 수 있다.
   
하드웨어
Views
Personal tools
Ads: