본문 바로가기
코딩Language(전공)

[전공_컴퓨터구조] Computer Abstraction & Technology

by Nerdogger 2019. 9. 14.

기본적인 컴퓨터의 추상화구조

컴퓨터는 하드웨어(Hardware)와 소프트웨어(Software)로 나뉘며,

소프트웨어는 굳이 나누자면 시스템소프트웨어(ex. 운영체제)와 응용소프트웨어(ex. 게임, 앱)으로 구분한다.

 

이들 사이에는 둘을 맞닫아 있는 둘을 상호작용하게 하는 인터페이스(Interface)가 있다.

인터페이스는 ISA(Instruction Set Interface), " 인스트럭션 집합 인터페이스 "라는 말로 설명이 가능하다.

Instruction이란 사전적의미로는 "명령"이라 할 수 있지만, "지시"라는 단어가 더 직관적인 설명에 가깝다.

우리가 개발함으로써 소프트웨어를 통해 하드웨어에게 내리는 명령하나하나를 Instruction이라고 할 수 있다.

 

Instruction의 집합으로 이루어진 것이 인터페이스이고, 이 인터페이스를 컴퓨터구조, 즉 Computer Architecture라 한다.

인터페이스가 같다는 말은 컴퓨터의 구조가 같다. 즉, 호환이 가능하다는 뜻이며, 

예를 들면 윈도우 운영체제와 IOS 운영체제는 인터페이스가 다르며 각자

호환가능한 소프트웨어들은 상호호환이 불가능하다.


좋은 컴퓨터(성능)의 정의

성능은 비율로써 정의된다.

여러가지 성능(ex. 응답시간, 처리율 등)을 같이 비교하여 이 비율들의 곱에 해당하는 비율로 정의되고 비교된다.

 

예를 들어보자.

하나의 프로세서가 하나의 프로그램을 실행시킬 때

걸리는 소요시간, 즉 응답시간 T와

단위시간 당 처리율 P 가 나온다.

여기서

T = 1/10초 라 함은

P = 1초당 10번      //  T와 P의 관계는 역수관계이다.

한가지 추가하여 생각해보자

  응답시간 처리율
2배 빠른 프로세서로 교체 향상 향상
두개의 프로세서 동일 향상

먼저 하나의 작업이 있을 때 이 작업을 여러개의 프로세서가 나누어 처리하지 못한다.

즉, 첫번째 경우는 응답시간이 빠른 프로세서로 인해 처리율이 향상됨을 볼 수 있지만,

두번째 경우는 응답시간이 동일한 두개의 프로세서로 인하여 같은 시간에 향상된 처리율을 볼 수 있다는 결론이다.


Measuring Execution Time

 

서로다른 두 컴퓨터의 성능을 비교한다고 했을 때

 

1. Elapsed time (경과시간)

2. CPU time

 

이 두가지를 살펴보면, 

먼저 Elapsed time은 불공정하다라고 할 수 있다.

이유는 Elapsed time은 단순 완료까지 소요되는 전체시간을 의미한다.

백그라운드에서 처리중인 작업으로 인해 불리한 결과를 얻을 수 있다.

이에 반해 CPU time은 I/O time과 같은 System CPU time을 고려한 값으로, 공정한 비교를 할 수 있다.

 

 

[참고] 이 게시물은 충남대학교 김형식교수님의 강의와 강의자료를 바탕으로 작성했습니다.

제가 이해한 대로 의식의 흐름대로 작성하였으므로 개념적인 오류가 있을 수 있습니다.