본문 바로가기

개발중/Spring

Demon 이란

728x90
반응형

Demon 이란

멀티 태스킹 운영 체제에서 데몬은 사용자가 직접적으로 제어하지 않고, 백그라운드에서 돌면서 여러 작업을 하는 프로그램을 말한다.

 

시스템 로그를 남기는 susload 처럼 보통 데몬을 뜻하는 'd' 를 이름 끝에 달고 있으며,

일반적으로 프로세스로 실행이 된다.

 

데몬은 대개 부모 프로세스를 가지지 않으며, 즉 PPID 가 1이며, 

따라서 프로세스 트리에서 init 바로 아래에 위치한다.

 

데몬이 되는 방법은 일반적으로 자식 프로세스를 포크하여 생성하고

자식을 분기한 자신을 죽이면서 init이 고아가 된 자식 프로세스를 자기 밑으로 데려가도록 하는 방식 이다.

이러한 방식을 'fork off and dit' 라고 부르기도 한다.

 

시스템은 시동 할 때 데몬을 시작하는 경우가 많으며, 이런 데몬들은 네트워크 요청, 하드웨어 동작, 여타 프로그램에 반응하는 기능을 밤당하게 된다.

 

그 밖에도 몇몇 리눅스에 있는 devfsk 처럼 하드웨어 설정이나, cron 처럼 주기적인 작업을 실행하는 등 기타 다양한 목적으로 사용된다.

 

위키백과

 


Demon의 동작 방식

데몬은 혼자 스스로 동작하는 독자형 ( Standard )

데몬을 관리하는 슈퍼데몬에 의해 동작 ( Super ) 하는 방식이 있다.

 

독자형의 경우 시스템의 백그라운드에서 항상 동작하는데, 자주 호출되는 데몬이 아니라면 시스템의 자원을 낭비할 우려가 있다.

 

슈퍼 데몬에 의한 동작 방식

슈퍼 데몬에 의한 동작 방식은  평소에는 슈퍼 데몬만 동작  하다가

 서비스 요청이 오면 슈퍼 데몬이 해당 데몬을 동작  시키는 것이다.

 

따라서 독자형보다는 서비스에 응답하는데 시간이 좀 더 걸릴 수 있지만 자원을 효율적으로 사용하다는 장점이 있다.

 

독자형이던 슈퍼 데몬에 의해 동작하는 형태던 제대로 동작하지 않는다면 시스템이 서비스를 제대로 제공할 수 없다.

 


슈퍼 데몬

데몬의 종류가 늘어나자 이를 관리하기 위한 슈퍼 데몬이 등장했다.

유닉스에서 슈퍼 데몬은 inetd 였으나 우분투에서는 보안 기능이 포함된  xinetd  를 사용하고 있다.

 

슈퍼 데몬은 네트워크 서비스를 제공하는 데몬만 관리한다.

간단히 말해 사용자가 네트워크 서비스를 요청하면

슈퍼 데몬이 이를 받아서 해당하는 서비스 데몬을 동작시키는 것이다.

 

 

커널 스레드 데몬

커널의 일부분을 프로세스 처럼 관리하는 데몬을 커널 데몬이라고 한다.

이는 ps  명령으로 확인 했을 때 대괄호로 둘러싸여 있는 프로세스 들이다.

예전에는 대부분 k 로 시작했으나, 요즘은 이를 반드시 준수 하지는 않는다.

 

커널 데몬은 대부분 입출력이나 메모리 관리, 디스크 동기화 등을 수행하며, 대체로 낮은 번호로 할당되어 있다.

일반 프로세스의 조상 데몬이 init 이라면 커널 데몬을 동작시키는 조상 데몬은 커널 스레드 데몬이다.

 


 

 

 

 

 

 

728x90
반응형

'개발중 > Spring' 카테고리의 다른 글

mysql / my batis 여러개 업데이트  (0) 2021.05.18
DB 여러계정 연동  (0) 2021.04.28
Data → Excel 변환  (0) 2021.02.15
이클립스 Vue 프로젝트 만들기  (0) 2021.01.30
@RestController 이해하기  (0) 2021.01.07