※ 이전 블로그의 포스트임(2016/11/2)

Revison 2020/2/9 : 내용을 보강함


 

 2015년 판 '시작하세요 C# 6.0' 교재의 p.70 에는 다음의 문구가 있다.

 

3.3.4.1 2가지 저장소: 스택과 힙

...

개별 스레드마다 전용으로 사용할 수 있는 저장소가 메모리에 할당되는데 그 영역을 스택이라고 한다. 반면 힙은 프로그램에서 필요에 의해 메모리를 사용하겠다고 요청했을 때 사용할 수 있는 저장소다.

...

 

 미묘하다. old school 개발자인 나에게는 뭔가 고개가 갸우뚱 해지는 문구다.

 왜냐하면, stack은 스레드(thread)라는 개념이 생기기 전인 1950년대 부터 사용된 메모리 모델이기 때문이다. 즉, 위의 표현은 선후가 바뀌어서 마치 스택이 스레드를 위한 저장공간으로 인식 될 여지가 있다는 것이다. 고로, 기술의 순서를 고려하면 아래와 같이 수정하는 것이 어떨까 하는 생각이 들었다.

 

...

... 애플리케이션은 지역 변수를 저장하기 위한 공간으로 스택이라는 저장소를 이용하는데, 개별 스레드는 이를 전용으로 할당 받아 사용하게 된다. ........

.... 

 

 그리고, 교재의 표현에 어울리는 저장공간은 아마도 TLS(Thread Local Storage)가 아닐까 한다.

 

 내친 김에, 옛 지식을 되새김도 할 겸 포스팅을 하나 해 보려고 한다. 공사 중...

 

Posted by JMAN