전공/시스템 프로그래밍(운영체제)

Linux2) 프로세스

문정훈 2021. 10. 12. 21:41

1-1 유닉스에서 프로세스

유닉스 프로세스는 필요에 따라 다른 프로세스를 생성한다.

다른 프로세스를 생성한 프로세스를 부모 프로세스라고 하고 생성된 프로세스를 자식 프로세스 라고한다.

각 프로세스는 고유의 번호 PID를 가지고 있다.

유닉스가 부팅 될 때 모든 프로세스의 조상 프로세스인 init 프로세스가 있는데 고유번호는 1번이다.

 

1-2 프로세스

OS에서 실행중인 프로그램을 말한다. 디스크에 있는 프로그램 명령어는 실행이 되면 메인 메모리로 load되어 프로세스가 된다. 

 

1-3 데몬 프로세스

유닉스 커널에 의해서 실행되는 프로세스로 특정한 서비를 제공하기 위해 존재한다.

예를 들어 웹 서비스를 제공하기 위해 httpd 프로세스가 동작해야한다.
httpd 프로세스를 데몬 프로세스라한다.

데몬은 평소에 대기 상태로 서비스의 요청을 기다리고 있다가 요청이 들어오면 해당 서비스를 제공한다.

 

1-4 부모 프로세스

- 부모 프로세스는 다른 프로세스를 생성한다.

부팅할 때 실행되는 1번 프로세스를 제외한 모든 프로세스는 부모 프로세스를 가진다.

 

 

1-5 자식 프로세스

부모 프로세스에 의해 만들어지는 프로세스이다.

자식 프로세스는 할 일이 끝나면 부모 프로세스에 결과를 돌려주고 종료한다.

예로 사용자가 vim을 실행하면 셸이 vim을 생성하는데 셸이 부모 프로세스이고 vi가 자식 프로세스이다.
사용자가 vi를 종료하면 다시 부모 프로세스인 셸로 돌아간다.

 

 

1-6 고아 프로세스

자식 프로세스가 실행동안 부모 프로세스가 종료하면 자식은 고아가 된다.

이 경우 1번 프로세스가 새로운 부모 프로세스가 되어 고아 프로세스들이 작업을 종료할 수 있게 도와준다.

 

 

1-7 좀비 프로세스

자식이 죽을 때 종료가 될 때 결과를 부모 프로세스에 알려줘야 한다. 하지만 결과를 부모에게 알려주지 않고 자식 프로세스가 죽으면 좀비 프로세스가 된다.

잘못된 정보를 가지고 있는 좀비 프로세스가 많아질수록 시스템이 느려진다.