프로세스에 대한 연산

By 01/10/2018OS Concept

프로세스에 대한 연산

 

대부분 시스템 내의 프로세스들은 병행 수행 될 수 있으며 반드시 동적으로 생성되고 제거되어야 한다.

 

프로세스는 실행 도중에 프로세스 생성 시스템 호출을 통해서 여러 개의 새로운 프로세스들을 생성 할 수 있다. 생성하는 프로세스를 부모 프로세스라 하며 생성된 새로운 프로세스들은 자식 프로세스라 부른다. 새로운 프로세스들은 다시 새로운 프로세스들을 생성할 수 있으며 그 결과 트리 구조의 프로세스가 형성 된다.

 

대부분의 운영체제들은 프로세스 식별자(PID)에 의해 프로세스를 구분하며 식별자는 정수 이다.

 

프로세스가 새로운 프로세스를 생성할 때 실행과 관련하여 두 가지 가능성이 있다.

  • 부모가 계속해서 자식과 병렬로 실행 된다.
  • 부모가 모든 자식 또는 일부 자식이 끝날 때까지 기다린다.

 

새로운 프로세스들의 주소 공간 측면에서 볼 때 다음과 같은 두 가지 가능성이 있다.

  • 자식 프로세스는 부모 프로세스의 복사본이다. (자식 프로세스는 부모와 똑 같은 프로그램과 자료를 가진다.)
  • 자식 프로세스가 자신에게 적재될 새로운 프로그램을 갖고 있다.

 

프로세스 종료는 프로세스가 마지막 문장의 실행을 끝내고 exit() 시스템 호출을 사용하여 운영체제에게 자신의 삭제를 요청 한다. 이 시점에서 프로세스는 부모 프로세스에게 wait() 시스템 호출을 통해 상태 값을 반환할 수 있다. 이때 물리 메모리와 가상 메모리, 열린 파일, 입/츨력 버퍼를 포함한 모든 자원이 운영체제로 반납된다.

 

프로세스가 종료되는 다른 경우를 살펴 보자.

  • 자식이 자신에게 할당된 자원을 초과하여 사용 할 때
  • 자식에게 할당된 태스크가 더 이상 필요 없을 때
  • 부조가 종료하는데 운영체제는 부모가 종료한 후에 자식이 수행되는 것을 허용하지 않는 경우

 

VMS를 비롯한 일부 시스템에서는 부모 프로세스가 종료된 이후 자식 프로세스가 존재할 수 없다. 그러한 시스템에서 프로세스가 종료되면 부모로부터 비롯된 모든 자식 프로세스들도 종료되어야 한다. 이것을 연속적 종료(Cascading Termination)이라 하며 운영체제가 직접 수행 한다.

 

operation system, 운영체제, 운영체제구조, 컴퓨터구조, 컴퓨터일반, 컴퓨터프로세스, 프로세스 연산, OSConcept, sqlmvp, SQL Angeles

 

Leave a Reply

%d bloggers like this: