Carnival7
Change Developer
Carnival7
전체 방문자
오늘
어제
  • 분류 전체보기
    • 자바의 정석
    • 프로그래밍 언어별 tools
      • 파이썬
      • 자바
    • 코딩 테스트
      • 백준 강의 기초편
      • 백준 강의 연습편
      • 백준 강의 문제편
      • 삼성 기출
      • 백준 - 일반
      • 카카오 기출
      • 프로그래머스 - 일반
      • 코테 풀이 Tools
    • CS
      • Network
      • 운영체제
      • 알고리즘
      • DB
    • Web_Backend
      • Spring
      • 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
      • 스프링 핵심 원리 - 기본편
    • DevOps
    • IT 업무 지식
      • 인프라
      • 클라우드
    • 자격증
      • AWS - CLF
      • 정처기 - 실기
    • 생각 정리

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 삼성기출 #백준강의문제편
  • code deploy
  • 스프링 #인터셉터 #AOP #필터
  • DevOps
  • 스프링 부트 무중단 웹 서비스
  • 알고리즘 #백준강의기초편 #코딩테스트
  • 코딩테스트 #삼성기출 #구현 #시뮬레이션
  • ci/cd
  • 스프링 #AOP
  • 삼성기출 #2023 #상반기
  • Github Actions
  • nginx
  • DMZ
  • 프로그래머스 #카카오기출 #레벨2
  • 슬라이딩 윈도우
  • 슬라이딩 윈도우 #덱

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Carnival7

Change Developer

CS/운영체제

11. 주기억장치 할당 기법

2024. 8. 3. 19:51

주기억장치 할당 기법


  • 주기억장치 할당 기법
    • 연속 할당 기법(contiguous allocation)
      • 단일 분할 할당 기법
      • 다중 분할 할당 기법
        • 고정 분할 할당 기법(=정적 할당 기법)
          • 단편화 (Fragmentation)
          • 메모리 압축(memory compaction)
        • 가변 분할 할당 기법(=동적 할당 기법)
    • 분산 할당 기법 (= 비연속 메모리 할당, non-contigous allocation)

연속 할당 기법(contiguous allocation)

멀티 프로세스 환경에서 여러 프로세스를 메모리에 연속적으로 로드하는 방법

단일 분할 할당 기법

주기억장치를 운영체제 영역과 사용자 영역으로 나누어 한 순간에는 오직 한 명의 사용자만이 주기억장치의 사용자 영역을 사용

image

  • 운영체제를 보호하고, 프로그램이 사용자 영역만을 사용하기 위해 운영체제 영역과 사용자 영역을 구분하는 경계 레지스터가 사용

    • 경계 레지스터 : 사용자 영역에 있는 사용자 프로그램이 운영체제 영역에 접근하지 못하도록 보호하는 레지스터. 사용자 영역이 시작되는 주소를 기억
  • 단점 : 프로그램의 크기가 작을수록 사용자 영역 낭비

  • 종류

    • 오버레이 기법

      • 주기억장치보다 큰 사용자 프로그램을 실행하기 위한 기법

      • image

      • 하나의 프로그램을 여러 개의 조각으로 분할 한 후 필요한 조각을 차례로 주기억장치에 적재한다.

      • 주기억장치의 공간이 부족하면 주기억장치에 적재된 프로그램 조각 중 불필요한 조각이 위치한 장소에 새로운 프로그램의 조각을 덮어씌워 적재한다.

    • 스와핑 기법

      • 하나의 프로그램 전체를 주기억장치에 할당하여 사용하다 필요에 따라 다른 프로그램과 교체

      • image

      • 큰 디스크 전송시간이 필요하기 때문에 현재에는 메모리 공간이 부족할때 Swapping 이 시작된다.

        • 문맥 교환으로 인한 오버헤드가 발생할 수 있고 속도가 느려지지만, 메모리 공간 확보에는 효율적

          • swap-out : 프로세스를 메모리에서 쫒아내 스왑 영역에 저장

          • swap-in : 스왑 영역에서 다시 주 기억장치(RAM)으로 불러오는 과정

다중 분할 할당 기법

고정 분할 할당 기법(=정적 할당 기법)

메모리 영역을 고정된 크기로 분할한 뒤 각 영역에 프로세스를 할당

  • 분할된 영역의 크기는 서로 다를 수 있으며, 분할된 크기는 고정된다.
  • 프로그램을 실행하려면 프로그램 전체가 주기억장치에 위치해야한다.
  • 프로그램이 분할된 영역보다 커서 영역 안에 들어갈 수 없는 경우가 발생할 수 있다.

image

  • 장점 : 관리가 수월
  • 단점 : 단편화가 발생할 수 있다.
단편화 (Fragmentation)

주기억장치의 분할된 영역에 프로그램이나 데이터를 할당할 경우, 분할된 영역이 프로그램이나 데이터보다 작거나 커서 생기는 빈 기억 공간

  • 외부 단편화: 메모리 공간 중 사용하지 못하게 되는 일부분. 물리 메모리(RAM)에서 사이사이 남는 공간들을 모두 합치면 충분한 공간이 되는 부분들이 분산되어 있을때 발생한다고 볼 수 있다.

image

  • 내부 단편화: 프로세스가 사용하는 메모리 공간에 포함된 남는 부분. 예를 들어 메모리 분할 자유 공간이 10KB 있고 Process A 가 7KB 사용하게되면 3KB 라는 차이가 존재하고, 이 현상을 내부 단편화라 칭한다.

image

메모리 압축(memory compaction)

외부 단편화를 해소하기 위해 프로세스가 사용하는 메모리 공간들을 재배치하여 흩어져 있는 가용 메모리 공간을 하나로 합치는 방법론

하지만 메모리 압축의 재배치로 인해 CPU 처리 시간이 증가하여 효율이 감소한다.

image

가변 분할 할당 기법(=동적 할당 기법)

  • 할당할 프로세스의 크기에 따라 메모리 공간을 분할
  • image
  • 메모리 할당 알고리즘을 이용해 가용 메모리 공간에서 프로세스가 로드될 수 있는 메모리 공간을 탐색
    • 메모리 할당 알고리즘 종류(= 메모리 관리 전략 - 배치 정책)
      • 최초 적합
      • 최적 적합
      • 최악 적합
  • 장점 : 필요로 하는 크기 만큼의 공간만 할당하면 된다.
  • 단점 : 관리가 어렵다. 외부 단편화가 발생할 수 있다.

image

분산 할당 기법 (= 비연속 메모리 할당, non-contigous allocation)

프로그램을 특정 단위의 조각으로 나누어 주기억장치 내에 분산하여 할당

종류

  • 페이징 기법
  • 세그먼테이션 기법

Reference

  • 메모리 관리 2 - 메모리 관리 전략
  • 메모리 관리 전략(1)
  • 운영체제 정리 🦖 ch08. 메모리 관리 전략
  • [운영체제(OS)] 13. 페이징
  • 원본 notion 주소
  • [][OS][OS] 주기억장치 할당 기법

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

13. 캐시 메모리  (0) 2024.08.03
12. 가상기억장치 구현 기법  (0) 2024.08.03
10. 메모리 관리 전략  (0) 2024.08.03
9. 스케줄링  (0) 2024.08.03
8.좀비 프로세스와 고아 프로세스  (0) 2024.07.12
    'CS/운영체제' 카테고리의 다른 글
    • 13. 캐시 메모리
    • 12. 가상기억장치 구현 기법
    • 10. 메모리 관리 전략
    • 9. 스케줄링
    Carnival7
    Carnival7

    티스토리툴바