시스템 보안정보보안기사 · 2013년07월06일 · 2/100
2.사용자가 작성한 프로그램을 운영체제에 실행하도록 제출하면 운영체제는 이를 받아 프로세스를 생성한다. 이 때 생성된 프로세스의 주소 영역(Address Space)을 옳게 열거한 것은?
1
메모리 영역, 데이터 영역, 정적영역
2
텍스트 영역, 스택 영역, 코드 영역
3
코드 영역, 텍스트 영역, 데이터 영역
4
코드 영역, 데이터 영역, 스택 영역정답
해설
코드 -> 맨 아래에 있는 영역으로 텍스트라고도 한다. 텍스트 영역은 CPU가 해석 가능한 기계어 코드가 저장되어 있다. 프로그램이 수정되면 안되므로 Read Only로 되어있음 데이터 -> 코드 바로 위에 있는 코드로 전역 변수나 static 변수등 데이터를 저장하는 영역이다. 이는 프로그램이 실행되면 켜지고 프로그램이 꺼지면 꺼진다. 힙 -> 런타임에 크기가 결정되는 영역, 공간이 동적으로 할당 및 해제, 동적 데이터에 대한 영역. C에서 malloc( )같은 경우 스택-> 지역변수, 매개변수, 리턴 값 등 함수가 호출될 때 사용되었다가 사라지는 데이터를 저장하는 영역이다. 프로그래밍을 해본 사람은 좀 더 알기 쉽다. C로 해석하자면 const int a = 30; int function( ){ } -> 상수 및 함수 = 텍스트 static int b = 30; -> 정적 변수 및 전역변수이므로 데이터 char *arr = malloc(sizeof(char) *10); -> 동적으로 할당받아서 힙 int c = 30; int function(int c){ } -> 그냥 매개변수나 변할 수 있는 지역변수는 스택 아래서부터 텍데힙스 라고 하는데 보통 텍데스만 나옴 외울 때는 탭댄스라고 하면 됨 텍스트 = 코드