• 제목/요약/키워드: 스택 저장

검색결과 57건 처리시간 0.021초

크로스 컴파일러에서의 효율적인 메모리 사용 기법에 대한 연구 (A Study for the Efficient Memory Management in time of using Cross Compiler)

  • 경보현;전승훈
    • 대한전기학회:학술대회논문집
    • /
    • 대한전기학회 2003년도 학술회의 논문집 정보 및 제어부문 B
    • /
    • pp.641-644
    • /
    • 2003
  • 본 논문은 RTOS(Real-Time Operation System, 리턴어드레스를 위한 유저스택사용 RTOS가 탑재된 CE(Consumer Electronic)제품상에서 리턴어드레스가 유저스택으로 저장하는 것을 지원하지 않는 컴파일러를 위한 알고리즘이며 실험을 위하여 제안된 알고리즘을 상용 컴파일러에 적용하여 비교해보도록 하겠다. 우선 기존 컴파일러 알고리즘으로는 Task마다 할당된 유저스택영역이 존재하며 Task가 수행중 발생된 리턴어드레스는 즉시 할당된 유저스택으로 저장하는 알고리즘을 갖고있다. 이런 알고리즘으로 인하여 인스트럭션이 수행중 빈번한 메모리 접근(external memory)가 발생한다. 그러나 제안된 알고리즘은 Task 수행중에는 리턴어드레스를 시스템스택(internal memory)에 저장한 후 Task 전환이 발생할 경우 일시에 시스템 스택에 저장된 리턴어드레스를 유저스택으로 이동하게 되므로 Task 수행중에는 시스템 스택만을 접근하므로 task의 수행시간을 단축할 수가 있다. 그리고 실험을 위하여 상용 컴파일러들에 본 알고리즘을 적용하였다. 상용 컴파일러로는 매번 리턴어드레스를 자동으로 Task별 할당된 유저스택에 저장할 수 있도록 지원해주는 TASKING 컴파일러(Altium 사)와 그렇지 않은 KEIL컴파일러(KEIL사)가 있으며 본 알고리즘을 KEIL 컴파일러에 적용하여 실험을 하여 TASKING 컴파일러와 비교한 결과 유저스택을 지원하는 TASKING(Altium사) 컴파일러에서 구현한 CE제품의 Response time이 KEIL 컴파일러에서 구현한 CE제품의 Response time 값이 같게 나왔다. 그러므로 KEIL 컴파일러상에 본 알고리즘을 적용시킬 경우 RTOS가 탑재된 CE제품을 보다 용이하게 구현할 수가 있다.

  • PDF

자바 객체의 스택 저장 가능성 판별을 위한 정적 분석 기법 (Escape Analysis for Stack Allocation in Java)

  • 조은선
    • 한국정보과학회논문지:소프트웨어및응용
    • /
    • 제31권6호
    • /
    • pp.840-848
    • /
    • 2004
  • 자바에서 사용이 끝난 객체의 수집(garbage collection)은 프로그래머의 메모리 관리 부담을 덜어준다는 장점이 있다. 그러나, 수행 속도에 영향을 미치게 되므로 정적 분석 기법을 사용하여 이를 극복하는 기법이 제안되어왔다. 이 중 하나인 스택 저장 기법은, 힙메모리 대신 메소드 스택에 저장될 수 있는 객체들을 수행 전에 분석하여 파악해두는 방식을 따른다. 본 논문에서는 메소드의 호출/반환에 대해 직접 분석하여 자신을 생성한 메소드의 반환 후에도 접근될 소지가 있는 객체들을 판별하는 정적 분석 기법을 제시한다. 이로써 객체와 변수의 지정(assignment) 관계 분석을 기준으로 하는 기존의 스택 저장 기법들에서 간과되었던 객체들 중에서도 스택에 저장할 수 있는 대상을 발견할 수 있도록 한다.

구조화된 예외 처리를 위한 Continuation 구현 기법 (Continuation Implementation Method for Structured Exception Handling)

  • 김세원;김영필;유혁
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2010년도 한국컴퓨터종합학술대회논문집 Vol.37 No.1(B)
    • /
    • pp.482-486
    • /
    • 2010
  • Continuation은 운영체제의 실행 흐름을 최적화 하기 위한 수단으로 사용되어 왔다. 특히 Continuation을 이용하면 스택의 내용 없이, 특정 시점 이후의 프로세스의 연산을 그대로 수행 할 수 있는 장점을 가지고 있다. 하지만 이와 같이 스택에 저장된 정보를 사용하지 않을 경우 구조화된 예외 처리 방법(SEH)을 사용하는 운영체제에서는 Continuation을 바로 적용하기에 어려움이 존재한다. 이러한 문제를 해결하기 위해, SEH를 위해 함수에서 수정한 스택의 내용을 저장해 두었다가 Continuation이 끝나고 스택을 복원하여 SEH가 올바르게 실행 되도록 하였다.

  • PDF

고속 저장 장치를 위한 입출력 스택 최적화 (Optimizing I/O Stack for Fast Storage Devices)

  • 한혁
    • 한국콘텐츠학회논문지
    • /
    • 제16권5호
    • /
    • pp.251-258
    • /
    • 2016
  • 최근 클라우드 컴퓨팅, 사회 관계망 서비스 등의 분야에서 고속 저장 장치에 대한 수요가 크게 증가하고 있다. 성능이 우수한 고속 저장 장치가 개발되고 있지만 현재 리눅스 운영체제의 입출력 스택은 하드 디스크 드라이브를 고려해서 설계되었기 때문에 고속 저장 장치를 충분히 활용하고 있지 못하다. 이 논문에서는 고속 저장 장치의 입출력 대역폭과 입출력 지연시간을 최대로 활용할 수 있는 최적화된 입출력 스택을 제안한다. 이를 위해 기존 리눅스의 블록 입출력 계층을 새로운 인터페이스를 가지는 입출력 계층으로 대체하고 최적화한다. 제안된 입출력 계층은 기존의 하드 디스크 드라이브를 고려한 블록 계층을 우회하고 디바이스 드라이버를 최적화하여 고속 저장 장치의 성능을 최대한 이용할 수 있게 해준다. 또한, 리눅스의 ext2/ext4 파일 시스템을 제안된 입출력 계층 위에서 동작할 수 있도록 최적화하였고, 벤치마크 실험 결과를 통해서 제안하는 입출력 스택은 기존 리눅스 입출력 스택과 비교하여 1.7배 정도의 성능 향상이 있음을 확인할 수 있었다.

스택 기반 코드에서 3-주소형태코드 생성을 위한 변환기 설계 (Design of Translator for 3-Address Code from Stack Based Code)

  • 김지민;김영국;조선문;김기태;유원희
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2004년도 춘계학술발표대회
    • /
    • pp.301-304
    • /
    • 2004
  • 자바의 특징 중에 한 가지는 자바 가상 기계를 기반으로 하고 있게 때문에 특정한 하드웨어나 운영체제에 영향을 받지 않고 독립적으로 수행이 가능하다는 것이다. 하지만 자바 언어로 개발된 애플리케이션은 C나 C++등 다른 언어로 작성한 프로그램에 비하여 실행이 매우 느리다는 단점을 가지게 된다. 이는 자바 가상 기계 에서 바이트코드가 인터프리터 방식으로 사용되기 때문이다. 이러한 단점을 보안하기 위하여 여러 가지 최적화 기법이 적용되고 있다. 본 논문에서는 이러한 방법으로써 바이트코드를 3주소형태 코드로 변환하는 변환기 설계에 대해서 제안할 것이다. 바이트코드에서 스택을 사용하지 않는 3주소형태 코드로의 변환하기 위하여 크게 세 단계를 걸친다. 첫째, 스택에 대한 명백한 참조를 가진 타입화된 스택기반의 중간표현을 생성한다. 둘째, 생성된 코드에서 타입에 대한 정보를 추출하고 추출된 정보를 저장하는 기억장소를 할당하여 추출된 정보를 저장시킨다. 셋째, 스택을 대신할 타입이 없는 지역변수를 생성하여 각각의 변수에 알맞은 타입을 분배함으로써 타입화되고 명백한 3주소형태 코드를 생성한다. 이러한 방식으로 스택기반 언어에서 발생하는 문제점을 해결한다.

  • PDF

오픈소스 클라우드 플랫폼 : 오픈스택과 클라우드스택 (Open Source Cloud Platforms : OpenStack and CloudStack)

  • 라정휘;한상혁;성백열;김영국
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2012년도 한국컴퓨터종합학술대회논문집 Vol.39 No.1(A)
    • /
    • pp.259-261
    • /
    • 2012
  • 클라우드 컴퓨팅은 정보가 인터넷 상의 서버에 영구적으로 저장되고 데스크탑이나 테이블 컴퓨터, 노트북, 벽걸이 컴퓨터, 휴대용 기기 등과 같은 클라이언트에는 일시적으로 보관되는 패러다임을 뜻한다. 가용성과 사용상의 편의에 대한 요구의 증가로 최근들어 빠른 속도로 발전하는 모습을 보이고 있다. 클라우드 컴퓨팅은 제공하는 서비스의 유형에 따라 IaaS(Infrastructure as a Service), PaaS(Platform as a Service), SaaS(Software as a Service)로 나뉜다. 이 중 IaaS는 인프라를 서비스로 제공하는 모델이다. 이를 구현한 오픈소스 클라우드 플랫폼으로 오픈스택과 클라우드 스택이 대표적이다. 시트릭스는 자사가 개발중인 클라우드 플랫폼인 클라우드스택을 아파치 라이센스로 전환하겠다고 발표했다. 이전까지 같은 종류의 클라우드 플랫폼인 오픈스택의 회원사로 참여하고 있던 시트릭스가 오픈스택 그룹에서 탈퇴하고 클라우드스택을 지원한다는 발표는 큰 관심을 받았다. 본 논문에서는 여러 오픈소스 클라우드 플랫폼 중 오픈스택과 클라우드스택을 비교해보고, 이를 통해 향후 오픈소스 클라우드 플랫폼의 발전가능성에 대해 고찰해보고자 한다.

DSLR을 이용한 효율적인 스택스매싱 공격탐지 방법 (Efficient Stack Smashing Attack Detection Method Using DSLR)

  • 황도영;유동영
    • 정보처리학회논문지:컴퓨터 및 통신 시스템
    • /
    • 제12권9호
    • /
    • pp.283-290
    • /
    • 2023
  • 최근 IoT 기술이 꾸준하게 발전되면서 의료 시스템, 스마트 TV 시계 등에서 많이 활용되고 있다. 소프트웨어 개발의 66%가 메모리 공격에 취약한 C 언어를 통해 개발되고 C 언어를 사용하는 IoT 기기에 위협적으로 작용한다. 스택스매싱 오버플로 공격은 사용자가 정의한 버퍼 크기보다 큰 값을 삽입하여 반환 주소가 저장된 영역을 덮어쓰게 하여 프로그램이 정상적으로 동작하지 못하게 한다. 메모리 가용량이 적은 IoT 기기는 스택스매싱 오버플로 공격에 취약하다. 또한, 기존의 백신 프로그램을 그대로 적용하게 되면 IoT 기기가 정상적으로 동작하지 못한다. 연구에서는 IoT 기기에 대한 스택스매싱 오버플로 공격을 방어하기 위해 여러 탐지 방법 중 카나리아를 사용하여 각각 무작위 값, 체크썸, DSLR(무작위 저장 위치)로 조건을 설정했다. 2개의 카나리아를 버퍼 내에 배치하여 하나는 버퍼의 끝인 반환 주소 앞에 배치하고 나머지 하나는 버퍼 내 무작위 위치에 저장했다. 이는 고정된 위치에 저장된 카나리아 값은 공격자가 위치를 예측하기 쉬우므로 무작위한 위치에 카나리아를 저장하여 공격자가 카나리아의 위치를 예측하기 어렵게 했다. 탐지 프로그램 실행 후 스택스매싱 오버플로 공격이 발생 후 각 조건을 만족하게 되면 프로그램이 종료된다. 설정한 조건을 각각 조합하여 8가지 경우의 수를 만들었고 이를 테스트했다. 이를 통해 IoT 기기에는 다중 조건을 사용한 탐지 방법보다 DSLR을 이용한 탐지 방법을 사용하는 것이 더 효율적이라는 결과를 얻었다.

바이트코드 프레임워크 설계 (Design of Bytecode Framework)

  • 김영국;김기태;조선문;이갑래;유원희
    • 한국콘텐츠학회:학술대회논문집
    • /
    • 한국콘텐츠학회 2004년도 춘계 종합학술대회 논문집
    • /
    • pp.330-334
    • /
    • 2004
  • 자바 바이트코드는 스택기반 코드이다. 스택기반 코드는 스택 접근 명령어를 사용하기 때문에 분석과 최적화를 어렵게 한다. 따라서 스택기반 코드 최적화에서 생기는 문제점인 코드의 단편화, 타입정보의 상실, 불필요한 적재와 저장이 나타날 수 있다. 바이트코드의 최적화와 분석의 어려운 문제점의 해결 방안으로 바이트코드 프레임워크를 설계한다. 본 논문은 바이트코드의 최적화와 분석의 문제점을 지적하고, 기존의 바이트코드 최적화 기술에 대한 연구 내용을 서술한다. 바이트코드의 분석과 최적화를 단순화하기 위한 대안으로 바이트코드 프레임워크를 제안한다.

  • PDF

TrustZone을 활용한 스택 카나리 보완 기법 (A Study on Stack Canary Security Enhancement Techniques Using TrustZone)

  • 박재열;박성환;권동현
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2024년도 춘계학술발표대회
    • /
    • pp.321-322
    • /
    • 2024
  • 다양한 방면에서 사용되는 임베디드 시스템의 메모리 취약성에 대한 관심이 많아짐에 따라 임베디드 시스템의 메모리 보호와 관련하여 많은 연구가 진행 중이다. 스택 카나리는 효율적인 메모리 보호 기법으로써 널리 사용되지만 물리 메모리가 제한적이고 사용자 권한 분리를 지원하지 않는 임베디드 시스템에서는 기존 방식을 활용한 스택 카나리를 적용하는 것에 한계가 있다. ARM의 TrustZone은 일반 실행 환경과 신뢰 실행 환경으로 분리하여 일반 실행 환경에서 신뢰 실행 환경의 데이터나 코드에 접근하지 못 하도록 막는다. 그렇기 때문에 ARM의 TrustZone에 암호화 키를 저장하거나 보안이 중요한 동작을 TrustZone에서 실행하는 연구가 많다. 본 논문에서는 ARM의 TrustZone을 활용하여 임베디드 시스템에서 스택 카나리 기법의 한계를 보완 할 수 있는 방법을 제안한다.