Language/C 및 C++
C언어 프로세스
innit
2021. 9. 19. 23:24
C언어로 작성한 '소스 파일'은 컴파일 작업과 링크 작업을 거쳐 기계어로 이루어진 '실행 파일'이 됩니다. 그런데 이 실행 파일에 있는 명령들은 CPU가 직접 실행할 수 없습니다. CPU가 이 명령들을 실행하려면 먼저 운영체제가 실행 파일의 명령들을 메모리에 재구성해주어야 합니다.
이렇게 운영체제에 의해서 명령들이 메모리에 재구성된 것을 '프로세스(Process)'라고 합니다. 이렇게 메모리에 프로세스가 구성되면 CPU는 프로세스에 저장된 명령들을 실행할 수 있기 때문에, 프로세스를 '실행 중인 프로그램'이라고도 부릅니다.
프로세스에서 여러 가지 정보를 기억하는 메모리 공간을 '세그먼트'라고 부릅니다. 즉 프로세스는 세그먼트의 집합으로 구성되어 있습니다. 프로세스의 세그먼트는 다음과 같이 구성되어 있습니다.
1) 코드 세그먼트
2) 데이터 세그먼트
3) 힙 세그먼트
4) 스택 세그먼트
코드 영역은 컴파일되어 번역된 '기계어 명령문'이 저장됩니다.
데이터 영역은 프로그램이 시작해서 끝날 때까지 계속 사용되는 데이터들이 보관됩니다.
힙 영역은 프로그래머가 동적으로 메모리를 할당하여 사용합니다.
스택 영역은 프로그램 실행 중에 필요한 임시 데이터를 저장할 때 사용합니다.
728x90
반응형