파일 입출력은 시스템의 성능에 큰 영향을 미치는 요소이다. 최근 다양한 플랫폼에 범용 운영체제가 탑재되면서 아이노드 기반의 파일 입출력 시스템이 많은 분야에 사용되고 있다. 아이노드 기반의 파일 입출력 시스템은 파일 레벨 정보를 사용하여 데이터에 접근하는데 저장 장치는 블록 레벨 정보를 통해 접근되기 때문에 이러한 방식은 저장 장치의 특성을 충분히 활용하지 못하는 한계점을 가지고 있다. 또한 범용 운영체제는 요구 페이징을 통해 프로세스의 메모리 접근을 관리하는데, 요구 페이징만을 사용하는 경우에는 페이지 부재 현상이 빈번하게 발생하여 실행 성능이 저하된다. 요구 페이징 기법의 단점들을 보완하기 위한 기법들 중에 대표적인 기법은 사용될 코드와 데이터를 미리 메모리에 반입시켜 두는 선반입 기법이다. 선반입 기법을 사용하면 프로그램 실행중 페이지 부재 현상 발생 빈도가 줄어들어 실행 성능이 향상되지만 파일 레벨 정보를 이용하는 선반입 방식은 블록 레벨 정보를 이용하는 선반입 방식에 비해 저장 장치의 특성을 효율적으로 사용하지 못해 추가적인 성능 향상을 기대할 수 없다. 본 논문에서는 블록 레벨 정보를 통해 데이터를 캐싱하는 블록 캐시를 제안하고, 이를 시동 시간을 대상으로하는 선반입 기법에 적용하여 파일 입출력 성능을 최적화하고 시동 시간을 단축시키는 블록 캐시 기반 선반입 기법을 제안한다. 제안된 블록 레벨 선반입 기법은 입출력 순서 재정렬, CPU-저장장치 ...
파일 입출력은 시스템의 성능에 큰 영향을 미치는 요소이다. 최근 다양한 플랫폼에 범용 운영체제가 탑재되면서 아이노드 기반의 파일 입출력 시스템이 많은 분야에 사용되고 있다. 아이노드 기반의 파일 입출력 시스템은 파일 레벨 정보를 사용하여 데이터에 접근하는데 저장 장치는 블록 레벨 정보를 통해 접근되기 때문에 이러한 방식은 저장 장치의 특성을 충분히 활용하지 못하는 한계점을 가지고 있다. 또한 범용 운영체제는 요구 페이징을 통해 프로세스의 메모리 접근을 관리하는데, 요구 페이징만을 사용하는 경우에는 페이지 부재 현상이 빈번하게 발생하여 실행 성능이 저하된다. 요구 페이징 기법의 단점들을 보완하기 위한 기법들 중에 대표적인 기법은 사용될 코드와 데이터를 미리 메모리에 반입시켜 두는 선반입 기법이다. 선반입 기법을 사용하면 프로그램 실행중 페이지 부재 현상 발생 빈도가 줄어들어 실행 성능이 향상되지만 파일 레벨 정보를 이용하는 선반입 방식은 블록 레벨 정보를 이용하는 선반입 방식에 비해 저장 장치의 특성을 효율적으로 사용하지 못해 추가적인 성능 향상을 기대할 수 없다. 본 논문에서는 블록 레벨 정보를 통해 데이터를 캐싱하는 블록 캐시를 제안하고, 이를 시동 시간을 대상으로하는 선반입 기법에 적용하여 파일 입출력 성능을 최적화하고 시동 시간을 단축시키는 블록 캐시 기반 선반입 기법을 제안한다. 제안된 블록 레벨 선반입 기법은 입출력 순서 재정렬, CPU-저장장치 인터리빙, 유효 큐의 효율적인 사용등과 같이 저장 장치의 특성을 효율적으로 사용하기 위한 방식을 사용한다. 제안된 기법의 성능 평가를 위해 리눅스 운영체제의 파일 입출력 시스템 내부에 블록 캐시와 시동 순서를 대상으로 한 선반입 관리자를 구현하였다. 시동 순서는 항상 고정적인 접근 데이터 셋을 가지고, 읽기 연산을 주로 실행하기 때문에 이러한 기법을 적용하기에 적합한 대상이다. 실험 과정에서는 리눅스 환경에서 일반적으로 사용되는 응용들에 대해 제안하는 기법을 적용하여 블록 캐시를 사용한 LBA 재정렬 기반 선반입과 인터리빙 기반 선반입은 cold start 시간 대비 각각 평균 19% (최대 34%), 평균 18.34% (최대 28.27%) 시동 시간 감소 효과가 있다는 것과 블록 캐시를 사용할 때 유효 큐의 깊이를 더 높은 수준으로 이용할 수 있음을 확인하였고, 시동 구간의 데이터 셋을 파일 레벨로 접근하였을 때보다 블록 레벨 정보를 이용하여 접근하였을 때 . 본 논문에서는 이러한 과정들을 통해 블록 레벨 정보를 사용하는 블록 캐시가 저장 장치를 더 효율적으로 사용하여 파일 입출력 성능을 향상시킬 수 있음을 증명하고 선반입 기법에 블록 캐시를 사용함으로서 다양한 형태의 응용에 블록 캐시를 확장하여 사용할 수 있는 가능성을 보인다.
파일 입출력은 시스템의 성능에 큰 영향을 미치는 요소이다. 최근 다양한 플랫폼에 범용 운영체제가 탑재되면서 아이노드 기반의 파일 입출력 시스템이 많은 분야에 사용되고 있다. 아이노드 기반의 파일 입출력 시스템은 파일 레벨 정보를 사용하여 데이터에 접근하는데 저장 장치는 블록 레벨 정보를 통해 접근되기 때문에 이러한 방식은 저장 장치의 특성을 충분히 활용하지 못하는 한계점을 가지고 있다. 또한 범용 운영체제는 요구 페이징을 통해 프로세스의 메모리 접근을 관리하는데, 요구 페이징만을 사용하는 경우에는 페이지 부재 현상이 빈번하게 발생하여 실행 성능이 저하된다. 요구 페이징 기법의 단점들을 보완하기 위한 기법들 중에 대표적인 기법은 사용될 코드와 데이터를 미리 메모리에 반입시켜 두는 선반입 기법이다. 선반입 기법을 사용하면 프로그램 실행중 페이지 부재 현상 발생 빈도가 줄어들어 실행 성능이 향상되지만 파일 레벨 정보를 이용하는 선반입 방식은 블록 레벨 정보를 이용하는 선반입 방식에 비해 저장 장치의 특성을 효율적으로 사용하지 못해 추가적인 성능 향상을 기대할 수 없다. 본 논문에서는 블록 레벨 정보를 통해 데이터를 캐싱하는 블록 캐시를 제안하고, 이를 시동 시간을 대상으로하는 선반입 기법에 적용하여 파일 입출력 성능을 최적화하고 시동 시간을 단축시키는 블록 캐시 기반 선반입 기법을 제안한다. 제안된 블록 레벨 선반입 기법은 입출력 순서 재정렬, CPU-저장장치 인터리빙, 유효 큐의 효율적인 사용등과 같이 저장 장치의 특성을 효율적으로 사용하기 위한 방식을 사용한다. 제안된 기법의 성능 평가를 위해 리눅스 운영체제의 파일 입출력 시스템 내부에 블록 캐시와 시동 순서를 대상으로 한 선반입 관리자를 구현하였다. 시동 순서는 항상 고정적인 접근 데이터 셋을 가지고, 읽기 연산을 주로 실행하기 때문에 이러한 기법을 적용하기에 적합한 대상이다. 실험 과정에서는 리눅스 환경에서 일반적으로 사용되는 응용들에 대해 제안하는 기법을 적용하여 블록 캐시를 사용한 LBA 재정렬 기반 선반입과 인터리빙 기반 선반입은 cold start 시간 대비 각각 평균 19% (최대 34%), 평균 18.34% (최대 28.27%) 시동 시간 감소 효과가 있다는 것과 블록 캐시를 사용할 때 유효 큐의 깊이를 더 높은 수준으로 이용할 수 있음을 확인하였고, 시동 구간의 데이터 셋을 파일 레벨로 접근하였을 때보다 블록 레벨 정보를 이용하여 접근하였을 때 . 본 논문에서는 이러한 과정들을 통해 블록 레벨 정보를 사용하는 블록 캐시가 저장 장치를 더 효율적으로 사용하여 파일 입출력 성능을 향상시킬 수 있음을 증명하고 선반입 기법에 블록 캐시를 사용함으로서 다양한 형태의 응용에 블록 캐시를 확장하여 사용할 수 있는 가능성을 보인다.
A file I/O Handling is the critical factor affecting the performance of a system and inode-based file I/O system is widely used in a modern general Operating system. File-level information is used in inode-based file I/O system while block level information is used to access to a storage system, whi...
A file I/O Handling is the critical factor affecting the performance of a system and inode-based file I/O system is widely used in a modern general Operating system. File-level information is used in inode-based file I/O system while block level information is used to access to a storage system, which implies the limitation to exploiting the performance storage system. Also, the general operating system handles memory management based on demand paging and a process access data upon demand paging. Prefetching is one of the representative techniques which complements demand paging, and it prevents page fault from occurring frequently and degrading the performance of the system. Prefetching preloads code and data before accessing them so that the page faults don't happen. However, file-level prefetching can't exploit the characteristic of storage than block-level prefetching. In this paper, we propose block cache use block-level information to exploit the characters of storage and apply it in prefetching targetting a launch sequence to optimize file I/O system and reducing launch time. Proposed block caching technique utilizes the principle; (1) LBA reordering, (2) CPU-storage interleaving (overlapping), (3) maximizing Queue depth for exploiting the characteristics. To evaluate the block caching technique, we implement block-cache and a block-level prefetching technique to reduce launch time on Ubuntu. Launch sequence is a perfect candidate to adapt block-cache because launch sequence is deterministic and read operations are dominate. In the experiment, we obtain the results that the prefetching with LBA reordering on harddisk reducing launch time by 19% on average (max 34%) and the prefetching with interleaving on SSD reducing launch time by 18.34% on average (max 28.22%) compared to the launch time of cold start scenario. Moreover, it exploits QD better than simple execution. Finally, we conclude that block-caching is a way to enhance the performance of file I/O system and It can be expanded to other domain which potential benefits related to the characteristic of storage.
A file I/O Handling is the critical factor affecting the performance of a system and inode-based file I/O system is widely used in a modern general Operating system. File-level information is used in inode-based file I/O system while block level information is used to access to a storage system, which implies the limitation to exploiting the performance storage system. Also, the general operating system handles memory management based on demand paging and a process access data upon demand paging. Prefetching is one of the representative techniques which complements demand paging, and it prevents page fault from occurring frequently and degrading the performance of the system. Prefetching preloads code and data before accessing them so that the page faults don't happen. However, file-level prefetching can't exploit the characteristic of storage than block-level prefetching. In this paper, we propose block cache use block-level information to exploit the characters of storage and apply it in prefetching targetting a launch sequence to optimize file I/O system and reducing launch time. Proposed block caching technique utilizes the principle; (1) LBA reordering, (2) CPU-storage interleaving (overlapping), (3) maximizing Queue depth for exploiting the characteristics. To evaluate the block caching technique, we implement block-cache and a block-level prefetching technique to reduce launch time on Ubuntu. Launch sequence is a perfect candidate to adapt block-cache because launch sequence is deterministic and read operations are dominate. In the experiment, we obtain the results that the prefetching with LBA reordering on harddisk reducing launch time by 19% on average (max 34%) and the prefetching with interleaving on SSD reducing launch time by 18.34% on average (max 28.22%) compared to the launch time of cold start scenario. Moreover, it exploits QD better than simple execution. Finally, we conclude that block-caching is a way to enhance the performance of file I/O system and It can be expanded to other domain which potential benefits related to the characteristic of storage.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.