문제
다음 설명에 해당하는 내용으로 알맞은 것은?
하나의 프로세스가 새로운 프로세스를 생성할 때 원래의 프로세스를 새로운 프로세스로 대체하는 형태로 호출한 프로세스의 메모리에 새로운 프로세스의 코드를 덮어씌워 버린다.
① fork ② exec ③ foreground process ④ background process
정답
2번
해설
정답: 2. exec 는 현재 프로세스의 메모리 이미지를 새 프로그램으로 덮어써 대체하는 호출이다. 새 PID 를 만들지 않고 기존 프로세스가 그대로 새 프로그램으로 변한다.
오답 풀이
- 1번: fork 는 부모를 복제해 새 PID 의 자식 프로세스를 추가로 만드는 방식으로 "대체"가 아니다.
- 2번: exec 는 원래 프로세스를 새 프로그램으로 덮어써 대체하므로 옳다(이 문항의 정답).
- 3번: foreground process 는 단말과 연결되어 실행되는 작업 형태일 뿐 생성 메커니즘이 아니다.
- 4번: background process 는 단말 점유 없이 실행되는 작업 형태로 생성 방식 설명이 아니다.
보충 개념 fork(복제로 새 자식 생성)와 exec(현재 프로세스를 새 프로그램으로 대체)는 짝을 이룬다. 보통 셸은 fork 로 자식을 만든 뒤 그 자식에서 exec 로 명령을 실행한다.