연예인

메인 메모리 (Main Memory) 핵심 요약 정리 (1)

비하인드톡톡 2022. 10. 31. 17:06

메인 메모리
메인 메모리

메인 메모리 

메인 메모리 프로세스는 작동하고 있는 프로그램이며, 여기서 "running"은 메인 메모리에 있다는 것을 의미합니다. 메모리는 거대한 바이트의 모자이크이며, 각각의 바이트에는 주소가 들어 있다.

 

CPU는 프로그램 카운터가 지정한 방향에서 명령을 추출하여 실행한다. 당신은 또한 부하나 명령으로 저장과 같은 메모리에 접근하는 작업을 수행할 수 있다.

멀티프로그래밍 및 멀티 프로세서 환경에서는 각 프로세스가 자체 메모리 공간을 사용하는 것이 중요하므로 기본 로그와 한계 로그가 필요하다. 특정 메모리 주소에 대한 접근은 주소가 기반과 한계 사이의 정당한 접근일 경우에만 가능하며, 잘못된 접근일 경우 분할 오류가 발생하여 프로그램이 중단된다.

 

연속 메모리 할당

컴퓨터 구조가 발전함에 따라 운영체제는 다중 프로그래밍 환경을 조성한다. 부팅 직후 운영 체제가 하드 디스크에서 메모리에 로드되고 컴퓨터가 작동하기 시작합니다. 그런 다음 여러 프로그램이 동시에 로드되고 예약된 프로세서 또는 I/O가 할당됩니다.

 

메인 메모리 초기 부팅 직후 운영체제만 부팅되므로 운영체제를 제외한 모든 공간은 비어 있다. 그래서 큰 구멍이 하나 있습니다. 그런 다음 프로세스가 생성되고 종료되며 컴퓨터가 작동합니다.

 

이 경우 프로세스가 여러 곳에 걸쳐 메모리에 로드되기 때문에 구멍이 뚫립니다. 프로세스가 순서대로 진행되더라도 작업 순서가 정해져 있지 않고 들어오는 프로세스와 메모리 충전 크기가 다르므로 중간에 빈 공간이 계속 생성됩니다.

 

프로세스가 확장되고 확장됨에 따라 현재 프로세스가 들어갈 수 있는 충분한 공간이 있을 때 어떤 공간이 효율적인지 생각하는 세 가지 전략이 있습니다.

  • Fist-Fit (첫 번째 레이어)
    • Linked List
    • 첫 번째 발견된 구멍에 할당하다
    • 이 과정이 들어갈 수 있는 첫 번째 구멍에 넣어 앞쪽에서 순차적으로 남은 메모리를 찾는다.
  • Best-Fit (최적 적합)
    • Priority Queue
    • 할당할 수 있는 가장 작은 구멍에 할당하는 것
  •  worst-fit (최악 적합)
    • 할당할 수 있는 가장 큰 구멍에 할당

 

단편화


외부 단편화

초기 적응과 최적 적응은 외부 단편화의 도전에 직면한다. 외부 단편화는 메모리를 반복적으로 로드하고 제거하면 요청된 프로세스에 메모리를 할당할 수 있는 작은 구멍이 발생하지만 직렬 구멍의 크기는 프로세스의 요구 사항을 충족할 수 없습니다. 이러한 외부 조각 문제는 어떤 알고리즘을 사용하든 상관없이 발생합니다.

외부 단편화 문제 해결에는 압축과 지불 방법이 있다. 압축 방법은 프로세스의 방향을 동적으로 변경할 수 있는 경우에만 가능합니다.

 

데이터를 사용한 프로세스에서 사용으로 이동하는 것은 비용이 많이 들지만, 사용한 데이터를 이동시킨 후 기본 로그 값을 변경하는 것은 반영될 수 있다. 그것에 대한 돈을 지불하는 다른 방법이 있다. 이것은 공간을 여러 공간으로 나누어 필요한 공간 측정을 가능하게 하는 분배 방식이다.

 

내부 단편화

메모리를 특정 크기(4KB)로 할당한다고 해두죠. 우리는 3KB의 공간이 필요하므로 메모리 할당을 요청하면 4KB의 메모리를 할당하겠습니다. 이때 1KB 면적이 사용되지 않음을 알 수 있습니다. 이 문제를 내부 단편화라고 합니다.

외부 단편화는 연속적인 주소 할당으로 인한 기억 낭비였다. 반면에 내부 단편화는 주소의 지속적인 할당에 의해 야기되는 기억 낭비이다. 기억력이 낭비되는 이유는 "정기적인 곡식" 때문이다. 프레임 크기는 메모리가 읽기/쓰기 되었을 때 최소 단위이다.

 

즉, 프레임 크기가 4KB라고 가정하면 프레임 3이 1KB의 공간만 사용할 경우 나머지 3KB는 낭비된다. 만약 총 동일한 Frames N이 있다고 가정한다면 최악의 경우 모든 Frames가 1KB의 공간만을 사용하고 있다면 3KB * N의 공간이 낭비될 것이다.

 

페이징

페이징은 물리적 메모리 공간에 논리 메모리의 주소 공간을 지속적으로 배치할 수 있는 기술이다. 물리적 메모리는 고정된 크기의 프레임이라고 불리는 측정으로 나뉘며 논리적 메모리는 동일한 크기의 페이지로 나뉩니다.

 

즉, 프로세스가 일정 수의 페이지를 필요로 할 때 충분한 양의 이미지를 찾아 비교합니다. 그러므로 받아들일 만한 그림을 따라야 한다.

또한 페이지 테이블은 페이지에 해당하는 프레임을 찾을 수 있도록 관리되어야 한다. 그러나 외부 파편 문제는 (영구적으로) 해결될 수 있지만 내부 파편 문제는 여전히 존재한다. 페이징은 단일 프로세스에서 실행되는 물리적 메모리 공간을 분할하는 메인 메모리 관리 기술입니다.

그것은 또한 백업 매장에 여러 크기의 조각을 설치하는 문제를 해결한다. 이는 기본 메모리를 차지하는 코드나 데이터가 바뀔 때 백업 스토어에서 공간을 찾아야 하기 때문이다.

 

백업 스토어의 조각 문제는 동일하지만 기본 메인 메모리에 대한 액세스가 훨씬 느리기 때문에 Compact를 적용할 수 없습니다. 이러한 장점 때문에 대부분의 운영 체제에서 다양한 형태로 사용되는 방식이다.

 

2022.10.30 - [운영체제] - [운영체제] 교착 상태 정리

 

[운영체제] 교착 상태 정리

교착 상태 교착상태는 하나 이상의 프로세스가 자원을 공유하고 사용하는 상태를 의미하지만, 요구를 영원히 받아들일 수 없다. 예를 들어, 프로세스 1은 파일을 차지하지만 인쇄를 사용하도록

hotpeople.co.kr