thumbnail
혼자 공부하는 컴퓨터 구조 + 운영체제 - 컴퓨터 구조와 데이터
Jul 09, 2023

혼공단 10기 1주차 학습 기록

컴퓨터 구조 주요 부품

메모리(Memory)

memory

메모리(Memory)는 현재 실행되는 프로그램의 명령어와 데이터를 저장하는 역할을 한다. 데이터들은 메모리 내에서 정돈된 형태로 저장되어 있으며 주소를 통해 값이 저장된 위치를 찾을 수 있다.


CPU

cpu

CPU는 메모리에 저장된 명령어를 읽어 들여 해석하고 실행한다. CPU 구성 요소로는 ALU, 레지스터(Register), 제어장치(CU)가 있다.


- ALU(Arithmetic Logic Unit; 산술 논리 연산 장치)

ALU는 컴퓨터 내부의 연산 수행을 담당한다.


- 레지스터(Register)

레지스터는 프로그램 실행 시 필요한 값들을 임시 저장하는 장치이다.


- 제어장치(CU; Control Signal)

제어장치는 제어 신호를 내보내고 명령어를 해석한다. 메모리에 저장된 값을 읽고 싶을 때는 메모리 읽기 제어 신호를 보내고 값을 저장하고 싶을 때는 메모리 쓰기 제어 신호를 보낸다.


보조 기억 장치

보조 기억 장치

보조 기억 장치는 가격이 비싸며 저장 용량이 적고 전원을 끄면 저장된 내용이 휘발되는 메모리의 단점을 보완하는 장치이다. 메모리와는 달리 전원이 꺼져도 저장된 내용이 사라지지 않는다. 하드디스크, SSD, USB 등이 이에 해당한다.

메모리 vs 보조 기억 장치

  • 메모리: 현재 실행되는 프로그램 저장
  • 보조 기억 장치: 보관할 프로그램 저장

입출력 장치

입출력 장치

입출력 장치는 마우스, 키보드 등과 같이 컴퓨터 외부에서 연결되어 내부와 데이터를 주고받는다.

메인보드(Main board)

main board

위에서 설명한 네 가지 부품은 메인보드에 연결되어 시스템 버스(system bus)라는 통로를 통해 정보를 교환한다.


데이터

정보 단위

컴퓨터가 이해할 수 있는 가장 작은 정보 단위는 비트(bit)이다. 한 비트 당 0 또는 1, 두 가지 정보를 표현할 수 있기 때문에 n비트는 2n가지 정보를 표현할 수 있다.


  • 1바이트(1byte) = 8비트(8bit)
  • 1킬로바이트(1kB) = 1,000바이트(1,000byte)
  • 1메가바이트(1MB) = 1,000킬로바이트(1,000kB)
  • 1기가바이트(1GB) = 1,000메가바이트(1,000MB)
  • 1테라바이트(1TB) = 1,000기가바이트(1,000GB)

이진법

0과 1만으로 수를 표현하는 방법을 이진법, 0부터 9까지의 숫자로 수를 표현하는 방법을 십진법이라고 한다. 이진수와 십진수는 혼동하기 쉬우므로 이진수 끝에 (2)를 붙이거나 앞에 0b를 붙이는 방식으로 둘을 구분하곤 한다.

ex) 이진수 8인 경우, 1000(2) 또는 0b1000


십진수는 음수를 표현할 때 앞에 - 부호를 붙이면 되지만 이진수는 부호 대신 2의 보수(two’s complement)를 구해 계산하는 방식을 사용한다.

2의 보수란, ‘0과 1을 뒤집고 1을 더한 값’이라고 생각하면 편하다.

ex) 1011(2)을 2의 보수로 표현하는 방법

  1. 1011의 0과 1을 뒤집는다. => 0100
  2. 뒤집은 수에 1을 더한다. => 0100 + 0001 = 0101

=> 1011(2)을 음수로 표현하면 0101(2)

십육진법

수가 15를 넘어가는 시점에 자리 올림 하여 표현하는 방법을 십육진법이라 한다. 0부터 9까지는 숫자 그대로 표기하고 10부터 15까지는 A~F까지 표기한 후, 다시 16부터 자리 올림 하는 방식이다.

이진수와 마찬가지로 숫자 끝에 (16)을 붙이거나 앞에 0x를 붙이는 방식으로 십육진수라는 것을 알린다.

십육진법을 사용하는 주된 이유 중 하나는 이진수와 십육진수 간의 변환이 쉽다는 것이다.

ex) 1A2B(16)를 이진수로 표현하는 방법

  1. 1을 이진수로 표현하면 0001(2)이다.
  2. A(=10)를 이진수로 표현하면 1010(2)이다.
  3. 2를 이진수로 표현하면 0010(2)이다.
  4. B(=11)를 이진수로 표현하면 1011(2)이다.
  5. 1~4까지의 수를 모두 이어 붙여 표현한다.

=> 1A2B(16)을 이진수로 표현하면 0001101000101011(16)


기본 미션

p.51

3. 다음 설명의 빈칸에 들어갈 알맞은 내용을 써 보세요.

프로그램이 실행되려면 반드시 (     )에 저장되어 있어야 합니다.

정답: 메모리(Memory)

p.65

3. 1101(2)의 음수를 2의 보수 표현법으로 구해 보세요.

mission 1-2

1101의 0과 1을 뒤집으면, 0010이고 여기에 1을 더하면 0011이다.

정답: 0011(2)


추가 미션

Q. 스택과 큐의 개념을 정리하기

스택(Stack)

stack

스택은 한쪽 끝이 막혀있는 공간에 데이터를 차례대로 저장하고 데이터를 꺼낼 때 나중에 들어간 순서부터 빼내는 방식이다. 후입선출의 의미인 LIFO(Last In First Out)라고도 부른다.

데이터를 저장할 때는 PUSH 명령어를 사용하고 꺼낼 때 POP 명령어를 사용한다.

큐(Queue)

queue

큐는 양쪽이 뚫려있는 공간에 데이터를 저장하고 저장한 순서대로 빼내는 방식이다. 선입선출 의미인 FIFO(First In First Out)라고도 부른다.


References

[📚book] 혼자 공부하는 컴퓨터 구조 + 운영체제

Table Of Contents
nxnaxx blog © 2022-2024 Powered By Gatsby.