8강 메모리 관리

inhalin·2021년 5월 12일
0

방통대 운영체제

목록 보기
2/2
post-thumbnail

1. 프로세스와 메모리

프로세스의 동작

프로세스는 프로그램의 카운터를 참조해 메모리로부터 수행될 명령을 읽어오고 CPU의 해당 명령을 수행한다.

프로세스는 실행중에 있는 프로그램을 말하고, PC가 가리키는 특정한 주소의 명령어를 수행하게 된다. 프로세스는 프로그램 카운터를 참조해서 메모리로부터 수행될 명령을 읽어온다. 프로세스가 어딘가에 존재해야 명령을 실행할 수 있는데, 프로세스가 존재하는 공간이 바로 메모리다.

컴퓨터에는 CPU와 메모리가 있는데 그 중에서 메모리 부분에 특정 영역을 프로세스가 자리를 차지하고 있다. 메모리 안에 있는 명령어를 프로세스가 읽어와서 CPU에게 보내주면 CPU는 그 명령어가 어떤 건지 알고 해당 명령어를 실행하게 된다.

기억장치 계층 구조

기억장치는 적절한 비용으로 높은 성능을 낼 수 있도록 계증적으로 구성되어 있다.

CPU(레지스터) > 캐시 기억장치 > 메모리(RAM) > 보조기억장치(SSD, HDD 등)

왼쪽으로 갈수록 접근속도 ↑, 비트당 기억장치 비용 ↑, 용량 ↓

메모리 관리

2. 단일 프로그래밍 환경

초기의 시스템

초기 시스템에서는 오직 하나의 프로세스만 메모리를 전용으로 사용할 수 있었다. 프로세스는 하나의 연속된 블록으로 메모리에 할당된다. (연속 메모리 할당)

문제점

  • 메모리 용량을 초과하는 프로세스는 실행이 불가하다.
  • 메모리 낭비 -> 다장 사용되지 않는 프로세스 영역도 계속 적재되어 있다.
  • 자원 낭비

3. 다중 프로그래밍 환경

다중 프로그래밍 = 멀티 프로그래밍

  • 여러개의 프로세스가 메모리에 동시게 적재되는 것을 말한다.
  • CPU 연산과 입출력을 동시에 하기 때문에 CPU 이용도와 시스템 처리량이 증가한다.

메모리 분할

여러 프로세스를 메모리에 적재하기 위해 고안된 방법으로, 하나의 분할에 하나의 프로세스가 적재된다. 고정 분할, 동적 분할의 두가지 방식이 있다.

고정 분할

메모리를 여러 개의 고정된 크기의 영역으로 분할한다.

문제점

  • 내부 단편화 -> 프로세스 크기가 적재된 분할 영역의 크기보다 작으면 분할 영역 내에 남게 되는 메모리는 낭비된다.

동적 분할

메모리의 불할 경계가 고정되지 않고 각 프로세스에 필요한 만큼의 메모리만을 할당한다.

문제점

  • 외부 단편화 -> 메모리 할당과 반환이 반복되면서 작은 크기의 공백이 메모리 공간에 흩어져 생기게 된다.

해결법

  • 통합 -> 인접된 공백을 더 큰 하나의 공백으로 만들어 준다. 하지만 통합이 되어도 여전히 여러 공백이 메모리 내에서 여기저기 분산되어 있을 수 있다.
  • 집약 -> 메모리 내의 모든 공백을 하나로 모은다.

메모리 보호

여러 프로세스가 동시에 메모리에 상주하기 때문에 프로세스가 다른 할당영역을 침범하지 않게 하는 것을 말한다.

4. 메모리 배치기법

메모리 배치기법이란 새로 반입된 프로그램이나 데이터를 메모리의 어느 위치에 배치할 것인지를 결정하는 기법이다.

최초 적합, 후속 적합, 최적 적합, 최악 적합의 네가지 종류가 있다.

  • 최초 적합 : 프로세스가 적재될 수 있는 빈 공간 중에서 가장 먼저 발견되는 곳을 할당한다.
  • 후속 적합 : 최초 적합의 변형으로 이전에 탐색이 끝난 그 다음 부분부터 시작해서 프로세스를 적재할 수 있는 빈 공간을 찾아서 할당한다.
  • 최적 적합 : 필요한 공간을 제공할 수 있는 빈 공간 중에서 가장 작은 곳을 선택해서 할당한다.
  • 최악 적합 : 최적 적합의 반대 개념으로 빈 공간 중에서 가장 큰 곳을 선택해서 할당한다.

0개의 댓글