Coding Log


컴퓨터 시스템의 구성

초기의 컴퓨터는 인간보다 수치 계산을 빠르고 정확하게 처리하기 위해 개발되었다.

컴퓨터는 시간이 지나며 발전에 발전을 거듭해 오늘날엔 문자, 그림, 소리, 동영상 등 여러 유형의 데이터를 처리하여 사용자가 원하는 정보를 해준다.

이러한 일들을 처리하기 위해 컴퓨터는 아래와 같은 기능을 갖추고 있다.

  • 입력 기능 : 처리할 외부 데이터를 컴퓨터로 입력

  • 기억 기능 : 데이터 처리 결과, 프로그램 등을 기억

  • 연산 기능 : 사칙연산, 논리연산 등의 연산 수행

  • 제어 기능 : 명령을 해독하고 각 장치들을 통제

  • 출력 기능 : 처리된 결과를 사람이 원하는 형태로 출력

위의 기능들을 위해서 컴퓨터 시스템은 크게 하드웨어와 소프트웨어로 구성되어 있다.

하드웨어(Hardware) 는 컴퓨터를 구성하고 있는 물리적인 기계 장치로 소프트웨어에 의해 주어진 일을 수행하며, 소프트웨어(Software) 는 하드웨어의 동작을 지시하고 제어하는 역할을 하는 명령어들의 집합인 프로그램과 프로그램에 필요한 데이터를 총칭한다.

하드웨어와 소프트웨어는 다음과 같이 분류할 수 있다.

  • 하드웨어

    • 중앙처리장치

    • 기억장치

    • 입력장치

    • 출력장치

  • 소프트웨어

    • 시스템 소프트웨어

    • 응용 소프트웨어

보다 자세한 정의는 아래 위키피디아 링크를 참조하자.

참고 하드웨어(Hardware)의 정의

참고 소프트웨어(Software)의 정의

하드웨어(Hardware)

위에서 언급했듯 하드웨어는 중앙처리장치, 기억장치(주기억장치, 보조기억장치), 입력장치, 출력장치로 분류할 수 있다.

이 장치들은 중앙처리장치의 제어 신호에 따라 동작하게 된다.

중앙처리장치

흔히 CPU(Central Processing Unit)이라고 불리는 것이 바로 중앙처리장치이다.

중앙처리장치는 명령어를 해독하고 실행하는 역할을 하며 제어장치, 연산장치, 레지스터로 구성된다.

특히 하나의 칩으로 구성된 중앙처리장치를 마이크로프로세서(microprocessor)라 한다.

중앙처리장치를 구성하는 제어장치, 연산장치, 레지스터들을 상세히 알아보면 아래와 같다.

  • 제어장치(Control Unit)
    제어장치는 중앙처리장치에서 일어나는 모든 작업을 통제하고 관리한다.
    프로그램 명령어를 해석하고, 해석된 명령의 의미에 따라 다른 장치들에게 동작을 지시한다.

  • 연산장치(Arithmetic Logic Unit)
    연산 장치는 단어의 뜻 그대로 연산을 하는 장치다.
    제어장치의 제어신호에 따라 덧셈, 뺄셈, 곱셈, 나눗셈 등의 산술연산과 AND, OR, NOT 등의 논리연산을 수행한다.

  • 레지스터(Register)
    중앙처리장치에 명령어나 데이터, 연산 결과등을 저장하는 기억장소다.
    레지스터는 중앙처리장치에서 명령어를 실행하는 동안 필요한 정보들을 저장하며, 중앙처리장치에 따라 레지스터의 크기와 개수는 달라진다.

기억장치

기억장치는 실행중인 프로그램과 프로그램에 필요한 데이터를 저장한다.

기억장치의 세 가지 조건은 큰 용량, 빠른 속도, 낮은 생산 비용이며 세 가지 조건을 만족할 수는 없다.

보통 용량이 크고 속도가 낮은 저가의 HDD와 같은 장치, 용량이 작고 속도가 빠르며 고가의 SSD등을 생각해보면 쉽게 이해할 수 있다.

기억장치는 아래와 같이 4개의 계층으로 나눌 수 있다.

  • 레지스터

  • 캐시기억장치

  • 주기억장치

  • 보조기억장치

위로 갈수록 속도가 빠르며 가격이 비싸고, 아래로 내려올수록 속도가 느리며 가격이 저렴하다.

중앙처리장치가 지금 당장 필요로 하는 프로그램과 데이터를 레지스터, 캐시기억장치, 주기억장치 등에 저장한 뒤 이용하며, 현재 필요로하지 않는 프로그램과 데이터는 보조기억장치에 저장한다.

위와 같이 기억장치의 계층을 구분하는 이유는 속도가 빠른 CPU와 상대적으로 느린 기억장치간의 속도 차이를 극복하기 위해서이다.

  • 주기억장치
    주기억장치는 실행중인 프로그램과 데이터를 저장하는 장치로 RAM과 ROM으로 구분된다.
    RAM(Random Access Memory)이 일반적으로 말하는 주기억장치로, 실행중인 프로그램과 실행에 필요한 데이터를 일시적으로 저장하는 장치다. 또한 전원을 차단하면 저장된 모든 내용이 지워지는 휘발성이라는 특징을 가지고 있다.
    ROM(Read Only Memory)은 부팅할 때 동작하는 BIOS 프로그램을 저장하는 장치로 비휘발성이다.

  • 보조기억장치
    보조기억장치는 프로그램과 데이터를 영구히 저장하는 장치이다. 보조기억장치에 보관된 프로그램과 데이터들이 필요해지면 주기억장치로 전송된다.
    또한 가상 메모리 개념에 따라 주기억장처럼 사용되기도 한다.
    하드디스크, 자기테이프, 플로피디스크, 광디스크 등이 보조기억장치에 속한다.

  • 캐시기억장치
    캐시기억장치는 휘발성으로 주기억장치의 접근 시간과 중앙처리장치의 속도 차이를 줄이기 위해 사용된다. 캐시기억장치는 빠른 속도를 가지고 있으며, 중앙처리장치가 현재 필요로하는 프로그램 일부와 데이터를 저장한다. 따라서 중앙처리장치가 특정 프로그램이나 데이터를 필요로 할때 주기억장치까지 접근하지않고 캐시기억장치에서 바로 불러와 사용한다.

입력장치

입력장치는 문자, 그림, 소리, 동영상과 같은 외부의 데이터를 컴퓨터로 입력할 수 있는 장치다.
키보드, 마우스, 스캐너, 조이스틱 등이 그 예시다.

출력장치

출력장치는 입력장치와 반대로 컴퓨터 내부의 데이터나 처리한 결과를 사람이 이해할 수 있는 형태로 출력해주는 역할을 한다.
모니터, 프린터, 플로터 등이 그 예시다.

소프트웨어(Software)

소프트웨어는 상술했듯 시스템 소프트웨어와 응용 소프트웨어로 분류된다.

사용자까지 포함시켜 소프트웨어의 위치를 나타내면 아래와 같다.

  • 사용자

  • 응용 소프트웨어

  • 시스템 소프트웨어

  • 하드웨어

시스템 소프트웨어

시스템 소프트웨어는 응용소프트웨어를 지원하는 소프트웨어로 대표적으로 운영체제와 언어 번역 프로그램이 있다.

  • 운영체제
    운영체제는 하드웨어 자원을 관리하며, 또 다른 시스템 소프트웨어와 응용 소프트웨어의 실행을 담당하고 사용자와 하드웨어 사이에서 중재자 역할을 수행한다.
    Windows, Linux, macOS, Unix 등이 대표적인 운영체제이다.

  • 언어 번역 프로그램
    언어 번역 프로그램은 프로그래머가 작성한 프로그램을 컴퓨터가 이애할 수 있는 형식으로 번역하는 프로그램으로 어셈블러, 컴파일러, 인터프리터 등으로 구분할 수 있다.

    • 어셈블러
      어셈블리어로 작성된 프로그램을 컴퓨터가 이해할 수 있는 형식으로 번역

    • 컴파일러
      고급언어로 작성된 프로그램을 컴퓨터가 이해할 수 있는 형식으로 번역

    • 인터프리터
      고급언어로 작성된 프로그램을 한 줄씩 번역하고 즉시 실행

응용 소프트웨어

응용 소프트웨어는 특정 응용 분야에 사용하기 위해 개발된 프로그램으로 워드프로세서, 스프레드시트, 프레젠테이션 프로그램 등이 있다.

DISQUS 로드 중…
댓글 로드 중…

트랙백을 확인할 수 있습니다

URL을 배껴둬서 트랙백을 보낼 수 있습니다