CS

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

SeungbeomKim 2023. 4. 7. 03:28

컴퓨터의 기본 구성은 하드웨어, 소프트웨어 두 가지로 구성됩니다. 

  • 하드웨어  : 컴퓨터에서 각종 정보를 입력하여 처리하고 저장하는 동작이 실제로 일어나게 해주는 실체이며 시스템이 동작하는 데 있어서 필요한 물리적 구성 요소
  • 소프트웨어 : 컴퓨터에게 동작 방법을 지시하는 명령어 집합의 모임, 프로그램(컴퓨터를 사용해 어떤 일을 처리하기 위해 순차적으로 구성된 명령들의 집합)

다음과 같이 하드웨어는 중앙 처리 장치(CPU), 주기억 장치, 보조 기억 장치, 입력 장치, 출력 장치로 구성됩니다. 

또한 이들은 컴퓨터의 기능 수행을 위해 시스템 버스를 통해 서로 연결되어 있습니다.

여기에서 말하는 버스는 컴퓨터 부품들 간, 혹은 컴퓨터 간 데이터와 정보를 전송하는 통로입니다. 

앞서 설명드린 하드웨어의 구성 요소들의 역할에 대해서 간략히 설명드리겠습니다.

 

하드웨어 구성요소와 역할

  • 중앙 처리 장치
    • 중앙 처리 장치(CPU) : 컴퓨터의 특성을 결정하고, 컴퓨터의 핵심 기능인 프로그램 실행 및 데이터 처리 담당
    • 산술 논리 연산 장치 : 산술 연산, 논리 연산, 보수 연산, 시프트 연산 수행
    • 제어 장치 : 프로그램 명령어를 해독하여 명령어 실행에 필요한 제어 신호를 발생시키고, 컴퓨터의 모든 장치를 제어 
    • 레지스터 : CPU 내부에 있는 데이터를 일시적으로 보관하는 임시기억장치
  • 기억 장치
    • 주기억 장치(메인 메모리) : 반도체 칩으로 구성되어 고속으로 엑세스가 가능하지만, 프로그램 실행 중에 일시적으로만 사용되는 휘발성 메모리
    • 속도 : 주기억 장치 > 보조기억장치, 용량 : 주기억장치 < 보조기억장치
    • 용량이 큰 보조기억장치로부터 프로그램이나 자료를 이동시켜 실행시킬 수 있는 기억장치
    • CPU가 직간접적으로 접근하여 데이터를 처리하는 기억장치여서, 컴퓨터 내부에서 CPU가 처리하는 내용을 저장
    • 반도체 기억장치 : ROM(읽기 전용, 비휘발성)(마스크롬, 피롬, 이피롬), RAM(변경 가능, 휘발성)
    • 보조기억 장치 :  하드 디스크, SDD, CD-ROM과 같은 비휘발성이며, 속도가 느림, CPU가 당장 필요로 하지 않는 많은 데이터나 프로그램을 저장하는 장치
  • 입출력 장치
    • 입력 장치 : 데이터를 전자적인 2진 형태로 변환하여 컴퓨터 내부로 전달(키보드, 마우스)
    • 출력 장치 : CPU가 처리한 전자적인 형태의 데이터를 사람이 이해할 수 있는 데이터로 변환하여 출력(모니터, 프린터, 스피커)

소프트웨어의 구성과 역할

  • 시스템 소프트웨어 : 하드웨어를 관리하고 응용 소프트웨어를 실행하는데 필요한 프로그램(운영체제, 언어 번역 프로그램, 유틸리티 프로그램), 
  • 유틸리티 프로그램은 각종 주변 장치들을 구동하는 데 필요한 드라이버 프로그램, 백신 프로그램, TCP/IP 네트워크 연결을 위한 프로그램을 의미합니다.
  • 시스템 소프트웨어의 구성요소
    • 운영체제 : 컴퓨터 하드웨어 자원인 CPU, 기억 장치, 입출력 장치 등을 제어하고 관리하는 역할(UNIX, LINUX, MAC..)
    • 언어 번역 프로그램 : 고급 언어 프로그램을 컴퓨터가 이해할 수 있는 기계어로 변환하는 프로그램
      • 인터프리터 : 소스코드를 한 줄씩 기계어로 번역하여 실행, 실행 속도는 컴파일러보다 느림(JS, HTML, SQL, Python)
      • 컴파일러 : 전체 소스를 한 번에 기계어로 번역하여 실행, 실행 속도는 컴파일러보다 빠름(C, C++, C#, JAVA)
    • 장치 드라이버 : 컴퓨터에 온라인으로 연결된 주변 장치를 제어하는 운영체제 모듈
    • 링커 : 여러 개로 분할해 작성된 프로그램에 의해 생성된 목적 프로그램 또는 라이브러리 루틴을 결합하여 실행 가능한 하나의 프로그램으로 연결하는 프로그램(== 연결 편집기)
    • 로더 : 하드 디스크와 같은 저장 장치에 보관된 프로그램을 읽어 주기억 장치에 적재한 후 실행 가능한 상태로 만드는 프로그램(할당, 연결, 재배치, 적재 기능 수행)
  • 응용 소프트웨어 : 컴퓨터 시스템을 일반 사용자들이 특정한 용도에 활용하기 위해 만든 프로그램(애플리케이션, 앱, 어플)
    • 사무용 : hwp, word..
    • 그래픽용 : 포토샵, 페인트샵..
    • 게임용 : 스타크래프트, 워크래프트..
    • 통신 및 네트워크용 : 인터넷 익스플로러, 크롬, 카카오톡..

프로그램 처리 과정

 

고급 언어 -> 어셈블리어 -> 기계어 

이에 더해, 실행하는 프로그램과 데이터는 주기억 장치에 저장되어 있는 형태입니다. 저장 단위는 워드(word) 단위입니다. 

 

오늘은 컴퓨터의 시스템의 구성과 역할에 대해 알아보았고, 또한 프로그램의 동작 과정도 알아보았습니다.