추천, 2022

에디터의 선택

연속 및 비 연속 메모리 할당의 차이점

메모리는 각 바이트가 고유 한 주소를 갖는 큰 바이트 배열입니다. 메모리 할당은 두 가지 방법으로 연속 메모리 할당과 비 연속 메모리 할당으로 분류 할 수 있습니다. 연속 및 비 연속 메모리 할당의 주된 차이점은 연속 메모리 할당이 메모리를 요청하는 프로세스에 연속 적인 메모리 블록을 할당하는 반면, 비 연속 메모리 할당 은 메모리 공간의 다른 위치에 별도의 메모리 블록을 비 연속적으로 할당하는 것입니다 메모리를 요구하는 프로세스. 아래 비교 차트를 사용하여 연속 및 비 연속 메모리 할당 간의 몇 가지 차이점에 대해 설명합니다.

비교 차트

비교 기준연속 된 메모리 할당불연속 메모리 할당
기본연속적인 메모리 블록을 프로세스에 할당합니다.프로세스에 별도의 메모리 블록을 할당합니다.
간접비연속적인 메모리 할당에는 프로세스 실행 중 주소 변환의 오버 헤드가 없습니다.비 연속적인 메모리 할당은 프로세스 실행 중에 주소 변환의 오버 헤드를 발생시킵니다.
실행 비율프로세스가 연속 메모리 할당에서 fatser를 실행합니다.프로세스는 불연속적인 메모리 할당에서 비교적 느리게 실행됩니다.
해결책메모리 공간은 고정 크기 파티션으로 분할되어야하며 각 파티션은 단일 프로세스에만 할당됩니다.프로세스를 여러 블록으로 나누고 사용 가능한 메모리 공간의 가용성에 따라 메모리의 다른 부분에 배치하십시오.
테이블은 메모리 공간에서 사용 가능하고 점유 된 파티션 목록을 유지하는 운영 체제에 의해 유지됩니다메모리에있는 프로세스에 의해 획득 된 각 블록의 기본 주소를 운반하는 각 프로세스에 대해 테이블을 유지 관리해야합니다.

인접 메모리 할당의 정의

운영 체제와 사용자 프로세스 모두 주 메모리에 수용되어야합니다. 따라서 주 메모리는 두 개의 파티션 으로 나뉩니다 . 한 파티션에서 운영 체제가 상주하고 다른 파티션에서는 다른 사용자 프로세스가 상주합니다. 일반적인 조건에서 여러 사용자 프로세스가 동시에 메모리에 있어야하므로 프로세스에 대한 메모리 할당을 고려하는 것이 중요합니다.

인접 메모리 할당은 메모리 할당 방법 중 하나입니다. 인접한 메모리 할당에서, 프로세스가 메모리를 요구할 때, 메모리 블록단일 인접 섹션이 요구 사항에 따라 프로세스에 할당됩니다.

연속 메모리 할당은 메모리를 고정 크기 파티션으로 나누고 각 파티션을 단일 프로세스에만 할당하여 수행 할 수 있습니다. 그러나 이것은 메모리에서 수행되는 고정 파티션의 수와 경계를 이루는 다중 프로그래밍의 정도를 야기 할 것입니다. 인접한 메모리 할당은 내부 조각화로 연결됩니다. 마찬가지로 프로세스에 할당 된 고정 크기의 메모리 블록이 요구 사항보다 약간 큰 경우 블록의 왼쪽 메모리 공간을 내부 조각화라고합니다. 파티션에있는 프로세스가 종료되면 파티션을 다른 프로세스에서 사용할 수있게됩니다.

가변 파티셔닝 스키마에서 운영 체제는 메모리의 어느 파티션이 사용 가능하고 프로세스가 차지하고 있는지를 나타내는 테이블 을 유지 관리합니다. 인접한 메모리 할당은 주소 변환의 오버 헤드를 줄임으로써 프로세스의 실행을 고정시킵니다.

정의 불연속 메모리 할당

비 연속적 메모리 할당은 프로세스가 요구 사항에 따라 메모리의 다른 위치에서 여러 메모리 블록획득 할 수있게합니다. 인접하지 않은 메모리 할당은 또한 내부 및 외부 조각화로 인한 메모리 낭비를 입니다. 내부 및 외부 단편화시 생성되는 메모리 구멍을 활용합니다.

페이징과 세그먼테이션 은 프로세스의 물리적 주소 공간이 인접하지 못하게하는 두 가지 방법입니다. 인접하지 않은 메모리 할당에서 프로세스는 메모리의 가용성에 따라 메모리 공간의 다른 영역에 배치되는 블록 (페이지 또는 세그먼트)으로 나뉩니다.

비 연속적인 메모리 할당은 메모리 낭비를 줄이는 장점이 있지만 주소 변환의 오버 헤드증가시킵니다 . 프로세스의 일부가 메모리의 다른 위치에 배치되므로 주소 변환에 시간이 소비되기 때문에 메모리 실행느려집니다 .

여기서 운영 체제는 메모리 공간에서 프로세스에 의해 획득 된 각 블록의 기본 주소를 포함하는 각 프로세스에 대한 테이블 을 유지 관리해야합니다.

연속 및 비 연속 메모리 할당의 주요 차이점

  1. 연속 및 비 연속 메모리 할당의 기본적인 차이점은 연속 할당이 하나의 연속적인 메모리 블록을 프로세스에 할당하는 반면, 비 연속 할당은 프로세스를 여러 블록으로 나누고이를 메모리서로 다른 주소 공간에 배치하는 것입니다 .
  2. 인접한 메모리 할당에서 프로세스는 인접한 메모리 공간에 저장됩니다. 따라서 실행 중에 주소 변환의 오버 헤드없습니다 . 그러나 연속적이지 않은 메모리 할당에서는 프로세스 블록이 메모리 공간에 분산되어 있기 때문에 프로세스 실행 중에 주소 변환의 오버 헤드가 있습니다 .
  3. 인접 메모리에 저장된 프로세스는 연속되지 않은 메모리 공간에 저장된 프로세스와 비교하여 더 빠르게 실행됩니다.
  4. 인접 메모리 할당을위한 솔루션 은 메모리 공간을 고정 크기 파티션 으로 나누고 단일 프로세스에만 파티션을 할당하는 것입니다. 한편, 비 연속적인 메모리 할당에서 프로세스는 여러 블록으로 나누어 지고 각 블록은 메모리 의 가용성에 따라 메모리의 다른 위치에 배치됩니다.
  5. 연속적인 메모리 할당에서 운영 체제는 프로세스에 사용할 수있는 파티션과 프로세스에서 차지하는 파티션을 나타내는 테이블 을 유지 관리해야 합니다 . 비 연속적인 메모리 할당에서, 테이블 은 메모리 공간에 배치 된 프로세스의 각 블록의 기본 주소를 나타내는 각 프로세스대해 유지됩니다.

결론:

연속적인 메모리 할당은 오버 헤드를 발생시키지 않고 프로세스의 실행 속도를 고정 시키지만 메모리 낭비를 증가시킵니다 . 연속적이지 않은 메모리 할당은 주소 변환의 오버 헤드를 발생시키고 프로세스의 실행 속도를 감소 시키지만 메모리 사용을 증가시킵니다 . 그래서 두 가지 할당 방법의 장점과 단점이 있습니다.

Top