가상 메모리

김민영·2023년 2월 13일
0

CS 스터디

목록 보기
25/32

메인 메모리

  • Main Memory, Physical Memory, 주기억장치
  • CPU가 직접 접근할 수 있는 기억 장치.
  • 프로세스가 실행되려면 프로그램 코드가 메인 메모리에 적재되어야 한다.

가상 메모리

  • Virtual Memory
  • 프로그램 용량이 메인 메모리보다 클 때 사용
  • 실제 물리 메모리 개념과 사용자의 논리 메모리 개념 분리
  • 메인 메모리 용량이 부족하면, 사용자에게 더 많은 메모리를 제공하기 위해 가상 주소를 사용함.
  • 메모리 관리 장치는 가상 주소를 이용해 실제 데이터가 담겨있는 주소로 변환
  • 가상 주소 공간 : 하나의 프로세스가 메모리에 저장되는 논리적인 모습을 가상 메모리에 구현한 공간. 가상 주소는 해당 공간을 가리키는 주소

가상 메모리 필요성

물리 메모리 한계

  • 모든 프로그램 코드를 물리 메모리에 올릴 수 없음
  • 프로그램을 교체하면서 올리면 메모리 교체 성능 문제 발생

가상 메모리 장점

  • 프로그램 용량이 실제 물리 메모리보다 커도 됨
  • 전체 프로그램이 물리 메모리에 올라오지 않아도 실행 가능
  • 더 많은 프로그램을 동시에 실행할 수 있음
    • 응답시간 유지
    • CPU 이용률, 처리율 증가
  • 물리 메모리 제약 보완, 프로세스 전체를 메모리에 올리지 않고 실행할 수 있게 함

가상 메모리 구현

  • OS는 디스크를 보조 기억 장치 Paging Space로 사용 함
    • 주 기억 장치는 물리 메모리로서 제약이 있기 때문
  • 메인 메모리(주 기억 장치)와 데스크의 페이징 스페이스(보조 기억 장치)를 하나의 메모리처럼 동작하게 함.

Swapping

  • CPU 할당 시간이 끝난 프로세스의 메모리를 보조 기억 장치로 내보내고 (swap-out) 다른 프로세스의 메모리를 불러오는(swap-in) 작업을 Swap 이라고 함.
  • Swap 작업에는 디스크 전송 시간이 필요
    • 메모리 공간이 부족할 때 Swapping 발생

메모리 관리

  • 다중 프로그래밍 시스템에서 여러 프로세스가 동작하기 위해서 주 기억 장치 RAM을 동적 분할하는 메모리 관리 작업 필요
  • 하드 디스크의 프로그램을 어떻게 메인 메모리에 적재할 것인지

연속 메모리 관리 - 단편화 현상 발생

  • 프로그램 전체가 하나의 커다란 공간에 연속적으로 할당되어야 함
  • 고정 분할 기법 : 주 기억 장치가 고정된 파티션으로 분할 - 내부 단편화 발생
  • 동적 분할 기법 : 파티션들이 동적 생성되며 자신의 크기와 같은 파티션에 적재 - 외부 단편화 발생

단편화 Fragmentation

  • 기억 장치의 빈 공간 또는 자료가 여러 조각으로 나뉘는 현상
  • 프로세스가 메모리에 적재, 제거되는 일이 반복되면, 프로세스들이 차지하는 메모리 틈 사이에 자유 공간들이 늘어난다.

내부 단편화

  • 프로세스가 사용하는 메모리 공간에 남는 부분
  • 프로세스가 요청한 양보다 더 많은 메모리 할당 시 발생.
  • 메모리 분할 자유 공간과 프로세스가 사용하는 공간의 크기 차이

외부 단편화

  • 메모리 공간 중 사용하지 못하게 되는 부분
  • 메모리 할당 및 해제 작업 반복으로 작은 메모리가 중간 중간 존재하게 됨. 총 메모리 공간은 충분하지만, 실제로 할당할 수 없는 상황
  • 이를 해결하기 위해 압축하여 프로세스가 사용하는 공간을 할 쪽으로 몰 수 있지만, 작업 효율 좋지 않음

불연속 메모리 관리

  • 프로그램 일부가 서로 다른 주소 공간에 할당되는 기법
  • 외부 단편화 해소 : 페이징, 내부 단편화 해소 : 세그멘테이션
profile
노션에 1차 정리합니당 - https://cream-efraasia-f3c.notion.site/4fb02c0dc82e48358e67c61b7ce8ab36?v=

0개의 댓글