it-swarm-ko.tech

직업과 프로세스의 차이점은 무엇입니까?

"작업"과 "프로세스"의 차이점은 무엇입니까?

48
Olivier Lalonde

프로세스는 자체 주소 공간이있는 실행중인 프로그램입니다.

작업은 셸에서 사용하는 개념입니다. 대화식으로 시작하여 분리되지 않은 (즉, 데몬이 아닌) 프로그램은 작업입니다. 대화식 프로그램을 실행중인 경우 CtrlZ 일시 중단합니다. 그런 다음 포 그라운드 (fg 사용) 또는 백그라운드 (bg 사용)에서 다시 시작할 수 있습니다.

프로그램이 백그라운드에서 일시 중단되거나 실행되는 동안 다른 프로그램을 시작할 수 있습니다. 그러면 두 개의 작업이 실행됩니다. 다음과 같이 "&"를 추가하여 백그라운드에서 실행중인 프로그램을 시작할 수도 있습니다. program &. 그 프로그램은 배경 작업이 될 것입니다. 실행중인 모든 작업을 나열하려면 jobs를 사용하십시오.

작업에 대한 자세한 내용은 bash 매뉴얼 페이지의 이 섹션 을 참조하십시오.

47
Shawn J. Goff

UNIX에는 "프로세스", "프로세스 그룹"및 "세션"이라는 별도의 개념이 있습니다.

로그인 할 때마다 각각의 셸은 자체 새 세션 및 프로세스 그룹의 리더가되고 터미널의 제어 프로세스 그룹을 자체로 설정합니다.

셸은 시작하는 각 "작업"에 대해 현재 세션 내에 프로세스 그룹을 생성하고 시작하는 각 프로세스를 적절한 프로세스 그룹에 배치합니다. 예를 들어, ls | head는 두 프로세스의 파이프 라인으로, 셸은 단일 작업을 고려하여 단일 새 프로세스 그룹에 속합니다.

프로세스는 실행 스레드 및 주소 공간 및 파일 설명자 테이블과 같은 기타 컨텍스트의 (수집) 스레드입니다. 프로세스는 다른 프로세스를 시작할 수 있습니다. 이러한 새 프로세스는 다른 조치를 취하지 않는 한 상위 프로세스와 동일한 프로세스 그룹에 속합니다. 각 프로세스에는 "제어 터미널"이있을 수 있으며,이 터미널은 상위와 동일하게 시작됩니다.

Shell은 "전경"작업과 "백그라운드"작업의 개념을 가지고 있습니다. 포 그라운드 작업은 터미널을 제어하는 ​​프로세스 그룹이고 백그라운드 작업은 터미널을 제어하지 않는 프로세스 그룹입니다.

각 터미널에는 포 그라운드 프로세스 그룹이 있습니다. 작업을 포 그라운드로 가져올 때 쉘은이를 작업을 터미널의 포 그라운드 프로세스 그룹으로 설정합니다. 작업을 백그라운드로 수행 할 때, 쉘은 터미널의 포 그라운드 프로세스 그룹을 다른 프로세스 그룹 또는 자체로 설정합니다.

프로세스가 포 그라운드 프로세스 그룹에있는 경우 프로세스는 제어 터미널에서 읽고 쓸 수 있습니다. 그렇지 않으면 터미널에서 각각 읽고 쓰기를 시도 할 때 SIGTTINSIGTTOU 신호를 수신합니다. 대부분의 쉘이 SIGTTOU을 마스크하여 백그라운드 작업이 터미널에 중단없이 쓰일 수 있도록 기본적으로 이러한 신호는 프로세스를 중단합니다.

30
ephemient

컴퓨팅에서, Job 은 작업 단위 또는 실행 단위 (상기 작업을 수행하는 단위)입니다. 작업 구성 요소 (작업 단위)를 작업 또는 단계 (작업 스트림에서와 같이 순차적 인 경우)라고합니다. 실행 단위로서, 작업은 단일 프로세스로 구체적으로 식별 될 수 있으며, 이는 단일 프로세스로 구성 될 수 있고, 이는 하위 프로세스 (하위 프로세스; 상위 프로세스 인 작업에 대응하는 프로세스)를 가질 수있다. 일; 또는 프로세스 그룹과 함께; 또는 Unix 작업 제어에서와 같이 프로세스 또는 프로세스 그룹에 대한 추상 참조가 있습니다.

소스

좋은 예

1
Premraj