본문 바로가기
정보처리기사

[정보처리기사] 2. 메모리 관리 - 3과목 운영체제

by 공불러 2024. 4. 6.
728x90
반응형

[정보처리기사] 2. 메모리 관리 - 3과목 운영체제

메모리 관리

지난 시간에는 운영체제 기초에 대해 공부했습니다. 기억장치 중 레지스터, 캐시, 주기억 장치, 보조기억 장치, 앞에서부터 속도가 빠르고 가격이 비쌉니다. loader는 주기억장치로 적재시키는거 Linker는 목적 프로그램을 실행가능하게 바꾸는 역할을 합니다. 제어프로그램의 감시, 작업, 데이터 프로그램을 기억하셔야합니다.

 

메모리는 프로그램은 하드웨어에 저장된 것을 이야기하고, 로더를 통해 실행되면 주기억장치 올라가게 되고 프로세스들이 됩니다. 주기억장치는 용량은 한정적인 공간을 가지기 때문에 메모리 관리가 필요합니다.

목차

    기억장치 관리 전략이란?

    기억장치 관리 전략

    기억장치 관리 전략은 컴퓨터 시스템에서 사용되는 메모리 관리 기술의 한 형태입니다. 이러한 전략은 사용 가능한 메모리 공간을 효과적으로 할당하고 관리함으로써 시스템 성능을 최적화하고, 메모리의 효율성을 향상시키는 데 사용됩니다.

    기억장치 관리 전략은 다음과 같은 주요 목표를 가지고 있습니다:

    1. 메모리 할당과 해제 관리: 시스템에서 프로세스가 요청하는 메모리를 할당하고, 사용이 끝난 메모리를 해제하여 다시 재사용할 수 있도록 합니다.
    2. 외부 단편화 및 내부 단편화 최소화: 외부 단편화는 여러 조각으로 나뉘어 있는 메모리 공간으로 인해 메모리 요청을 충족하지 못하는 상황을 말하며, 내부 단편화는 프로세스가 할당된 메모리 공간보다 더 큰 공간을 요청하지 않더라도 메모리 블록 내의 일부 공간이 낭비되는 상황을 말합니다. 기억장치 관리 전략은 이러한 단편화를 최소화하여 메모리 사용 효율성을 높입니다.
    3. 페이지 교체: 가상 메모리 시스템에서 메모리 부족 상황에서 어떤 페이지를 메모리에서 제거하고 어떤 페이지를 로드할지 결정하는 프로세스를 말합니다. 페이지 교체 알고리즘은 주로 페이지 부재 발생 시 선택되는 페이지를 결정하는 데 사용됩니다.
    4. 메모리 보호: 다중 프로그래밍 환경에서 프로세스 간의 메모리 공간을 보호하여 하나의 프로세스가 다른 프로세스의 메모리 영역을 손상시키지 못하도록 합니다.

    기억장치 관리 전략

    보조기억 장치에 저장된 프로그램이나 데이터를 주기억 장치에 언제, 어디에 적재할지 결정하는 방법

     

    기억장치 관리 전략은 시스템이 메모리를 효율적으로 관리하기 위해 사용하는 다양한 기법들을 포함합니다.

    여기에는 반입 전략, 요구 반입, 예상 반입과 같은 전략들이 포함됩니다.

     

    1. 반입 전략 (Swapping Strategy)
      • 반입 전략은 메모리에서 어떤 프로세스를 디스크로 이동시킬지 결정하는 전략입니다.
      • 메모리 내의 모든 프로세스가 실행될 수 없기 때문에, 반입 전략은 메모리에서 특정 프로세스를 디스크로 스왑하여 공간을 확보합니다.
      • 이는 특정 프로세스가 현재 필요하지 않을 때 사용됩니다.
      • 요구 반입 (Demand Paging)
        • 지금 필요한 프로세스 바로 반입하여 메모리에 로드
        • 요구 반입은 프로세스가 필요로 할 때에만 해당 페이지를 메모리에 로드하는 전략입니다.
        • 프로세스의 실행 중에는 모든 페이지를 미리 메모리에 로드하는 것이 아니라, 프로세스가 페이지를 요청할 때마다 필요한 페이지만 로드하여 메모리를 효율적으로 사용할 수 있도록 합니다.
      • 예상 반입 (Anticipatory Paging)
        • 미래에 참조할 것으로 예상되는 프로세스
        • 예상 반입은 프로세스가 특정 페이지를 요청하기 전에 미리 해당 페이지를 메모리에 로드하는 전략입니다.
        • 예상 반입은 페이지 부재가 발생하기 전에 필요한 페이지를 미리 로드하여 페이지 부재의 발생을 최소화하고, 시스템의 응답 속도를 향상시키는 데 사용됩니다. 이를 통해 페이지 폴트(페이지 부재)가 발생할 가능성을 줄일 수 있습니다.

     

    배치전략란?

    프로세스는 주기억 장치에 반입 후 배치해야합니다.

    배치 전략은 메모리 내에서 프로세스들이 배치되는 방식을 결정하는 전략입니다.

    이러한 전략들은 메모리 관리와 프로세스 스케줄링에 관련되어 있으며, 프로세스들을 메모리에 효율적으로 배치하여 시스템의 성능을 향상시키는 데 사용됩니다.

    1. 최초 적합 (First Fit)
      • 최초 적합 전략은 사용 가능한 메모리 공간 중에서 처음으로 발견되는 충분한 크기의 공간에 프로세스를 할당하는 전략입니다.
      • 이 방법은 메모리 내의 공간을 처음부터 순차적으로 탐색하며, 처음으로 발견되는 충분한 공간을 사용하여 프로세스를 배치합니다. 이 방법은 빠르게 실행되지만, 내부 단편화가 발생할 수 있습니다.
    2. 최적 적합 (Best Fit)
      • 최적 적합 전략은 사용 가능한 메모리 공간 중에서 프로세스에 가장 적합한 크기의 공간을 찾아 할당하는 전략입니다.
      • 단편화가 최소가 되는 곳에 할당
      • 이 방법은 메모리 내의 모든 공간을 탐색하여 가장 작은 충분한 크기의 공간을 찾아 프로세스를 배치합니다. 이 방법은 내부 단편화를 최소화할 수 있지만, 검색 시간이 오래 걸릴 수 있습니다.
    3. 최악 적합 (Worst Fit)
      • 최악 적합 전략은 사용 가능한 메모리 공간 중에서 프로세스에 가장 큰 크기의 공간을 찾아 할당하는 전략입니다. 이 방법은 메모리 내의 모든 공간을 탐색하여 가장 큰 충분한 크기의 공간을 찾아 프로세스를 배치합니다.
      • 이 방법은 내부 단편화를 최대화할 수 있지만, 검색 시간이 오래 걸릴 수 있으며, 메모리의 공간 이용률을 낮출 수 있습니다.

     

    교체 전략이란?

    반입된 프로세스를 배치한 상태에서 안쓰는 것을 내리고 필요한 것을 올리는 전략입니다.

    교체 전략(Replacement Policy)은 가상 메모리 관리에서 메모리에 올라와 있는 페이지 중 어떤 페이지를 메모리로부터 제거하여 새로운 페이지를 올릴지 결정하는 전략을 말합니다.

    메모리에는 한정된 공간만 있기 때문에 새로운 페이지를 로드하려면 기존의 페이지 중 하나를 제거해야 합니다. 교체 전략은 메모리 관리의 핵심 요소 중 하나이며, 시스템 성능에 큰 영향을 미칩니다.

    1. FIFO (First-In-First-Out)
      • FIFO 교체 전략은 먼저 메모리에 들어온 페이지를 먼저 제거하는 방식입니다. 즉, 가장 오래된 페이지를 우선으로 교체합니다.
    2. OPT (Optimal)
      • OPT 교체 전략은 가장 오랫동안 사용되지 않을 페이지를 교체하는 것입니다.
      • OPT 교체 전략은 이론적으로 최적의 성능을 보장하지만, 실제로는 구현이 어려운 경우가 많습니다.
    3. LRU (Least Recently Used)
      • LRU 교체 전략은 가장 오랫동안 사용되지 않은 페이지를 교체하는 방식입니다.
      • 이는 최근에 사용되지 않은 페이지를 우선적으로 교체하여 사용된 페이지의 접근 패턴을 고려합니다.
    4. LFU (Least Frequently Used)
      • LFU 교체 전략은 가장 적게 사용된 페이지를 교체하는 방식입니다. 이는 페이지가 사용된 빈도를 기준으로 교체를 수행합니다.
    5. NUR (Not Used Recently)
      • NUR 교체 전략은 최근에 사용되지 않은 페이지를 우선적으로 교체하는 방식입니다.
      • 이는 페이지가 최근에 사용된 여부와 수정된 여부를 고려하여 교체를 수행합니다.
    6. SCR (Second Chance Replacement)
      • SCR 교체 전략은 FIFO와 비슷하지만, 각 페이지에 대한 참조 비트(Reference Bit)를 사용하여 페이지가 참조되는지 여부를 추적합니다.
      • 페이지가 참조될 때마다 참조 비트가 설정되며, 교체할 페이지를 선택할 때 참조 비트가 설정된 페이지를 우선적으로 고려합니다.

    주기억 장치 할당 기법이란?

    주기억장치 할당 기법은 컴퓨터 시스템에서 주기억장치(메인 메모리)를 관리하는 방법을 말합니다. 이 기법들은 프로세스가 주기억장치에 어떻게 할당되고, 해제되며, 조직되는지를 결정합니다. 프로그램 및 데이터가 주기억장치에 로드되고 실행될 때 이러한 할당 기법이 사용됩니다.

    단일 분할 할당 기법(Single Partition Allocation)란?

    단일 분할 할당 기법(Single Partition Allocation)은 프로세스가 주기억장치에서 연속된 공간에 할당되는 것을 의미합니다. 각 프로세스는 연속된 메모리 블록을 차지하며, 메모리 내에서의 위치는 프로세스의 크기와 요청된 메모리의 위치에 따라 결정됩니다.

    운영체제-사용자 하나의 프로그램

     

    • 오버레이(Overlay): 주기억장치에 여러 프로그램을 실행할 수 없으므로, 프로그램이 너무 크면 메모리에 들어갈 수 없습니다.
      • 이를 해결하기 위해 프로그램의 일부를 메모리에 로드하고, 실행 중에 필요할 때 다른 부분으로 교체하는 오버레이 기법을 사용할 수 있습니다.
      • 보조기억 장치에 기억된 프로그램을 조각내고 필요한 조각만 순서대로 주기억 장치에 적재하여 실행(중첩)
    • 스와핑(Swapping): 프로세스가 실행되는 동안 메모리에서 필요한 프로세스를 디스크로 스와핑하여 공간을 확보하는 메모리 관리 기법입니다.
      • 이는 메모리 부족 상황에서 사용되며, 필요한 프로세스를 빠르게 메모리로 스왑하여 실행할 수 있도록 합니다.
      • 페이징 기법으로 발전

    다중 분할 할당 기법(Multiple Partition Allocation)이란?

    다중 분할 할당 기법(Multiple Partition Allocation)은 주기억장치를 여러 개의 작은 파티션으로 나누고, 각 프로세스는 이러한 파티션 중 하나에 할당되는 메모리 할당 방법입니다. 이러한 방식은 메모리를 여러 개의 작은 파티션으로 나누어 다수의 프로세스가 동시에 메모리에 적재될 수 있도록 합니다.

    • 고정 분할 할당 기법(Fixed Partition Allocation)
      • 메모리를 고정된 크기의 파티션으로 나누고, 각 파티션에는 하나의 프로세스만 할당될 수 있습니다.
      • 이 방식은 메모리를 사전에 여러 개의 고정 크기 영역으로 분할하고, 각 영역에 하나의 프로세스만이 실행될 수 있도록 하는 방식입니다.
    • 가변 분할 할당 기법(Variable Partition Allocation)
      • 메모리를 동적으로 파티션으로 나누고, 프로세스에 따라 크기가 다른 파티션에 할당하는 방식입니다.
      • 이 방식은 프로세스의 크기에 따라 메모리를 동적으로 할당하므로 내부 단편화를 최소화할 수 있습니다.

    단편화(Fragmentation)란?

    단편화는 메모리 또는 저장 장치의 공간이 작은 조각들로 나뉘어 사용되어, 실제로 필요한 공간보다 더 많은 공간을 사용하는 현상을 말합니다. 단편화는 메모리의 효율적인 활용을 저해하고, 성능을 저하시킬 수 있습니다.

    단편화 종류

    1. 내부 단편화(Internal Fragmentation)
      • 내부 단편화는 주기억장치 내의 할당된 공간 중에서도 프로세스가 사용하지 않는 작은 조각들로 발생하는 현상입니다.
      • 프로세스가 요청한 공간보다 더 큰 공간을 할당받고, 실제로 사용하지 않는 부분이 발생할 때 내부 단편화가 발생합니다.
    2. 외부 단편화(External Fragmentation)
      • 외부 단편화는 메모리 내의 여러 조각들 중에서도, 할당되지 못한 프로세스 용량 전체 50k가 40k에 못들어가서 외부단편화는 50k
      • 연속적인 공간은 충분하지만, 그 크기가 작아서 요구되는 프로세스를 할당할 수 없는 상황이 외부 단편화입니다.
    특징 내부 단편화 외부 단편화
    발생 원인 프로세스가 할당된 공간을 실제로 사용하지 않을 때 사용 가능한 연속적인 공간이 프로세스의 요구에 맞지 않을 때
    공간 낭비 할당된 공간 중에서 사용되지 않는 작은 조각 발생 메모리 내 여러 조각 중에서 연속적인 공간이 사용되지 않음
    해결 방법 할당된 공간의 크기를 조정하여 사용하지 않는 공간을 최소화 외부 단편화를 줄이기 위해 메모리 조각들을 재배치하거나 병합

    단편화 계산 예시

    프로세스 번호 요청된 메모리 크기 (KB) 할당된 실제 메모리 공간 (KB) 단편화 크기 (KB)
    1 10 12 2
    2 15 16 1
    3 8 10 2
    4 20 24 4

    이 예시에서는 내부 단편화가 발생한 것으로 나타나며, 각 프로세스의 요청된 메모리 크기와 실제 할당된 메모리 공간을 통해 단편화 크기를 계산할 수 있습니다.

    단편화 해결 방법

    1. 통합 기법 (Coalescing)
      • 통합 기법은 주기억장치 내의 여러 조각들을 하나로 합치거나 통합하여 내부 단편화를 해결하는 방법입니다.
      • 이 방법은 주로 외부 단편화를 해결하는 데 사용됩니다.
      • 연속적인 공간으로 분할된 메모리 조각들을 병합하여 더 큰 공간으로 만들어 프로세스를 할당할 수 있도록 합니다.
    2. 압축 기법 (Compaction)
      • 압축 기법은 메모리 내의 프로세스를 재배치하여 외부 단편화를 해결하는 방법입니다.
      • 이 방법은 프로세스들을 한쪽 끝으로 이동시켜 메모리 공간을 한쪽으로 모으는 방식으로 작동합니다.
      • 이 과정에서 비어 있는 공간이 한쪽으로 몰리며 외부 단편화를 최소화합니다.
      • 다만, 압축 기법은 비용이 많이 들고, 시스템 성능에 영향을 줄 수 있습니다.
    3. 재배치 기법 (Relocation)
      • 재배치 기법은 프로세스가 주기억장치에 위치하는 곳을 변경하여 단편화를 해결하는 방법입니다.
      • 이 방법은 주로 내부 단편화를 해결하는 데 사용됩니다.
      • 프로세스가 실행되는 동안 메모리 내에서 위치를 변경하여 사용되지 않는 공간을 최소화하고, 메모리를 더 효율적으로 활용할 수 있도록 합니다.

    .

    728x90
    반응형

    댓글