메모리 관리

라마·2023년 7월 28일

운영체제

목록 보기
26/32

※ 전남대학교 박태준 교수님의 운영체제 강의를 듣고, 정리한 내용입니다.

메모리 관리

운영체제에 의해 메모리 관리가 필요한 이유는 다음과 같습니다.

  • 메모리는 공유 자원

  • 메모리 보호

  • 메모리 용량 한계 극복

  • 메모리 효율성 증대

  1. 먼저, 메모리의 공간은 항상 부족합니다.
    그리고 프로세스는 가능하면 많은 메모리를 사용하고 싶어 하기에, 이 부족한 메모리 공간을 잘 나눠서 써야합니다.
    메모리는 공유 자원

  2. 또 프로세스간 영역을 서로 침범하면 안됩니다.
    메모리 보호

  3. 프로세스는 가상 메모리를 사용합니다.
    그 덕에 프로세스는 메모리 전체를 사용하고 있다고 생각합니다.
    메모리 용량 한계 극복

  4. 부족한 메모리 공간 안에서 가능한 많은 프로세스를 실행시켜야 합니다.
    그러기 위해 운영체제는 프로세스당 최소한의 메모리를 할당해주어야 합니다.
    메모리 효율성 증대

메모리 복습

메모리는 컴퓨터 시스템 여러 곳에 계층적으로 존재합니다.

  • CPU 레지스터 - CPU 캐시 - 메인 메모리 - 보조기억장치

이렇게 메모리를 계층화해서 사용하는 이유는, 병목현상을 해결하기 위함입니다.

  • 자원을 조금이라도 더 빨리 처리하기 위해서

  • 즉 CPU 의 메모리 엑세스 시간을 줄이기 위해서

메모리 계층 구조

이렇게 계층 구조가 가능한 이유는 참조의 지역성 때문입니다.

참조의 지역성이란 코드나 데이터, 자원 등이 아주 짧은 시간 내에 다시 사용되는 프로그램의 특성을 의미합니다.

  • CPU 는 작은 캐시 메모리에 로딩된 코드와 데이터로 한동안 실행

  • 캐시를 채우는 시간의 손해보다 빠른 캐시를 이용하는 이득이 더 큼

  • 시간 지역성 ( Loop ) , 공간 지역성 ( Array )

메모리 구조와 CPU bit

  • 메모리 주소

    • 1Byte 로 나뉜 메모리의 각 영역은 메모리 주소로 구분, 0번지부터 시작
    • CPU는 메모리에 있는 내용을 가져오거나 작업 결과를 메모리에 저장하기 위해 메모리 주소 레지스터 ( MAR ) 사용
  • CPU 의 비트

    • 한 번에 다룰 수 있는 데이터의 최대 크기 : 워드 ( Word )
    • 32bit CPU 는 한 번에 다룰 수 있는 데이터의 최대 크기는 32bit

메모리 관리가 어려운 이유

메모리 공간은 항상 부족합니다.

그리고 여러 프로세스간 이 부족한 공간을 나눠서 사용해야 합니다.

나눠서 씀과 동시에, 여러 프로세스간 침범이 안되게 하면서, 필요한 공간은 충분히 할당해줘야 하고, 가능한 많은 프로세스가 동작하도록 해주어야 합니다.

메모리 관리의 이중성 때문에 메모리는 관리하기 어렵다고 볼 수 있습니다.

  • 프로세스 : 가능한 많은 메모리를 쓰고 싶어함 ( 메모리 독점 )

  • OS / 관리자 : 가능한 메모리를 효율적으로 ( 적게 ) 주고 싶어함

메모리 관리자 ( MMU ) 의 작업 / 정책

  • 적재 정책 ( Fetch Policy )

    • 프로세스가 필요로 하는 데이터를 언제 메모리로 가져올지 결정하는 정책
    • 요구반입 vs 예상반입
  • 배치 정책 ( Placement Policy )

    • 가져온 프로세스를 메모리의 어떤 위치에 올려놓을지 결정하는 정책
    • 최초적합 vs 최적적합 vs 최악적합
  • 재배치 ( 교체 ) 정책 ( Replacement Policy )

    • 메모리가 꽉 찼을 때 메모리 내에 있는 어떤 프로세스를 내보낼 것인지 결정하는 정책
    • 최적교체, FIFO, LRU, LFU

0개의 댓글