운영체제 기본/Linux의 파일 읽기: 두 판 사이의 차이
mmap 파일 메모리 매핑 각론을 연결; 페이지 캐시 상세 확장은 보류 |
코드 앞의 불필요한 자기해설을 직접적인 참조 관계 설명으로 정리 |
||
| 18번째 줄: | 18번째 줄: | ||
<code>current</code>는 현재 실행 중인 태스크를 나타낸다. <code>current->files</code>로 접근하는 <code>files_struct</code>에 파일 디스크립터 테이블이 연결되어 있고, <code>fdtable.fd</code>는 <code>struct file</code> 포인터의 배열이다. 같은 fd 값도 어느 테이블에서 찾는지에 따라 다른 열린 파일을 가리킬 수 있다. | <code>current</code>는 현재 실행 중인 태스크를 나타낸다. <code>current->files</code>로 접근하는 <code>files_struct</code>에 파일 디스크립터 테이블이 연결되어 있고, <code>fdtable.fd</code>는 <code>struct file</code> 포인터의 배열이다. 같은 fd 값도 어느 테이블에서 찾는지에 따라 다른 열린 파일을 가리킬 수 있다. | ||
파일 디스크립터 테이블의 참조 관계: | |||
<pre> | <pre> | ||
| 45번째 줄: | 45번째 줄: | ||
</pre> | </pre> | ||
<code>ksys_read()</code>는 얻은 객체를 <code>vfs_read()</code>에 넘긴다. <code>vfs_read()</code>는 접근 모드, 사용자 버퍼 등에 관한 검사를 거쳐 읽기 구현을 선택한다 | <code>ksys_read()</code>는 얻은 객체를 <code>vfs_read()</code>에 넘긴다. <code>vfs_read()</code>는 접근 모드, 사용자 버퍼 등에 관한 검사를 거쳐 읽기 구현을 선택한다. | ||
<pre> | <pre> | ||