운영 체제 - 메모리 관리

제 IV 메모리 관리

요약 : 최근 몇 년 동안, 컴퓨터 기술의 개발, 시스템 소프트웨어와 응용 소프트웨어는 유형의 측면에서 빠르게 확대 및 저장 용량이 지속적으로 확대하고있다 functions.Although, 여전히 현대적인 소프트웨어 development.Thus의 요구를 충족시킬 수 없다, 메모리뿐만 아니라 직접 효율적으로 관리하기 위해 가치 있고 희소 resource.How 남아 메모리의 가동률에 영향을 미치는뿐만 아니라 시스템에 큰 영향은 메모리 관리의 주요 목적은 메모리입니다 performance.The 있습니다.

* 메모리 계층

메모리의 3 층 구조의 CPU 레지스터 (레지스터), 메인 메모리 (캐시, 메인 메모리, 디스크 캐시), 보조 저장 장치 (고정 디스크, 이동식 저장 매체);

핸들러가 메인 메모리로부터 명령 레지스터에 명령 및 데이터 취득 지시를 취득한 데이터에 대한 데이터를 등록, 주소 변환 속도를 가속화 상점에게 오퍼랜드 어드레스 레지스터 레지스터; 휴식 캐시 메모리 및 처리 상기 시스템 간의 모순 일시적 디스크의 일부를 저장하는 디스크 캐시 자주 디스크 액세스의 수를 줄이기 위해, 데이터 및 정보를 사용

*로드 및 융합 프로그램

> 링커 - ->로드 모듈 ->로드 프로그램 -> 메모리 컴파일러에 의해 생성 된 개체 모듈

프로그램 로더

절대로드 모드, 프로그램이 프로그램이 메모리에 상주 어떤 위치 알, 컴파일,로드 메모리 주소 위치에 따라 각 재배치 엔트리 주소를 수정, 재배치로드 방식으로, 적절한 바이어스를 추가 시프트 금액 절대 주소로 상대 주소를 변환 할 때, 실행시에 동적으로 읽어, 주소 변환 프로그램을 실행하기 위해 정말 원하는 연기하기

링커

동적 링크로드되면, 사용자는, 부하는 소스 코드를 컴파일하는 것, 실행 파일, 타깃 모듈에 기록 심볼릭 어드레스와 실행 파일에 직접 사용되는 재기록 지시 번호 때 정적 링크 수행 메모리 수렴의 에지에 에지 때 타깃 모듈의 실행 동안 사용하지 않은 런타임 동적 링크는, 메모리에로드되지 않고 단지 로더를 가속화 할 수없는 있도록로드 모듈에 연결된 과정뿐만 아니라, 메모리 공간을 많이 절약

스토리지 관리를 할당 * 연속

하나의 연속 분포는 오직 단일 사용자, 단일 태스킹 운영 체제를 사용할 수있다; 고정 파티션에 할당 된 메모리는 파티션과 동일하거나 동일하지 않은 크기로 분할하고, 각 애플리케이션 프로세스는 하나 또는 여러 개의 파티션, 운영 체제 영역을 차지하는 차지 ; 동적 파티션 할당의 수, 파티션 크기 변수 파티션과 파티션 크기를 동적으로 분할하는 작업의 수에 따라 가변적

고정 파티션 파편 존재 고정 파티션의 총 개수가 동시에 수행 절차 수, ... 파티션 테이블 기록 파티션 크기 및 사용 제한

동적 분할 세포 파편 자유 파티션 테이블의 존재를 아직 테이블 엔트리 (파티션 번호, 파티션 크기, 섹터 어드레스, 주), 무료 분할 체인 --- 달성 자유 파티션 할당 및 링크 설정 --- 파티션 할당되지

검색 요소의 순서에 기초하여 동적 파티션 할당 알고리즘

우선 적합 알고리즘 FF 자유 파티션 Yaoan 어드레스 자유 파티션 테이블 (공백 영역 체인) 고위 저가 내지, 큰 파티션 유지 자유 영역 높은 위치의 많은 부분을 유지하지만, 로우 어드레스 범위를 남기 어렵다 사용 무료 파티션을 찾고 시작하는 낮은에서 각 사이트, 무료로 영역을 찾기 시작 옆에 환상이 처음 맞는 알고리즘 NF는 지난 자유 지역에서 발견, 무료 파티션이 더 고르게 분포하고 작은 비용으로 보이지만, 많은 예비 파티션의 부족으로 대부분의 잘 적응 알고리즘 BF 오름차순으로 자유 파티션 외측 부분은 남아있는 여유를 최소화하기 위해 가능한 한 작아 져서, WF 최악 맞춤 알고리즘, 최대 작업 크기 구획보다 선택된 모든 파티션 할당과 같고 큰 회원들에게 필요한, 크기를 내림차순으로 정렬 무료로 파티션, 최대 자유 지역, 대형 무료 파티션의 부족을 남아

동적 파티션 할당 알고리즘 인덱스 검색 요소

신속 (빠른 적합) 알고리즘 적응 에 가장 적합한 무료 목록 관리 인덱스 테이블 찾기, 필요한 메모리의 길이에 기반을, 버디 시스템 (버디 시스템) 파티션을 만들거나 빈 파티션의 크기가이 전력의 2 K입니다 할당되었습니다, 응용 프로그램 테이블 1024 분할 및 재활용은, 해싱 알고리즘을 해시 테이블의 파티션 크기를 구성하는 해시 함수를 설정하는 유휴 키워드 없습니다. 무료 목록 헤드 포인터 목록은 각 항목을 분할

동적 파티션 할당 재배치

소형, 사용자 프로그램 메모리 변경 요구 이전에 발생하는, 동적 재배치 동작으로 동적으로 어드레스 변환 명령 실행, 주소 변환 메커니즘을 지원하기 위해 필요한 하드웨어 상대 주소 프로세서를 제공하고, 메모리 재배치 구비 레지스터; 동적 파티션 할당 알고리즘에 기초하여 동적 재배치 파티션 할당 알고리즘이 추가 컴팩트

* 스왑

타임 슬라이스의 작업이 모두 사용하면 디스크 (외장 메모리)에 저장된 모든 사용자 작업에 시스템, 당신은 단지 작업에 메모리를로드 할 수 있습니다, 그것은 산을 기다리고 백업 메모리 큐에 전송하고,에서됩니다 다른 작업에 전송 잔고는 메모리에 실행

유형 변경 전체 스왑 중간 프로세서 스케줄링 실제로 메모리의 부족의 문제를 해결하기 위해 메모리 기능 교환이다 페이지 교환에서 요구 페이징 요청 및 분할 된 메모리 관리의 기초는

프로세스 스왑 아웃 (정지) 및 트랜스 듀서 (활성) 프로세스를 선택 1. 슬립 상태 또는 차단 상태가 선택하는 과정은, 가장 낮은 우선 순위를 선택하는 복수의 공정을 바꾼 경우 스왑 아웃된다 2. 프로세스 단지가 아닌 공유 프로그램과 데이터 세그먼트, 응용 프로그램 스왑 공간에 대한 과정을 교체, 응용 프로그램이 성공적으로 시동 디스크, 디스크 스왑 공간 상에 전송 프로그램과 데이터의 과정이다

이 두 개 이상, 프로세스에 변화의 과정으로 디스크 긴 시간으로 스왑을 선택하는 경우, 공정 스왑 및 응용 프로그램 메모리되었습니다 찾을 준비가 모든 PCB 수집 프로세스의 상태를보기

* 페이지 된 메모리 관리

소형없이, 당신은 메모리 공간 세 이산 유통을 완벽하게 수행 할 수 있습니다 페이징 스토리지 관리, 스토리지 관리 세그먼트, 세그먼트 메모리 관리를 페이징

페이지 : 여러 페이지 내에 처리 페이징 스토리지 관리 논리 어드레스 공간에 각각의 페이지 0부터 번호, 어드레스 구성 : 페이지 번호 P + 변위량 W이고; 페이지 테이블 : 물리 블록 번호 페이지 번호에서 어드레스 매핑을 구현

두 멀티 레벨 페이지 테이블 방법은 연속적인 메모리 페이지 테이블 공간 광활한 없이도 문제를 해결 이산 할당 페이지 테이블 두 페이지 테이블을 수행 할 수 있지만, 큰 페이지 테이블을 저장하는데 더 적은 메모리 공간을 다루지 않는다 문제;

두 개의 페이지 테이블에 적합하지 않은 64 비트 시스템에 대해서는

반전 페이지 테이블은 , 각 물리 블록 (프레임)을 점유하는 페이지 테이블의 메모리 공간을 감소시키기 위해 페이지 테이블 엔트리 눌러 선별 물리 블록이 제공되고, 프로세스 ID 및 페이지 번호에 따라 페이지 테이블 반전 검색하는 단계. 일치하는 경우, 페이지 테이블 엔트리 번호는 내가 페이지 곳의 물리적 블록 번호를 식별

* 분단 된 메모리 관리

시스템의 기본 원리가 분할되어 각각의 세그먼트는 0에서 해결하고, 연속 된 주소 공간을 사용하고 있습니다. 논리 블록의 길이에 대응하는 부분의 길이에 의해 결정되고, 각 세그먼트의 길이는 동일하지 않다. 상기 시스템에서, 상기 페이징 시스템과 유사하게, 필요 향상된 스위칭 속도를 촉진하기 위해, 마, 레지스터의 아릴 기에서, 각각의 프로세스 세그먼트, 즉 세그먼트 테이블의 매핑 테이블을 확립하는 단계;

페이징 차이 세분화 3 페이징 사용자 프로그램 어드레스 공간 일차원이다 세그먼트 세그먼트는 정보의 논리적 인 유닛이다하는를 포함하는 페이지가 시스템에 의해 결정된 정보 ;. 2 물리 유니트 고정 페이지 크기 1. 정보는 비교적 완전한 집합을 의미하는 세그먼트의 길이는 고정되지 않고, 서브 시스템, 사용자 프로그램의 주소 공간은 2 차원, 그것은 세그먼트 이름 할 필요가 있고,뿐만 아니라 세그먼트 어드레스

정보 공유 부분은 정보의 논리 단위이며, 따라서 돌출부 시스템은 공유 세그먼트의 이점을 실현하기 쉽다. 이는 여러 프로세스가 하나 개 이상의 세그먼트를 공유 할 수 있으며, 세그먼트의 보호는 매우 단순하다. 페이징 시스템에서는 프로그램 및 데이터 공유를 구현할 수 있지만,

장 운동의 개요

4.1 왜 계층 메모리를 구성하려면?

마이크로 프로세서 내부에는 다양한 버퍼 메모리를, 멀티 레벨 메모리 구조가 특정 캐시 기술, 구조 시스템 성능 메모리 대역폭에 대한 영향을 완화하기위한 최선의 방식이며, 복수의 메모리가 병렬로 메모리의 양쪽에서 동작하는 하드웨어를 할 수 있도록 할 수있다 메모리 액세스에 대한 압력을 감소시킨다. 는 CPU 메모리에서 레지스터의 수를 증가 시키면 큰 압력을 완화.

4.7 왜 동적 재배치를 소개? 어떻게 달성하기 위해?

액세스 명령어 또는 데이터가 물리적 어드레스로 프로그램 및 데이터 액세스 논리 어드레스는 동적 재 할당을 도입 할 때마다 프로그램의 실행 중에, 그 구체적인 방법은 시스템에로드하는 데 사용 재배치 레지스터 첨가 실제의 메모리 어드레스는 동적 재배치를 달성하기 위해, 상대 어드레스 로케이션 레지스터 어드레스 및 합을 액세스 할 때 메모리 영감 프로그램 어드레스는 프로그램이 실행된다.

4.9 여러 가능한 시나리오를 갖는 메모리를 확보하기 위해 알고리즘을 적용 할 때 사용될 제? 어떻게 이런 상황에 대처하는 방법?

메모리 복구, 우리는 첫 번째 사이트를 넣을 때 (여분의 파티션 체인을 구성하는 알고리즘에 따라) 삽입 지점을 찾는 것보다 무료 파티션 목록을 얻으려면 메모리 영역을 복구 할 왼쪽 당신이 메모리와 삽입 지점의 권리를 확보하려는 경우 또는 모두는 인접하지 않는 별도의 영역으로 삽입 된 영역에 인접하는 영역에 병합하고, 관련 데이터 구조의 값을 수정하기 위해, 인접.

4.21 어떻게 주소 변환 페이징 시스템을 달성하기 위해?

첫째, 프로세스가 프로세스 페이지 테이블의 PCB 및 프로세스가 논리 주소의 데이터에 액세스하는 페이지 테이블 길이 레지스터에 페이지 테이블의 시작 주소에서 실행되는 인덱스 탭의 주소는 효과적인 수단은 자동적으로 업계 페이지 번호와 주소로 (논리 주소) 주소. 페이지 번호와 페이지 테이블은 페이지 번호가 중단 던져 액세스 위반, 다음 큰 경우에 비해 페이지 테이블에 등록합니다. 그렇지 않으면, 페이지 번호를 사용하여 물리 블록 번호를 획득하기 위해 페이지 테이블의 계산 된 위치의 길이에 대응하는 어드레스 및 페이지 테이블의 페이지 테이블 엔트리를 시작한다. 물리 어드레스 합성 블록 번호와 동시에 물리적 어드레스 레지스터에 물리적 페이지 어드레스.

추천

출처www.cnblogs.com/SHNLQS-1273196803/p/11070165.html