본문 바로가기
컴퓨터공학기초 개념/시스템 프로그래밍

18. 프로세스 - 시스템 콜

by devraphy 2021. 9. 15.

0. 시작하기전에

- 지난 포스팅에서는 프로세스에 대해 간략하게 배우면서, 프로세스 ID에 대해서 알아보았다. 

- 이번 포스팅에서는 프로세스와 관련된 시스템 콜에 대해서 배울 예정이다.


1. 프로세스 관리에 사용되는 시스템 콜

- 프로세스 관리 관련된 시스템 콜을 사용해보기 위해서는 gcc를 설치해야 한다. 

- 이전 포스팅을 참고하여 gcc(C언어 컴파일러)하는 것을 권장한다. 

 

a) getpid() 와 getppid()

- 현재 프로세스의 pid와 ppid를 반환하는 함수다. 

- 프로세스 ID는 커널 영역을 통해 알아낼 수 있는 정보이기 때문에, 시스템 콜을 사용한다. 

- 우선 함수의 원형부터 살펴보자. 

#include <sys/types.h>
#indclude <unistd.h>

pid_t getpid(void);
pid_t getppid(void);

 

- 실습코드는 다음과 같다. 

#include <sys/type.h>
#include <unistd.h>
#include <stido.h>

int main()
{
        printf("pid=%d\n", getpid());
        printf("ppid=%d\n", getppid());
        return 0;
}

 

- test.c라는 파일을 생성하여 위의 코드를 작성한 후, gcc명령어를 통해서 test라는 이름의 실행파일을 생성한다.

gcc test.c -o test

- 해당 실행파일을 실행하면 위의 사진과 같은 결과를 얻을 수 있다. 

 

- 해당 실행파일을 실행하고 난 뒤에 ps를 실행시키면 다음과 같은 결과를 얻을 수 있다. 

- test 프로그램을 실행하면, PID 24062번을 할당 받는다. 

- 종료 후 ps를 실행시키면 다음 번호인 PID 24063번 할당 받는 것을 확인할 수 있다.

- 즉, ps 명령어를 통해서 프로세스를 생성한 것이다.  

- 이렇게 시스템 프로그래밍을 간단한 예제를 통해 실습해보았다. 

댓글