1 _ 컴퓨터 구조 시작하기

Joon·2023년 6월 29일
0

1-1. 컴퓨터 구조를 알아야 하는 이유

개발하는데에 있어 컴퓨터의 구성요소와 작동 원리를 몰라도 프로그래밍 언어의 문법만 알면 프로그램을 개발하는데 문제는 없다. 하지만 실력있는 개발자가 되려면 반드시 알아야 할 기본 지식이다.

◦ 문제 해결

개발 환경에서는 문제가 없었는데 서버 환경에서는 문제가 생긴다던가 하는 상황이 번번하게 발생한다.
이럴때 컴퓨터 구조를 이해하고 있다면 빠르게 트러플 슈팅이 가능할 것이다.

◦ 성능, 용량, 비용

개발한 프로그램이 어떤 환경에서 어떻게 작동하는지 정확히 이해 할 수 있어야한다.
이러한 것은 프로그래밍 언어의 문법만 알아서 알 수가 없다.
개발을 할 때 성능, 용량, 비용까지 고려하며 개발하는 개발자가 되기 위해는 이것을 잘 알아야 한다.

1-2. 컴퓨터 구조의 큰 그림

컴퓨터 구조 지식은 크게 두개로 나눌 수 있다.
하나는 '컴퓨터가 이해하는 정보' 이고 또 하나는 '컴퓨터의 네가지 핵심 부품' 로 정리 할 수 있다.

◦ 컴퓨터가 이해하는 정보

컴퓨터가 이해하는 정보인 데이터명령어에 대한 특징

  • 데이터

    컴퓨터는 0과 1로 다양한 데이터를 표현한다.
  • 명령어

    명령어는 데이터를 움직이고 컴퓨터를 작동시키는 정보이다.
    프로그램은 명령어들의 모음 으로 정의되기도 한다.

◦ 컴퓨터의 네가지 핵심 부품

컴퓨터의 네가지 핵심 부품과 특징

  • 중앙처리 장치 (cpu)

    컴퓨터의 뇌 라고 말할 수 있는 중앙처리 장치를 구성하는 중요한 세가지 요소와 특징

    1. ALU
      계산만을 위해 존재하는 부품이다.

    2. 레지스터
      프로그램을 실행하는 데 필요한 값을 빠르게 가져오기 위해 있는
      CPU 내부의 작은 임시 저장 장치이다.
      여러 개의 레지스터가 존재하고 각 이름과 역할을 가지고 있다.

    3. 제어장치
      제어 신호 라는 전기 신호를 보내고 명령어를 해석하는 장치이다.
      여기서 신호란 컴퓨터 부품들을 관리하고 작동시키기 위한 전기 신호이다.

      스케줄링 : 프로세서(core)는 수많은 프로세스를 시분할 해서 관리한다.
      운영체제에 따라 스케줄링 방식은 다르다.

      간단한 CPU 동장 방식
      1. 제어장치가 메모리에 저장된 명령어를 읽기 위해 제어 신호를 보낸다.
      2. 메모리는 저장된 명령어를 CPU에 건네주고 이 명령어는 레지스터에 저장된다.
      3. 제어장치는 명령어 읽어 명령어를 해석하여 실행한다.

  • 주기억장치 (메모리)

    1. 현재 실행되는 프로그램의 명렁어와 데이터를 저장하는 부품이다.

    2. 주소를 통해 값을 효율적으로 찾을 수 있다.

    3. 전원이 꺼지면 저장된 내용을 잃는다.

      프로세스 : 프로그램이 실행되는것을 말한다.

      메모리 관리 교체 알고리즘
      메모리는 저장공간에 대한 관리가 핵심이다.
      프로그램의 모든 데이터를 메모리에 올릴 수 없기 때문에 일부는 메모리에 일부는 보조 기억장치로 내려보낸다. 이런식으로 어떤 프로그램의 어떤 데이터를 적재 시킬지가 관리 대상이 된다.

  • 보조기억장치

    하드디스크, SSD, USB, DVD와 같은 저장 장치이다. 전원이 꺼져도 저장된 내용을 잃지 않는다.

    CPU가 저장된 데이터를 가져오는 비용은
    레지스터 < 주기억장치 < 보조기억장치 순으로 크다.
    용량도
    레지스터 > 주기억장치 > 보조기억장치 순으로 크다.

  • 입출력장치

    마이크, 스피커, 프린터, 마우스처럼 컴퓨터 외부에 연결되어 컴퓨터 내부와 정보를 교환하는 장치를 의미한다.

    이러한 부품들은 모두 메인보드에 연결되어 시스템 버스로 정보를 주고 받는다.

    시스템 버스

    1. 주소 버스 : 주소를 주고받는 통로
    2. 데이터 버스 : 명렁어와 데이터를 주고받는 통로
    3. 제어 버스 : 제어 신호를 주고 받는 통로

0개의 댓글