vm_write 커널 서비스
용도
주소 공간의 페이지 범위에 대한 페이지 아웃을 시작합니다.
구문
설명
그만큼 vm_write 커널 서비스는 주소 범위와 교차하는 페이지에 대해 페이지 아웃을 시작합니다. (바드르 , vaddr + nbytes ).
만약 힘 매개변수가 0이 아닌 경우 수정된 페이지는 최근에 기록되었는지에 관계없이 디스크에 기록됩니다.
수정된 각 페이지에 대해 페이지 아웃이 시작됩니다. 변경되지 않은 페이지는 참조 비트가 0으로 설정된 상태로 메모리에 남습니다. 이는 변경되지 않은 페이지를 페이지 교체 알고리즘의 후보로 만듭니다.
호출자에게는 지정된 페이지에 대한 쓰기 액세스 권한이 있어야 합니다.
시작된 I/O는 비동기식입니다. 그만큼 vms_iowait I/O 완료를 기다리기 위해 커널 서비스를 호출할 수 있습니다.
메모: 그만큼 vm_write 대형 페이지에서는 서브루틴을 사용할 수 없습니다.
매개변수
| 항목 | 설명 |
|---|---|
| vaddr | 페이지 아웃이 필요한 페이지 범위의 첫 번째 바이트 주소를 지정합니다. |
| n바이트 | 지정된 바이트에서 시작하는 바이트 수를 지정합니다. vaddr 매개변수. 이 매개변수는 음수가 아니어야 합니다. 모든 바이트는 동일한 가상 메모리 개체에 있어야 합니다. |
| force | 수정된 페이지가 마지막으로 기록된 시점에 관계없이 기록될 것임을 나타내는 플래그를 지정합니다. |
실행 환경
그만큼 vm_write 커널 서비스는 다음에서 호출될 수 있습니다. 프로세스 환경 오직.
리턴 값
| 항목 | 설명 |
|---|---|
| 0 | 성공적인 완료를 표시합니다. |
| EINVAL | 다음 네 가지 오류 중 하나를 나타냅니다.
|
| EACCES | 액세스가 쓰기를 허용하지 않음을 나타냅니다. |
| EIO | 영구 I/O 오류를 나타냅니다. |