2011-01-18 6 views
2

16 진수 메모리 주소가 메모리의 전체 위치를 나타 냅니까?메모리 주소는 무엇을 의미합니까?

4GB RAM과 메모리 주소가 있습니다. 데이터가 시작되는 위치 (바이트 단위)를 가리 킵니까? 예 : 2.1 gb에서.

메모리에 데이터를로드하기 전에 메모리 주소가 하드 디스크에서 어떻게 작동합니까?

데이터의 일부가 메모리에서 가져오고 다른 데이터가 디스크에서 가져 오는 경우가 있습니까? 위치는 어떻게 차별화됩니까?

덕분에

답변

3

16 진수 메모리 주소 (포인터 값을 인쇄 할 때 표시되는 것과 같은)는 가상 메모리의 한 위치를 가리 킵니다.

32 비트 시스템에서 각 프로세스의 전체 가상 메모리는 4GB입니다. 이 가상 메모리는 CPU 및 운영 체제에서 관리합니다. 가상 메모리의 위치에 액세스 할 때 CPU와 운영 체제는 실제 물리적 메모리의 위치가 매핑되는 위치를 결정하고 거기에서 데이터를 검색합니다.

운영 체제는 실제 메모리에서 물건을 가져 와서 다른 것으로 바꾸기 위해 디스크에 스왑 할 수도 있습니다. 그런 다음 실제 메모리에서 디스크로 스왑 된 항목의 가상 메모리 위치에 액세스하려고하면 OS에서 디스크의 페이지를 실제 메모리로 다시로드하는 "페이지 오류"가 생성됩니다.

+0

감사합니다.가상 메모리는 디스크 나 메모리에 저장됩니까? – jarryd

+0

@aljaree 가상 메모리는 "가상"이며 존재하지 않습니다. 어디에도 저장되지 않습니다. 특정 순간에 그것은 물리적 RAM 위치에 매핑 될 수 있으며, 스왑에서 주소를 지정하고, mmap 파일에서 주소를 지정할 수 있습니다. 그리고 흥미로운 경우는 가상 메모리 주소 *가 모두와 당신이 그것을 액세스하려고합니다. 이 경우 액세스 위반 a.k.a. 세그먼트 오류 오류가 생성됩니다. – ulidtko

+0

나는 조금 혼란 스럽다. 나는 프로그래머 관점에서 그것을보고있다. 어셈블리를 작성해야한다면 가상 메모리가 어디에 위치합니까? 가상 머신에서 가상이라는 단어는 가상 메모리와 동일한 개념을 갖고 있습니까? 가상 메모리에 대한 최고의 책? 감사합니다. – jarryd

2

현대 운영 체제 virtual memory 있습니다.

이것은 메모리에서 일부 바이트에 액세스하기 위해 프로그램을 사용하는 주소는 완전히 "가상"이며 존재하지 않는다는 것을 의미합니다. 운영 체제는 특수 하드웨어 컨트롤러를 통해 실제 개의 메모리 위치로 완전히 매핑되며 주어진 주소에 대해 실제 메모리 위치가 전혀 없을 수 있습니다. 예를 들어, 가상 메모리에 파일을 mmap(), 액세스 할 수 있으며 가상 주소에서 바이트에 액세스하면 바이트의 파일에 액세스 할 수 있습니다. 마찬가지로 일부 memory page을 오랫동안 사용하지 않은 경우 운영 체제가 실제 RAM에서 디스크로 swap off 페이지를 표시 할 수 있습니다. 이 경우 가상 메모리는 실제 메모리 위치를 가리 키지 않습니다.

+0

확인. 어떻게 그 주소가 관리됩니까? – jarryd

+0

링크 된 위키 페이지를 읽었습니까? –

+0

@aljaree 가상 메모리를 다루는 정책은 다소 OS에 따라 다르다고 생각합니다. 당신은 어떤 정확한 상황에 관심이 있습니까? – ulidtko

0

대부분의 경우 - 예. 그러나 일부 프로세서는 2 개의 값을 사용하여 실제 주소를 계산합니다. 예를 들어 Intel 8086. 하드 디스크는 정보를 저장하는 자체 시스템이있는 유일한 저장소입니다. 따라서 CPU 작동이 실행되기 전에 RAM에 데이터를로드해야합니다.

+0

감사합니다. 따라서 컴퓨터의 메모리가 최소 인 경우 사용 가능한 메모리보다 많은 데이터가 필요할 경우 어떻게해야합니까? 내 말은, 라이브 바이트는 시스템이 릴리스 할 수있는 메모리가없는 것 이상의 결과를 초래한다는 의미입니다. 그들은 새로운 하드웨어를 기다려야 만 했나요? – jarryd

+0

음, 가상 메모리 시스템이 약간 도움이됩니다. 그러나 애플리케이션이 메모리 집약적이라면 시스템은 실제로 스와핑을 끝낼 수 있습니다. 얼마나 많은 페이지가 스왑 아웃되었는지 확인하는 것이 좋습니다. Windows의 작업 관리자를 사용하여 찾습니다. – Peposh

+0

아니요, 아직이 자료에 대한 단서가 없습니다. 나는이 질문에 관심이 있고 단지 궁금해했다. 감사. – jarryd

관련 문제