728x90
프로세스
- 실행중인 프로그램에 관련된 메모리, 리소스 등을 총칭하는 의미
- 멀티 프로세스 운영체제에서는 둘 이상의 프로세스 동시에 생성 가능
- 프로세스는 운영체제에 의존적임
- 프로세스 아이디(PID) : 프로세스를 관리하기 위해 할당하는 ID
프로세스의 생성
- fork 함수 : 호출한 프로세스가 복사되어 독립적으로 실행됨
-> 성공 시 pid 반환, 실패 시 -1
-> 프로세스가 복사되기 때문에 메모리, 리소스도 복사가 되어 변수 값도 따라오게 됨
-> 복사된 프로세스는 부모 프로세스의 fork 부터 실행
-> 부모 프로세스는 자식 프로세스의 pid를 반환받고 자식 프로세스는 0을 반환
#include <stdio.h>
#include <unistd.h>
int gval=10;
int main(int argc, char *argv[])
{
pid_t pid;
int lval=20;
gval++, lval+=5;
pid=fork();
if(pid==0) { // if Child Process
gval+=2, lval+=2;
}
else if(pid!=-1) { // if Parent Process
gval-=2, lval-=2;
}
else {
printf("failed to fork\n");
}
if(pid==0) {
printf("Child Proc: [%d, %d] \n", gval, lval);
}
else {
printf("Parent Proc: [%d, %d] \n", gval, lval);
}
return 0;
}
728x90
'Programming > Network' 카테고리의 다른 글
열혈 TCP/IP 10-3. 시그널 핸들링 (0) | 2021.03.01 |
---|---|
열혈 TCP/IP 10-2. 프로세스 & 좀비(Zombie) 프로세스 (0) | 2021.03.01 |
열혈 TCP/IP 09-3. TCP_NODELAY (2) | 2021.02.24 |
열혈 TCP/IP 09-2. SO_REUSEADDR (0) | 2021.02.23 |
열혈 TCP/IP 09-1. 소켓의 옵션과 입출력 버퍼의 크기 (0) | 2021.02.23 |