본문 바로가기
CS

[컴퓨터 구조] 컴퓨터 시스템의 구조

by zlzzlzz2l 2020. 11. 27.
반응형

글을 쓰게된 계기

2학년 때 컴퓨터 구조를 수강했다.
원서를 번역한 책이었는데 이해하기 어려웠다.
이번 여름 방학 때 부스트코스 코딩뉴비챌린지를 참여하게 되었는데, 2학년 때 배웠던 과목들이 중요하다는 것을 느꼈다.
그래서 책을 보면서 정리하며 이해해보려고 한다.


컴퓨터 시스템

하드웨어 : 물리적 장치
ex) 컴퓨터 자체, 본체 등

하드웨어는 크게 3가지로 나뉜다.
중앙처리장치, 기억장치, 입출력장치

시스템 소프트웨어 : 어디에서나 필요한 프로그램
ex) OS, Complier 등

응용 소프트웨어 : 시스템 소프트웨어를 사용한 프로그램
ex) 게임, 계산기 등

소프트웨어전기적 신호(0과 1)로 이루어졌다.
또한, 하드웨어에 의존적이다.
왜냐하면 소프트웨어는 하드웨어가 제공하는 기능을 이용하여 결과를 얻기 때문이다.


컴퓨터의 기본 구조

컴퓨터프로그램 코드들을 정해진 순서대로 실행한다.
그 과정을 3가지로 나눠보자.

  1. 필요한 데이터를 읽고 (Read)
  2. 처리한다. (Processing)
  3. 결과는 저장한다. (Store)

3가지 과정은 하드웨어가 수행한다.

하드웨어는 그림과 같이 여러 요소들이 상호 연결되어 있다.

그렇다면 하드웨어에 대해 살펴보자.


하드웨어(H/W)

중앙처리장치 (CPU) (Central Processing Unit)

CPU : 프로그램 실행을 실행하고 데이터를 처리한다.

CPUProcesser라고도 불리며, 데이터의 길이와 비트 수에 따라 32-bit, 64-bit 컴퓨터 등으로 분류된다.

또한, CPU의 속도에 따라 처리 속도가 결정된다.


기억 장치 (Memory)

Memory : CPU가 처리할 프로그램 코도와 데이터를 저장한다.

기억 장치는 특성과 속도에 따라 나뉜다.

주기억장치는 CPU와 가까이 위치했다.
RAM을 예로 들 수 있다.
또한, 가격이 높고 영구 저장이 되지 않아 일시적이다.

보조기억장치는 주변 장치로 분류되기도 한다.
왜냐하면 CPU에 의해 직접 access가 안되며, 별도의 제어기로 access하기 때문이다.
Harddisk를 예로 들 수 있다.
또한, 가격이 낮고 속도도 느리며 영구 저장이 가능하다.


입출력장치 (I/O)

I/O : 사용자와 컴퓨터 간의 대화를 위한 도구이다.

키보드, 모니터, 프린터 등을 예로 들 수 있다.

CPU와 직접 데이터 교환을 하지 않고, 장치마다 별도의 제어기를 가지고 있다.



컴퓨터가 받고, 처리하는 정보

컴퓨터가 받아드리고 처리하는 정보가 따로 있다.

  1. 프로그램 코드 (Program Code)
  2. 데이터 (Data)

위 2가지는 2진수를 나타내는 비트(bit)로 표현된다.


고급 언어 & 저급 언어

고급 언어 : 컴퓨터 프로그램을 만들기 위해 쓰여지며, 컴퓨터가 이해하기에는 어렵고 사람이 이해하기 쉽다.
ex) C, JAVA 등

고급 언어를 컴퓨터가 이해하기 위해서컴파일러 (Compiler)가 쓰인다.
컴파일러고급언어를 컴퓨터가 이해할 수 있는 기계어로 변환한다.

저급 언어 : 컴퓨터가 이해하기 쉽게 작성된 프로그래밍 언어이다.
ex) 기계어, 어셈블리어 등

고급 언어는 어느 컴퓨터에서든 동일하다.
하지만 저급 언어인 기계어CPU마다 다르다.
CPU마다 다르기 때문에, CPU 고유의 중간 언어인 어셈블리어로 먼저 번역된다.

니모닉스 (Mnemonics) : 어셈블리 명령어가 지정하는 동작을 개략적으로 짐작할 수 있게 사용된 기호
ex) LOAD, ADD, STOR

어셈블리 명령어는 CPU가 수행해야 할 동작, 처리할 데이터가 저장되어 있는 기억장치의 주소 또는 레지스터 번호를 구체적으로 지정해준다.
어셈블러가 기계어 프로그램으로 번역해준다.


저의 주관적인 생각이 담긴 글입니다.

이 글을 보신 분들에게 도움이 되고자 글을 썼지만 부족한 부분이 많을 수 있습니다.

그 점 양해 부탁드리며, 추가했으면 하는 부분이나 잘못된 부분은 댓글로 알려주시면 감사하겠습니다!

반응형

'CS' 카테고리의 다른 글

[네트워크] TCP/IP 프로토콜  (0) 2021.04.16

댓글