System Stack

Minjun_·2022년 1월 18일
0

OS

목록 보기
2/2
post-thumbnail

System Stack

함수의 호출과 복귀에 사용되는 스택

시스템 스택은 subroutine call에 관련된 정보를 저장하는데 사용된다.

  • 함수의 매개변수, 함수가 끝나면 돌아갈 return 주소, 함수의 지역변수를 저장한다.

  • sub program에 사용되는 스택을 Stack frame이라고 한다.

스택은 한정된 크기를 가지고 있기 때문에, "overflow"가 일어날 수 있다.

  • 오버플로우는 리턴하지 않는 함수들이 계속 호출 될 경우에 일어난다.

  • 프로그램 종료, 메모리 해제 등 적절한 조치가 취해지지 않으면 다른 프로그램, OS의 메모리 영역을 침범할 수 있기 때문에 위험하다.

#include <stdio.h>

void A()
{
	printf("A\n");
}

void B()
{
	printf("B\n");
}

int main(void)
{
	A();
	B();
	return (0);
}

void recur()
{
	printf("Stack Overflow\n");
	recur();
}

int main(void)
{
	recur();
	return (0);
}
profile
졸음을 이겨내자..!

0개의 댓글