학습 목표 
- 프로세스가 생성된 후 어떤 상태 변화를 거치는지 알아본다.
- 프로세스 제어 블록의 구성과 문맥 교환 시 동작 과정을 알아본다.
- 프로세스의 생성과 복사, 전환 과정을 알아본다.
- 스레드의 개념을 이해하고 멀티스레드 시스템의 장점을 알아본다.

       


      목차

      • 프로세스의 동적 할당 영역

       

      프로세스의 동적 할당 영역

       

      정적 할당 영역

      포인터를 제외한 일반적인 변수를 선언할 때 데이터 크기가 결정된다. 즉, 정적 할당 영역은 프로세스가 실행되기 전에 위치와 크기가 결정된다.

      • 코드 영역
        프로그램의 본체가 있는 영역
      • 데이터 영역
        프로그램이 필요로 하는 데이터와 변수가 저장된 공간

       

      동적 할당 영역

      스택 영역과 힙 영역은 프로세스가 실행될 때 만들어진다. 크기가 유동적으로 변화한다. 

       

       

      스택 영역과 함수 동작 과정

       

      add 함수를 호출할 때 함수가 동작한 후 이전 함수가 있던 메모리 위치로 돌아오기 위해 함수 호출 후 이전 위치를 스택 영역에 저장한다. 지역 변수는 함수가 호출될 때만 사용되다가 함수가 종료되면 반환해야한다. 지역 변수를 저장할 때 스택이 사용된다.

       

      힙 영역과 데이터 영역
      void main()
      {
          int sarr[50];
          int *darr;
          
          darr = new int;
          delete darr;
      }

      sarr는 50이라는 데이터 크기가 정해졌으므로 데이터 영역에 저장되며, darr는 해당 new int 문구를 만날 때 메모리 공간이 정해지므로 힙 영역에 저장된다.