지속성(컴퓨터 과학)

Persistence (computer science)

컴퓨터 과학에서 지속성(persistence)은 시스템을 만든 프로세스보다 오래 지속되는 시스템 상태의 특성을 말합니다.실제로는 상태를 데이터로서 컴퓨터 데이터 스토리지에 저장함으로써 이를 달성할 수 있습니다.프로그램은 스토리지 디바이스 간에 데이터를 전송하고 네이티브 프로그래밍 언어 데이터 구조에서 스토리지 디바이스 데이터 [1][2]구조로의 매핑을 제공해야 합니다.

예를 들어, 사진 편집 프로그램이나 워드 프로세서는 문서를 파일에 저장함으로써 상태 지속성을 확보합니다.

직교 또는 투명 지속성

지속성은 프로그램 실행 환경의 고유 속성으로 구현될 때 "직교" 또는 "투명"이라고 한다.직교 지속성 환경에서는 실행 중인 프로그램이 상태를 가져오거나 저장하기 위해 특정 작업을 수행할 필요가 없습니다.

비직교 지속성은 프로그램의 특정 명령을 사용하여 데이터를 쓰고 스토리지에서 읽어야 하므로 지속성을 타동사로 사용합니다.완료되면 프로그램이 데이터를 유지합니다.

직교 지속성 환경의 장점은 프로그램이 [citation needed]단순하고 오류가 발생하기 쉽다는 것입니다.

"지속성"이라는 용어는 직교 지속성의 의미에서 앳킨슨과 모리슨에[1] 의해 처음 도입되었다. 그들은 프로그램에 의해 수행되는 명령적 행동과는 달리 데이터의 속성으로서 지속성을 강조하기 위해 동사보다는 형용사를 사용했다.타동사 persist(프로그램에 의해 수행되는 동작을 기술하는 것)의 사용은 역형성입니다.

도입

직교 영속성은 동면 운영 체제 및 VMware 및 Virtual Box 등의 플랫폼 가상화 시스템에서 널리 채택되고 있습니다.

PS-algol, Napier88, Fibonacci 및 pJama와 같은 연구 프로토타입 언어들은 프로그래머들에게 이점과 함께 개념을 성공적으로 입증했습니다.

지속성 기술

시스템 이미지

시스템 이미지를 사용하는 이 가장 간단한 지속성 전략입니다.노트북 최대 절전 모드는 시스템에서 실행 중인 프로그램에 의한 액션이 필요 없기 때문에 시스템 이미지를 사용한 직교 지속성의 예입니다.시스템 이미지를 사용한 비직교 영속성의 예로는 문서 전체를 파일에 저장하기 위한 특정 명령을 실행하는 단순한 텍스트 편집 프로그램을 들 수 있다.

결점:전체 시스템 상태를 유지하는 데 충분한 RAM이 필요합니다.시스템 장애 또는 셧다운 시 마지막 이미지 저장 후 시스템에 대한 상태 변경은 손실됩니다.모든 변경에 대해 이미지를 저장하는 것은 대부분의 시스템에서 시간이 너무 오래 걸리기 때문에 이미지는 중요한 시스템의 단일 지속 기술로 사용되지 않습니다.

일지

저널을 사용하는 것은 두 번째로 간단한 지속 기술입니다.저널링은 각 이벤트가 시스템에 적용되기 전에 로그에 이벤트를 저장하는 프로세스입니다.이러한 로그를 저널이라고 합니다.

기동시에 저널이 읽혀져 각 이벤트가 시스템에 재적용되기 때문에, 시스템 장해나 셧다운시의 데이터 손실을 회피할 수 있습니다.

예를 들어, 파일에 쓸 때 사진 편집 프로그램의 사용자 명령의 전체 "언도/리도" 이력은 편집된 사진의 상태를 언제든지 복구할 수 있는 저널을 구성합니다.

저널은 파일 시스템, 일반적인 시스템 및 데이터베이스 관리 시스템에서 사용되며, "트랜잭션 로그" 또는 "redo 로그"라고도 합니다.

결점:저널을 단독으로 사용하는 경우, 모든 시스템 이벤트의 전체(잠재적으로 큰) 이력은 시스템을 시작할 때마다 다시 적용해야 합니다.그 결과 저널은 종종 다른 지속성 기술과 결합됩니다.

지저분한 쓰기

이 기술은 시스템 상태의 마지막 쓰기 이후 변경된(더러운) 부분만 저장하는 기술입니다.예를 들어 고급 문서 편집 응용프로그램은 더러운 쓰기를 사용하여 마지막 저장 이후 실제로 변경된 문서 부분만 저장합니다.

결점:이 기술을 사용하려면 프로그램 내에서 상태 변경을 가로채야 합니다.이는 특정 스토리지 API 호출을 요구하거나 자동 프로그램 변환을 통해 투명한 방식으로 수행됩니다.이로 인해 네이티브코드보다 느리고 디버깅이 복잡해집니다.

지속성 레이어

프로그램의 상태를 유지하기 쉽게 하는 소프트웨어 계층을 일반적으로 지속성 계층이라고 합니다.대부분의 지속성 계층은 직접 지속성을 달성하지는 않지만 기본 데이터베이스 관리 시스템을 사용합니다.

시스템 보급률

시스템 보급률은 앞서 말한 시스템 이미지와 트랜잭션 저널을 결합하여 한계를 극복하는 기술입니다.

결점:일반적인 시스템에서는 시스템 상태 전체를 유지하기에 충분한 RAM이 필요합니다.

데이터베이스 관리 시스템(DBMS)

DBMS는 위에서 언급한 지저분한 쓰기 및 트랜잭션 저널링 기술의 조합을 사용합니다.지속성뿐만 아니라 쿼리, 감사 및 액세스 제어와 같은 다른 서비스도 제공합니다.

영속적인 운영 체제

영속 운영체제는 크래시 또는 예기치 않은 셧다운 후에도 영속적으로 유지되는 운영체제입니다.이 기능을 사용하는 운영체제는 다음과 같습니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ a b Atkinson, M.P.; Bailey, P.J.; Chisholm, K.J.; Cockshott, W.P.; Morrison, R. (1983). "PS-algol: A Language for Persistent Programming" (pdf). Proceedings 10th Australian National Computer Conference. 10th Australian National Computer Conference. Melbourne, Australia. p. 70–79.
  2. ^ Balzer, Stephanie (November 17, 2005). "Contracted Persistent Object Programming" (PDF). University of Glasgow - School of CS - Research. ETH Zürich. Archived from the original (PDF) on December 31, 2006. Retrieved September 21, 2015.