해보자고

포스트 PC 시대, 프로그램 성능의 이해 본문

스터디/컴퓨터 구조

포스트 PC 시대, 프로그램 성능의 이해

초코맛동산 2024. 3. 19. 15:23

1. 전통적인 컴퓨터 응용 분야의 종류들

1) 개인용 컴퓨터(personal computer, PC)

- 제3자(third-party) 소프트웨어를 실행하기 위해 주로 사용됨.

 

+) third-party 소프트웨어: 하드웨어 메이커와 관계없는 제3의 프로그래머가 만든 프로그램. 

2) 서버(server)

- 네트워크를 통한 접근만 가능

- 대형 작업 수행에 이용

- PC와 같은 기술로 제작되지만, 연산 및 입출력 용량의 확장성이 훨씬 큼. 

3) 수퍼컴퓨터(supercomputer)

-  처리 능력 중 가장 좋은 성능의 컴퓨터

- 컴퓨터 시장 전체 판매 중 비중이 낮음. 

4) 임베디드 컴퓨터

- 컴퓨터 시장 전체 판매 중 비중이 가장 높음

- 사물인터넷을 포함하는 경우가 많음

- 특정 응용 분야 목적의 컴퓨터

- redundancy 기술로 고장 감내 기능을 구현하는 경우가 많음.

 

2. 포스트 PC 시대

- 포스트 PC: 언제 어디서나 인터넷에 접속할 수 있는 정보 기기(주로 PC시대 이후)

 

1. 개인용 컴퓨터(PC)가 개인 휴대용 기기(PMD)로 대치되고 있다. 

- PMD(Personal mobile Device)란 무선으로 인터넷에 연결되는 소형 기기로 예시로는 스마트폰이 있다. 

 

2. 서버가 창고 규모의 컴퓨팅(WSC, warehouse-scale computing)인 데이터센터를 이용하는 클라우드 컴퓨팅(cloud computing) 으로 전환되고 있다. 

- 클라우드 컴퓨팅 중 SaaS와 같이 클라우드 내에서 가볍게 소프트웨어를 실행할 수 있다. 

 

 

3. 프로그램 성능의 이해

하드웨어 or 소프트웨어 구성 요소 성능에 미치는 영향
알고리즘 소스 프로그램 문장 수와 입출력 작업 수를 결정
프로그래밍 언어, 컴파일러, 컴퓨터 구조 각 소스 프로그램 문장에 해당하는 기계어 명령어 수 결정
프로세서와 메모리 시스템 명령어의 실행 속도 결정
입출력 시스템(하드웨어 및 운영체제) 입출력 작업의 실행 속도 결정

< Computer organization and design (risc-v edition). David A. Patterson / John L. 10p >

 

 

4. 스스로 점검하기

1. 매년 판매되는 임베디드 프로세서의 수는 PC는 물론 포스트 PC 프로세서의 수보다도 훨씬 많다. 당신의 경험상 이를 확인하거나 부인할 수 있는가? 당신 집안에 있는 임베디드 프로세서를 세어 보라. 집 안에 있는 전통적인 컴퓨터의 수와 비교하면 어떠한가?

- 확인할 수 있다. 냉장고, 보일러, 인터폰, 넷카메라 등을 집안에서 확인해볼 수 있고, 이외에도 다양한 임베디드 프로세서가 존재할 것이다. 그리고 이는 집 안에 있는 데스크탑 컴퓨터, PC 에 비하면 훨씬 많다는 것을 알 수 있다. 주로 가격이 저렴하고, 꼭 필요한 기능의 집약체인 임베디드 프로세서의 특성상 훨씬 많고 다양한 것을 확인해볼 수 있다. 

 

2. 소프트웨어와 하드웨어 모두 프로그램 성능에 영향을 미친다. 다음 각각이 성능의 병목이 되는 경우의 예를 제시하라. 

1) 선택된 알고리즘

- 알고리즘의 경우 시간 복잡도를 이야기하여 프로그램 성능에 대해 이야기해볼 수 있다. 

-> 로그 시간 알고리즘 (O(log n)) > 선형 시간 알고리즘 (O(n)) > 다항 시간 알고리즘 (O(n^k))

(이가 이해하기 어려우면 포스팅 참고)

 

2) 프로그래밍 언어 또는 컴파일러

- 간단하게 python과 C/C++ 언어를 비교해보더라도 저수준 언어인 C/C++는 python에 비해 훨씬 빠른 속도의 실행 시간을 갖고 있다. 

 

3) 운영체제

- CPU의 경우 더 좋은 CPU가 연산 처리 및 명령어의 해석 및 동작이 빠르다. 반대로 더 예전, 안 좋은 CPU를 탑재한 컴퓨터는 컴퓨터의 동작 처리가 느릴 수 있다. 

 

4) 프로세서

- 프로세서 자체의 성능이 좋지 않거나, 프로그램이 단일 코어에서 사용되는 경우 발생할 수 있다. 이는 병렬 처리에서의 제한이 존재하기 때문에 멀티스레드 또는 병렬 알고리즘이 사용되지 않는 경우, 프로세서의 병목 현상이 발생할 수 있다.

 

5) 입출력 시스템 및 입출력 장치

- 대용량 데이터를 입력 혹은 출력할 때 병목 현상이 나타날 수 있다. 대용량 데이터를 입력, 출력할 때 입출력 버스, 입출력 장치, 디스크 등이 사용되는데 입출력 장치, 디스크의 처리 속도 등이 늦거나, 입출력 버스가 협소할 때 병목현상이 나타날 수 있다. 

 

 


 

해당 스터디는 Computer organization and design (risc-v edition). David A. Patterson / John L. Hennesy 책을 활용하여 공부하고 있습니다. 

'스터디 > 컴퓨터 구조' 카테고리의 다른 글

RISC vs CISC  (0) 2024.05.06
Machine code  (0) 2024.05.06