디지털 라이브러리[ 검색결과 ]
범용 실행 환경을 기반으로 한 전용 기기에서의 악성 코드 설치 방지
http://doi.org/10.5626/JOK.2025.52.5.444
산업 전반의 디지털화로 인해 디지털 창구, 의료용 또는 교육용 태블릿 등 특정 작업만 수행하도록 설계된 기기인 전용 기기에 대한 수요가 증가하고 있다. 특정 애플리케이션만 실행할 수 있어 보안성이 높고 공격 표면이 최소화되는 장점이 있지만 대부분 Android와 같은 범용 실행 환경을 기반으로 구축된다. 이로 인해 개발 및 사용이 용이하지만, 공격 표면이 넓어질 수 있어 전용 기기에 맞는 보안 대책이 필요하다. 본 연구에서는 범용 실행 환경으로 설계된 전용 기기의 악성 코드 설치와 관련된 취약점을 분석하고 이에 대한 대응 방안을 제안한다. 공격자는 물리적으로 기기에 접근할 수 없으며, 최종 사용자가 악의적이지 않다고 가정한다. 원격으로 악성 코드를 설치할 수 있는 10가지 취약점을 식별하고, Android 기기인 Lenovo P11에서 실험했다. 취약점에 대응하기 위해 SELinux 정책 작성, 파일 무결성 검사 프로그램 설치 등 전용 기기에 최적화된 보안 메커니즘을 설계하였다.
서버 응용프로그램 성능 향상을 위한 운영체제 스케줄러 변수 조정
http://doi.org/10.5626/JOK.2020.47.7.643
현대의 Linux 서버는 대규모 서버부터 소규모 IOT 분야까지 다양한 방면에서 활용되고 있고, 대부분의 머신들은 자신의 서비스를 Linux에서 제공하는 기본 설정의 스케줄러를 통해 동작시키고 있다. 특정 목적에 맞도록 최적화는 가능하지만, 일반적인 사용자가 다양해진 현대의 Linux application을 모두 최적화할 수 없는 문제가 존재한다. 이에 본 논문에서는 Linux 서버의 성능을 최대화할 수 있도록 스케줄러 설정을 자동으로 최적화해줄 수 있는 SCHEDTUNE을 제안하고자 한다. SCHEDTUNE 은 서버에서 수행하는 Application이나 기본 Kernel 소스에 별도의 수정 없이 성능을 향상할 수 있도록 해준다. 이를 통해 관리자는 자신들이 운영하는 서버에 특화되어 동작하는 스케줄러를 쉽게 구성할 수 있게 된다. 실험결과 SCHEDTUNE을 적용한 경우 최대 19% 높은 성능을 얻게 되었으며, 대부분의 경우 이에 준하는 성능 향상을 달성하였다.
커널 레벨의 메모리 최적화를 통한 가상 스위치 포워딩 성능 향상 기법
http://doi.org/10.5626/JOK.2018.45.6.511
가상 스위치는 리눅스 커널 네트워크 스택을 이용하여 복수의 가상머신 또는 컨테이너에 네트워크 자원을 활용할 수 있도록 한다. 또한, 가상머신이 동작하는 클라우드 수요 상승에 따라 많은 종류의 가상 스위치가 등장했고, 여러 가지 기능들을 제공하고 있다. 하지만 기존의 가상 스위치와 리눅스 커널네트워크 스택의 비효율적인 처리 방식으로 인하여 높은 대역폭을 요구 사항의 경우 만족할 수 없다. 이러한 문제를 해결하기 위해 기존의 커널 네트워크 스택이 아닌 유저 영역의 독자적 네트워크 스택을 이용한 해결방식으로 다양한 연구들이 진행됐지만, 재구현 오버헤드, 견고함(Robustness) ・보안성(Security) 및 과도한 메모리 사용 등 여러 가지 문제가 존재한다. 따라서 본 논문은 커널 영역의 최적화를 통해 효율적인 네트워크 처리를 도모하며 기존 연구 방식의 한계도 동시에 극복하기 위한 기법을 제시한다. 그리고, 실험 평가 및 향후 연구 진행 방향을 제시한다.
qtar: 플래시 변환 계층 리매핑 기법을 이용한 최적화된 tar 명령어 구현
http://doi.org/10.5626/JOK.2018.45.1.9
tar는 여러 개의 파일들을 묶어 하나의 파일로 만들어주는 리눅스 명령어이다. 크기가 작은 여러 파일들을 하나의 파일로 만들면, 파일 압축 및 전송 시에 좋은 효율을 갖는다. 하지만, tar는 타겟 파일들의 크기가 작을수록 성능이 떨어지는 문제점이 있다. 본 논문에서는 이 성능 하락이 tar가 파일들의 데이터를 읽어오는 데에서 발생함을 보이고, 플래시 변환 계층 리매핑 기법을 통해 이 문제를 해결하여 qtar(quick tar)를 구현하였다. I/O 성능은 I/O 요청의 크기가 1 MB보다 작아질 경우 그 크기에 비례하여 떨어지게 되는데, tar의 경우 파일들의 데이터를 한 파일 단위로 읽어 각 파일의 크기가 작을수록 안 좋은 성능을 갖게 된다. 그러나, qtar의 경우 리매핑 기법을 활용하여 파일들의 데이터를 항상 최대 I/O 크기로 읽어 각 파일의 크기와 관계없이 좋은 성능을 갖는다. 실험 결과, qtar가 tar에 비해 최대 3.4배 빠르게 동작하는 것을 확인하였다.
멀티코어 환경에서 비실시간 메시지의 응답시간 지연을 최소화하는 리눅스 기반 메시지 처리기의 설계 및 구현
왕상호, 박영훈, 박성용, 김승춘, 김철회, 김상준, 진철
메시지 처리기란 다양한 클라이언트로부터 오는 메시지를 받아 처리하는 서버 소프트웨어이며, 메시지의 종류에 따라 마감기한 이내에 처리해야 하는 실시간 메시지와 비실시간 메시지를 처리한다. 최근 마이크로프로세서 기술의 발전과 리눅스의 빠른 보급에 따라 메시지 처리기는 멀티코어 기반의 리눅스 서버에서 구현되고 있으며, 멀티코어 환경에서는 코어를 효율적으로 사용해야 시스템의 성능을 극대화 시킬 수 있다. 멀티코어를 효율적으로 사용하기 위한 다양한 실시간 스케줄러가 제안되어 있지만, 많은 연구들이 이론적 분석이나 시뮬레이션에 국한되어 있고, 리눅스를 위해 제안된 일부 알고리즘들도 커널을 수정하거나 특정 커널 버전에서만 동작된다는 단점이 있다. 본 논문에서는 멀티코어 환경에서 쓰레드를 사용자 수준에서 코어에 직접 매핑하는 리눅스 기반 메시지 처리기의 구조를 제안한다. 구현된 메시지 처리기에서는 기존의 RM(Rate Monotonic) 알고리즘을 수정하여 사용하였고, 특정 코어에 최대한 실시간 메시지를 몰아서 처리하도록 First fit 기반의 빈패킹(Bin-Packing) 알고리즘을 사용하여, 실시간 메시지의 위배율을 보장하면서 비실시간 메시지의 응답시간의 지연을 최소화하였다. 성능평가를 위하여 LITMUS 프레임워크에서 제공하는 2가지 멀티코어 스케줄링 알고리즘(GSN-EDF, P-FP)을 이용하여 메시지 처리기를 구현한 후 제안된 시스템과 비교한 결과, 비실시간 메시지의 응답시간이 2가지 알고리즘 대비 최대 17~18%까지 향상되는 것을 확인하였다.
멀티코어 환경에서 SEDA 기반 메시지 처리기의 수행함수 특성을 고려한 쓰레드 매핑 기법
메시지 처리기란 클라이언트들로부터 수신된 다양한 포맷의 메시지를 수신 메시지 별 쓰레드를 생성하여 처리하고 그 결과를 목적지로 전달하는 서버 소프트웨어를 말한다. 본 논문에서는 SEDA(The Stage Event Driven Architecture) 구조의 메시지 처리기에서 각 수행함수가 CPU 또는 IO bound 특성을 가질 수 있다는 점에 착안하여, 수행 함수 별 특성을 고려해 쓰레드를 각 코어에 매핑하는 FC-TM(Function Characteristic aware Thread Mapping) 기법을 제안하였다. 본 논문에서는 메시지 처리에 필요한 각 수행함수의 특성이 정적인 것으로 가정하였다. 따라서 수행 가능한 함수를 미리 프로파일링(profiling)하여 특성을 분석한 후, 실제 수신되는 메시지에 따라 단위시간 당 처리량(throughput)이 최대가 되도록 쓰레 드를 매핑하였다. 성능 평가 결과 IO bound한 함수가 특정 비율 이상 있을 경우, 기존 연구보다 단위시간 당 처리량이 최대 72%까지 증가하였다.
클라우드 스토리지를 최종 저장 장치로 사용하는 인메모리 파일 시스템
네트워크 기술의 발달에 따라 고속으로 인터넷에 연결 가능한 장치의 수가 증가하면서 언제어디서나 쉽게 접근이 가능한 클라우드 스토리지의 사용량이 증가하고 있다. 대표적인 클라우드 스토리지의 형태 중 하나인 오브젝트 스토리지는 비용이 저렴하고 높은 가용성과 지속성을 보장해주지만, HTTP 기반 인터페이스인 RESTful API로만 데이터에 접근가능하다는 제약이 있다. 본 논문에서는 이러한 점을 해소하고자, 기존 POSIX 인터페이스를 지원하며 클라우드 오브젝트 스토리지와 데이터를 주고받을 수 있는 인메모리 파일 시스템을 제안한다. 특히 본 연구의 클라우드 스토리지로 파일을 보내는 플러시 기법은 리눅스 시스템의 스왑 모듈을 활용하여 개발함으로써 기존 애플리케이션들과 높은 호환성을 가지며, 기존 클라우드 스토리지를 사용하는 시스템이 가지는 오버헤드를 최소화하였다. 제안하는 파일 시스템은 S3QL 보다는 약 57% 빠른 쓰기 성능을 보이며, tmpfs와 매우 근접한 읽기 성능을 보인다.
리눅스 기반 모바일 기기에서 사용자 응답성 향상을 위한 프레임워크 지원 선별적 페이지 보호 기법
스마트폰과 같은 모바일 기기가 널리 보급됨에 따라 사용자들은 모바일 기기 응용들을 사용하면서 빠른 응답성을 제공받기를 바란다. 하지만 모바일 기기 응용들은 종종 사용자가 기대하는 수준의 응답성을 제공하지 못한다. 응답성을 저해하는 주 원인들 중 하나는 과도한 페이지 폴트 발생에 따른 대화형 태스크 수행의 지연이다. 이는 대화형 태스크의 상주 페이지(resident page)들이 비대화형 태스크와의 페이지 캐시 경쟁에 의해 더욱 빈번히 희생될 페이지(victim page)으로 선정되어 스토리지로 쫓겨나기 때문이다. 이 논문은 이러한 문제를 해결하기 위해 프레임워크 지원 선별적 페이지 보호 기법을 제시한다. 제안한 기법은 프레임워크 레벨에서 대화형 태스크를 식별하고 이를 커널에 전달하여 페이지 replacement 시에 대화형 태스크의 페이지를 보호하고, 사용자 입력 처리 중에 발생하는 페이지 폴트를 줄인다. 실험 결과 제안된 기법은 기존 시스템에 비해 페이지 폴트 횟수를 37% 감소시켰고, 응답시간을 11% 단축할 수 있었다.