ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 프로세스에 대한 연산
    운영체제/프로세스 2018. 2. 3. 16:19

    대부분의 시스템 내의 프로세스들은 병행 실행될 있으며

    반드시 동적으로 생성되고 제거 되어야 한다.

     

     

    프로세스 생성

    프로세스는 실행 도중에 프로세스 생성 시스템 호출을 통하여 여러 개의 새로운 프로세스를 생성한다.

    생성하는 프로세스를 부모 프로세스 생성되는 프로세스를 자식 프로세스라고 한다.

    결과 프로세스 트리 형성한다.

     

    현대 운영체제들은 프로세스 식별자 통해서 프로세스를 구분한다.

    프로세스가 자식 프로세스를 생성할 자식 프로세스는 자신의 임무를 달성하기 위해 자원이 필요하다.

    자식 프로세스는 운영체제로부터 직접 자원을 얻거나, 부모 프로세스 자원의 부분을 사용한다.

     

    부모 자식간 자원 공유 방식

    모든 자원 공유

    일부 자원만 공유

    자원을 공유하지 않음

     

    프로세스가 새로운 프로세스를 생성할 프로세스를 실행시키는 데에는 두가지 방법이 있다.

    부모와 자식이 병행하게 실행을 계속, 부모가 모든 자식 혹은 일부 자식이 끝날때 까지 기다림

     

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

    자식 프로세스는 부모 프로세스의 복사본, 자식 프로세스는 자신에게 적재될 새로운 프로그램을 가진다.

     

    새로운 프로세스는  fork() 시스템 호출로 생성된다.

    fork() 시스템 호출 메모리 공간을 새로운 프로그램으로 바꾸기 위해서 exec() 시스템 호출을 사용한다.

     

     

    프로세스의 종료

    프로세스가 마지막 문장의 실행을 끝내고 Exit 시스템 호출을 사용하여 운영체제에게 자신의 삭제를 요청할 경우 종료한다.

    통상적으로 프로세스 종료 프로세스는 자신의 부모에게 wait() 시스템 호출을 통해 상태 값을 반환한다.

    프로세스 삭제 프로세스의 모든 자원은 운영체제로 반납된다.

     

    부모 프로세스가 자식의 실행을 종료하는 경우

    자식이 자신에게 할당된 자원을 초과해 사용할

    자식에게 할당된 태스크가 이상 필요 없을

    부모가 exit 경우

     

    몇몇 시스템에서는 부모 프로세스가 종료된 이후에 자식 프로세스가 존재할 없다.

    그러한 시스템에서는 프로세스가 종료되면 모든 자식 프로세스들도 종료 되어야 한다.

    이를 연쇄식 종료라고 한다.

     

    부모 프로세스가 기다리지 않는 자식 프로세스를 좀비 프로세스라고 하고

    부모 프로세스가 Wait 호출 없이 종료 자식 프로세스는 고아 프로세스라고 한다.

    '운영체제 > 프로세스' 카테고리의 다른 글

    클라이언트 서버 환경에서 통신  (0) 2018.02.03
    프로세스간 통신  (0) 2018.02.03
    스케줄러  (0) 2018.02.03
    프로세스 스케줄링  (0) 2018.02.03
    프로세스 개념  (0) 2018.02.03

    댓글