상세 컨텐츠

본문 제목

3.3 프로세스 연산

Computer Science/OS Concepts

by RACC8N 2020. 4. 17. 17:33

본문

프로세스 생성(Creation)

- 프로세스는 create-process 시스템 호출을 사용하여 new 프로세스를 생성

 > 부모 프로세스 - 자식 프로세스

- 생성된 프로세스들의 계속적인 프로세스 생성의 결과로 프로세스 트리(process tree)를 형성함

- 프로세스들은 프로세스 식별자(process identifier, PID)로 구분

 

부모프로세스와 자식프로세스 간의 여러 가지 자원 공유 방법

- 자식 프로세스가 OS에서 자원을 직접 얻음

 > 부모와 자식 프로세스간에 자원을 공유하지 않음

- 자식 프로세스가 부모 프로세스 자원의 부분집합을 사용

 > 자식 프로세스는 부모 프로세스의 모든 자원 또는 일부 자원 공유

 > 부모 프로세스는 자식 프로세스들에게 자신의 자원을 분할 제공

 

전형적인 Linux 시스템의 프로세스 트리

 

프로세스 생성

실행 (Execution)

- 부모와 자식이 병행(concurrent)수행,  or

- 부모가 모든 또는 일부 자식이 긑나기를 기다림(wait)

 

주소 공간 (Address space)

- 자식은 부모의 복사본(duplicate) or

- 자식은 새로 적재되는 프로그램을 가짐

 

UNIX 

- fork() : new process 생성 (부모 프로세스의 주소공간의 복제본으로 구성됨)

- exec() : 프로세스 메모리 공간을 새 프로그램으로 대치하여 새로운 프로그램을 실행

 

Win32API

- CreateProcess() : 프로그램을 적재하여 자식프로세스를 생성하여 실행, 인수가 복잡함

 

UNIX에서의 프로세스 생성

프로세스를 생성하는 C 프로그램 (UNIX)

UNIX에서의 fork/exec/wait 동작

Windows에서의 프로세스 생성

프로세스 종료

 

프로세스의 정상 종료

- 프로세스가 마지막 문장의 실행이 끝나면 exit()시스템 호출을 하여 운영체제에게 자신을 삭제 요청 함

- 자식 프로세스는 부모에게 상태 값(대개 정수)을 반환할 수 있다.

  > 부모는 Wait() 시스템 호출을 하여 이 값을 기다림

- 운영체제는 프로세스가 사용한 자원을 반납(deallocate)함

 

좀비(Zombie)프로세스

- 종료되었지만 부모가 Wait()를 아직 호출하지 않아서 남아있는 프로세스(terminated/zombie 상태)

- 짧은 시간 동안 이 상태에 머무름

 

프로세스의 비정상 종료

다음 경우에 부모가 abort() 시스템 호출을 하여 자식을 종료할 수 있음

- 자식 프로세스가 자신에게 할당된 자원을 초과하여 사용할 때

- 자식 프로세스에게 할당된 작업이 더 이상 필요 없을 때

- 부모 프로세스가 종료하는데, 운영체제가 자식 프로세스가 계속하여 실행하는 것을 허용하지 않을 때

 > 연쇄적 종료 : 부모 프로세스가 종료되면 자식 프로세스도 종료되어야 한다. 

 

부모 프로세스 종료 후에 자식 프로세스의 계속적인 실행을 허용하는 경우

- 모든 프로세스는종료 후 처리를 위하여 부모 프로세스가 있어야 함

- 자식 프로세스는 고아(orphan)프로세스가 되며, init 프로세스를 자식 프로세스의 새로운 부모 프로세스로 지정함

 

 

'Computer Science > OS Concepts' 카테고리의 다른 글

3.5 IPC 시스템사례  (0) 2020.04.24
3.4 프로세스간 통신 (Interprocess Communication)  (0) 2020.04.24
3.2 프로세스 스케줄링  (0) 2020.04.17
3.1 프로세스 개념  (0) 2020.04.17
2.10 시스템 부트  (0) 2020.04.17

관련글 더보기

댓글 영역