컴퓨터 & 네트워크/운영체제
Process Management 알아보기
D.Y
2018. 1. 22. 22:56
반응형
안녕하세요.
오늘은 프로세스 관리(Process Management)하는 방법에 대해서 알아보도록 하겠습니다.
프로세스를 관리하는 시스템콜 4가지
- fork()
- 부모 프로세스를 복제하는 시스템 콜 - exec()
- 어떤 프로그램을 새로운 프로세스로 태어나도록 하는 시스템 콜 - wait()
- 자식 프로세스가 종료될때까지 기다렸다가(blocked) 자식이 죽으면 ready 상태로 변경되는 시스템 콜
- shell(command) 프로그램도 wait()시스템 콜을 사용하는 대표적인 프로그램 입니다. - exit()
- 프로세스를 종료하는 시스템 콜
- kill, break 등으로 프로세스를 죽이는 경우, 또는 윈도우창에서 X버튼을 누르는 경우 모두 해당 됩니다.
조금 더 자세히 알아보겠습니다.
fork()
- 부모 프로세스 id는 양수로 할당되고, 자식 프로세스 id는 0으로 할당 됩니다.
- 부모 프로세스를 복제하여 생성된 자식 프로세스는 메모리를 처음에는 공유합니다.
(최초에는 Program Counter만 복제해서 같은 주소공간을 바라보고 있습니다.) - 나중에는 자식 프로세스가 write하는 순간(즉, 별도의 데이터 저장이 필요한 순간) 메모리를 할당 받습니다.
- 이를 Copy-on-write(COW)라고 합니다.
- 자식 프로세스는 fork()된 시점 이후 문맥부터 실행됩니다.
fork() / exec() / wait() / exit()
- 전체적인 흐름도
참조
- http://www.kocw.net/home/search/kemView.do?kemId=1046323#
반응형