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

+ Recent posts