운영체제_메모리

황호준·2023년 5월 17일

CS

목록 보기
6/29

메모리 관리(메인 메모리,RAM)

메모리 관리 필요성

  • 각각의 프로세스는 독립된 메모리 공간을 갖고, 운영체제 혹은 다른 프로세스의 메모리 공간에 접근할 수 없는 제한이 걸려있다. 다만, 운영체제 만이 운영체제 메모리 영역과 사용자 메모리 영역의 접근에 제약을 받지 않기 때문에 운영체제에서 메모리를 관리한다. 또한 멀티프로그래밍 환경으로 변화하면서 한정된 메모리를 효율적으로 사용해야 했고, 운영체제가 이를 어떻게 관리하는지에 대한 관리 방법이 중요해 졌다.

고정 분할 방식

  • 물리적 메모리를 정해진 개수만큼의 영구적인 분할로 나누어두고 각 분할에 하나의 프로세스를 적재하는 방식이다. 분할의 크기는 모두 동일할 수도 있고 서로 다를 수도 있다.
  • 고정 분할 방식은 하나의 분할에는 하나의 프로그램만 적재 가능하므로 외부 조각과 내부 조각이 발생하며 동시에 메모리를 올릴 수 있는 프로그램의 수가 고정되어 있으며 수행 가능한 프로그램의 최대 크기 또한 제한된다는 점에서 가변분할 방식에 비해 융통성이 떨어진다.
    외부 조각
    o 프로그램의 크기 > 분할의 크기인 경우 발생
    o 프로그램을 적재하지 못하는 빈 메모리 공간으로 사용될 수 없는 작은 분할을 의미
    내부 조각
    o 프로그램의 크기 < 분할의 크기인 경우 발생
    o 프로그램이 분할에 적재되고 나서 분할 내부에 사용될 수 없는 메모리 조각을 의미

가변 분할 방식

  • 메모리에 적재되는 프로그램의 크기에 따라 분할의 크기, 개수가 동적으로 변하는 방식, 따라서 프로그램의 크기를 고려해서 메모리를 할당하고 이를 기술적으로 관리할 수 있는 기법이 필요
  • 가변 분할 방식에서 프로세스의 크기보다 분할의 크기보다 크게 할당하기 때문에 내부 조각은 발생하지 않음 대신 프로세스를 어떤 위치에 올릴지 결정하기 위한 동적 메모리 할당 문제 발생

메모리 배치 방식

  1. 최초 배치: 최초 배치(first fit)은 단편화(메모리에 프로세스를 배치할 수 없는 빈 영역)를 고려하지 않는 것으로, 프로세스를 메모리의 빈 공간에 배치할 때 메모리에서 적재 가능한 공간을 순서대로 찾다가 첫 번째로 발견한 공간에 프로세스를 배치하는 방법이다.
  2. 최적 배치: 최적 배치는 메모리의 빈 공간을 모두 확인한 후 적당한 크기 가운데 가장 작은 공간에 프로세스를 배치하는 방법이다.
  3. 최악 배치:최적 배치와 정반대로 최악 배치는 빈 공간을 모두 확인한 후 가장 큰 공간에 프로세스를 배치하는 방식이다.

가상 메모리 개요

  • 물리 메모리보다 큰 프로세스를 수행하기 위해 나온 기술(한정된 메모리를 효율적으로 사용하기 위함)

가상 메모리 정의

  • 메모리가 실제 메모리보다 많아 보이게 하는 기술로, 어떤 프로세스가 실행될 때 메모리에 해당 프로세스가 전체가 올라가지 않더라도 실행이 가능하다는 점에 착안하여 고안

가상 메모리 필요성

  • 물리 메모리의 한계, 메모리 크기 이상의 프로그램 실행, 물리 메모리 낭비 방지, 비용 절감

페이징 기법

  • 고정 분할 방식으로 메모리를 분할하여 관리하는 기법으로 가상 주소의 프로세스와 물리 주소의 공간을 같은 크기로 분할하여 구현,
    o 가상 주소에 있는 분할 공간 하나를 페이지,물리 주소의 분할 공간을 프레임이라고 한다.
    o 수행 중인 프로세스가 가상 주소를 참조 후 가상 주소를 통해 물리 주소를 참조

세그먼테이션 기법

  • 가상 메모리를 서로 크기가 다른 논리적 단위로 분할한 것을 의미, 분할 방식을 제외하면 매핑 테이블 동작 방식도 페이징과 동일
    (페이징이 돼지를 같은 크기로 보관이라면 세그먼테이션은 부위별로 보관)

가상메모리 관리

요구 페이징

  • 프로그램 실행 시 프로세스를 구성하는 모든 페이지를 한꺼번에 메모리에 올리는 것이 아니라 당장 사용될 페이지만 올리는 방식

페이지 교체 알고리즘

  • FIFO(first in first out) : 메모리에 올라온 가장 오래된 페이지를 교체하는 방식
    o 각 페이지가 올라온 시간을 페이지에 기록하거나 Queue에 페이지 순서를 저장
  • OPT(Optimal)최적 페이지 교체 : 앞으로 가장 오랫동안 사용되지 않을 페이지를 교체
    o 실제 활용에서는 프로세스가 앞으로 사용할 페이지를 미리 알아야한다는 점에서 구현 불가능
  • LRU(least-recently-used) : 가장 오래 사용되지 않은 페이지를 교체
    o 최적 알고리즘 방식과 비슷한 효과를 낼 수 있는 방법
    o 미래가 아닌 과거의 데이터를 활용하여 페이지가 사용될 시간을 예측하여 교체
profile
기록 블로그

0개의 댓글