개발자는 기록이 답이다

혼공 컴퓨터구조 + 운영체제 1. 컴퓨터 구조 시작하기 본문

CS/운영체제

혼공 컴퓨터구조 + 운영체제 1. 컴퓨터 구조 시작하기

slow-walker 2023. 12. 20. 18:20

인프런 다른 강의를 통해 운영체제 파트를 공부했었는데, 좀 더 부족한 부분을 메꾸기 위해 혼공책을 도서관에서 빌려왔다.

강의에서는 핵심 부분만 뽑아서 설명해주긴했지만, 책으로도 좀 더 자세히 복습하고자 한다.
특히, 맨 앞장에는 실력있는 개발자가 되기 위해서 컴퓨터 구조를 알아야 하는 이유에 대해 설명이 잘 되어있다.

 


컴퓨터 구조를 알아야 하는 이유?

  • 프로그래밍 강의나 책에 나오는 코드를 똑같이 따라 작성했는데도 에러가 날 경우,
  • 컴퓨터의 구조를 이해하고 있다면 문제 상황을 빠르게 진달할 수 있다.
  • 컴퓨터 → 미지의 대상 x, 분석의 대상o

컴퓨터 구조 지식은 문법에 맞는 코드만 작성할 줄 아는 개발자를 넘어 다양한 문제를 스스로 해결할 줄 아는 개발자로 만든다.

 

웹사이트를 개발할때, 서버 컴퓨터가 필요하다. 서버 컴퓨터는 각각 CPU,메모리가 다르고 그에 따라 성능, 용량, 비용이 다양하다.

입출력에만 집중하는 개발을 넘어 성능, 용량, 비용까지 고려하면서 개발하는 개발자가 되어야 한다.

 

컴퓨터 구조의 큰 그림

 

컴퓨터란? 명령어를 처리하는 기계

  • 컴퓨터가 이해하는 정보
    • 데이터
    • 명령어
  • 컴퓨터의 네 가지 핵심 부품
    • CPU
    • 메모리
    • 보조기억장치
    • 입출력장치

 

"1과 2를 더하라" → 1과 2는 데이터, 더하라는 명령어라고 볼 수 있다.

 

컴퓨터는 0과 1로 표현된 정보만 이해하는데,
컴퓨터가 이해하는 숫자, 문자, 이미지, 동영상과 같은 정적인 정보가 데이터이고,
컴퓨터를 실질적으로 작동시키는 정보는 명령어이다.

 

 

컴퓨터의 종류는 다앙햐다.

아두이노, 라즈베리 파이와 같은 작은 컴퓨터부터, 스마트폰, 노트북, 데스트콥, 서버 컴퓨터에 이르기까지 제각각이다.

 

핵심 부품은 크게 다르지 않다.

  • 중앙처리장치(CPU)
  • 주기억장치(메모리 or RAM)
  • 보조기억장치
  • 입출력장치

 

메모리

 

  • 현재 실행되는 프로그램의 명령어와 데이터를 저장하는 공간
  • 프로그램이 실행되려면 반드시 메모리에 저장되어 있어야 한다.
  • 메모리에는 저장된 값에 빠르고 효율적으로 접근하기 위해 주소라는 개념이 사용된다.

CPU

 

  • 컴퓨터의 두뇌
  • 메모리에 저장된 명령어를 읽어 들이고, 읽어들인 명령어를 해석하고 실행하는 부품
  • CPU의 내부구성 요소
    • 산술논리연산장치(ALU)
      • 컴퓨터 내부에서 수행되는 모든 계산 담당
    • 레지스터
      • CPU내부의 작은 임시 저장 장치
      • 여러개의 레지스터가 존재하고, 각각 다른 이름과 역할을 갖고 있음
    • 제어장치
      • 제어신호라는 전기 신호를 보내고 명령어를 해석하는 장치
  • CPU가 메모리에 저장된 값을 읽고 싶을 땐 메모리를 향해 메모리 읽기 라는 제어 신호 보냄
  • CPU가 메모리에 어떤 값을 저장하고 싶을 땐 메모리를 향해 메모리 쓰기 라는 제어 신호 보냄

 

보조기억장치

 

  • 메모리의 약점을 보완할 저장 장치
    • 메모리는 가격이 비싸 저장 용량이 적고, 전원이 꺼지면 저장된 내용을 잃는다.
  • 하드디스크, SSD, USB 메모리, DVD, CD-ROM과 같은 저장 장치
  • 메모리가 현재 '실행되는' 프로그램을 저장한다면, 보조기억장치은 '보관할'프로그램을 저장한다

입출력장치

 

  • 마이크, 스피커, 프린터, 마우스, 키보드 처럼 컴퓨터 외부에 연결되어 컴퓨터 내부와 정보 교환하는 장치
  • USB메모리, 하드디스크와 같은 보조기억장치도 결국 입출력 장치 아닌가요?
  • 보조기억장치와 입출력 장치를 '컴퓨터 주변에 붙어있는 장치'라는 의미에서 주변장치라고 통칭함

 

메인보드와 시스템 버스
  • 메인보드는 마더보드라고도 불림
  • 컴퓨터의 핵심 부품들이 모두 메인보드 판에 연결됨
  • 메인보드에 연결된 부품들은 서로 버스라는 통로를 통해 정보를 주고 받음
  • 여러 버스 가운데 네 가지 핵심 부품을 연결하는 가장 중요한 버스는 시스템 버스이다.
  • 시스템 버스의 내부 구성
    • 주소 버스(주소를 주고 받음)
    • 데이터 버스(명령어와 데이터를 주고 받음)
    • 제어 버스(제어 신호를 주고받음)
  • CPU가 메모리를 읽을 때

  • 제어 버스로 '메모리 읽기' 제어 신호 보냄
  • 주소 버스로 읽고자 하는 주소를 보냄
  • 메모리는 데이터 버스로 CPU가 요청한 주소에 있는 내용 보냄
  • CPU가 어떤 값을 저장할 때

 

  • 데이터 버스를 통해 메모리에 저장할 값을
  • 주소 버스를 통해 저장할 주소를
  • 제어 버스를 통해 '메모리 쓰기' 제어 신호를 보낸다.

 

🤔느낀점

 

핵심부품에 대해서는 알고 있었지만, 메인보드와 버스에 내에서는 잘 몰랐었는데,

CPU내부에서 다양한 버스와 시스템 버스를 통해서 제어신호, 데이터, 주소 정보를 주고 받는다는게 알기 쉽게 설명되어 있었다.

 

컴퓨터 구조를 알아야 AWS 클라우드를 이용할때 비용과 성능을 고려할 수 있고,

프로그램을 위한 최적의 컴퓨터 환경을 스스로 판단할 수 있어야 한다는 점이 인상 깊었다.