vfork() 시스템 호출에서 페이지 테이블 항목을 복사하지 않으면 어떤 이점이 있습니까?

vfork() 시스템 호출에서 페이지 테이블 항목을 복사하지 않으면 어떤 이점이 있습니까?

vfork() 시스템 호출은 상위 프로세스의 페이지 테이블 항목이 복사되지 않는다는 점을 제외하면 fork()와 동일한 효과를 갖습니다. 오늘날 쓰기 시 복사 및 자식 실행 우선 의미 체계를 사용하는 vfork()의 유일한 이점은 페이지 테이블 항목을 복사하지 않는다는 것입니다. 어느 날 Linux가 쓰기 중 복사 페이지 테이블 항목을 얻게 되면 더 이상 아무런 이점도 없게 됩니다.

로버트 러브(Robert Love)의 저서 "리눅스 커널 개발(Linux Kernel Development)"의 내용 중 일부입니다. 내가 이해하지 못하는 것은 페이지 테이블 항목을 복사하지 않으면 어떤 이점이 있습니까?

다음과 같은 또 다른 줄이 있습니다: "copy_process()에서 task_struct 멤버 vfork_done이 NULL로 설정됩니다.".

이게 뭐야?vfork_done? 그것은 무엇을 합니까?

답변1

장점은 성능입니다. 페이지 테이블 항목을 복사하려면 이러한 페이지 테이블에 대한 메모리가 필요하며 복사를 수행하는 데 CPU 시간이 필요합니다.

관련 정보