운영 체제 (10) - 가상 메모리

면책 조항 :이 문서는 블로거 원본입니다, 추적 에 의해-SA의 CC 4.0 저작권 계약, 복제, 원본 소스 링크이 문을 첨부 해주세요.
이 링크 : https://blog.csdn.net/m0_37609579/article/details/102766162

첫째, 정의

컴퓨터 역할의 메모리의 많은, 실행중인 모든 프로그램이 필요로하는 컴퓨터는 메모리를 통해 실행되는, 또는 좋은의 실행 많은 경우, 그것은 소진 메모리로 이어질 것입니다. 이 문제를 해결하기 위해,이다 가상 메모리 기술의 WINDOWS 사용은 메모리 사용량 역할을 할 수있는 하드 디스크 공간의 일부를 마련하기 위해, 공간의이 부분이라고 가상 메모리 폼 페이지 파일을 PAGEFILE.SYS에 하드 디스크에 가상 메모리 존재합니다.

[바이 백과] 가상 메모리 A는 컴퓨터 시스템의 메모리 관리 기술 중입니다. 그것은하게 응용 프로그램 이 가능한 인접 가지고 생각 메모리 (연속 전체 주소 공간 사실이 일반적으로 복수로 분리) 물리적 메모리 칩을 일시적으로의 외부 부에 저장되어 디스크 저장 의 필요성 때 데이터 교환 . 현재, 대부분의 운영체제는 리눅스 "스왑 공간"; 예 : "가상 메모리"의 윈도우 가족, 가상 메모리를 사용합니다.

둘째, 가상 메모리 작동

가상 메모리는 하드웨어 및 운영 체제 정보를 자동으로 스케줄링 및 관리를 저장된다. 그 작업 공정은 여섯 단계를 포함하는 [3] 

  1. 중앙 프로세서 메인 메모리는 그룹 번호 B 및 그룹 어드레스와 어드레스 변환을위한 그룹 번호의 논리 어드레스로 분해 즉, 어드레스 변환 테이블을 검색하기위한 인덱스로서 논리 그룹 번호 정보의 세트가 저장할지 여부를 결정 메인 메모리이다.
  2. 그룹 번호가 이미있는 경우 메인 메모리 내부, 그것은 ④ 대신에 실행되고, 그룹 번호가 메인 메모리에없는 경우,이 메인 메모리의 유휴 공간이 있는지 확인하고, 있다면 어떤 그룹이 찍은 일시적인 조정을 넣지 마십시오 보조 기억 정보의 집합은 메인 메모리에 전송.
  3. 그룹이없는 물리 그룹 번호 및 어드레스 변환 테이블에 등록 된 다수의 논리적 세트 보조 메모리 및 주 메모리를 스페어 영역으로부터 판독하고 있다고한다.
  4. 물리적 어드레스 변환 테이블 그룹 번호의 논리 그룹 번호를 판독한다.
  5. 물리 그룹 번호와 그룹 B 내의 바이트 주소에서 물리 주소.
  6. 실제 주소에 따라 메인 메모리에서 필요한 정보에 액세스 할 수 있습니다.

셋째, 가상 메모리 스케줄링

예약 방법은, 분할, 페이지 세그먼트의 3 종류 페이징된다. 스케줄링 논리 및 물리적 인 어드레스 공간은 고정 된 크기의 페이지들로 분할되는 페이지이다. 각 메인 페이지 순서 번호를 기억하고, 독립적으로 어드레스 가능한 프로그램 공간, 보조 저장실 페이지 스케줄러 프로그램 데이터 테이블 및 2-11 상이한 위치에서 메인 스토리지 페이지에 이산 수있다 자체 페이지 시퀀스 번호를 갖는다 해당 검색. 페이지 스케줄링 이점은 페이지의 작은 부분이며, 페이지 테이블은 프로그래머 빠르고 간단한 조작 전사 어드레스 변환에 투명한, 각 페이지의 단점은 독립적 인 프로그램 모듈은 프로그램 및 데이터 보호를 구현하기 쉽지 않다 아니다. 스케줄링 단계가 프로그램의 주소 공간의 논리 구조에 의해 분할되고, 세그먼트의 길이는 임의이며, 신장을 허용은 상기 메모리의 일부분을 제거하는 장점을 가지며, 상기 메모리 보호 동적 프로그램을 조립하기 쉽게 구현할 쉽다; 단점은 복잡한 작업을 전송 . 함께 두 가지 방법을 조합하면 부 페이지 구성을 스케줄링한다. 물리적 페이지에 페이지 공간 스케쥴링 부에 의해 분할 된 프로그램 모듈은, 각각의 세그먼트는 동일한 페이지의 페이지의 작은 물리적 공간으로 분할된다. 페이지 스케줄링 세그먼트는 세그먼트와 페이지 스타일의 장점을 조합 한 것입니다. 단점은 소프트웨어는 더 복잡하다, 하드웨어의 비용이 증가하게된다. 페이지 일정 기간이 대부분의 대형 범용 컴퓨터 시스템.

1. 일정 페이지

페이징 가상 스토리지 시스템에서, 가상 공간은, 동일한 크기의 페이지들로 분할 논리 페이지 가상 페이지라고 부른다. 메인 메모리 공간이 동일한 크기의 페이지로 나누어 져, 물리적 페이지 또는 물리적 페이지라고합니다. 따라서, 가상 어드레스는 두 개의 필드로 분할된다 : 높은 필드 가상 페이지 번호, 페이지 어드레스 필드는 낮다. 실제 저장 주소는 두 개의 필드로 나누어 져 있습니다 : 높은 필드가 실제 페이지 번호, 페이지 주소 필드가 낮은 것입니다. 한편, 상기 페이지의 사이즈는 2 개의 멱수 단어로 반올림된다.

이것은 페이지 테이블 가상 주소에 의한 물리적 주소로 변환 할 수 있습니다. 페이지 테이블은 페이지 테이블에서, 각 프로그램에 대해 제공되고, 하나 개의 항목들 각각에 대응되는 가상 페이지 번호, 실제 메모리 주소로 사용하여 가상 페이지를 메인 메모리 페이지 주소 (PPN)의 내용이 위치하고, 적어도 상기 엔트리 하이 필드는, 스플 라이스 인 페이지 어드레스는 가상 어드레스의 물리 페이지 번호는 그 메인 메모리에 액세스 할 때, 완전한 존재 어드레스를 생성한다.

2. 예약 단계

메인 메모리 페이지 의 물리적 공간은 고정 영역과 같은 길이로 분할. 페이지 매김의 장점은 페이지 길이하여 구성 용이하게 고정되어 있다는 것입니다 페이지 테이블 관리하기 쉬운, 그리고 외부 단편화가 없습니다. 그러나 단점은 논리적 인 방식으로 페이징 크기의 페이지입니다 및 프로그램 관련이 없습니다. 예를 들어, 메인 메모리에 부분적으로 보조 스토리지 서브 루틴의 소정의 시간 부분이있을 수있다. 이 프로그램의 독립성에 도움이되지 않으며, 인 / 스왑 아웃 처리, 저장, 보호 및 스토리지 공유 작업이 문제가 발생할 교환 할 수 있습니다.

세그먼트라는 다른 어드레스 가능한 메모리 공간을 분할하는 방법. 세그먼트 천연 프로세스 경계에 따라 분할 된 영역의 길이를 동적으로 변경 될 수있다. 전형적으로, 프로그래머는 서브 루틴이 상이한 세그먼트로 상수 피연산자 같은 다른 유형의 데이터로 분할하고, 각각의 프로그램이 동일한 유형의 다수의 세그먼트를 가질 수있다. 

가상 스토리지 시스템의 세그먼트 및 세그먼트 테이블 달성 실제 메모리 주소로의 가상 주소 변환 어드레스 세그먼트 내에서 가상 어드레스의 세그먼트 수있다. 테이블이 각각의 프로그램 세그먼트를 위해 제공되며, 세그먼트에 대응하는 각 세그먼트 테이블 엔트리는, 각 항목은 적어도 세 개의 필드를 포함한다 : 유효 비트는 세그먼트 (부 주소 (세그먼트가 메인 메모리에 전송되었는지 여부를 나타내는) 첫 번째 주소의 존재)와 선분 길이 (세그먼트 기록의 실제 길이). 

3. 페이지 예약 섹션

세그먼트는 가상 메모리 및 가상 메모리 페이지와 함께 가상 메모리 세그먼트를 페이징한다.

첫째, 실제 스토리지는 동일하게 페이지로 나누어 져 있습니다. 가상 메모리 페이지 세그먼트 후에, 프로그램 세그먼트의 논리 구조 페이징 존재 페이지 프로그램 동작의 크기에 따라 각 세그먼트에 상기 페이지를 스왑 아웃 따른하지만 세그먼트를 공유 할 수있다 보호. 따라서, 세그먼트 수 및 페이지 모드 시스템의 장점을 결합한다. 그 단점은, 화상 처리에서 다수의 룩업 테이블을 해결하기 위해 필요하고, 물리 어드레스에 가상 어드레스가 세그먼트 테이블과 페이지 테이블의 세트를 위치시킴으로써 수행된다. 세그먼트 테이블의 각 엔트리가 세그먼트에 대응하고, 각각의 엔트리는 상기 보호 제어 채널 세그먼트 페이지 테이블 세그먼트 및 포인트 세그먼트 테이블 페이지 (페이지 번호)의 개시 어드레스를 갖는 메인 메모리의 페이지를 나타내는 위치가로드되어 있는지 여부와, 수정, 및 기타 표지판입니다.

넷째, 가상 메모리 스케줄링

범례 전체 변환, 직접 변환, 그룹 협회 변환 : 가상 메모리 어드레스 변환 세 실질적 형상 가상 메모리 동작 순서 수식있다. 물리적 공간에 대한 모든 논리 페이지 공간은 변환 전체 결합이라고 모든 페이지 위치로 변환 할 수 있습니다. 특정 페이지를 변환 할 수 있습니다 물리적 공간에 대한 논리적 공간의 각 페이지는 직접 변환이라고합니다. 레노 그룹 변환은 각 페이지를 통해 그룹 전체 레노 변환되는 동안 직접 변환된다 군간 의미한다. , 메인 메모리 부분을 비워있는 메인 메모리의 일부를 결정하기위한 대안 적 교체 규칙에서 해당 부분을 저장하는 보조 기억 장치로 전송한다. 일반적인 교체 알고리즘은 네 가지가 있습니다.

  1. 랜덤 알고리즘 : 발전기는 소프트웨어 또는 하드웨어 임의의 숫자와 페이지를 교체를 결정합니다.  
  2. FIFO는 : 먼저 첫 번째 페이지 교체의 메인 메모리로 전송.
  3. 가장 최근에 사용 된 알고리즘 (LRU는 가장 최근에 사용 된) : 가장 긴 시간을 페이지를 교체하지 않고. 
  4. 최적의 알고리즘 : 사용하기 전에 대부분의 시간을 교체 한 후에 페이지입니다. 이는 단지 여러 다른 알고리즘의 장점의 척도로서, 최적 알고리즘이다. 

가상 메모리의 효율은 메인 메모리 용량, 페이지 크기, 히트 율, 프로그램 지역 및 교체 알고리즘과 기타 요인에 관련되는 성능 평가 시스템의 중요한 부분이다.

가상 메모리의 다섯 번째 역할

: 가상 메모리는 세 가지 중요한 기능을 제공 캐시 , 메모리 관리 , 메모리 보호를

  1. 메인 메모리 어드레스 공간은 디스크 캐시에 저장되는 것으로 간주 메인 메모리는 활성 영역에 저장되고, 필요에 따라 메인 메모리와 디스크 사이에 데이터를 전송할
  2. 각 프로세스에 대한 일관된 주소 공간, 메모리 관리를 단순화 제공
  3.  각 프로세스의 주소 공간의 보호는 다른 프로세스에 의해 파괴되지 않는다

VI 요약

  1. 일정 : 어떤 프로그램 및 데이터를 결정하는 메인 메모리로 전송해야합니다.
  2. 주소 매핑 문제 : 상기 보조 메모리의 물리 주소 (공지 된 방법으로 가상 어드레스에 액세스 할 때 보조 메모리 가상 주기억 어드레스 액세스가 저장된 물리적 주소 (어드레스 변환 프로세스라고도 함)는 마스터가된다 공급하기 위하여 외부 어드레스 변환). 또한, 메인 메모리 할당, 메모리 보호 및 재배치 프로그램 및 기타 문제를 해결해야한다.
  3. 또한 문제 : 어떤 프로그램 및 데이터를 결정하는 메인 메모리가 전송된다.
  4. 업데이트 문제 : 메인 메모리와 보조 스토리지의 일관성을 보장한다.

즉 크게 응용 프로그램의 프로그래밍을 단순화하도록 운영 체제, 하드웨어 및 시스템 소프트웨어의 제어하에 사용자는 이러한 문제를 해결하기 위해.

 


내 마이크로 채널 대중 번호 : 아키텍처 성경 (ID : gentoo666), 공유 자바 건조, 높은 동시성 프로그래밍, 인기있는 기술 자습서 및 분산 마이크로 서비스 기술, 건축, 디자인, 블록 체인 기술, 인공 지능, 빅 데이터, 자바 인터뷰 질문뿐만 아니라 첨단 정보와 인기. 매일 오 업데이트!

참조 기사

  1. https://baike.baidu.com/item/ 가상 메모리 / 101,812? FR = 알라딘
  2. https://www.jianshu.com/p/baf3a13c47db

추천

출처blog.csdn.net/m0_37609579/article/details/102766162