4 i http netwk hannam ac kr HANNAM

  • Slides: 40
Download presentation

리눅스 커널의 이해… 4 i. 정규 파일 읽기 http: //netwk. hannam. ac. kr HANNAM

리눅스 커널의 이해… 4 i. 정규 파일 읽기 http: //netwk. hannam. ac. kr HANNAM UNIVERSITY

리눅스 커널의 이해… 8 정규 파일 읽기와 쓰기 < do_generic_file_read()-기본 흐름 out 미리 읽기

리눅스 커널의 이해… 8 정규 파일 읽기와 쓰기 < do_generic_file_read()-기본 흐름 out 미리 읽기 윈도우 ppos의 offset in 미리읽기 count만큼 읽음 pos<-ppos 반복 1 fd. f_reada를 1로 설정 n i_atime<-update_atime() i_node를 더티로 표시 pos < 파일크기 y ppos<-pos 다음 offset 결정 http: //netwk. hannam. ac. kr HANNAM UNIVERSITY

리눅스 커널의 이해… 18 ii. 정규 파일 쓰기 http: //netwk. hannam. ac. kr HANNAM

리눅스 커널의 이해… 18 ii. 정규 파일 쓰기 http: //netwk. hannam. ac. kr HANNAM UNIVERSITY

리눅스 커널의 이해… 21 정규 파일 읽기와 쓰기 < update_vm_cache() - filemap. c q

리눅스 커널의 이해… 21 정규 파일 읽기와 쓰기 < update_vm_cache() - filemap. c q update_vm_cache_conditional() offset <- pos find_page() 페이지를 찾았다면 wait_on_page() memcopy() >0 http: //netwk. hannam. ac. kr count - - page_cache_release() HANNAM UNIVERSITY

리눅스 커널의 이해… 23 정규 파일 읽기와 쓰기 < 파일 객체의 쓰기 메소드 N

리눅스 커널의 이해… 23 정규 파일 읽기와 쓰기 < 파일 객체의 쓰기 메소드 N file->flag의 O_APPEND Y updatepage() 기록 시작 위치 <= ppos wake_up() __find page() wait_on_page() copy_from_user() http: //netwk. hannam. ac. kr >0 count -- ppos<=마지막 기록위치 HANNAM UNIVERSITY

리눅스 커널의 이해… 24 III. 메모리 매핑 http: //netwk. hannam. ac. kr HANNAM UNIVERSITY

리눅스 커널의 이해… 24 III. 메모리 매핑 http: //netwk. hannam. ac. kr HANNAM UNIVERSITY

리눅스 커널의 이해… 28 메모리 매핑 inode struct inode i_pages struct page offset file_image

리눅스 커널의 이해… 28 메모리 매핑 inode struct inode i_pages struct page offset file_image page frame vm_offset i_mmap inode struct vm_area_struct next prev offset struct page next struct page prev offset page frame 메모리 영역 vm_next_share vm_pprev_share page frame vm_offset struct vm_area_struct vm_file struct file http: //netwk. hannam. ac. kr vm_file struct file HANNAM UNIVERSITY

리눅스 커널의 이해… 30 메모리 매핑 < file_shared_mmap과 file_private_mmap 메소드 file_shared_mmap file_private_mmap open NULL

리눅스 커널의 이해… 30 메모리 매핑 < file_shared_mmap과 file_private_mmap 메소드 file_shared_mmap file_private_mmap open NULL close NULL unmap filemap_unmap NULL protect NULL sync filemap_sync NULL adivse NULL nopage filemap_nopage wppage NULL swapout filemap_swapout NULL swapin NULL http: //netwk. hannam. ac. kr HANNAM UNIVERSITY

리눅스 커널의 이해… 40 Q&A http: //netwk. hannam. ac. kr HANNAM UNIVERSITY

리눅스 커널의 이해… 40 Q&A http: //netwk. hannam. ac. kr HANNAM UNIVERSITY