생성자로 클래스 변수를 만들면 메모리 할당, 주소값 받음
이 변수를 참조하는 변수는 같은 메모리 주소값을 가르킴
이 변수의 속성을 바꾸면 메모리에 있는 값이 바뀜
참조 변수의 속성이 바뀌면 새로 메모리를 할당하여 주소 값 받음
리소스가 복제되었지만 수정되지 않은 경우에 새 리소스를 만들 필요 없이 복사본과 원본이 리소스를 공유하고, 복사본이 수정되었을 때만 새 리소스를 만드는 리소스 관리 기법을 말한다.
fork()를 수행 > 부모프로세스의 복사본으로 자식 생성
그런데 이때 대부분 fork() 이후 exec()를 수행함 > 새로운 프로세스를 overwrite하게 복사를 하고 바로 exec()를 통해 새로운 프로세스를 만듬
overhead 발생 > 비효율적
COW를 이용해 자식 프로세스가 같은 페이지를 공유
만약 자식 프로세스에 수정이 일어난다면 그때 Copy를 수행
page C의 복사본을 할당하고, 이를 가리키게 하면 됨
내용이 바뀌지 않는 동안: 페이지 공유
내용이 변경되면: 새로운 페이지 할당 & 복사
대부분의 OS에서 COW 방식을 채택