따..딱히 공부하려고 포스팅하는 건 아니니까..!
[리눅스]프로세스 제어 (프로세스 생성) 본문
새로운 프로세스 생성하기
새로운 프로세스를 생성하는 유일한 방법 fork() 시스템 호출이다.
#include <sys/types.h> #include <unistd.h> pid_t fork(); // pid_t는 int형 이 시스템 호출은 한번 호출 되면 자식 프로세스를 만드므로, 두 번 반환한다. (= 자식 프로세스에서 0을 반환, 부모 프로세스에서 자식 프로세스의 ID를 반환) 실패 시 -1을 반환한다. |
자식 프로세스(child process) : 새로 생성되는 프로세스, 부모 프로세스를 똑같이 복제 (= 부모의 코드, 데이터, 스택, 힙 등을 똑같이 복제)
부모 프로세스(parent process) : 자식 프로세스를 생성한 프로세스
※ 이때, 자식 프로세스와 부모 프로세스는 독립적으로 실행을 한다. 즉, fork() 시스템 호출 이후의 코드부터 실행을 계속 한다.
- fork() 사용 예
1) 자식 프로세스 생성
결과
2) 1개의 부모 프로세스에서 자식 프로세스 2개 생성
결과
두가지 예시를 들었는데, 두 예시의 핵심은 다음과 같다.
1. 자식 프로세스는 fork()의 개수만큼 생성된다.
2. 자식 프로세스는 나중에 생긴 것이 먼저 실행된다.
'시스템|서버|네트워크' 카테고리의 다른 글
[리눅스]프로그램 실행과 종료 (0) | 2016.04.07 |
---|---|
쓰레드 (0) | 2016.03.21 |
vagrant와 윈도우즈 연결하기 (0) | 2015.01.14 |
[리눅스]프로세스(Process) (0) | 2014.12.09 |
파일 시스템(File System) (1) | 2014.11.26 |
Comments