0%

OS - 프로세스 구조

프로세스란?

프로세스란 간단히 정리하면 실행 중인 프로그램 이라고 할 수 있습니다. 프로그램은 실행 하기 전에는 보조 기억 장치(SSD나 HDD)에 저장되어 실행을 기다리고 있는데, 이 프로그램이 실행을 요청받아 메모리에 적재된다면 프로세스가 됩니다.

프로세스의 구조

프로세스 구조 이미지 검색결과

프로세스는 일반적으로 code, data, heap, stack 영역으로 이루어집니다.

  1. Text(Code) 영역
    • Text 영역은 프로그램의 코드가 저장되는 영역이다. CPU는 이곳에 저장되어 있는 코드를 한 줄씩 실행시키고, PC(process counter)가 다음 실행할 코드의 주소를 가리키고 있습니다.
  1. data 영역
    • data 영역은 전역 변수, 정적 변수 등의 데이터가 저장되는 공간입니다.
  1. Heap 영역
    • Heap 영역은 프로그램 실행 시 동적으로 할당되는 데이터가 저장되는 공간입니다.. 이 공간은 사용자가 직접 관리할 수 있습니다.
  1. Stack 영역
    • Stack 영역은 프로그램에서 함수 호출 시, 함수의 정보가 저장되는 영역입니다. 지역 변수, 매개 변수, 함수 종료시 돌아갈 리턴 주소 등이 저장되는데, 이 구조를 스택 프레임이라고 합나다. Stack 영역이라는 이름답게 FIFO 방식으로 데이터가 push되고 pop 됩니다.
    • 스택의 최상단 부분을 SP(Stack pointer)가 가리키고 있습니다.

프로세스는 일반적으로 다음과 같은 구조를 가지고 있고, 각각의 이름은 운영체제마다 조금씩 차이가 있습니다.