두근두근이야기
fork()와 프로세스 식별자 본문
fork함수-새 프로세스를 생성할 때 사용하는 함수
#include <unistd.h> pid_t fork(void); 반환값: 자식 프로세스의 경우 0, 부모 프로세스의 경우 지식의 프로세스 ID, 오류시 -1 |
-fork 함수는 기존 프로세스가 새 프로세스를 생성할 때 쓰임
-fork로 생성한 새 프로세스를 자식 프로세스(child process)라고 부름
-이 함수는 한 번 호출되나 두 번 반환하는 함수임
-자식에게 반환되는 값은 0이고, 부모에게 반환되는 값은 새 자식 프로세스의 ID임
-프로세스 생성이 실패한 경우 -1을 리턴하고, 오류의 내용을 errno라는 변수에 저장함
-부모 프로세스는 자식 프로세스의 프로세스 ID를 직접 알아낼 수 있는 함수가 없음
-자식 프로세스는 부모 프로세스의 프로세스 ID를 getppid 함수를 호출하여 얻을 수 있음
프로세스 식별자-프로세스의 식별자들을 반환하는 함수
#include <unistd.h> pid_t getppid(void); 반환값: 호출한 프로세스의 부모 프로세스 ID uid_t getuid(void); 반환값: 호출한 프로세스의 실제 사용자 ID uid_t geteuid(void); 반환값: 호출한 프로세스의 유효 사용자 ID gid_t getgid(void); 반환값: 호출한 프로세스의 실제 그룹 ID gid_t getegid(void); 반환값: 호출한 프로세스의 유효 그룹 ID |
-프로세스는 고유한 프로세스 ID를 가짐
-프로세스 ID는 음이 아닌 정수임
-프로세스 ID는 유일한 속성이기 때문에 프로세스의 식별자로 사용함
-프로세스 ID가 고유하긴 하지만, 시스템은 프로세스 ID를 재사용함
(프로세스가 종료되면 해당 ID는 재사용 후보가 됨)
-프로세스 ID 0은 스케줄러 프로세스임
(디스크 상에 존재하지 않으며, 커널의 일부임)
-프로세스 ID 1은 보통 init 프로세스
-프로세스 ID 2는 페이지데몬 프로세스
'IT > IT ::Linux' 카테고리의 다른 글
생산자 소비자 패턴 (0) | 2013.07.23 |
---|---|
fork시 두번찍히는 문제 (0) | 2013.04.30 |
gethostname, 호스트 이름을 돌려주는 함수 (0) | 2013.04.11 |
utsname.h (0) | 2013.04.11 |
tar gzip (0) | 2013.04.11 |