본문 바로가기
스터디/CS & Network

메모리 구조에서 Stack과 Queue의 역할

by 헤콩 2021. 4. 14.
반응형

메모리 구조에서 왜 Stack과 Queue가 필요하지? 라고 생각하실 수 있겠지만.. 메모리 구조를 공부하시다보면 스택, 힙, 데이터, 코드 영역이 있는 거 아시죠? 여기서 스택 영역을 우리가 생각하는 Stack 역할로 생각할 수 있고, 힙 영역을 Queue 역할로 생각할 수 있습니다. 여기서 힙과 큐를 혼동하실 수 있는데요, 지금 말하는 의미는 같지만 큐는 자료구조론에서 사용하는 용어이고 힙은 메모리 관련 용어로 사용한다고 생각하면 될 것 같네요!

 

그리고 이런 스택과 큐의 원리를 메모리 구조에서는 보통 데이터를 처리할 때 데이터를 임시로 저장하거나, 입/출력 장치의 데이터를 일시적으로 저장할 때 사용합니다. 데이터를 잠시 보관해두는 일을 하기 위해 메모리 주소와 인덱스를 일일이 지정하는 일은 너무 복잡하기 때문에 스택과 큐를 사용해서 메모리 주소와 인덱스를 지정하지 않고도 배열의 요소를 읽고 쓸 수 있게 됩니다.

 

 

 

스택은 모두 알다시피 LIFO (Last In First Out) 이잖아요? 그래서 제일 나중에 쌓은 것을 제일 먼저 꺼낼 수가 있습니다. 그리고 먼저 쌓아놓은 것은 결국 누군가에게 주거나 얼마 후에 사용하기 위해 일시적으로 보관할 수 있죠.

 

네! 바로 이 원리입니다. 이처럼 일시적으로 데이터를 저장하는 것을 메모리에서 구현한 것이 바로 스택입니다. 그리고 인터럽트 처리, 정렬, 산술연산 등에서도 사용할 수 있죠.

 

 

 

는 모두 알다시피 FIFO (First In First Out) 이죠. 그래서 제일 먼저 넣은 데이터를 제일 먼저 꺼낼 수 있습니다. 저희가 보통 줄을 서면 가장 먼저 줄을 선 사람이 먼저 들어가게 되죠? 이런 원리를 이용해서 입출력 처리 타이밍을 조절하기 위한 버퍼가 될 수 있습니다. 그리고 일정하지 않은 시간별로 들어오는 데이터를 처리할 때도 사용할 수도 있습니다.

 

 

 

 

역시 자료구조든, 운영체제든 ,컴퓨터구조든.. 학교에서 수업들은 건 알고보면 다 연결되어 있네요😂

 

 

 

 

 

 

Reference

반응형

'스터디 > CS & Network' 카테고리의 다른 글

프로세스 (Process)  (0) 2021.05.19
메모리 단편화 (Memory Fragmentation)  (0) 2021.04.14
OSI 7계층이 뭐지??  (0) 2021.02.07
RESTful API란?  (0) 2021.01.28
TCP 동작 방식 (3-way handshake, 4-way handshake)  (0) 2021.01.08

댓글