개발일지

연속메모리 할당과 스와핑 본문

운영체제

연속메모리 할당과 스와핑

딸기아사이레모네이드리프레셔 2024. 1. 10. 15:42
728x90

목차

    1. 메모리 할당 

    (1) 메모리 할당이란?

    시스템이 프로그램이나 프로세스에게 사용 가능한 메모리 공간을 할당하는 과정이다.

    메모리 할당에는 연속 메모리 할당과 불연속 메모리 할당으로 나뉜다. 

    (2) 연속 메모리 할당 방식

     

    가변 분할 방식 : 프로세스마다 요구되는 메모리 크기에 맞춰서 메모리 할당

     장점 : 프로세스를 한 덩어리로 처리하여 하나의 프로세스를 연속된 공간에 배치

     단점 : 외부 단편화 발생

     

    고정 분할 방식: 메모리를 고정된 크기로 나누고 프로세스를 할당

     장점 : 일정한 크기로 나누어 관리하므로 메모리 관리가 수월함

     단점 : 메모리가 미리 나뉘어 있어 융통성이 없고, 내부 단편화 발생

     

     

     

    (3) 단편화란 무엇인가?

    단편화는 연속 메모리 할당에서 발생하는 메모리 조각화로, 메모리가 일정한 크기의 조각들로 나뉘어 있을 때 사용 가능한 메모리 공간이 원하는 크기의 블록으로 할당되지 못해 발생하는 현상을 가리킨다.

     

    (1) 외부 단편화 

    프로세스를 할당하기 어려울만큼 작은 메모리 공간들로 인해 메모리가 낭비되는 현상을 외부 단편화라고 한다. 

    메모리 공간이 너무 작아, 메모리 공간보다 큰 메모리를 가지는 프로세스는 배치되지 못하고 낭비된다.

    외부 단편화 해결 방법 

    • 메모리 압축 (= 조각 모음): 흩어져 있는빈 공간들을 하나로 묶어서 연속적인 블록으로 만들어 외부 단편화를 해소 
      단점 : 조각 모음을 하려면 프로세스를 중지시키고, 이동하고, 주소를 바꾸고, 다시 시작하는 작업을 해야하기 때문에 많은 시간 소요(높은 오버헤드 발생)
    • 가상 메모리 기법
    • 페이징

    (2) 내부 단편화 

    할당된 메모리 내에서, 할당된 값보다 더 작은 값이 들어와 공간이 남는 현상을 의미한다. 

    내부 단편화 해결 방법

    • 동일하게 분할되는 공간의 크기를 조절하여 내부 단편화를 최소화

    스와핑

    스와핑이란?

    메모리에서 당장 사용하지 않는 영역을 하드디스크로 옮기고, 하드디스크의 일부분을 마치 메모리처럼 불러와 쓰는 것을 의미한다.

    스왑 영역은 메모리에서 쫓겨났다가 다시 돌아가는 데이터가 머무는 곳이기에 저장 장치는 장소만 빌려주고 메모리 관리자가 관리한다.
    *스왑영역은 하드디스크에 있고, 관리는 메모리 관리자가 한다.

     

    장점 

    - 효율성 증가 : 지금 당장 사용하지 않는 프로세스들을 적재할 필요가 없어 효율적으로 메모리를 관리할 수 있다. 

    - 프로세스들이 요구하는 메모리 주소 공간의 크기가 실제 메모리 크기보다 큰 경우에도, 프로세스들을 동시에 실행할 수 있다. 

    단점

    - 디스크 접근 속도가 RAM보다 느리기 때문에 시스템 성능 저하를 불러올 수 있다. 

     

     

    본인 노션 페이지 https://dandy-gasoline-075.notion.site/378a23143a7a4fc3beb5e86ab7c7c050?pvs=4

     

    728x90

    '운영체제' 카테고리의 다른 글

    프로세스 동기화와 동기화기법  (1) 2024.01.09
    스케쥴러(Scheduler)  (1) 2024.01.09
    멀티 프로그래밍, 멀티 프로세싱, 멀티 태스킹  (0) 2024.01.09
    프로세스와 스레드  (2) 2024.01.08
    운영체제 시작하기  (1) 2024.01.08
    Comments