1

나는 방법에 대해 읽었습니다 가상 메모리메모리 관리는 운영 체제에서 작동합니다. 각 프로세스가 자체적으로 인접한 논리적 주소 공간을 갖는 방식을 이해했습니다. 이 주소 공간은 물리적 메모리에서 연속적 일 필요는 없습니다. 이를 위해 페이징이 사용됩니다. 페이지 테이블은 논리적 주소에서 물리적 주소로 매핑하는 데 사용됩니다. 논리 주소는 두 부분으로 나뉘며, 첫 번째 부분은 논리적 페이지 번호를 제공하며 페이지 테이블을 사용하여 물리적 페이지 번호로 변환되고 두 번째 부분은 해당 페이지로 오프셋됩니다. 따라서 메모리의 내용이 검색됩니다.
가상 메모리는 모든 페이지가 주 메모리에있을 필요가없고 페이지 오류를 통해 가져올 수있는 확장 기능입니다.가상 메모리 주소 변환

내 이해를 사용하여 나는이 페이지에 4 문제 해결 : www.ics.uci.edu/~bic/courses/JaverOS/ch8-ex.pdf

내 대답이 잘못 알았어, 내가 정답이 무엇인지 단서가 없다. 이것은 내가 한 방식입니다.

From the diagram in the question, Page table for Process P1 will look like this according to me: 
0-4 
1-5 
2-6 
3-7 

So when process P1 makes a reference to 0 i.e is 0000 in 4 bit binary, we divide 
it as 00|00. 
Thus logical page no = 00 and offset = 00. 
From the page table, we can see 0 is mapped to 4th physical frame. 
Offset is also 00 here. So I get the 0th entry(offset) in the 4th frame. 
The content at this memory location(i.e Frame No. 4, offset 0) is 0. 

왜 잘못 되었나요? 아무도 도와 줄 수 있습니까?

+0

누군가가 질문에 답하기를 원하면 댓글에 이유를 표시하십시오! – rgamber

+0

당신의 영어는 읽기가 정말 어렵습니다. 나는 당신의 대답이 무엇인지보고 어려움을 겪었습니다. 어쩌면 그 일을 먼저 해보십시오. – Tobu

+0

죄송합니다, 영어가 제 1 언어가 아닙니다. 나는 그 질문을 바꾸려고 노력했다. 시험을 위해 공부할 때 답을 고맙게 생각하고 명확하지 않은 개념을 계속할 수 없습니다. – rgamber

답변

3

가상 주소 8부터 시작하겠습니다. 더 잘 설명해야합니다.

8 = 2x4 + 0. 물리적 주소는 프로세스의 2 페이지 오프셋 0에 저장됩니다. 우리는 두 번째 페이지를 찾는다. P1의 경우 페이지 2의 주소는 PA 4 + 2에 저장되며 28입니다. PA 28의 내용을 조회하고 값 0을 얻습니다. P2의 경우 페이지 2의 주소는 PA 12 + 2에 저장되며 주소는 24 PA 24의 내용은 5입니다.

예외적 인 경우를 보여주는 가상 주소 15가 있습니다.

15 = 3x4 + 3 물리적 주소는 프로세스의 페이지 3의 오프셋 3에 저장됩니다. P1의 경우 페이지 3의 주소는 -2를 포함하는 PA 4 + 3에 저장됩니다. 부호 비트는 페이지가 실제 메모리 외부에 있음을 나타냅니다. 이는 하드 페이지 오류 (OS가 예외적으로 처리하지만 오류는 아닌 상황)가 있음을 나타냅니다. P2의 경우 페이지 3의 주소는 PA 12 + 3에 저장되며 일부 특수 메커니즘 (독극물 값, 외부 프레임 테이블?)은 유효하지 않다고 알려줍니다. 이것은 오류이며 세그먼트 오류로보고됩니다. VA 7 P1과

마지막 예는 오프셋을 설명 :

7 = 1 × 4 + 3.물리적 주소는 P1의 페이지 1의 오프셋 3에 저장됩니다. 페이지 1은 PA 8에, 페이지 1의 오프셋 3은 PA 8 + 3에 있습니다.

+0

자세한 설명 주셔서 감사합니다! 나는 의심한다. 페이지 테이블이 논리적 페이지와 물리적 위치 사이를 매핑한다고 생각했습니다. 예를 들면. VA = 8 일 때 논리 페이지는 2입니다. 그러면 물리적 페이지는 4 + 2 = 6이됩니다. 오프셋 6에서 6 페이지를 보지 않겠습니까? 내가 어디에서 잘못 알았지? – rgamber

+1

가상 주소가 두 번 역 참조됩니다. 4 + 2는 P1의 두 번째 페이지의 물리적 주소의 실제 주소입니다. 귀하의 추론 P1의 페이지 테이블의 메모리 내용을 무시하는 것 같습니다. – Tobu

+0

아, 두 번 참조 해제 된 가상 주소가 내 책에 명확하게 언급되지 않았습니다. 감사. 나는 실제로 페이지 테이블의 메모리 내용을 무시하고 있었다. 이제 VA = 8 인 경우 6의 내용은 28 대신 39이고 페이지 오프셋은 2입니다. 그런 다음 29를 프레임의 기본 주소로 사용하고 2로 오프셋합니다. 즉 31에서 내용을 읽습니다. 최종 답변으로? 정말 당신의 도움에 감사드립니다. – rgamber

0

다이어그램에 실제 메모리와 실제 주소가 왼쪽에 있다고 가정합니다. p1과 p2가 자신과 다른 페이지 테이블에 직접 액세스하게하는 것은 의미가 없습니다.

가상 주소 0의 경우 p1의 경우 페이지 프레임 1에서 p2를 가져오고 p2의 경우에는 페이지 프레임 3에서 0을 가져옵니다.

VA = 1 인 경우 각각 8 및 -12를 가져옵니다.

VA = 4의 경우 p1과 p2에 대해 정의 된 페이지 테이블 외부에 있기 때문에 아무 것도 가져 오지 않습니다 (즉, "각 페이지와 페이지 테이블의 크기는 4입니다"및 "p1의 페이지 테이블은 주소 4, p2의 페이지 테이블은 주소 12에서 시작됩니다. "; 제 해석이 틀리면 문제 문 역시 올바르지 않습니다. 왜냐하면 그것들은 4보다 크거나 같고 정의 된 페이지 테이블 밖에 있기 때문입니다.

그러면 여기에서 최종 답을 얻을 수 있습니다.