운영체제 6-1 컴파일과 프로세스

이창훈·2022년 4월 29일
0

운영체제스터디

목록 보기
19/19

우리가 프로그래밍 언어로 만든 코드가 어떻게 프로세스가 되고 메모리에 할당되는지 살펴보자

프로그래밍 언어는 컴파일 언어와 인터프리터 언어 두 개로 구분할 수 있다.

컴파일 언어는 개발자가 코드를 작성하고 컴파일이라는 과정을 거쳐서 0과 1로 된 기계어로 실행파일을 만든다.
컴파일 과정에서 개발자가 문법 오류를 일으켯는지 검사하고 CPU에서 처리 가능한 기계어로 실행파일을 만들어 놓기 때문에 속도가 빠르다.
C, C++, C#등이 이에 속한다.

인터프리터어는 개발자가 작성한 코드를 미리 기계어로 만들지 않고 실행시 코드를 한 줄 씩 해석해 실행하는 언어이다.

미리 검사를 하지 않기 때문에 실행할 때 오류가 날 수 있고 속도도 컴파일 언어와 비교하면 느리다.
자바스크립트, 파이썬, 루비 등이 이에 속한다.

프로세스의 메모리 구조를 다시 살펴보자
프로세스는 코드영역과 데이터영역 그리고 스택과 힙영역으로 나뉩니다.

코드영역은 말 그대로 실행해야 할 코드가 들어가는 영역이고 데이터 영역은 전역변수나 배열이 들어가는 영역이다.

스택과 힙은 프로세스가 실행될 때 할당 되는 메모리로 스택에는 지역 변수와 함수 관련 값들이 들어가고 힙은 실행중에 메모리 공간을 할당할 수 있는 유동적인 공간이다.

컴파일언어로 작성된 코드가 어떻게 프로세스가 되는지 알아보자.

컴파일 과정은 다음과 같다.

개발자가 코드를 작성하고 test.c라는 파일로 저장했다. 이제 컴파일러를 실행시키면 가장 먼저 전처리 단계를 밟는다.

전처리기는 test.c파일을 훑어보고 전처리 구문을 처리해준다.

profile
실패를 두려워하지 않고 배우고 기록하여 내일의 밑거름 삼아 다음 단계로 성장하겠습니다.

0개의 댓글