To resolve page faults, most operating systems maintain a free-frame list, a pool of free frames for satisfying such requests. (free-frame pool의 구현 결과가 free-frame list이다.)
Operating systems typically allocate free frames using a technique known as zero-fill-on-demand.
free-frame list에 있는 frame을 page에 할당하기 전에 초기화(모든 값을 0으로 덮어쓰기)하여 잠재적인 문제를 방지
Zero-fill-on-demand frames are “zeroed-out” before being allocated, thus erasing their previous contents. (Consider the potential security implications of not clearing out the contents of a frame before reassigning it.)
With vfork()
, the parent process is suspended, and the child process uses the address space of the parent. Because vfork()
does not use copy-on-write, if the child process changes any pages of the parent’s address space, the altered pages will be visible to the parent once it resumes. Therefore, vfork()
must be used with caution to ensure that the child process does not modify the address space of the parent.
(사용 경우)
vfork()
is intended to be used when the child process calls exec()
immediately after creation. Because no copying of pages takes place, vfork()
is an extremely efficient method of process creation and is sometimes used to implement UNIX command-line shell interfaces.
exec()
provides a new address space for the new program; it doesn’t modify the parent address space.