[문과 코린이의 IT기록장] 컴퓨터 구조 - 1강. 컴퓨터 추상화 및 관련 기술
[(1) 서론, 컴퓨터 응용 분야의 종류와 그 특성, 포스트 PC 시대, 이 책에서 우리는 어떤 것을 배울 수 있는가?, 프로그램 성능의 이해]
1. 서론
- 국가의 경제는 Moore의 법칙에 따라 빠르게 발전하고 있는 정보기술에 상당히 의존하고 있음
- 정보 기술 산업은 숨 가쁜 속도로 기술 혁신을 거듭하고 있고, 더 우수한 컴퓨터를 지속적으로 만들어 낼 것임.
- 컴퓨터는 농업-산업혁명과 같이 제 3차 정보혁명을 가져오며, 일상생활에 근본적인 영향은 물론, 새로운 지식을 탐구하는 방법도 변화시키고 있음
- 컴퓨터 혁명은 지속되고 있는 중임.
: 계산 비용이 10배 낮아지면서(메모리 연산속도가 증가하면서) 컴퓨터를 사용할 수 있는 기회도 그만큼 늘어남.
ex) 자율주행자동차, 휴대전화, www
- 하드웨어의 발전으로 프로그래머는 현재 유용한 소프트웨어를 만들어가고 있음
2. 컴퓨터 응용 분야의 종류와 그 특성
- 컴퓨터는 크게 세 가지 응용 분야에서 사용됨
1) 개인용 컴퓨터(PC)
- 개인적인 이용을 위해 설계된 컴퓨터로 그래픽 디스플레이, 키보드, 마우스 등을 가지고 있음
- 1TB~2TB
- 낮은 가격으로 단일 사용자에게 좋은 성능을 제공하는 것을 목적으로 함.
2) 서버(server)
- 100TB도 가능 (대용량일수록 비싸짐)
- 여러 사용자를 위해서 대형 프로그램 여러 개를 동시에 실행하는데 사용하며, 주로 네트워크를 통해 접근됨.
3) 수퍼컴퓨터(supercomputer) 신용도 강조
ex) 일기예보, 석유 탐사 등의 대형 과학 및 공학에 사용됨
- 성능과 가격이 가장 높은 컴퓨터 종류. 서버로 구성되는 것이 보통.
4) 임베디드 컴퓨터(embedded computer) 단순함 강조
- 다른 장치에 포함되어 있어서 미리 정해진 한 가지 일이나 몇 가지 소프트웨어만 실행하는 컴퓨터
ex) 자동차에 들어있는 마이크로프로세서, 디지털 텔레비전 등에서 사용되는 컴퓨터, 현대식 비행기나 화물선을 제어하는 프로세서 및 네트워크 등이 포함됨.
- 임베디드 컴퓨팅 시스템은 한 가지 응용을 수행하거나 서로 연관된 일련의 프로그램을 실행하도록 설계되어 있음. 보통 임베디드 컴퓨터는 다른 하드웨어와 한 덩어리로 묶인 단일 시스템으로 공급되기 때문에 도처에 깔려 있어도 대부분의 사용자는 자기가 컴퓨터를 사용하고 있다는 사실조차 인지하지 못함.
- 대형 임베디드 시스템은 여유분(redundancy)기술로 고장 감내 기능을 구현하는 경우가 많이 있음.
- 임베디드 프로세서 설계에는 프로세서 코어가 많이 이용됨. 프로세서 코어란 Verilog나 VHDL과 같은 하드웨어 기술언어 형태로 제작된 프로세서 버전임. 코어를 사용하면 특수한 응용에 특화된 하드웨어와 CPU를 합쳐서 하나의 칩으로 만드는 일이 쉬워짐.
3. 포스트 PC 시대
- 개인휴대용 기기
- 클라우드 컴퓨팅
- 클라우드를 통해 제공되는 서비스로서의 소프트웨어
4. 이 책에서 우리는 어떤 것을 배울 수 있는가?
- C나 자바 같은 상위 수준 언어로 작성된 프로그램이 어떻게 하드웨어 언어로 번역되며, 하드웨어는 번역된 프로그램을 어떻게 실행하는가를 파악한다. 이를 통해 프로그램 성능에 영향을 미치는 하드웨어와 소프트웨어 양쪽의 특성을 이해할 수 있을 것이다.
- 소프트웨어와 하드웨어 사이의 인터페이스는 무엇이며, 소프트웨어는 어떻게 필요한 일을 하드웨어에게 지시하는가?
- 프로그램의 성능을 결정하는 요소는 무엇이며, 프로그래머는 어떻게 성능을 개선할 수 있는가?
* 성능관련 : 메모리의 계층성과 프로세서의 병렬성을 이해해야 함.
- 성능 개선을 위해 하드웨어 설계자는 어떤 기술을 사용하라 수 있는가?
- 에너지 효율성을 개선하기 위해 하드웨어 설계자는 어떤 기술을 사용하는가?
- 최근 순차적인 처리에서 병렬 처리로 넘어가는 이유는 무엇이며 그 결과는 어떠한가?
5. 프로그램 성능의 이해
- 프로그램의 성능은 사용된 알고리즘의 효율성과 프로그램을 생성하고 기계어로 번역하는데 사용된 소프트웨어 시스템, 입출력(I/O)작업을 포함하여 번역된 명령어를 실행하는 컴퓨터의 효율성에 의해 결정된다.
[ 하드웨어 및 소프트웨어가 어떻게 성능에 영향을 미치는가? ]
하드웨어 또는 소프트웨어 구성 요소 |
성능에 미치는 영향 |
알고리즘 |
소스 프로그램 문장 수와 입출력 작업 수를 결정 |
프로그래밍 언어, 컴파일러, 컴퓨터 구조 |
각 소스 프로그램 문장에 해당하는 기계어 명령어 수 결정 |
프로세서와 메모리 시스템 |
명령어의 실행 속도 결정 |
입출력 시스템 (하드웨어 및 운영체제) |
입출력 작업의 실행 속도 결정 |
* 유의사항 - 아직 공부하고 있는 문과생 코린이가, 정리해서 남겨놓은 정리 및 필기노트입니다. - 정확하지 않거나, 틀린 점이 있을 수 있으니, 유의해서 봐주시면 감사하겠습니다. - 혹시 잘못된 점을 발견하셨다면, 댓글로 친절하게 남겨주시면 감사하겠습니다 :) |