컴퓨터와 자료구조

·2022년 11월 3일
0

TIL

목록 보기
29/46

컴퓨터 내부를 단순하게 들여다보면 크게 4가지 정도로 구성된다고 할 수 있다

CPU, 메모리, 디스크, IO

CPU(Central Processing Unit)

CPU는 연산장치로 무언가를 열심히 계산한다. 프로그램이라는 것에 속해 있는 명령어를 수행하고 있는데, 명령어란 연산자들의 연속을 의미한다

마우스 클릭하는 순간 컴퓨터는 내부적으로 어떤 프로그램을 실행하는 명령을 내린다. 그 명령어가 실행되고, 해당하는 프로그램의 명령들을 CPU는 열심히 수행한다. CPU는 보통 얼마나 빠르냐로 성능을 말하는데 얼마나 빠르냐는 것은 1초 안에 얼마나 많은 명령어들을 처리할 수 있느냐를 의미한다

CPU의 속도 헤르쯔와 Clock CPU는 수를 계산하는 칩으로 이해하면 되는데, 그 원리는 덧셈기와 같다. 대개 컴퓨터의 성능을 CPU의 속도와 메모리의 용량으로 표현할 수 있는데, CPU의 속도의 단위가 헤르쯔(Hz)이다

⚡️ CPU의 속도를 Hz로 나타내고 이 Hz가 높으면 속도가 빠른 성능의 CPU가 되는 것이다

CPU의 내부 구성
1) 산술/논리 연산 장치(ALU): 덧셈을 수행
2) 제어 장치: 시그럴을 통해서 데이터흐름을 통제
3) 레지스터: CPU내부의 메모리

⌛ CPU가 하나의 명령(Operation)을 처리하는 과정
(1) 읽기(Fetch Instruction): 메모리에서 명령을 가져온다
(2) 해석(Decode Instruction): 명령을 해석한다
(3) 실행(Execute Instruction): 명령을 수행한다
(4) 기록(Write Back): 수행한 결과를 기록한다

명령어를 수행하기 위해서 명령어를 가져오는 것을 Fetch라고 한다

메모리

컴퓨터에는 크게 두가지 저장 개념이 있다. 오래 저장하는 것과 잠깐 저장하는 것 오래 저장하는 것은 파일이라는 형태로 디스크에 저장이 되며 디스크는 우리가 이해하는 하드디스크이다

  • 메모리는 휘발성 메모리로, 컴퓨터에 연결된 전원이 끊어지면 모두 삭제된다

컴퓨터의 성능을 좌우하는 건 CPU 연산의 능력, 속도이다. 그런데 컴퓨터에서 메모리가 중요한 이유는 무엇일까?

📁 메모리는 CPU가 하고자 하는 일을 임시 저장한다. 메모리는 하드디스크보다 훨씬 속도가 빠르기 때문에 CPU의 일거리를 바로 바로 줄수 있다. 그래서 CPU가 일을 얼마나 빨리 처리하느냐도 중요하지만, 옆에 일을 얼마나 많이 잘 대기 시켜줄 수 있느냐도 중요하다. 그래서 메모리는 일을 쌓아두는 임시 창고 같은 곳이다

📌 CPU는 속도가 중요하고, 메모리는 크기가 중요하다.

컴퓨터 내 디스크

디스크는 반영구적 저장 장소이다. 사용자가 지우거나 고장 나지 않으면 파일은 계속 유지된다. 디스크는 일반적으로 하드디스크이다. 특정 데이터를 찾기 위해 무언가를 하면 이 디스크가 열심히 돌아가게 되고, 돌아가는 속도가 하드디스크의 속도이다. 빨리 돌아가면 성능이 그만큼 좋은 거다

디스크의 속도만큼 중요한 건 용량이다. 용량이 커야 많은 파일들을 저장할 수 있다.

❓ 하드디스크가 SSD로 간 이유
SSD(Solid State Driver)는 노트북 PC 등 모바일기기의 차세대 저장장치이다. 쉽게 말하면 메모리 방식의 하드디스크이다. 하드디스크 방식과는 비교도 안되게 빠르다. 하드디스크는 열심히 데이터를 찾는 구조이지만, 메모리는 엑세스가 바로 되기에 속도를 비교할 수 없는 수준이다. 컴퓨터 CPU내에 메모리가 들어가고, 중간에 있던 메모리의 방식이 활용되어 디스크의 형태를 바꾼 것이다

소프트웨어, 하드웨어 구분

사용자가 컴퓨터를 켜서 사용하는 프로그램들 = 응용 소프트웨어
응용 소프트웨어가 하드웨어에서 실행되도록 만드는 소프트웨어 = 시스템 소프트웨어
실제 소프트웨어가 실행되는 곳 = 하드웨어

하드웨어

컴퓨터의 5대 구성 요소 : 입력, 출력, 메모리, 데이터패스(datapath), 제어 유닛(control unit)

  • 입력장치 : 마이크, 키보드 등 컴퓨터에 정보를 공급하는 장치
  • 출력장치 : 스피커, 디스플레이 등 연산의 결과를 사용자나 다른 컴퓨터로 보내주는 장치
  • 메모리 : 실행 중인 프로그램과 프로그램이 필요로 하는 데이터를 기억
  • 데이터패스 : CPU 내부 구성 요소 중 제어 유닛을 제외한, 데이터를 연산·저장하는 부분
  • 제어 유닛 : 명령이 뜻하는 바에 따라 데이터패스, 메모리, 입출력 장치가 할 일을 지시

시스템 소프트웨어

주요 시스템 소프트웨어 : 운영체제, 컴파일러

  • 운영체제(OS, Operating System) : 사용자와 하드웨어 사이의 중재자 역할을 하는 프로그램
  • 컴파일러 : C, C++, Java와 같은 상위 수준 언어로 작성된 프로그램을 하드웨어가 실행할 수 있는 명령어로 번역하는 프로그램

응용 소프트웨어

게임이나 문서 작성 프로그램과 같이 흔히 사용자가 사용하는 일반적인 프로그램을 모두 응용 소프트웨어라고 할 수 있다

사용자가 설치한 프로그램은 컴퓨터의 전원이 꺼졌다가 다시 켜진 후에도 존재해야하므로, 비휘발성 메모리인 디스크에 저장된다. 이 디스크에 존재하는 프로그램을 실행시키면, 프로그램이 동작하기 위해 다양한 연산이 수행된다

🔔 자료구조를 공부해야 하는 이유

프로그램은 기본적으로 어떤 데이터를 다룬다.
회원 관리 프로그램이라고 하면 회원 데이터를 다룬다. 회원의 정보를 기억하고, 보여주기도 하고, 탈퇴할 수도 있다. 회원 정보는 이름도 있고, 어떤 경우는 나이도 있다. 어떤 경우는 가입일이 있을 수 있다. 이러한 정보를 자료라고 하고, 이것을 어떻게 관리할 것이가 어떤식으로 저장할 것이가가 자료 구조이다

  • 배열: 어떤 값들을 일정하게 열거하여 다루는 것이다. 어떤 것은 값을 넣었다가 뺐다가 할 수도 있다. 이러한 것은 스택이라고 하는데, 스택의 경우는 마지막으로 쌓인 값이 먼저 나온다

  • 스택: 마지막 것을 빼서 사용하고 되돌려 놓을 때 다음 사람은 맨 위에 카드를 사용하는 방식

  • 큐: 먼저 들어간 값이 먼저 나온다. 물건을 살때 줄을 서는 경우 줄을 먼저 선 사람이 계산을 마치고 먼저 나가게 되는 것과 같다

✔️ 자신이 만들고자 하는 형태에 필요한 자료구조를 때에 맞게 원활하게 사용하기 위해서는 자료구조에 대한 이해가 필요하다!

0개의 댓글