fork는 이함수를 호출한 그로세스와 같은 프로세스를 만든다. 따라서 새로 만들어진 자식 프로세스는 부모 프로세스에게 다음 특징을 상속 받는다.
- 부모 프로세스의 실제 사용자 ID, 셀제 그룹 ID, 유효 사용자 ID 그리고 유효 그룹ID
- 부모 프로세스의 set-user-id, set-group-id 모드 비트
- 부모프로세스의 보조 그룹 ID 목록
- 부모 프로세스의 저장된 사용자 ID와 저장된 그룹 ID
- 부모 프로세스의 모든 환경변수와 부모 프로세스가 열고 있는 모든 파일 디스크립너 그리고 파일 오프셋
- 부모 프로세스가 파일 디스크립터에 설정안 close-on-exec 플래그
- 부모 프로세스의 파일 모드 생성 마스크(umask)
- 부모 프로세스가 설정한 신호 처리 방법(SIG_DFL, SIG_IGN, SIG_HOLD또는 신호 처리 함수 주소값)
- 부모 프로세스의 세션 ID와 프로세스 그룹 ID
- 부모 프로세서의 제어 터미널
- 부모 프로세스의 nice값
- 부모 프로세스의 현재 작업디렉토리
- 부모 프로세스의 자원 제한값
자식 프로세스와 부모 프로세스와의 다른점
- 자식 프로세스에는 자신만의 유일한 프로세스 ID가 있다.
- 자식 프로세스에는 자신만의 부모 프로세스 ID가 있다.
- 자식 프로세스에는 부모 프로세스가 열고 있는 파일 디스크립터에 대한 자신만의 복사본이 있다.
따라서 복사본 파일 디스크립터를 닫는다 해도 부모 프로세스에게 아무런 영향을 미치지 않는다.
그러나 부모와 자식 프로세스가 각 파일 디스크립터의 오프셋값을 공유하기 때문에 한 파일에 동시에
쓰려고 한다면 결과가 섞일수도 있다.
또한 한 파일에서 동시에 읽으려고 한다면 데이터를 일부만 읽게 될수도 있다.
- 자식 프로세스는 부모 프로세스가 만든 파일 잠금은 상속 받지 않는다.
- 자식 프로세스의 대기 시놓 집합은 빈 집합으로 초기화된다.
'Embedded Lab > linux, x86' 카테고리의 다른 글
[커널 컴파일] (0) | 2012.12.20 |
---|---|
[라즈베리 파이 포팅 문제기록] (0) | 2012.12.17 |
[시그널(signal)이란?] (0) | 2012.12.13 |
[우분투 NAS 마운트 설정] (0) | 2012.12.11 |
[Professional Linux Kernel Architecture - Chapter 2, 2.3.3] (0) | 2012.12.02 |