컴퓨터구조,운영체제

스와핑(Swapping),메모리 할당(최초 적합, 최적 적합, 최악 적합) IN OS

윤태영(Coding) 2023. 6. 7. 23:21

< 스왑핑(Swapping) >

스왑핑이란, 주 메모리(RAM)에 올라와 있는 프로세스를 일시적으로 하드 디스크 같은 보조 메모리로 옮기는 과정을 말한다. 이렇게 하면 더 많은 프로세스를 동시에 실행할 수 있게 된다. 스왑핑은 '메모리 압축'이라고도 불리는데, 이는 하드 디스크를 메모리의 연장처럼 사용하여 메모리를 효율적으로 활용하기 때문이다.

스왑핑의 구체적인 과정을 살펴보면, 우선 CPU 스케줄러가 어떤 프로세스를 스왑아웃(swap-out)할지, 그리고 어떤 프로세스를 스왑인(swap-in)할지를 결정한다. 우선 순위가 높은 프로세스가 실행을 대기하고 있다면, 우선 순위가 낮은 프로세스를 스왑아웃하고, 높은 우선 순위의 프로세스를 메모리에 로드하여 실행한다. 이렇게 함으로써 CPU는 항상 가장 중요한 작업을 먼저 처리하게 된다.


< 스왑인과 스왑아웃 >


스왑핑은 크게 스왑인과 스왑아웃 두 가지 과정으로 나뉜다. 스왑아웃은 주 메모리에서 프로세스를 하드 디스크로 옮기는 것을 말하며, 반대로 스왑인은 하드 디스크에서 프로세스를 다시 주 메모리로 가져오는 것을 말한다.


< 스왑핑의 장단점 >


[장점]

스왑핑을 통해 프로세스 실행 대기 시간을 줄일 수 있으며, 이는 결국 CPU의 활용도를 높이게 된다.

 

[단점]

프로세스가 주 메모리와 보조 메모리 간을 이동하는 과정은 시스템의 전체 성능을 떨어뜨릴 수 있다.  또한, 스왑핑 과정 중에 시스템이 갑자기 종료되면 스왑아웃된 프로세스의 데이터가 손실될 수 있다.

이 외에도, 스왑핑에 사용되는 알고리즘의 성능이 떨어질 경우 페이지 폴트의 발생 확률이 높아지며, 이는 전체 시스템 성능에 악영향을 미칠 수 있다.

그럼에도 불구하고, 메모리를 효율적으로 활용하기 위해 운영체제는 스왑핑과 같은 메모리 관리 기법을 사용하며, 이는 컴퓨터의 성능을 극대화하는데 중요한 역할을 한다.

 

 

< 메모리 할당 > 

프로세스는 메모리 내의 빈 공간에 적재되어야 한다. 메모리 내에 빈 공간이 여러 개 있다면 프로세스를 어디에 배치해야 할까?  비어 있는 메모리 공간에 프로세스를 연속적으로 할당하는 방식을 알아보자.

 

대표적으로 최초 적합, 최적 접합, 최악 적합의 세 가지 방식이 있다. 이는 그림과 함께 이해하는 것이 좋다. 가령 아래와 같은 상황에서 20MB 크기의 프로세스를 적재하고 싶다고 해보자. 메모리의 사용자 영역은 총 200MB라고 가정해 보자. 프로세스를 적재할 수 있는 빈 공간은 빈 공간 A, 빈 공간 B, 빈 공간 C 세군데가 있다. 

[ 최초 적합 (first fit) ]

최초 적합 은 그 이름에서 알 수 있듯이, 운영체제가 메모리 내의 빈 공간을 순서대로 검색하다가 첫 번째로 발견한 적절한 공간에 프로세스를 배치하는 방식이다. 예를 들어, 운영체제가 A, B, C 순서로 메모리 공간을 검색하다가 프로세스가 적재될 수 있는 첫 번째 빈 공간 A를 발견하면, 해당 공간에 프로세스를 적재한다. 이 방식의 장점은 메모리 할당 속도가 빠르다는 것다. 적합한 공간을 발견하는 즉시 할당을 진행하므로, 불필요한 검색을 최소화할 수 있다.

 

최초 적합 방식은 최초로 발견한 적재 가능한 빈 공간에 프로세스를 배치하는 방식이다.

 

[ 최적 적합 (best fit) ]

최적 적합은 운영체제가 메모리의 모든 빈 공간을 검색한 후, 프로세스가 적재될 수 있는 공간 중에서 가장 작은 공간에 프로세스를 배치하는 방식이다. 예를 들어, 프로세스가 적합하게 적재될 수 있는 여러 빈 공간 중에서 가장 작은 공간이 C라고 하면, 운영체제는 프로세스를 C에 한다. 이 방식의 목표는 메모리 내의 남은 공간(내부 단편화)을 최소화하는 것이다.

 

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

[ 최악 적합(worst fit) ]

최악 적합은 운영체제가 메모리의 모든 빈 공간을 검색한 후, 프로세스가 적재될 수 있는 공간 중에서 가장 큰 공간에 프로세스를 배치하는 방식이다. 위의 예시를 다시 사용하면, 프로세스가 적합하게 적재될 수 있는 여러 빈 공간 중에서 가장 큰 공간이 B라면, 운영체제는 프로세스를 B에 배치한다. 이 방식의 목표는 큰 프로세스의 요청을 처리할 수 있는 큰 메모리 블록을 가능한 유지하는 것이다.

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

 

 

 

 

 

 

Reference: https://www.geeksforgeeks.org/swapping-in-operating-system/

 

Swapping in Operating System - GeeksforGeeks

A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.

www.geeksforgeeks.org

https://www.scaler.com/topics/swapping-in-os/

 

What is Swapping in Operating Systems (OS)? - Scaler Topics

In this article by Scaler Topics, we will be learning about what is Swapping in Operating Systems (OS) along with its advantages and disadvantages.

www.scaler.com

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

https://product.kyobobook.co.kr/detail/S000061584886

 

혼자 공부하는 컴퓨터 구조+운영체제 | 강민철 - 교보문고

혼자 공부하는 컴퓨터 구조+운영체제 | 혼자 해도 충분합니다! 1:1 과외하듯 배우는 IT 지식 입문서42명의 베타리더 검증으로, ‘함께 만든’ 입문자 맞춤형 도서이 책은 독학으로 컴퓨터 구조와

product.kyobobook.co.kr