일로오세요

[혼공컴운] 1주차 - 데이터와 명령어, 메모리와 CPU, 스택과 큐 본문

개발

[혼공컴운] 1주차 - 데이터와 명령어, 메모리와 CPU, 스택과 큐

일로 2023. 7. 9. 22:21

51p 확인 문제 3번 : 프로그램이 실행되려면 반드시 ( )에 저장되어 있어야 합니다.

정답 : 메모리

 

정답으로 메모리, CPU, 보조기억장치 셋 다 헷갈렸다. 보조기억장치는 '저장'하는 장치니까 헷갈렸고 CPU는 CPU 내부에 위치한 저장 장치인 레지스터도 정답이 될 수 있다고 생각해서 헷갈렸다. 문장의 "프로그램이 실행되려면" 이라는 부분을 보고 CPU가 더 알맞을 것 같다는 생각으로까지 기울기도 했다.

즉, 아직까지 CPU, 메모리, 보조기억장치간 차이를 모르고 있다. 그래서 CPU, 메모리, 보조기억장치를 간단히 정리했다.

 

CPU, 메모리, 주변기기간 구조도(책 설명이 너무 잘되어 있다..)

 

메모리에는 명령어와 데이터가 저장된다.

 

레지스터는 CPU 내부의 작은 '임시' 저장 장치로, 프로그램 실행 시 필요한 값들을 '임시'로 저장한다.

 

보조기억장치는 '보관할' 프로그램을 저장하고 메모리는 현재 '실행되는' 프로그램을 저장한다.

 

아래 이미지는 메모리와 CPU간 상호작용하는 프로세스 중 일부이다. 이미지를 보면 메모리에 명령어와 데이터가 저장되어 있다. 이것을 CPU에서 사용하기 위해 레지스터가 메모리를 복붙한다. 복붙한 값을 ALU, 제어장치에서 사용하기 위해 레지스터와 상호작용한다.

즉, 메모리는 프로그램을 실행하기 위해 저장하고, CPU는 메모리에 저장된 프로그램(명령어, 데이터)을 해석 및 실행하고, 보조기억장치는 프로그램을 '실행'이 아닌 '보관'하기 위해 저장한다.

 

 

65p 확인 문제 3번 : 이진법 1101의 음수를 2의 보수 표현법으로 구해 보세요.

정답 : 0011(2)

 

1101 --(모든 0과 1 뒤집기)--> 0010 --(1 더하기)--> 0011

학부생 시절 컴퓨터 구조 시간에 1의 보수와 2의 보수를 푸는 것을 과제로 냈던 기억이 난다. 그떄는 '보수'라는 의미도 제대로 이해하려 하지 않고 친구들과 과제를 공유하면서 냈었다 ㅎㅎ.. 그때의 행동을 반성하며 보수를 사용하는 이유와 궁금할만한 점들을 다시 복습하며 정리해본다.

 

- 보수를 사용하는 이유는 음수를 표현하기 위해서이다.

- 음수를 나타내기 위해 마이너스(-) 붙여 표현할 없는 이유는 컴퓨터는 0과 1만 이해할 수 있기 때문이다.

- 음수 표현 방법 중 2의 보수 뿐만아니라 1의 보수도 있지만, 2의 보수가 연산하기 편리하다고 한다.

- 보수가 아닌 수(=양수)와 보수인 수(=음수)를 구분하는 방법은 플래그이다. 4장에서 플래그에 대해 더 깊게 다룬다고 하니, 책 속의 귀여운 이미지만 첨부한다.

 

100p : 스택과 큐의 개념을 정리하기

스택은 출입구가 한곳인 곳에 계속 쌓는 것이고, 큐는 출구와 입구가 서로 다른 곳에 계속 쌓는 것이다.

스택(왼쪽), 큐(오른쪽)

스택과 큐가 중요한 이유는 자료구조에서 기본기가 되기 때문이다. 스택은 함수 호출, 괄호 검사, 재귀 함수 구현 등에 주로 사용되고 큐는 작업 대기열(프린터 창!), 네트워크 패킷 전송에 사용된다고 한다.

 

포스팅 회고

- 역시 아무리 익숙한 내용이라도 써보려 하면 막힌다. 익숙하다고 아는 것이 아니라는 것이다..

- 책에서 이미지로 설명이 너무 잘 되어 있어 이해하기 너무 좋다. 👍

'개발' 카테고리의 다른 글

Pretendard를 React 프로젝트에 적용하기  (0) 2023.06.05