솜은 코튼

[OS] 메모리 할당 (다중 프로그래밍 환경) 본문

OS

[OS] 메모리 할당 (다중 프로그래밍 환경)

솜.코 2023. 5. 21. 12:15

 

 

앞에서는 한 번에 한 프로세스만 실행되는 단일 프로그래밍 환경에서 설명하였다.

 

 

2023.05.21 - [OS] - [OS] 메모리 할당 (단일 프로그래밍 환경)

 

[OS] 메모리 할당 (단일 프로그래밍 환경)

메모리를 어떻게 할당할 것인가? . . . 프로그램을 사용하기 위해 메모리로 가져온다고 앞에서 설명했다. 만약 프로그램이 메모리보다 크다면? 적당한 크기로 잘라서 가져와야 할 것이다. 이러한

sommda.tistory.com

 

 

이번엔 한 번에 여러 프로세스가 실행되는 다중 프로그래밍 환경에서 알아보자.

 

 

여러 프로세스들은 크기가 다 다를 것이다.

그럼 메모리를 어떻게 나눌까?

 

 

크게 프로세스 크기에 따라 메모리를 나누는 '가변 분할 방식'과

프로세스 크기와 상관없이 메모리를 같은 크기로 나누는 '고정 분할 방식'이 있다.

 

 

 

 

가변 분할 방식은 크기가 정해져 있지 않으므로

프로세스 크기에 따라 연속된 공간에 메모리를 할당해 준다.

 

반면 고정 분할 방식은 크기가 정해져 있으므로

메모리 크기가 프로세스 크기보다 작으면 나눠서 메모리가 할당된다.

 

 

그럼 가변 분할 방식에서

맨 앞에서 실행 중인 프로세스가 완료되고

추후 들어온 프로세스가 마지막 메모리 공간에 들어갈 수 없다면?

 

맨 앞에 공간과 합치면 충분히 들어갈 수 있는데!!

 

합쳐야 한다.... 합치려면 중간 프로세스 위치도 변경해 주어야 하고...

이렇게 메모리 관리가 복잡하다.

 

 

그럼 고정 분할 방식에서는?

분할해서 알맞은 자리에 들어가면 되니 문제될게 없다!

 

하지만 20KB 공간에 2KB만이 할당된다면?

20KB씩 고정되어 분할되니 나머지 18KB는 쓸모없다..

이렇게 메모리 낭비가 발생할 수 있다.

 

 

하여 요즘은 기본적으론 고정 분할 방식을 사용하면서

일부분은 가변 분할 방식을 혼합한다.

 

다음 내용에서 가변 분할 방식과 고정 분할 방식에서의 메모리 관리를 설명하겠습니다.

 

 

 

 

 

 

 

 

* 해당 글은 '쉽게 배우는 운영체제' 책을 참고하여 작성하였습니다. 출처: 쉽게 배우는 운영체제 (조성호 지음)

'OS' 카테고리의 다른 글

[OS] 가상 메모리 (매핑 테이블)  (0) 2023.05.21
[OS] 가변 분할 방식과 고정 분할 방식  (0) 2023.05.21
[OS] 메모리 할당 (단일 프로그래밍 환경)  (0) 2023.05.21
[OS] 메모리 주소  (0) 2023.05.21
[OS] 메모리 관리  (0) 2023.05.21