[CS/운영체제] 메모리 관리 전략

Jenny·2023년 4월 20일
0

CS

목록 보기
3/5
post-thumbnail

배경

  • 프로세스는 PCB와 Stack,Data,Code,Heap 등 다양한 정보들을 보유중인 독립적인 메모리 공간이 있음
  • 이 공간은 os, 타 프로세스도 접근할 수 없으나 OS가 사용하는 메모리 영역은 다른 프로세스가 접근할 수 있음. 이러한 특수성 때문에 OS에서 메모리를 관리함

1) Swapping

  • 메모리 관리 전략 중 하나
  • 표준방식: 라운드로빈과 같은 스케줄링 알고리즘이 사용되며, CPU 할당이 끝난 프로세스는 보조 기억장치로 보내고 다른 프로세스의 메모리를 불러들임
  • 장점 : 한정도니 메모리에 더 많은 프로세스 실행 가능
  • 단점 : 보조 기억 장치에 있던 것을 다시 로딩시켜야 하므로 시간이 길게 걸림

Fragmention (단편화)

메모리 공간이 비효율적으로 사용되어 저장 공간이 낭비되는 것

  • 단편화로 인해 생기는 현상
    ㄴ 총 메모리 공간은 충분하지만 실제 사용이 불가능함
    ㄴ 실제 사용 가능한 메모리 공간이 줄어들어 시스템 성능 저하를 일으킴 (사용할 수 있는 공간을 찾는 과정이 필요함, 페이지를 너무 자주 교체함, Swapping)

내부 단편화

할당된 영역 중 사용되지 않은 공간으로 인해 공간이 낭비되는 것

페이징 기법에서 나타나는 문제점 중 하나로, 한 페이지를 너무 크게 할 경우에 생기는 문제

외부 단편화

메모리 여유 공간, 즉 메모리 안의 프로세스 간의 간격이 띄엄띄엄 존재해서 실제로 사용할 수 없는 경우

2) Paging(페이징)

하나의 프로레스가 사용하는 메모리 공간이 연속적이어야 한다는 제약을 없애는 메모리 관리 방법

외부 단편화 문제를 해결하기 위해 나온 개념 , 물리 메모리와 논리 메모리로 분리됨

  • 물리 메모리 > frame이라는 고정 크기로 분리
  • 논리 메모리 > 프로세스가 점유하는 메모리로, 페이지라는 고정된 크기의 블록으로 분리

문제점 : 내부 단편화 문제의 비중이 늘어남

3) Segmentation(세그멘테이션)

서로 다른 크기의 논리적 단위인 '세그먼트'로 동작하는 메모리 관리 기법

ex) 220MB의 공간을 할당받는 프로세스는 함수는 각각 50 / 50 / 120 크기이다. 이 크기별로 페이징 기법과 동일하게 프로세스를 나누어 메모리에 배치한다.

페이징과 세그멘테이션 비교

Fragment 관점

  • Paging - 내부 단편화 발생
  • Segment - 외부 단편화 발생

Size

  • Paging - 고정적인 크기
  • Segment - 가변적인 크기
profile
Developer로의 여정

0개의 댓글