UNIX에서 일시 중지된 작업은 어떻게 되나요?

UNIX에서 일시 중지된 작업은 어떻게 되나요?

CTRL+ZUnix에서 모든 작업을 일시 중지한 다음 해당 fg작업을 사용하거나 재개하는 명령을 실행할 수 있습니다 bg. 정지된 채용은 어떻게 되는지 알고 싶습니다. 그들은 죽거나 제거되었나요? 즉, 프로세스를 종료하는 것과 프로세스를 일시 중지하는 것의 차이점은 무엇입니까?

답변1

이러한 일자리는 제거된 것이 아니라 중단되었습니다. 그것들은 정지되었을 때와 똑같습니다. 동일한 메모리 맵, 동일한 열린 파일, 동일한 스레드... 재개될 때까지 아무 작업도 수행하지 않는 프로세스만 있을 뿐입니다. 영화를 일시 정지할 때처럼요. 정지된 프로세스는 프로세스 상태가 실행 중이 아닌 일시 중단으로 기록된다는 점을 제외하면 스케줄러가 고집스럽게 CPU 시간 제공을 거부하는 프로세스와 똑같이 동작합니다.

답변2

사용자의 관점에서 이는 작업이 일시 중지되었음을 의미합니다. 더 이상 CPU를 사용하지 않습니다. 그것~ 할 것이다그러나 동일한 양의 RAM을 계속 사용하십시오. 그렇기 때문에 이를 다시 전경으로 가져올 수 있습니다 fg.중단한 부분부터 계속.

작업을 종료한 다음 다시 시작하면 처음부터 다시 시작됩니다.

답변3

일시 중지된 동안 커널은 프로세서 대기열에 프로세스를 추가하지 않습니다. 프로세스가 종료되면 프로세스의 스택(메모리)이 해제됩니다.

관련 정보