Study/혼자 공부하는 컴퓨터구조+운영체제 정리

14. 가상메모리

공부하기 좋은 날 2023. 2. 20. 00:11

14-1) 연속 메모리 할당

 

프로세스에 연속적으로 메모리 공간을 할당하는 방식 - 연속 메모리 할당 방식

 

연속적으로 메모리를 할당 할 때, 어떤 문제가 발생하는가?

 

1) 스와핑

 

스와핑: 현재 실행되지 않는 프로세스를 임시로 보조기억 장치 일부로 쫓아내고 그렇게 생긴 빈 공간에 또 다른 프로세스를 적재하여 실행하는 방식

 

프로세스들이 쫓겨나는 보조기억장치의 일부 영역 = 스왑영역

현재 실행되지 않는 프로세스가 메모리에서 스왑영역으로 옮겨지는 것 = 스왑아웃

스왑영역에 있던 프로세스가 다시 메모리로 옮겨오는 것 = 스왑 인

 

스와핑을 통해 프로세스들이 요구하는 메모리 주소 공간의 크기가 실제 메모리보다 큰 경우에도 프로세스 동시 실행 가능

 

2) 메모리 할당

 

최초 적합

- 운영체제가 메모리 내의 빈 공간을 순서대로 검색하다가 적재할 수 있는 공간을 발견하면 그 공간에 프로세스를 배치하는 방식

- 검색을 최소화 하고 결과적으로 빠른 할당 가능

 

 

최적 적합 

- 운영체제가 빈 공간을 모두 검색해본 후 프로세스가 적재될 수 있는 가장 작은 공간에 프로세스를 배치하는 방식

 

최악 적합

- 운영체제가 빈 공간을 모두 검색해본 후 프로세스가 적재될 수 있는 가장 큰 공간에 배치하는 방식

 

 

3) 외부 단편화

프로세스들이 실행되고 종료되는 상황이 반복되며 메모리 사이사이 빈 공간이 생기고 그 공간이 합쳐지지 못하여 프로세스들이 적재되어 실행되기 어려운 현상을 외부 단편화(external fragmantation)라고 한다.

 

[외부 단편화 해결 방안]

- 압축( = 메모리 조각 모음)

- 가상 메모리 기법 중 ★페이징 기법

 

 

<확인 문제>

1) 최초적합 = 최초로 발견한 적재 가능한 빈 공간에 프로세스를 배치하는 방식

최악 적합 = 프로세스가 적재될 수 있는 가장 큰 공간에 프로세스를 배치하는 방식

최적 적합 = 프로세스가 적재될 수 있는 가장 작은 공간에 프로세스를 배치하는 방식

 

2)  외부 단편화에 대한 설명이 아닌 것은?

정답: 4번 - 외부 단편화가 발생한 공간에는 프로세스의 크기가 단편화 된 공간보다 크면 적재 불가

 

3) 메모리 스와핑에 대한 설명으로 옳은 것은?

정답: 4번- 메모리에서 사용되지 않는 일부 프로세스를 보조기억장치로 내보내고 실행할 프로세스를 메모리에 적재하는 방식

 

4) 연속 메모리 할당에 대한 설명이 아닌것?

정답: 1번 - 연속 메모리 할당으로 프로세스가 실행되고 종료되기를 반복하다보면 외부 단편화(external fragmentation)이 발생한다.

 

 

14-2) 페이징을 통한 가상 메모리 관리

가상 메모리는 실행하고자 하는 프로그램을 일부만 메모리에 적재하여 실제 물리 메모리 크기보다 더 큰 프로세스를 실행할 수 있게 하는 기술

 

이를 가능하게 하는 기술에는 1) 페이징 2) 세그멘테이션 이 있다.

 

책에서는 페이징 기법을 다룸

 

 

1) 페이징이란

 

만약 메모리와 프로세스를 일정한 단위로 잘게 쪼개서 넣으면 단편화가 발생하더라도 메모리 공간 낭비가 적다.

 

페이징은 이처럼 프로세스의 논리 주소 공간을 페이지라는 일정한 단위로 자르고, 모리 물리 주소 공간을 프레임이라는 페이지와 동일한 크기의 일정한 단위로 자른 뒤 페이지를 프레임에 할당하는 가상 메모리 관리 기법

 

페이징에서도 스와핑 개념을 사용하여 페이지 단위로 메모리에 적재될 필요가 없으면 페이지 아웃, 실행 필요하면 메모리로 스왑인 됨.

 

==> 한 프로세스 실행을 위해 프로세스 전체가 메모리에 적재될 필요도 없어진다.

즉, 실행에 필요한 일부 페이지만을 메모리에 적재하고,

당장 실행에 필요하지 않은 페이지들을 보조기억장치에 남겨둘 수 있다.

이를 통해 물리 메모리보다 더 큰 프로세스를 실행 가능하다!!!!!