[리눅스커널][가상파일시스템] 파일 객체: read() 함수 연산 세부 동작 분석
By Guillermo Austin Kim | 2019년 3월 24일 |
파일 객체: read() 함수 연산 세부 동작 분석 유저 공간에서 read() 함수를 호출할 때 커널에서는 가상 파일시스템 관련 코드가 실행하는지 알아봅시다. 다음 그림과 같이 유저 공간에서 read() 함수를 호출하면 파일시스템별로 관리하는 파일객체에서 파일 오퍼레이션을 수행하는 방식입니다. 위 그림을 보면 유저 공간에서 read() 함수를 호출하면 각 파일시스템별 파일 오퍼레이션에 따라 다른 함수를 실행한다는 사실을 알 수 있습니다. 유저 공간에서 read() 함수를 호출하면 시스템 콜을 발생시키고 커널 공간에서 read() 함수에 해당하는 시스템 콜 핸들러인 sys_read() 함수를 실행합니다. 이제부터 sys_read() 함수부터 각 파일시스템 내 파일 종류별로 설정한 vfs_read()
[Linux][Kernel] 라덱스 트리 radex tree
By Guillermo Austin Kim | 2018년 4월 7일 |
![[Linux][Kernel] 라덱스 트리 radex tree](https://img.zoomtrend.com/2018/04/07/a0386257_5ac8c24c7fa22.png)
인터럽트 디스크립터를 관리하는 라덱스 트리를 분석했습니다. 리눅스 커널 버전: 3.18 ~ 4.4까지 구조 리눅스 커널 버전: 4.9 구조
[리눅스커널][가상파일시스템] 파일 객체: close() 함수 연산 세부 동작 분석
By Guillermo Austin Kim | 2019년 4월 2일 |
파일 객체: close() 함수 연산 세부 동작 분석 다음 파일을 닫을 때 호출하는 sys_close() 함수 코드를 볼 차례입니다.1 SYSCALL_DEFINE1(close, unsigned int, fd)2 {3 int retval = __close_fd(current->files, fd);45 /* can't restart close syscall because file table entry was cleared */6 if (unlikely(retval == -ERESTARTSYS ||7 retval == -ERESTARTNOINTR ||8 retval == -ERESTARTNOHAND ||9 retval == -ERESTART_RESTARTBLOCK))10
[bash:awk] awk를 이용한 평균값 계산
By 반달가면 | 2020년 2월 4일 |
awk를 이용해서 파일에 저장된 값들의 평균을 계산하는 방법이다. 우선 data.txt 파일에 아래와 같은 값이 저장되어 있다고 가정하자. # data.txt 내용 확인 cat data.txt john 12.35 jane -34.5 thomas 3.9 위와 같은 내용으로 저장되어 있을 때, 평균을 계산하려면 아래와 같이 가능하다. awk '{ sum += $2; cnt++ } END { print sum/cnt }' data.txt -6.08333 data.txt의 두번째 항목($2)을 더해서 변수 sum에 저장하고, 자료값의 수를 세기 위해 변수 cnt도 1씩 증가. 합산 작업이 끝나면(END) 합(sum)을 자료값의 수(cnd)로 나누면 평균이 된다. 만약 파일