개린이를 위한 기초 상식 뿜뿜!

[개발 상식] 컴퓨터 기초(메모리 구조)

챌링킴 2021. 4. 18. 14:00
반응형

컴퓨터의 기본 구조는 주어진 정보 데이터를 처리하기 위해 크게

입력장치, 기억장치, 연산(처리)장치, 제어장치, 출력장치 등 5가지 단위로 이루어져 있다.

 

RAM(Random Access System, Memory, 주기억장치)

컴퓨터의 작업공간이라고도 함

- 데이터를 저장하는 역할

- 데이터 처리속도가 빠르나 휘발성이 특징

 

CPU(Central Processing Unit, 중앙정보처리시스템)

- 기억장치와 연산(처리)장치, 제어장치를 묶은 것

- 중앙에서 사용자들이 입력한 명령어를 해석하고 연산한 후, 그 결과를 제어하는 역할을 담당함

 

HDD(Hard Disk, 하드디스크)

- 기억장치

- 데이터를 보관, 저장하는 장치

- 데이터 처리속도가 RAM보다 느림

 

OS(Operating System, 운영체제)

- 컴퓨터 시스템의 각종 자원을 효율적으로 관리하고 컴퓨터 하드웨어와 시용자 간의 인터페이스를 담당하는 시스템

- 하드웨어에서 적당한 전기신호를 받아 명령을 실행해줌

- RAM에 공간을 할당해줌(Code, Data, Stack, Heap, 총 4가지 영역)


프로그램의 정보를 읽어 메모리에 로드되는 과정


 

코드영역

- 우리가 작성한 소스코드가 들어가는 영역

 

데이터영역

- 전역변수와 static 변수가 할당되는 영역

 

힙영역

- 프로그래머가 할당/해제하는 메모리공간

 

스택영역

- 프로그램이 자동으로 사용하는 임시 메모리공간

- 함수 호출 시 생성되는 지역변수와 매개변수가 저장되는 영역

- 함수 호출이 완료되면 사라짐

 

 

HEAP영역과 STACK영역은 같은 공간을 공유함

HEAP이 메모리 위쪽 주소부터 할당되면 STACK은 아래쪽부터 할당되는 방식

그래서 각 영역이 상대 공간을 침범하는 일을 각각 HEAP OVERFLOW, STACK OVERFLOW 라고 칭한다.

STACK영역이 클수록 HEAP영역이 작아지고, 반대도 마찬가지

 

HEAP과 STACK의 장단점

- HEAP

변수는 전역적으로 액세스 가능

메모리 크기제한 X

상대적으로 느린 액세스

변수는 자바에서 NEW

- STACK

매우 빠른 액세스

지역변수만 가능

스택 크기 제한 O

반응형

'개린이를 위한 기초 상식 뿜뿜!' 카테고리의 다른 글

[개발 상식] Web 기초 - 2  (0) 2021.06.13
[개발 상식] Web 기초 - 1  (0) 2021.06.13
[개발 상식] CMD 명령어  (0) 2021.05.29