[cs] 운영체제 - 메모리의 연속할당 방식

네민·2025년 1월 3일
0

우당탕탕 cs 공부

목록 보기
5/14

메모리의 연속할당

프로세스가 실행되기 위해 필요한 메모리 공간이 연속된 메모리 블록에 할당되는 방식

고정 분할 방식

물리적 메모리를 고정된 개수의 파티션으로 나누어 사용하는 방식

파티션의 개수와 크기는 미리 결정 !! ⇒ 변경x

근데 이 파티션 크기가 동일할 수도 있고, 다를 수도 있음!

  1. 균등 분할: 메모리 동일한 크기의 파티션으로 나눔

    장점: 모든 파티션 크기가 같기 때문에 구현이 간단함

  1. 비균등 분할: 메모리 다른 크기의 파티션으로 나눔

    장점: 다양한 크기 프로세스 할당할 수 있는 유연성 제공

    단점: 잘못 설계하면 메모리 낭비 발생


고정 분할 방식은 하나의 파티션에 하나의 프로세스만 할당 가능

  • 프로세스 크기 < 파티션 : 남는 공간이 낭비됨 → 내부 단편화
  • 프로세스 크기 > 파티션: 해당 프로세스 메모리에 적재 불가능
    • 연속된 충분한 메모리 공간이 없음 → 외부 단편화

가변 분할 방식

물리적 메모리를 상황에 맞게 분할하여 프로세스가 요청한 크기만큼 할당하는 방식

first-fit

메모리를 할당할 때 첫 번째로 찾은 충분히 큰 빈 블록에 할당하는 방식

빠른 응답 시간이 필요한 경우에 적합

요청이 자주 발생하고 응답 시간이 중요한 시스템에서 사용

장점: 탐색 시간이 짧고, 속도가 빠름

단점: 메모리의 앞부분에 할당이 몰려 외부 단편화 발생할 가능성 높음

best-fit

메모리를 할당할 때 빈 블록을 모두 탐색하여 프로세스를 수용할 수 있는 가장 작은 크기의 빈 블록을 선택하여 할당하는 방식

메모리가 충분하지 않을때 최적으로 사용할 수 있음

장점: 메모리 공간 낭비를 최소화, 작은 크기의 프로세스를 위한 공간이 많이 남음

단점: 메모리 전체를 탐색해야 하기 때문에 탐색 시간 길어짐, 작은 빈 블록들이 많이 남아 큰 프로세스를 수용x

worst-fit

메모리를 할당할 때 빈 블록을 모두 탐색하여 프로세스를 수용할 수 있는 가장 큰 크기의 빈 블록을 선택하여 할당하는 방식

큰 블록을 할당하여 작은 프로세스를 위한 공간을 유지하려는 목적

장점: 작은 메모리 블록들을 많이 남겨 작은 프로세스를 효율적으로 할당

단점: 큰 프로세스가 필요할 때 할당할 수 있는 큰 블록 부족할 수 있음, 메모리 할당 시 큰 블록 낭비

메모리 컴팩션

가용공간을 없애기 위해 적재된 프로세스들을 한쪽으로 몰고 가용 공간을 모아서 큰 가용 공간으로 만드는 것 → 비용이 많이 필요


참고자료

[OS] 메모리 연속할당 - 고정분할 방식과 가변분할 방식
[운영체제 11편] 메모리 할당 (연속할당 방식)

profile
기록하자

0개의 댓글