현재 맡은 업무에서 기반 용어들에 대해 지식이 조금 부족하다는 것을 느껴서 내친 김에 알고 있던 용어들까지 추가로 조사하여 간략하게 따로 정리해보는 시간을 갖기로 했다.
프로세스가 파일을 오픈할 때 커널이 해당 프로세서의 파일 디스크립터 숫자 중, 사용하지 않는 가장 작은 값을 할당하면, 이후 오픈된 파일에 시스템 콜을 사용하여 접근할 시, 디스크립터 값을 활용하여 파일을 지칭할 수 있다.
기본 할당 디스크립터
- 표준 입력 (Standard Input)
- 표준 출력 (Standard Output)
- 표준 에러 (Standard Error)
Index Node의 줄임말, 파일을 빠르게 찾기 위한 노드
inode는 리눅스의 모든 파일에 인덱스를 부여하고 해당 파일에 대한 메타데이터를 보유하고 있는 노드이다. list 명령어를 통해 출력하는 메타데이터를 inode에서 보유하고 있다.
원본 파일의 inode를 가리키는 정보를 가진 파일
파일 시스템이 set up 되지 않은 장치
OS 커널에 의해 버퍼링 되지 않으며, Device로부터 Data 직접 전송, 자체적인 캐싱 시스템을 가진 경우 사용
Disk IO 성능이 좋고, CPU 오버헤드가 적다.
OS 파일 시스템 오버헤드를 피할 수 있고 OS 버퍼 사이즈를 줄일 수 있음.
shared disk의 경우 시스템에 구성하면 동시 access가 불가능하여 raw device로 사용.
디스크 I/O를 효율적으로 하기 위해 요청을 정렬, 병합하고 처리 순서를 결정하는 시스템의 일부.
탐색 시간이 비싸서 같은 위치에 대한 요청을 병합하는 것이 효과적인 HDD와 같은 디바이스에 특히 유용하며 SSD에서는 효과가 반감된다.
종류
noop: no-operation, 성능이 뛰어난 디스크에 사용
cfq (completely fair queueing): 프로세스마다 IO 대기열 부여하고 최대한 균등하게 예약, 다량의 프로세스가 세세한 IO를 발생시킬 때 사용
deadline: 한계점을 기준으로 가까울수록 우선 처리, 지연 시간에 대한 최적화, I/O 전부 균형적으로 처리하며 소수의 프로세스가 다수의 I/O를 발생시키는 환경에 적합
anticipacy: 향후 발생될 I/O 요청의 위치를 예측하고 가까운 위치에 존재하는 I/O 요청부터 처리하는 방식, 전통적인 HDD에서 사용하는 구조, 입출력을 모아서 처리하는 성질이 있어 지연 시간이 늘어질 가능성이 존재.
👍