📢 본 글은 혼공학습단 미션과 함께 정리해보는 글 입니다.
좋은 개발자가 되기 위해서는 프로그래밍 언어 뿐 아니라 컴퓨터의 근간을 함께 알아야 한다.
컴퓨터 구조를 함께 알게 된다면 문제 해결 능력을 기를 수 있으며, 성능 & 용량 & 비용을 고려한 개발을 할 수 있다.
내가 개발했던 환경에서는 문제가 없지만, 실제로 사용자들에게 배포된 환경에서 문제가 생길 수 있다. 이는 문법적인 원인보다는 컴퓨터 내부에 근원적인 문제가 있을 확률이 더 높기에, 이때 컴퓨터 내부를 직접 뜯어본다면 컴퓨터를 미지의 대상에서 분석의 대상으로 바라보게 되어 남들과 구별되는 문제 해결 능력을 가질 수 있게 된다.
우리가 웹사이트를 만든 뒤 사람들에게 공개하기 위해서는 서버 컴퓨터가 필요하다. 그런데 서버 컴퓨터들은 성능과 용량에 따라 비용이 제각각이다. 서버를 직접 쓰지 않고 클라우드로 선택하더라도, 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): 제어 신호를 주고받는 통로
메모리에 저장되어 있어야 합니다.부족하거나 보완할 점이 있다면 댓글 부탁드립니다 😃