본문 바로가기

과제모음

운영체제의 기본 프로세스 프로그램 데몬 구분방법

반응형

컴퓨터 프로그램(computer program, 보통 간단히 '프로그램', 문화어: 콤퓨터프로그람)은 컴퓨터에 의해 실행되는 지시사항의 모음인 컴퓨터 소프트웨어의 한 예이다. 대부분의 프로그램은 실행 중(즉, 명령어를 '불러들일' 때)에 사용자의 입력에 반응하도록 구현된 명령어의 집합으로 구성되어 있다. 대부분의 프로그램들은 하드디스크 등의 매체에 바이너리 형식의 파일로 저장되어 있다가 사용자가 실행시키면 메모리로 적재되어 실행된다.

 

 

프로세스(process)는 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램이다. 종종 스케줄링의 대상이 되는 작업(task)이라는 용어와 거의 같은 의미로 쓰인다. 여러 개의 프로세서를 사용하는 것을 멀티프로세싱이라고 하며 같은 시간에 여러 개의 프로그램을 띄우는 시분할 방식을 멀티태스킹이라고 한다

 

프로그램과 프로세스

프로그램과 프로세스는 구별없이 혼용되기도 한다. 다만, 프로그램은 하드디스크 등에 저장되어 있는 실행코드의 성격이 강한 반면, 프로세스는 프로그램을 구동하여 메모리에 적재된 상태로 실행되는 하나의 작업 단위이다. 예를 들어, 하나의 프로그램을 여러 번 구동하면 여러 개의 프로세스로 메모리에 적재되어 실행되는 것이다.

 

 

유닉스와 같은 멀티태스킹 운영체제에서 데몬(daemon, 발음: 데이먼/'deɪmən/ 또는 디먼 /'dimən/[1]) )은 사용자가 직접적으로 제어하지 않고, 백그라운드에서 돌면서 여러 작업을 하는 프로그램을 말한다. 시스템 로그를 남기는 syslogd처럼 보통 대몬을 뜻하는 ‘d’를 이름 끝에 달고 있으며, 일반적으로 프로세스로 실행된다.

데몬은 대개 부모 프로세스를 갖지 않으며, 즉 PPID가 0이며, 따라서 프로세스 트리에서 init 바로 아래에 위치한다. 데몬이 되는 방법은 일반적으로 자식 프로세스를 포크(fork)하여 생성하고 자식을 분기한 자신을 죽이면서 init이 고아가 된 자식 프로세스를 자기 밑으로 데려가도록 하는 방식이다. 이러한 방법을 ‘fork off and die’라 부르기도 한다.

시스템은 시동할 때 데몬을 시작하는 경우가 많으며, 이런 데몬들은 네트워크 요청, 하드웨어 동작, 여타 프로그램에 반응하는 기능을 담당하게 된다. 그 밖에도 몇몇 리눅스에 있는 devfsd처럼 하드웨어 설정이나, cron처럼 주기적인 작업을 실행하는 등 기타 다양한 목적으로 사용된다.

 

 

출처 - wiki백과사전


예전에 공부하면서 간단하게 찾아보았던 내용입니다.

모두들 즐거운 추석 보내세요~

반응형