2013-04-29 2 views
20

나는 공간과 시간적 지역성의 의미에 대해 약간 혼란 스럽다. 배열 예제를 통해 더 잘 이해하는 데 도움이 될 것으로 기대하고 있습니다. 이와 같은 예에서시간적 대 배열과 공간적 지역

: A [0] [1], A [0] [2], A [0] [3] .... 등

이 시간적 지역성을 보여 하는가? 동일한 행에 여러 번 액세스하지만 다른 오프셋에서 볼 수 있습니다 ... 이것은 다른 주소에 액세스한다는 의미입니까? 또한

내가 말하는 정정임을 이런 예 : A [1], A [2], A [3] ... 등

가 보여 공간 지역성?

시간 및 공간 지역성이 실제 코드에서 어떻게 작동하는지에 대한 몇 가지 설명을 통해 더 잘 이해할 수 있습니다.

답변

43

공간적 및 시간적 지역성은 프로그램이 데이터 (또는 명령어)에 액세스하는 방식의 두 가지 특성을 설명합니다. 위키 백과에는 locality of reference에 관한 좋은 기사가 있습니다.

참조 시퀀스는 시간이 가깝게 참조되는 항목이 인접한 메모리 주소 (근처의 메모리 주소, 디스크의 인접 섹터 등) 인 경우 지역 번호가 spatial이라고합니다. 같은 일에 대한 액세스가 시간적으로 묶여 있다면 시퀀스에는 temporal 지역이 있다고합니다.

프로그램이 큰 배열의 모든 요소에 액세스하여 한 번 읽고 다음 요소로 이동하고 다른 모든 위치를 만질 때까지 주어진 위치에 대한 액세스를 반복하지 않으면 공간 지역이 아니지만 임시 지역입니다. 반면에 프로그램이 다른 임의의 하위 집합으로 이동하기 전에 배열의 위치 중 임의의 하위 집합에 반복적으로 액세스하는 데 시간을 소비하는 경우 임시 지역이지만 공간은이 아닌 지역이라고합니다. 잘 쓰여진 프로그램은 함께 액세스되는 것을 그룹화하는 데이터 구조를 가지므로 공간 지역을 보장합니다. 이 다음 모두 가 서로 가까이 할당해야 및 B에 액세스 한 후 프로그램은 곧 B에 액세스 할 가능성이있는 경우.

첫 번째 예

A[0][1], A[0][2], A[0][3] 

공간 지역은, 시간에 가까운 액세스 일들이 공간에 가까운 보여줍니다. 동일한 것을 두 번 이상 액세스하지 않았으므로 임시 지역을 표시하지 않습니다.

번째 예

A[1], A[2], A[3] 

또한 공간 지역성을 도시하지만 시간적 지역성.여기

보여줍니다 예입니다 간단한 단어에서 지역

A[1], A[2000], A[1], A[1], A[2000], A[30], A[30], A[2000], A[30], A[2000], A[30], A[4], A[4] 
7

시간,

시간적 지역 : 시간에 한 지점 에서 참조하는 자원이 언젠가 다시 참조 될 개념 가까운 미래에.

공간적 지역성 : 주변 자원이 방금 참조되었을 때 자원을 참조 할 가능성이 더 높다는 개념은 입니다.

출처 : 위키 백과