컴퓨터 시스템의 기본 구성
컴퓨터시스템의 기본적인 구성은 ‘응용 소프트웨어’, ‘시스템 소프트웨어’, ‘하드웨어’로 구성되어있다.
여기서 응용 소프트웨어는 우리가 스마트폰이나 컴퓨터를 통해 접하는 어플리케이션(Application Software)으로 시스템적으로 사용자와 상호작용한다.
다음으로 시스템 소프트웨어는 우리가 직접적으로 알지는 못하지만 컴퓨터 내 모든 명령이 수행될 수 있도록 처리하는 운영체제(OS)다.
위 두 개념을 묶어 소프트웨어라고 이야기하기도 하는데 이들은 정보들이 이동하는 방향과 정보 처리의 종류를 지정해주고, 그러한 동작들이 일어나는 시간을 지정해주는 명령들의 집합이라고 한다. 쉽게 말해 우리가 컴퓨터를 사용할 때 알게 모르게 필요한 명령의 집합이다.
마지막으로 하드웨어는 컴퓨터가 동작하기 위해 존재하는 물리적 부품이다. 이들은 정보들이 이동할 수 있는 통로 역할을 하며, 정보를 처리하라는 명령을 직접적으로 수행하는 역할을 한다. CPU, 메모리, 시스템 버스 등이 그 예이다.
하드웨어와 소프트웨어
하드웨어와 소프트웨어는 다르다는 사실은 모두가 익히 알고 있을 것이다. 이 둘의 차이를 사용하는 프로그램의 관점에서 봤을 때 Flexiablity의 유무로 구분할 수 있다.
하드웨어에 사용되는 프로그램은 아주 정적인 특징을 가진다. 즉 Flexibility가 없다. 주로 매번 반복적으로 주어진 명령을 처리하는 경향이 있기 때문이다. 그래서 하드웨어의 명령 처리 흐름을 살펴보면 데이터(반죽) → 미리 지정된 방식으로 데이터 처리(틀) → 결과물(붕어빵) 획득이다. 이러한 방식은 빠른 속도로 명령을 처리하고, 값싼 가격으로 대량생산이 가능하다는 점과, 소형화가 가능하다는 장점이 있다. 그러나 한 번 정해진 처리 방식을 바꿀 수 없다는 No Flexibility 단점이 있다.
소프트웨어에 사용되는 프로그램은 동적으로 Flexibility가 있다. 소프트웨어의 명령 처리 흐름을 살펴보면 유저가 지정하는 방식으로 데이터를 처리하기 때문에 기능을 바꿀 때 비용이 소모되지 않는다는 장점이 있다. 그러나 앞서 언급한 하드웨어와 대비되게 비교적 느리고, 비싸고, 소형화가 어렵다는 단점이 있다.
컴퓨터의 역사
컴퓨터 이름 | 설명 |
ENIAC (Electric Numerical Integrator And Computer) |
최초의 컴퓨터라고 인정받고 있다. 펜실베니아 대학에 의해 고안되어 1943~1946의 기간에 거쳐 만들어졌다. |
EDVAC (Electronic Discrete Variable Automatic Computer) |
존 폰 노이만에 의해 고안된 Stored program computer의 개념을 도입한 최초의 컴퓨터다. 이 개념은 메모리에 정보를 넣어서 순차적으로 실행하는 방식으로 프로그래밍하는 방식을 의미한다. |
UNIVAC (Universal Variable Automatic Computer) |
세계 최초로 돈 받고 팔린 컴퓨터다. |
IBM 360 - Commercial Computer | 우리나라 정부에 최초로 도입된 컴퓨터다. |
Mini(Micro) Computer - C & Unix | 보다 쉽게 프로그래밍 할 수 있도록 고안된 운영체제가 도입된 컴퓨터다. 주로 C와 Unix가 쓰였다. 유닉스는 리눅스, Apple OS의 조상이다. |
Personal Computer | ex: Apple 2 |
Stored Program Computer | 앞서 EDVAC에 대한 내용에서 나온 개념이다. 이는 폰 노이만이 제안한 개념이긴 하지만 데이터와 프로그램의 양상에 의해 다음의 두 가지 개념으로 다시 나뉜다.
|
CPU의 기능
CPU는 메모리에 저장된 명령어를 하나씩 가져와 실행하고, 각 명령어에 쓰이는 데이터를 인출하고 해석한 후, 처리 및 저장을 한다.
이러한 과정 중에서도 CPU가 수행하는 가장 기본적인 기능을 3가지로 추려보면 다음과 같다.
CPU의 기능 | 설명 |
데이터 처리 (Data processing) |
명령어를 통해 메모리에 저장된 데이터를 조작한다. |
데이터 저장 및 운동 (Data storage & movement) |
데이터를 CPU 내, 외부로 옮기고 저장한다. |
흐름 처리 (Flow control) |
필요시, 순차적으로 실행되고 있는 프로그램의 진행을 바꾼다. |
CPU의 구조
CPU의 기능 | 설명 |
제어유닛 (Control Unit) |
명령어를 해석하고 제어신호를 보내는 기능을 한다. |
ALU (Arithmetic and Logic Unit) |
오직 연산만을 수행한다. |
레지스터 (Register) |
연산을 하기 위해 필요한 데이터를 임시로 저장한다. |
컴퓨터의 핵심부품 4가지
부품 이름 | 설명 |
CPU | 중앙처리장치라고도 불리며 컴퓨터의 두뇌 역할을 한다. 메모리에 저장된 명령어를 읽고 해석하고 실행한다 |
주기억장치 | 주로 Ram이라고 불리는 저장장치다. 현재 실행되는 프로그램의 명령어와 데이터를 저장한다. 속도가 빠르다는 장점이 있지만 전원이 꺼지면 정보를 잃고, 비싸다는 단점이 있다. |
보조기억장치 | 주로 HDD, SSD로 쓰이는 저장장치다. 전원이 꺼져도 정보를 잃지 않고 비교적 저렴하다는 장점이 있지만 비교적 느리다는 단점이 있다. |
입출력장치 | 컴퓨터 외부와 내부에 정보를 교환하는 장치다. 키보드, 마우스, 스피커 등이 그 예이다. |
시스템 버스
시스템 버스는 위에서 언급한 컴퓨터의 핵심부품 4가지를 연결하여 정보를 주고받을 수 있는 통로 역할을 한다. 이 시스템 버스는 주고받는 정보의 종류에 따라 주소 버스, 데이터 버스, 제어 버스로 나뉜다.
부품 이름 | 설명 |
주소 버스 | 데이터를 어디에 쓸 지에 대한 정보를 교환하는 통로다. |
데이터 버스 | 명령어와 데이터를 교환하는 통로다. |
제어 버스 | I/O Read signal과 I/O Write signal로 나누어 부르기도 한다. 제어 버스를 통해서는 뒤에 배울 인터럽트 신호, 입출력 동기 신호, 클록 신호와 같은 제어 신호를 교환한다. |
'대학교 공부 > 컴퓨터시스템 (2023)' 카테고리의 다른 글
6주차 - Cache(캐시), Mapping Function(사상 방식), Replacement Algorithms(교체 알고리즘), Write Policy (0) | 2023.04.10 |
---|---|
5주차 - MU0, Parallelism(파이프라이닝, 스칼라) (0) | 2023.04.10 |
4주차 - Instruction Execution Unit, 주소 지정 방식, Hard wired & Micro programming (0) | 2023.04.10 |
3주차 - 최상위 관점에서의 CPU요소, 폰노이만&하버드 구조, CISC&RISC (0) | 2023.03.25 |