본문 바로가기
운영체제/[ecourse] Windows Programming

5-4. Stack Memory

by 헛둘이 2022. 9. 19.
스택이란?
  • 지역 변수, 매개 변수를 주로 보관하는 메모리

 

 

스택의 특징
  • 스레드 당 한 개의 스택 생성(프로세스는 생성 시 1개의 주스레드를 가짐)
  • 스택은 아래로 자란다 (높은 주소에서 낮은 주소 방향으로 커짐)

 

 

 

스택의 동작 방식
  • 스레드가 만들어지면 1M 가상 공간을 예약한다.
  • 그리고 1개를 확정해 놓고 다음 페이지도 같이 확정하는데
  • 다음 페이지는 확정 시 PAGE_GUARD 보안 옵션을 같이 걸어놓음
  • PAGE_GUARD는 최초 접근 시 예외를 발생시키는 옵션 (윈도우가 처리)
  • 그래서 현재 페이지를 다 쓰고 다음 페이지에 접근하면 예외가 발생하고
  • 그 시점에서 다시 다음 페이지를 PAGE_GUARD 옵션으로 할당한다.
  • 1M는 총 256페이지를 일컫는데, 곧 0~255개의 페이지를 의미한다.
  • 253번까지 확정하면 254번은 PAGE_GUARD 옵션 없이 사용 가능
  • 255번 페이지에 접근하면 STACK OVERFLOW 예외가 발생한다.

'운영체제 > [ecourse] Windows Programming' 카테고리의 다른 글

6-2. 동기화 개념과 Critical Section  (1) 2022.09.20
6-1. Thread Basic  (0) 2022.09.20
5-3. Heap Memory  (0) 2022.09.18
5-2. Virtual Memory Allocation  (0) 2022.09.18
5-1. Virtual Address Space  (1) 2022.09.16

댓글