-
[OS] 4-1. Process ManagementComputer Science/운영체제 2020. 9. 23. 15:36
# 프로세스의 생성
부모 프로세스가 자식 프로세스를 Copy-on-write(COW) 기법으로 생성한다. COW는 무언가의 변경(write)이 있을 때, 부모의 주소 공간 중 변화가 있는 부분을 copy해 자식의 주소 공간을 만드는 기법이다. 또한, 자식이 자식을 생성하고 그 수가 많아지면 프로세스는 트리를 형성한다.
- 자식은 부모 프로세스의 ① 주소 공간(binary & OS data)을 복사해 ② 그 공간에 새로운 프로그램을 올린다.
ex) 유닉스에서는 fork() 시스템 콜이 주소 공간을 복사하고 exec() 시스템 콜이 새로운 프로그램을 메모리에 올린다.
- 생성된 프로세스는 자원을 운영체제로부터 받거나 부모 프로세스와 공유한다. (부모와 공유하지 않는 것이 일반적)
- 수행 : 부모와 자식이 공존하며 수행되는 모델 / 자식이 종료될 때까지 부모가 기다리는 모델
# 프로세스의 종료
- 프로세스는 마지막 명령을 수행한 후 exit이라는 시스템콜을 통해 운영체제에게 이를 알려준다. 프로세스 종료는 항상 자식이 먼저 종료되고 그것을 부모 프로세스가 정리하는 원칙이 있다. 그리고 wait 시스템콜을 사용해 자식 프로세스는 자신이 종료될 때 부모 프로세스에게 output data를 보내며 각종 자원들을 운영체제에 반납한다.
- 부모 프로세스가 자식의 수행을 abort 시스템콜로 강제 종료시키는 경우도 있다.
· 자식이 할당 자원의 한계치를 넘어설 때 (비유: 자식이 돈을 펑펑 쓸 때)
· 자식에게 할당된 태스크가 더 이상 필요하지 않을 때 (비유: 자식에게 시키던 일이 전부 끝나서 자식이 필요 없을 때)
· 부모가 종료될 때, 여러 개의 자식 프로세스들을 차례차례 단계적으로 죽이고 부모가 죽는다.
→ 프로세스의 세계는 꽤 잔인하다!
출처 : KOCW '운영체제' / 이화여자대학교 반효경 교수님
본 포스팅은 이화여자대학교 반효경 교수님의 운영체제 강의를 듣고 정리한 내용을 담고 있습니다.
'Computer Science > 운영체제' 카테고리의 다른 글
[OS] 5-1. CPU Scheduling (0) 2020.10.08 [OS] 4-2. Process Management (0) 2020.09.24 [OS] 3-2. Process (0) 2020.09.21 [OS] 3-1. Process (0) 2020.09.16 [OS] 2-2. System Structure & Program Execution (0) 2020.09.15