본문/내용
4. 스택
보통 스택구조를 LIFO(Last In First Out) 라고 한다. 말 그대로 마지막에 저장한 데이터는 처음 얻어진다는 뜻이다. 처음 집어넣은 데이터는 제일 마지막에 얻어지게 되는 것이다. 이러한 방식이 컴퓨터에서는 메모리 영역 한 부분이 이런 식으로 동작하고 그 메모리 영역을 스택이라고 부르는 것이다. 스택을 생각해 내지 못했다면 많은 변수의 사용이나, 함수 호출은 할 수가 없었을 것이다. 그리고 스택은 프로세스가 생성될 때 필요한 만큼이 할당되어 진다. 즉 고정사이즈이다. 스택 오버플로우라던가, 스택 언더플로우는 스택이 고정사이즈이기 때문에 발생하는 에러이다.
위에서 프로세스 생성시에 스택은 정적으로 프로세스 공간에 할당 된다고 하였다. 그리고 스택은 내부에서도 할당과 반환이 이루어진다. 예를 들어 스택공간이 1000byte라고 한다면 이 스택의 상대적인 주소 값은 0~999까지 가질 수 있다. 이 비어있는 스택에 1바이트 값을 하나 넣어주면 1바이트가 할당되는 것이라고 할 수 있다. 1바이트 값을 하나 스택에서 빼오는 것은 스택에서 1바이트를 반환하는 것으로 생각 할 수 있다. 이런 스택의 할당과 반환을 처리하기 위해서 CPU에서는…