2016-09-23 2 views
-2

Galvin에서 OS를 읽고 있었는데 시스템이 가상 메모리를 지원하지 않는 경우 메모리 보호를 구현하는 방법에 대해 의심의 여지가 있었습니까? 프로세스에 보호 된 주소 공간을 부여하는 방법을 의미합니까?가상 메모리없이 메모리 보호가 어떻게 이루어 집니까?

모든 새로운 개념이나 explaination 좋지 않을까 ...

+0

나는 보호 된 주소 공간을 프로세스에 부여 할 수있는 방법을 의미합니까? – Garrick

+0

가상 메모리가 부족한 메모리 보호에는 다양한 형태가 있으며, 대상 시스템의 특정 기능에 따라 다릅니다. 그러한 메커니즘이없는 순수한 랜덤 액세스 메모리를 사용하면 임의의 코드 실행을 허용하지 않고 "안전"작업 (JIT 언어 생각) 또는 메모리를 가져 오는 동적 재 컴파일과 같은 일부 형식의 에뮬레이션 만 제공하는 intepretation 형식을 사용해야합니다. 필요한 경우 액세스 확인. – doynax

답변

1

Memory protection on Wikipedia 메모리 보호의 다른 방법을 보여줍니다, 당신은 통과해야한다.

가상 메모리가 지원되지 않으면 Protection keys method이라는 개념을 사용할 수 있습니다.

를 읽어 :

메모리 보호 키 (MPK)이기구는 관련된 수치 값을 갖는 각각의 특정 크기 (예를 들어, 4 킬로바이트)의 블록들로 물리적 메모리를 분할라는 보호 키. 각 프로세스의 에는 보호 키 값이 연관되어 있습니다. 메모리 액세스에서 하드웨어는 현재 프로세스의 보호 키가 액세스중인 메모리 블록과 관련된 값과 일치하는지 확인합니다. 그렇지 않은 경우 예외가 발생합니다.

+0

베이스 레지스터와 리미트 레지스터는? 우리도 그걸 사용할 수 있다고 생각합니다. – Garrick

+0

@stackuser - 이것은 메모리 보호의 세분화 방법에 사용되는 또 다른 개념입니다. –

+0

okk 및 단 하나의 의심,이 방법은 멀티 프로세싱 시스템에서도 사용할 수 있습니까? – Garrick

0

운영체제를 알고 싶다면 Galvin을 사용하여 고양이 상자에 줄을 치십시오.

이 문제를 이해하는 첫 번째 핵심은 논리 메모리와 가상 메모리 간의 차이점을 이해하는 것입니다. 안타깝게도, 많은 프로세스와 OS 문서가이 두 용어를 결합합니다.

페이지 테이블은 페이지를 비 연속 페이지 프레임에 매핑하는 연속적인 선형 논리 주소 공간을 정의합니다. => 논리 메모리.

가상 메모리는 페이지 테이블 항목이 물리적 페이지 프레임에 매핑되지 않을 때 보조 저장소 (디스크)를 사용하는 프로세스입니다.

두 가지 밀접한 관련 개념입니다. 가상 메모리에는 논리 메모리가 필요하지만 논리 메모리에는 가상 메모리가 필요하지 않습니다.

후자의 경우 OS는 물리적 메모리를 시뮬레이트하기 위해 보조 스토리지를 사용하지 않습니다. 프로세스가 논리적 페이지에 액세스 할 때 물리적 페이지 프레임에 매핑되어야합니다. 그렇지 않으면 오류가 발생하며 가상 메모리처럼 페이지 오류가 발생하지 않습니다.

사전 가상 메모리 시대에는 모든 것이 완전히 다르게 수행되었습니다. 그런 다음 전체 프로세스가 스왑 된 상태로 바뀌 었습니다 (Eunuchs에서 페이지 파일을 스왑 파티션이라고 부르는 이유).이 작업은 디스크 또는 매핑 레지스터에 대한 읽기/쓰기를 사용하여 수행되었습니다. 그 당시에는 주소 공간이 64K 바이트 이하 였기 때문에 디스크에 프로세스를 작성하는 것만 큼 번거롭지 않았습니다.

그런 시스템에서는 64K 정도의 메모리를 가지며 다른 프로세스의 메모리를 얻기 위해 그 이상의 메모리에 액세스 할 수 없습니다.

관련 문제