Live Today

[운영체제] 프로세스 생성 단계 본문

Computer Science/운영체제

[운영체제] 프로세스 생성 단계

ilivetoday 2023. 1. 30. 22:03
반응형

프로세스 트리 구조

  • 프로세스는 프로세스에 의해서 만들어진다.
  • 부모 프로세스 (Parent Process) : 다른 프로세스를 생성한 프로세스
  • 자식 프로세스 (Child Process) : 다른 프로세스에 의해 생성된 프로세스
  • 형제 프로세스 (Sibling Process) : 부모가 동일한 프로세스들 간의 관계
  • 프로세스 트리 (Process Tree) : 부모 - 자식 관계를 트리형태로 나타낼 수 있음

 

✅ 프로세스 생성 단계

  • 자식은 부모의 공간을 복사한다.
  • 이를 복제 생성된다고 말한다.
  • 부모의 공간이란 프로세스 문맥을 의미한다.
  • Address Space(OS data, binary) & code, data, stack + PC까지 복제를 해서 태어난다.
  • 그리고 자식 프로세스는 복제한 공간에 새로운 프로그램을 올린다.

즉 자식 프로세스 생성과정을 2단계로 나눌 수 있다.
1단계 : 부모 프로세스를 복제하는 단계 = fork ( )
2단계 : 복제한 공간에 새로운 프로그램을 올리는 단계 = exec ( )

 

이러한 과정을 거쳐 서로 다른 프로그램들이 컴퓨터에 존재하게 된다.

프로세스의 생성은 시스템 콜을 통해 요청받아 생성되므로 운영체제에 의해서만 생성이 가능하다.

 

프로세스 소멸 단계

  • main함수 끝까지 도달해 return이 일어났을 때
  • exit가 호출되었을 때 : wait 상에 있는 부모 프로세스에 종료 이벤트를 알려준다. 부모가 wait상태에 있지 않다면 자식 프로세스의 주소 공간과 할당 자원은 없어지지만, PCB는 그대로 유지된다.(이러한 상태를 좀비(zombie)상태라고 한다.) 이렇게 하는 이유는 wait 구문의 수행보다 자식의 exit가 먼저 일어났을 때에도 부모에게 자식의 정보(exit code, 종료되면서 발생한 정보, PCB에 저장되어 있다)를 알려주기 위함이다.
  • abort로 인해 종료요청이 일어났을 때 : shell에서 작업을 중단할 때 ctrl+c와 같은 명령을 활용한다. 이것이 부모 프로세스가 abort를 하는 예이다. 이 때 자식프로세스의 PID값이 필요한데, 이는 fork의 리턴값으로 얻을 수 있었다.

 


🌐 참고 링크

운영체제 - 프로세스(process)의 생성과 종료

[운영체제] 프로세스의 생성과 종료

프로세스 생성, 종료, 통신

https://gusdnd852.tistory.com/257