Computer >> 컴퓨터 >  >> 프로그램 작성 >> 프로그램 작성

분산 공유 메모리 구현 알고리즘

<시간/>

공유 메모리 둘 이상의 프로그램에서 액세스할 수 있는 메모리 블록입니다. 공유 메모리 개념은 통신 방법을 제공하고 중복 메모리 관리를 줄이는 데 사용됩니다.

분산 공유 메모리 약어로 DSM 분산 시스템에서 공유 메모리 개념의 구현입니다. DSM 시스템은 시스템에서 로컬 물리적 공유 메모리가 부족한 느슨하게 결합된 시스템에서 공유 메모리 모델을 구현합니다. 이러한 유형의 시스템에서 분산 공유 메모리는 모든 시스템(노드이라고도 함)에서 액세스할 수 있는 가상 메모리 공간을 제공합니다. ) 분산 계층 구조.

DSM을 구현하는 동안 염두에 두어야 할 몇 가지 일반적인 문제 -

  • 공유 메모리에 원격으로 저장된 데이터의 메모리 주소(위치) 추적.

  • 원격 데이터 참조와 관련된 통신 지연 및 높은 오버헤드를 줄이기 위해.

  • DSM에서 공유되는 데이터의 동시 액세스 제어.

이러한 문제를 기반으로 분산 공유 메모리를 구현하도록 설계된 알고리즘이 있습니다. 네 가지 알고리즘이 있습니다 -

  • 중앙 서버 알고리즘
  • 마이그레이션 알고리즘
  • 복제 알고리즘 읽기
  • 전체 복제 알고리즘

중앙 서버 알고리즘

모든 공유 데이터는 중앙 서버에서 관리합니다. . 분산 시스템의 다른 노드 데이터 읽기 및 쓰기 요청 요청을 처리하고 확인 메시지와 함께 데이터에 대한 액세스를 업데이트하거나 제공하는 서버에 .

이러한 확인 메시지는 서버에서 제공하는 데이터 요청의 상태를 제공하는 데 사용됩니다. 데이터가 호출 함수로 전송되면 동시성을 유지하기 위해 데이터의 액세스 순서를 나타내는 번호를 확인합니다. 그리고 실패시 타임아웃을 반환합니다.

대규모 분산 시스템의 경우 둘 이상의 서버가 있을 수 있습니다. 이 경우 서버는 자신의 주소를 사용하거나 매핑 기능을 사용하여 찾습니다.

분산 공유 메모리 구현 알고리즘

이전 알고리즘

이름에서 알 수 있듯이 마이그레이션 알고리즘은 데이터 요소의 마이그레이션 작업을 수행합니다. 각 요청을 처리하는 중앙 서버를 사용하는 대신 시스템에서 요청한 데이터가 포함된 블록이 마이그레이션됩니다. 추가 액세스 및 처리를 위해 요청 시 데이터를 마이그레이션합니다.

하지만 이 알고리즘은 시스템이 동일한 데이터 블록에 여러 번 액세스하고 가상 메모리를 통합하는 기능인 경우에 유용합니다. 개념에는 해결해야 할 몇 가지 단점이 있습니다.

한 번에 하나의 노드만 공유 데이터 요소에 액세스할 수 있으며 전체 블록이 해당 노드로 마이그레이션됩니다. 또한 이 알고리즘은 스래싱에 취약합니다. 노드의 요청에 따른 데이터 항목의 마이그레이션으로 인해.

분산 공유 메모리 구현 알고리즘

복제 알고리즘 읽기

읽기 복제 알고리즘에서 액세스할 데이터 블록은 복제됩니다. 읽기만 허용 모든 사본에서. 쓰기 작업이 수행되어야 하는 경우 모든 복사본이 업데이트될 때까지 모든 읽기 액세스가 중지됩니다.

동시 액세스가 허용되어 전체 시스템 성능이 향상됩니다. . 그러나 작업 비용이 많이 듭니다 쓰기 동시성을 유지하기 위해 공유되는 모든 블록을 업데이트해야 하기 때문입니다. 일관성을 유지하기 위해 데이터 요소의 모든 사본을 추적해야 합니다.

분산 공유 메모리 구현 알고리즘

전체 복제 알고리즘

노드가 읽기 및 쓰기를 모두 수행할 수 있도록 하는 복제 알고리즘을 읽는 확장 의 공유 블록에 대한 작업을 동시에 수행합니다. 그러나 이러한 노드 액세스는 일관성을 유지하기 위해 제어됩니다.

모든 노드의 동시 액세스에 대한 데이터의 일관성을 유지하기 위해 시퀀스가 ​​유지되고 데이터 멀티캐스트에서 이루어진 모든 수정 후에 유지됩니다. 수정하면 모든 데이터 사본이 반영됩니다.

분산 공유 메모리 구현 알고리즘