본문 바로가기

CS STUDY/운영체제

페이징과 세그먼테이션

페이징(Paging)과 세그먼테이션(Segmentation)

두 기법의 사용 이유
  • 다중 프로그래밍 시스템에서 다수의 프로세스를 수용하기 위해 주기억장치를 동적으로 분할하는 메모리 관리 필요
메모리 관리 기법 

 

1. 연속 메모리 관리 기법

  • 프로그램 전체가 메모리에 연속적으로 할당
  • 고정 분할 기법의 경우 내부 단편화 발생
  • 동적 분할 기법의 경우 외부 단편화 발생

**내부 단편화란? 프로세스가 필요한 양보다 더 큰 메모리가 할당되어 메모리 공간의 낭비 발생

**외부 단편화란? 남아있는 공간이 연속적이지 않아 사용할 수 없어 메모리 공간의 낭비 발생

 

2. 불연속 메모리 관리 기법

  • 프로그램의 일부가 서로 다른 주소 공간에 할당 가능
페이징(Paging)
  • 프로세스의 주소 공간을 페이지(page)란 단위의 고정된 사이즈로 나누어 물리적 메모리에 불연속으로 저장하는 방식 
  • 메모리는 frame이라는 고정된 크기로 분할되고, 프로세스는 page라는 고정된 크기로 분할됨
  • page와 frame을 매핑시키는 과정이 필요하기에 page table이 필요함
  • 연속적이지 않은 공간도 활용할 수 있기 때문에 외부 단편화 문제 해결 가능
  • 프로세스의 크기가 페이지 크기의 배수가 아닌 경우 내부 단편화 발생 <=> 페이지 단위가 작아지면 매핑 과정이 많아짐

**page table의 index: 페이지 번호

**page table의 value: 프레임 번호

이미지 출처&nbsp;https://bellog.tistory.com/159

 

세그멘테이션(Segmentation)
  • 프로세스를 서로 크기가 다른 논리적인 블록 단위인 세그먼트로 분할해 물리적 메모리에 할당
  • 페이징과 마찬가지로 매핑을 위한 segment table이 필요 
  • 내부 단편화 문제는 발생하지 않지만, 외부 단편화 문제 발생 

이미지 출처&nbsp;https://zu-techlog.tistory.com/132

 

 

 

참고

https://bellog.tistory.com/159

 

[운영체제] 페이징과 세그멘테이션

페이징과 세그멘테이션은 가상 메모리를 관리하는 기법으로 프로세스가 사용하는 메모리 공간을 잘게 나누어 비연속적으로 실제 메모리에 할당하는 메모리 관리 기법이다. 페이징(Paging) 프로

bellog.tistory.com

https://zu-techlog.tistory.com/132

 

[운영체제] 내부 단편화(Internal Fragmentation)와 외부 단편화(External Fragmentation)

💡단편화(Fragmentation)란? 메모리 공간이 부분으로 나뉘어서 충분히 사용 가능한 메모리가 남아있지만, 프로세스 할당이 불가능한 상태 내부 단편화(Internal Fragmentation) 프로세스가 필요한 양보다

zu-techlog.tistory.com

 

'CS STUDY > 운영체제' 카테고리의 다른 글

메모리(Memory)  (0) 2024.02.24
페이지 교체 알고리즘  (0) 2024.02.09
Race Condition & Deadlock  (0) 2024.02.05
CPU Scheduling  (0) 2024.02.04
PCB & Context Switching  (0) 2024.01.22