Home [운영 체제] 8강 - 메모리 관리
Post
Cancel

[운영 체제] 8강 - 메모리 관리

💡해당 게시글은 방송통신대학교 김진욱 교수님의 '운영 체제' 강의를 개인 공부 목적으로 메모하였습니다.



학습 개요


  • 메모리(주 기억 장치)의 구성과 관리는 운영체제의 설계에 가장 중요한 영향을 미치는 요인 중 하나로서, 실제로 시스템의 성능은 사용 가능한 메모리의 용량과 프로세스 처리 중 메모리를 얼마나 효과적으로 사용하는 가와 관련이 큼
  • 컴퓨터 시스템의 메모리 관리와 관련된 기초적인 개념을 다룸
  • 프로세스와 메모리의 관계, 기억 장치의 구성, 프로그래밍 환경에 따른 메모리 할당과 보호, 메모리 배치 기법 등의 기초적인 사항에 대해 살펴봄



학습 목표


  • 프로세스와 메모리의 관계를 설명할 수 있음
  • 기억 장치 계층 구조를 설명할 수 있음
  • 다중 프로그래밍의 의미를 설명할 수 있음
  • 고정 분할과 동적 분할을 설명할 수 있음
  • 메모리 배치 기법을 이해하고 적용할 수 있음



강의록


프로세스와 메모리

프로세스의 동작

  • 프로그램 카운터(PC)를 참조하여 수행될 명령을 메모리에서 읽어 CPU로 수행하는 것

    image.png

기억 장치 계층 구조

  • 적절한 비용으로 높은 성능을 냄

    image.png

메모리 관리

  • 메모리 호출
    • 언제 새로운 프로세스를 메모리에 둘 것인가?
  • 메모리 배치
    • 다음에 실행될 프로세스를 메모리 내의 어느 곳에 둘 것인가?
  • 메모리 교체
    • 메모리가 꽉 찬 상태에서 새로운 프로세스를 메모리에 적재해야 한다면 어떤 프로세스를 제거할 것인가?
  • 그 외
    • 고정/동적 분할, 고정/유동 적재 영역 등

단일 프로그래밍 환경

단일 프로그래밍

  • 하나의 프로세스만 메모리를 전용으로 사용하는 것

    image.png

  • 프로세스는 하나의 연속된 블록으로 메모리에 할당

    • 연속 메모리 할당

단일 프로그래밍의 문제점

  • 메모리의 용량을 초과하는 프로세스는 실행 못함
  • 메모리 낭비 심함
    • 지속적으로 사용되지 않는 프로세스도 메모리에 계속 적재
  • 주변 장치 등 자원의 낭비 심함
  • 프로세스 처리 시간
    • 계산 위주의 사용자 프로세스

      image.png

    • 입출력 위주의 사용자 프로세스

      image.png

다중 프로그래밍 환경

다중 프로그래밍

  • 여러 개의 프로세스가 메모리에 동시에 적재되는 것

    image.png

  • CPU 연산과 입출력을 동시에 함으로써 CPU 이용도와 시스템 처리량 증가

    image.png

메모리 분할

  • 여러 프로세스를 메모리에 적재하기 위해 고안 된 방법
  • 하나의 분할에 하나의 프로세스가 적재되는 방식
  • 종류
    • 고정 분할
    • 동적 분할

고정 분할

  • 메모리를 여러 개의 고정된 크기의 영역으로 분할
    • 정해진 크기의 고정된 분할 영역으로 나누어 관리
  • 프로세스 배치 방법 1

    image.png

    • 분할 영역마다 큐를 두고 큐에 들어온 프로세스는 해당 분할 영역에만 적재
      • 절대 번역 및 적재 필요
        • 절대 주소
      • 효율성 낮음
  • 프로세스 배치 방법 2

    image.png

    • 하나의 큐만 두고 큐에 들어온 프로세스는 어느 분할 영역에든 적재
      • 재배치 가능 번역 및 적재 필요
      • 복잡함
  • 문제점
    • 내부 단편화

      image.png

      • 프로세스의 크기가 적재 된 분할 영역의 크기보다 작아서 분할 영역 내에 남게 되는 메모리 발생
      • 수행할 프로세스의 크기를 미리 알고 그에 맞춰 고정 분할을 해야 함
      • 현실적이지 못함

동적 분할

  • 메모리의 분할 경계가 고정되지 않음
  • 각 프로세스에 필요한 만큼의 메모리만 할당

    image.png

  • 문제점
    • 외부 단편화

      image.png

      • 메모리의 할당과 반환이 반복됨에 따라 작은 크기의 공백이 메모리 공간에 흩어져 생김
      • 해결 방법
        • 통합

          image.png

          • 인접 된 공백을 더 큰 하나의 공백으로 만들어 외부 단편화 해결
        • 집약

          image.png

          • 메모리 내의 모든 공백을 하나로 모아 외부 단편화 해결

메모리 보호

image.png

  • 프로세스가 다른 할당 영역을 침범하지 않게 하는 것
  • 하한-상한 또는 하한-크기 레지스터 쌍으로 제한
  • 이 제한 넘어 운영체제 호출하려면 시스템 호출 이용

메모리 배치 기법

메모리 배치 기법

  • 동적 분할 다중 프로그래밍에서 새로 반입 된 프로그램이나 데이터를 메모리의 어느 위치에 배치할 것 인가를 결정

    image.png

  • 종류

    • 최초 적합
    • 후속 적합
    • 최적 적합
    • 최악 적합

최초 적합

  • 프로세스가 적재될 수 있는 빈 공간 중에서 가장 먼저 발견 되는 곳을 할당

    image.png

후속 적합

  • 최초 적합의 변형
  • 이전에 탐색이 끝난 그 다음 부분부터 시작하여 사용 가능한 빈 공간 중에서 가장 먼저 발견 되는 곳을 할당

    image.png

최적 적합

  • 필요한 공간을 제공할 수 있는 빈 공간 중 가장 작은 곳을 선택하여 할당

    image.png

  • 큰 빈 공간을 최대한 많이 남겨 놓기 위한 방법

최악 적합

  • 필요한 공간을 제공할 수 있는 빈 공간 중 가장 큰 곳을 선택하여 할당

    image.png

  • 작은 자투리가 남아 사용되지 못하는 공간이 발생하는 것을 최소화 하기 위한 방법



정리 하기


  • 프로세스가 실행되기 위해서는 수행될 명령이 메모리 상에 존재해야 함
  • 컴퓨터 시스템의 기억 장치는 적은 비용으로 높은 성능을 제공하기 위해 계층적으로 구성 됨
  • 단일 프로그래밍 환경에서의 연속 메모리 할당 기법은 관리 기법이 단순하지만, 컴퓨터 자원을 효율적으로 사용하는 데 문제가 있음
  • 다중 프로그래밍을 통해 CPU와 주변 장치의 이용률을 높일 수 있음
  • 고정 분할 방식은 정해진 크기의 분할 영역으로 메모리를 활용하는 방식으로, 각 분할 영역에서 내부 단편화가 발생할 수 있음
  • 동적 분할 방식은 각 작업에 필요한 만큼의 메모리를 할당함으로써 내부 단편화를 제거하지만 외부 단편화가 발생할 수 있음
  • 외부 단편화는 통합과 집약 기법으로 해결 가능함
  • 메모리 배치 기법은 프로세스를 메모리의 어디에 배치할 것인가 하는 결정과 관련되어 있으며, 최초 적합, 후속 적합, 최적 적합, 최악 적합 기법이 있음

[데이터 정보 처리 입문] 8강 - 엑셀을 이용한 그래프 그리기

[유비쿼터스 컴퓨팅 개론] 8강 - 클라우드 컴퓨팅