[CS, TIL] 230922 메모리 관리

CountryGirl·2023년 9월 22일
0

TIL

목록 보기
71/80

💾 메인 메모리

: 크기가 수십만에서 수십억에 이르는 바이트 배열

  • CPU, I/O 장치에서 빠르게 사용 가능한 정보의 저장소
  • 휘발성
  • 프로세서와 연결되어 있어 프로세서 안팎으로 명령과 정보의 이동 속도 高

RAM (Random Access Memory) 라고도 한다!!



💾 메모리 관리

서로 다른 프로세스로 메모리를 세분화하는 작업

프로세스 실행 중에 메인 메모리와 디스크 간의 작업을 관리하는 OS의 방법


🤔 왜 해야해?

  • 프로세스 실행 전후에 메모리를 할당, 할당 해제
  • 프로세스 별로 사용된 메모리 공간을 추적
  • fragmentation 문제를 최소화
  • 적절한 메인 메모리 활용
  • 프로세스를 실행하는 동안 데이터 무결성 유지

Fragmentation: 주로 컴퓨터 시스템의 할당과 해제 과정에서 발생하는 현상

  • External Fragmentation
    • 할당되지 않은 메모리 덩어리가 메모리 주소 공간 내에 분산되어 있는 상태 ➡️ 메모리 공간 중 일부는 사용 중이지만 다른 일부는 사용되지 않고 낭비되고 있는 상황
    • 메모리 할당 요청 크기가 다양하거나 할당 요청이 반복적으로 발생하는 경우 발
      ✅ 해결 방법: 메모리 영역을 정리 / 병합 / 메모리 할당을 조절 등..

  • Internal Fragmentation
    • 할당된 메모리 덩어리가 실제로 필요한 메모리 양보다 큰 경우에 발생 ➡️ 할당된 메모리 공간 중 일부는 사용하지 않고 빈 공간으로 남아있는 상태
    • 주로 고정 크기 할당 블록 또는 페이지를 사용하는 시스템에서 발생
      ✅ 해결 방법: 메모리 할당을 유연하게 조절 / 메모리 풀 관리 방식 변경 등..

📌 메모리 관리 기법

연속 메모리 할당

프로세스를 메모리에 연속적으로 할당하는 기법으로 할당과 할당 해제를 반복하다보면 External Fragmentation 가 발생

  • 최초 적합 (First fit): 가장 처음 만나는 빈 메모리 공간에 프로세스 할당 ➡️ 빠름
  • 최적 적합 (Best fit): 빈 메모리 공간의 크기와 프로세스의 크기 차이가 가장 적은 공간에 프로세스 할당
  • 최악 적합 (Worst fit): 빈 메모리 공간의 크기와 프로세스 크기 차이가 가장 큰 공간에 프로세스 할당 (큰 공간에 할당해 생긴 빈 공간에 다른 프로세스를 할당할 수 있을 거라는 가정)

페이징 (Paging)

프로세스가 사용하는 공간을 노리 메모리에서 여러 개의 페이지로 나누어 관리하고, 개별 페이지는 순서에 상관없이 물리 메모리에 있는 프레임에 매핑되어 저장

논리 메모리: 고정 크기의 페이지로 나누어 관리
물리 메모리: 고정 크기의 프레임 블록으로 나누어 관리

  • 메모리 공간이 연속적으로 할당되어야 한다는 제약조건을 없애는 기법
  • Internal Fragmentation 발생

세그멘테이션 (Segmentation)

  • 페이징 기법과 반대로 논리 메모리와 물리 메모리를 같은 크기 블록이 아닌, 서로 다른 크기의 논리적 다누이인 세그먼트로 분할
  • External Fragmentation 발생

세그멘테이션 페이징 혼용 기법

  • 페이징과 세그멘테이션을 혼용해 Fragmentation 발생을 최대한 줄이는 기법
  • 프로세스를 세그먼트로 나눈 다음 세그먼트를 다시 페이지 단위로 나누어 관리
  • 매핑 테이블을 두 번 거쳐 속도 느림



✅ REFERENCE

geeksforgeeks : Memory Management in Operating System
테리의 일상 : [운영체제]메모리 관리 전략(Memory Management Strategy)
jisoolee11.log : 메모리 관리

profile
💻🌾시골소녀의 엉망징창 개발 성장일지🌾💻 (2023.05.23 ~)

0개의 댓글