배운내용

aux는 frame을 어떻게 초기화할지 정보가 담긴 구조체다. 그리고 frame에 처음 페이지를 올릴 때만 사용된다. 페이지가 VM_ANON, VM_FIEL 타입으로 초기화 된 이후에는 페이지 내부에 메타데이터가 따로 저장되고 aux는 사용하지 않는다.

VM_FILE 을 위한 aux 구조체

struct lazy_file_info {
	struct file *file;
	off_t offset;
	size_t read_bytes;
	size_t zero_bytes;
};

VM_ANON 실행 파일을 위한 aux 구조체

file, offset, read_bytes, zero_bytes
struct lazy_anon_info {
	struct file *file;
	off_t offset;
	size_t read_bytes;
	size_t zero_bytes;
};

VM_ANON 처음 스택 영역 프레임을 위한 aux 구조체

필요가 없다. 어짜피 0으로 초기화하기 때문이다.

그 외

처음이 아니라면 페이지 내부에 메타 데이터 정보가 있다. 따라서 aux는 더 이상 필요없다.

정리

aux가 필요한 상황 실행파일 불러올 때 스택 영역에서 처음 불러올 때 스왑 영역에서 불러올 때 파일에서 불러올 때
VM_ANON O X X X
VM_FILE X X X O