컴퓨터의 기본 구성

꿀떡냠·2024년 5월 2일
post-thumbnail

하드웨어의 구성

컴퓨터는 중앙처리장치(CPU), 메인메모리, 입력장치, 출력장치, 저장장치로 구성된다.

  • CPU, 메인메모리(RAM)는 필수 장치로 분류되고 그 외의 부품은 주변 장치로 분류 된다.
  • 메인메모리는(제1저장장치) 컴퓨터가 꺼지면 모든 데이터가 사라지는 휘발성 장치이다.
  • 데이터 영구 저장을 위해서는 하드디스크나 USB 메모리같은 제2저장장치(보조기억 장치)를 사용해야한다.
  1. CPU와 메모리
  • CPU : 명령어를 해석하여 실행하는 장치
  • 메모리 : 작업에 필요한 프로그램과 데이터를 저장하는 장소
  1. 입출력 장치
  • 입력장치 : 키보드, 마우스, 스캐너 등과 같이 외부의 데이터를 컴퓨터에 입력하는 장치이다.
  • 출력장치 : 컴퓨터에서 처리한 결과를 사용자가 원하는 형태로 출력하는 장치로 프린터, 모니터, 스피커등 이 있다.
  1. 저장 장치
  • 메모리는 전자의 이동으로 데이터를 처리하기 때문에 속도가 빠르지만 하드디스크나 CD같은 저장장치는 상대적으로 속도가 느리다.
  • 속도가 느린데도 이런 저장장치를 사용하는 이유는 저장 용량에 비해 가격이 저렴하기 때문이다.
  • 그리고 메모리와 달리 휘발성 장치가 아니라 반영구적으로 데이터 저장이 가능하다.

  1. 메인보드
  • CPU와 메모리 등 다양한 부품을 연결하고 전원을 공급하는 커다란 판이다.
  • 메인보드에서 각 장치를 연결하여 데이터가 지나다니는 통로를 버스라고 한다.
  • 버스는 일정한 경로를 따라 각 장치에 데이터를 전송하는 역할을 한다.
  • 메인 보드에는 각종 부품을 꽂을 수 있는 단자가 있어 단자를 통해 각종 장치를 장착할 수 있다.

폰노이만 구조

  • 오늘날의 대두분 컴퓨터 구조는 폰노이만 구조를 따른다.
  • CPU, 메모리, 입출력장치, 저장장치가 버스로 연결되어있고 이 버스를 통해서 데이터를 주고 받는다.
  • 메모리를 이용하여 메모리에 올리는 프로그램만 교체하여 컴퓨터로 다양한 작업을 할 수 있도록 하는 구조이다.
  • 모든 프로그램은 메모리에 올라와야만 실행이 가능하다.

요리사 모형

  • 요리사는 CPU, 도마는 메모리, 보관 창고를 저장장치라고 비유하고 운영체제에 대해 이해해보자.
  • 보관 창고에 있는 재료를 도마로 옮겨주는 주방보조, 채소를 다듬거나 고기를 손질을 도와주는 보조요리사가 있다.
  • 모든 프로그램이 메모리에 올라와야만 한다는 것은 모든 재료들은 도마위에 올라와야한다는 것이다.
  • 요리사(CPU)는 보관창고에 있는 재료(프로그램)를 도마(메모리)로 가져와야한다. 요리방법을 결정하는 것은 요리사(CPU)의 역할이다.
  • 모든 조건이 동일하다면, 도마(메모리)의 크기는 작업 속도에 영향을 미친다.
  • 도마(메모리)가 크면 많은 재료손질(프로그램)이 가능한데, 도마(메모리)가 작으면 한 번에 할 수 있는 재료손질(프로그램)에 한계가 생긴다.

기초 용어 정리

크기단위

  • 데이터의 표시 단위는 비트(bit), 8비트 = 1바이트(byte)
  • 각각의 높은 단위는 바로 한 단계 낮은 단위보다 1,024(2의 10승)만큼 더 크다

클록과 헤르츠

  • CPU가 작업을 하거나 하드디스크에 있는 데이터를 메모리로 옮기는 작업도 일정한 박자에 맞추어 진행한다.
  • 일정한 박자를 만들어 내는 것은 클록이다.
  • 클록이 일정 간격으로 펄스(클록 틱)를 만들면 거기에 맞추어 컴퓨터 내 모든 구성 부품들이 작업을 진행한다.
  • CPU 성능을 측정하는 단위를 헤르츠(Hz)라고 한다.
  • 헤르츠가 높을수록 CPU 성능이 좋음을 의미한다.
  • 1초에 몇번의 펄스를 만들 수 있는가를 헤르츠로 표현한다. 예를들어 1Hz는 1초에 펄스가 1번 발생하고 1000Hz는 1초의 1000번의 펄스가 발생한다.

시스템 버스와 CPU 버스

  • 시스템 버스(FSB:Front-Side Bus) : 메모리와 주변장치를 연결하는 버스로 메인보드의 동작 속도를 의미한다.
  • CPU 버스 BSB(BSB:Back-Side Bus) : CPU 내부에 있는 장치를 연결하는 버스를 BSB라고 하고 이 버스의 속도는 클록과 동일하다.

프로그래밍과 언어

  • 컴퓨터에 알려줄 작업을 하나로 모으면 프로그램이다.
  • 컴퓨터가 이해할 수 있는 언어는 기계어로 기계어는 0과 1로 이뤄져있다.
  • 기계어를 사람이 이해할 수 있는 형태로 바뀐것이 어셈블리어이다.
  • 어셈블리어도 0과 1을 문자형태로만 바꿔놓은 것이기 때문에 저급언어(low level language)로 분류된다.
  • 사람이 이해할 수 있는 언어는 고급언어로 분류하고 기계어와 어셈블리어를 제외하면 대부분의 프로그래밍 언어는 고급언어로 분류된다.
  • 컴퓨터는 기계어만 인식하기 때문에 고급언어로 만든 소스코드는 컴파일러를 통해 컴파일러를 통해 기계어로 번역, 즉 컴파일한다.
  • 컴파일러가 소스코드를 번역하여 실행파일을 만들고 나면, 컴퓨터는 실행파일을 실행함으로써 작업을 시작한다.
  • 소스코드를 기계어로 번역하는 다른 방법은 인터프리터가 있다.
  • 인터프리터는 소스코드를 한 번에 한 문장씩 번역하여 실행한다. 대표적으로 자바스크립트가 있다.
  • 컴파일러 사용시 컴파일중 오류를 잡을 수 있는 장점이 있고 인퍼프리터는 한문장씩 번역하여 실제 실행되는 순간에 오류가 발생할 수 있다.

필수 자료구조

  • 큐와 스택
    - 큐는 먼저 들어오는 자료가 먼저 처리되는 FIFO 자료 구조이다.
    • 스택은 먼저 들어오는 자료가 가장 늦게 처리되는 FILO자료 구조이다.
    • 큐는 파이프를 생각하면 편한데, 한쪽에는 데이터가한쪽에는 데이터 출력이 이뤄진다.
    • 스택은 한쪽이 막인 파이프를 생각하면 된다. 한쪽에서 데이터 입력과 추력이 모두 이뤄진다.
  • 배열과 연결 리스트
    • 배열은 간단히 구현가능하지만 공간의 삽입과 삭제 같은 관리가 어렵다. 너무 큰 크기이면 낭비되는 공간이 생기고 너무 작은 크기면 입력에 제한이 생긴다.
    • 연결리스트는 포인터로 데이터를 연결한다. 데이터 중간 삽입과 삭제가 간단하다.
    • 배열은 크기가 어느 정도 정해진 메모리나 파일 관리에 사용되고 연결리스트는 데이터의 삽입과 삭제가 빈번한 테이블에 사용된다.
profile
백엔드 개발자로 살아남기

0개의 댓글