ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • C언어 라이브러리를 활용한 Linux 제어 - 프로세스(fork)
    Linux 2020. 4. 23. 21:49

    일반적으로 리눅스에서 코드작성을 통해, 새로운 프로세스를 만들고 사용하기 위해

    C언어는 library에서 fork, exec.. 관련 함수들을 내장하고있고 리눅스 운영체제 또한 병렬적인 프로세스 사용이 가능한

    운영체제이기 때문에 굉장히 유용하게 하나의 코드에서 여러가지 프로세스를 생성하고 또 사용할수 있다.

     

    그중에서도 먼저 fork를 보자

    fork 함수는 자식 프로세스를 생성하는 함수다.

    예를들어,

    위와 같이 자식 프로세스를 int자료형으로 선언된 변수에 집어 넣을수 있고

    성공했을때 0을 반환하며, 실패시 -1, 그외에는 자기자신의 프로세스를 반환하게된다.

    이러한 성질 때문에 fork는 지금 코드에서 완전히 다른 프로세스를 실행시킬수 있는 요소를 만들어 주기도하고

    한 코드내에서 다른형태의 액션을 취하게끔 할수 있다.

    위와 같은 형태로, 쓰면, 자식 프로세스를 생성했을 떄는 forChild()함수가, 자신일떄는 forParent, 그 외에는 에러 메세지를 출력하게 생성했다.

    이렇게 되면 생성된 자식 프로세스는 부모와 병렬적으로 동작하게된다.

    연산이 중복되는 현상이 생기지 않고 그저 자기 자신의 일을 하게되는 새로운 프로세스가 생성된다는 말이다.

     

    하지만, 여기서 하나 주의 해야할것이 있는데,

    일반적으로 부모 프로세스는 자식 프로세스보다 빨리 끝나선 안된다.

    그렇기 때문에, 자신이 끝났더라도 wait함수와 같은것을 사용하여 프로세스에 지장이 없게 자원관리를 해줄 필요가 있다.

    'Linux' 카테고리의 다른 글

    C언어 라이브러리를 활용한 Linux 제어 - 프로세스(exec)  (0) 2020.04.23

    댓글

Designed by Tistory.