본문 바로가기

CS/운영체제

운영체제(12) - 프로세스의 메모리 할당 (연속 할당 방식)

반응형

사용자 프로세스 영역의 할당 방법

  1. Contiguous allocation (연속 할당) : 각각의 프로세스가 메모리의 연속적인 공간에 적재되도록
  2. Noncontiguous allocation (비연속적 할당) : 하나의 프로세스가 메모리의 여러 영역에 분산되어 올라갈 수 있음 

Contiguous allocation

1. 고정 분할 방식

  • 물리적 메모리를 주어진 개수만큼의 영구적인 분할로 미리 나누어두고 각 분할에 하나의 프로세스를 적재해 실행 시킬 수 있게함, 분할의 크기는 모두 동일하게 할 수도 있고, 서로 다르게 할 수도 있다
  • 융통성이 없음
  • 외부 단편화 :  프로그램의 크기보다 분할의 크기보다  작은경우에는 해당 분할이 비어 있는데도 불구하고 프로그램을 적재하지 못하기 때문에 발생하는 현상
  • 내부 단편화 : 프로그램의 크기보다 분할의 크기가 큰 경우 해당 분할에 프로그램을 적재하고 남는 현상
  • 물리적 메모리를 몇 개의 영구적 분할(partition)로 나눔

2. 가변 분할 방식

  • 메모리에 적재되는 프로그램의 크기에 따라 분할의 크기, 개수가 동적으로 변하는 방식
  • 외부 단편화 발생( 내부 단편화는 발생하지 않는다)
  • 사용중인 프로세스가 종료되어 메모리에 새로운 프로세스를 올릴 메모리 공간이 충분하지 않을 경우 외부 조각 문제가 발생한다 
  • 어디 메모리 공간에 프로세스를 올려야 할지 결정해야하는 문제가 있다(Dynamic Storage Allocation Problem)

 

Dynamic Storage Allocation Problem

가변 분할 방식에서 size N인 요청을 만족하는 가장 적절한 hole을 찾는 문제

  1. First - fit : size가 n 이상인 것 중 최초로 찾아지는 hole에 할당
  2. Best - fit : size가 n 이상인 것 중 가장 작은 hole을 찾아서 할당
  3. Worst - fit : 가장 큰 hole에 할당

어찌됐든 외부 조각 문제를 해결할 수는 없는걸까?? - > Compaction

  • 외부 조각 문제 해결하는 한 가지 방법
  • 매우 비용이 많이 드는....
  • 사용중인 메모리 영역을 한군데로 몰고 hole들을 다른 한 곳으로 몰아 큰 block을 만드는 것

 

 

이 포스팅은 이화여대에서 무료로제공하는 반효경님의 운영체제강의를 수강하며 정리한 내용입니다.

필자가 잘 이해하지 못해서 잘못된 내용이 있을 수 있으므로 주의바라며, 발견되면 알려주시면 감사하겠습니다.

http://www.kocw.net/home/search/kemView.do?kemId=1046323 

 

운영체제

운영체제는 컴퓨터 하드웨어 바로 위에 설치되는 소프트웨어 계층으로서 모든 컴퓨터 시스템의 필수적인 부분이다. 본 강좌에서는 이와 같은 운영체제의 개념과 역할, 운영체제를 구성하는 각

www.kocw.net

 

반응형