🖥 운영체제 - 메모리 페이징

2024. 8. 6. 15:52개발/💻 CS 지식

 

 

1.   외부 단편화, 내부 단편화

 

프로세스를 저장하기 위해서는 특정 메모리 공간을 할당받아야 한다

이때 메모리를 연속적으로 할당하게 된다면 프로세스 크기와 메모리 크기에 의해 문제가 발생하게 된다

이 문제를 단편화라고 하며 외부 단편화와 내부 단편화로 나뉜다

 

1 )  내부 단편화

프로세스 크기 < 메모리 크기

내부 단편화는 보통 메모리를 같은 크기로 나누고 할당하는 고정 분할 방식을 사용했을 때 나타난다

예를 들어 4KB씩 나눈 메모리가 있다고 하자.

그럼 1KB짜리 프로세스는 메모리를 할당받는 과정에서 3KB의 공간 낭비를 발생시키는 것이다

 

2 )  외부 단편화

프로세스 크기 > 메모리 크기

외부 단편화는 보통 프로세스 크기에 맞춰 메모리를 할당하는 가변 분할 방식을 사용할 때 나타난다

위 그림처럼 프로세스가 메모리를 할당받았다고 한다면

남은 메모리 공간은 총 34KB이지만 각각의 빈 공간(16KB, 18KB)보다 큰 프로세스에게 공간을 할당할 수 없게 된다

 

 

2.  페이징

 

이때 외부 단편화 문제를 해결하기 위해 나타난 것이 페이징이라는 개념이다

페이징은 프로세스를 불연속적으로 할당할 수 있도록 한다

 

1 )  페이징 기법

프로세스의 주소공간을 동일한 크기의 페이지로 나눈다

물리 메모리 또한 동일한 크기로 나눈다. 이때 나뉜 메모리 공간을 프레임이라고 한다

페이지와 프레임에 번호를 부여한다

 

프로세스의 각 페이지를 물리 메모리의 프레임에 분산 할당하고 관리한다(불연속적인 할당)

이때 프로세스의 각 페이지가 몇번 프레임에 들어갔는지 확인하기 위한 페이지 테이블이 존재한다

'개발 > 💻 CS 지식' 카테고리의 다른 글

[ 운영체제 ] 컴퓨터 시스템 구조 & 프로그램의 실행  (0) 2025.03.22
[ 운영체제 ] 운영 체제 개요  (0) 2025.03.10
🍪 쿠키  (1) 2025.03.06
🖥 운영 체제 - 동기화  (0) 2024.08.06
🐬 MySQL 기본 문법  (1) 2024.07.30