📢 본 글은 혼공학습단 미션과 함께 정리해보는 글 입니다.
좋은 개발자가 되기 위해서는 프로그래밍 언어 뿐 아니라 컴퓨터의 근간을 함께 알아야 한다.
컴퓨터 구조를 함께 알게 된다면 문제 해결 능력
을 기를 수 있으며, 성능 & 용량 & 비용을 고려한 개발
을 할 수 있다.
내가 개발했던 환경에서는 문제가 없지만, 실제로 사용자들에게 배포된 환경에서 문제가 생길 수 있다. 이는 문법적인 원인보다는 컴퓨터 내부에 근원적인 문제가 있을 확률
이 더 높기에, 이때 컴퓨터 내부를 직접 뜯어본다면 컴퓨터를 미지의 대상에서 분석의 대상으로 바라보게 되어 남들과 구별되는 문제 해결 능력을 가질 수 있게 된다.
우리가 웹사이트를 만든 뒤 사람들에게 공개하기 위해서는 서버 컴퓨터가 필요하다. 그런데 서버 컴퓨터들은 성능과 용량에 따라 비용이 제각각
이다. 서버를 직접 쓰지 않고 클라우드로 선택하더라도, AWS EC2의 환경 설정을 보면 선택한 성능과 용량에 따라 비용이 달라지게 된다.
컴퓨터 구조는 크게 컴퓨터가 이해하는 정보
와 컴퓨터의 네 가지 핵심 부품
으로 나눌 수 있다.
컴퓨터가 이해할 수 있는 정보로는 데이터
와 명령어
가 있다. 이들은 모두 0과 1로 이루어진 정보이다.
안녕하세요
출력하라
읽어들인 명령어를 해석하고 실행
함계산만을 위해 존재
하는 부품작은 임시 저장 장치
프로그램을 실행하는 데 필요한 값들을 임시로 저장
여러 개의 레지스터가 존재
하며, 각기 다른 이름과 역할을 가지고 있음제어 신호 (control signal)
라는 전기 신호를 내보내고 명령어를 해석
컴퓨터 부품들을 관리하고 작동
시키기 위한 일종의 전기 신호 (메모리 읽기, 메모리 쓰기..)주기억장치에는 크게
RAM (Random Access Memory)
과ROM (Read Only Memory)
두 가지가 있는데,컴퓨터의 작동 원리를 파악하기 위해 알아야 할 더 중요할 개념은 RAM
이다. 때문에 메모리는 보통 RAM을 지칭한다.
명령어와 데이터를 저장
하는 부품해당 프로그램의 데이터와 명령어가 메모리에 저장
되어 있어야 한다.페이징 (Paging)
을 다루면 실행되는 프로그램의 데이터와 명령어가 전부 다는 저장되지 않아도 됨주소
라는 개념이 사용된다.메모리와 CPU의 상호작용 예시
1️⃣ 제어장치는 1번지에 저장된 명령어를 읽어들이기 위해 메모리에 메모리 읽기 제어 신호 보냄2️⃣ 메모리는 1번지에 저장된 명령어를 CPU에 건네주고 이 명령어는 레지스터에 저장됨. 제어장치는 읽어들인 명령어를 해석한 뒤 내용처럼 3번지와 4번지에 저장된 데이터가 필요하다고 판단하며, 해당 번지에 있는 데이터들을 읽어들이기 위해 메모리 읽기 제어 신호를 보낸다.3️⃣ 메모리는 3번지와 4번지에 저장된 데이터를 CPU에 건네주고, 이 데이터들은 서로 다른 레지스터에 저장된다. ALU는 읽어들인 데이터들로 연산을 수행하며, 계산의 결괏값 또한 다른 레지스터에 저장된다.
메모리
는 실행할 정보
를, 보조기억장치
는 보관할 정보
를 저장한다.컴퓨터 외부에 연결되어 컴퓨터 내부와 정보를 교환
하는 장치하드 디스크, SSD 등도 컴퓨터 외부에 연결되어 컴퓨터 내부의 정보를 교환하는 것 아닌가?
⇒ 보조기억장치는 관점에 따라 입출력장치의 일종으로 볼 수 있다. 보조기억장치와 입출력장치를주변장치
(컴퓨터 주변에 붙어있는 장치)로 통칭하기도 한다.
보조기억장치
는 모니터, 마우스, 키보드와 같은 일반적인 입출력장치에 비해메모리를 보조하는 특별한 기능을 수행하는 입출력장치
라고 생각해도 된다.
컴퓨터의 네 가지 핵심 부품을 연결하는 가장 중요한 버스
를 시스템 버스
라 한다.주소 버스 (address bus)
: 주소를 주고받는 통로데이터 버스 (data bus)
: 명령어와 데이터를 주고받는 통로제어 버스 (control bus)
: 제어 신호를 주고받는 통로메모리
에 저장되어 있어야 합니다.부족하거나 보완할 점이 있다면 댓글 부탁드립니다 😃