CS 지식/○ OS(Operating System)

(12) 페이징 & 세그먼테이션

코르시카 2021. 6. 26. 21:30

1. 페이징 & 세그먼테이션 기법 이유

1-1) 도입 이유

다중 프로그래밍 시스템에 여러 프로세스들이 돌아가는데

여러 프로세스를 수용하기 위해, 주기억장치를 동적 분할하는 메모리 관리 작업이 필요하기 때문

→ 주기억장치 == RAM/ROM

 

1-2) 프로세스 / 메모리

> [우]와 같은 계층적 구조를 가지며, PC( program counter)를 참조하여 메모리로부터 수행될 명령어를 읽어

CPU의 해당 명령을 수행

> CPU 레지스터 < 캐시 기억장치 < 메모리 < 보조기억장치 순으로 가격이 높지만 성능이 좋음

 

※ 주기억장치의 메모리 영역

1) OS 상주 영역 : interrupt vector와 함께 낮은 주소 영역 사용

2) 사용자 프로세스 영역 : 높은 주소영역 사용

 

 

1-3) 프로그래밍 환경

(a) 단일 프로그래밍 환경

단일 프로그램 메모리 분할 / 작업처리 time table

  • 초기 시스템
    - 오직 하나의 프로세스가 모든 메모리를 전용으로 사용
    - 프로세스는 하나의 연속된 블록으로 할당( 연속 메모리관리 )
  • 문제점
    - 메모리 용량 초과하는 프로세스 사용 불가
    - 메모리의 낭비 : 당장 사용되지 않는 경우에도 공간을 차지

(b) 다중 프로그래밍 환경

> 메모리관리 기법 등장
연속 / 불연속(페이징, 세그먼테이션) 사용

다중 프로그램 메모리 분할 / 작업처리 time table

  • 현재 시스템
    - CPU 연산과 입출력을 동시에 하여 CPU 이용률 상승과 처리량이 증가
    - 여러개의 프로세스가 메모리에 동시에 적재됨
  • 메모리 분할 / 관리 기법
    - 여러 프로세스를 메모리에 적재하기 위해 고안된 방법
    - 하나의 분할에 하나의 프로세스가 적재

 

2. 메모리 관리 기법

※ 용어 정리

  • 페이지 : 고정 사이즈의 작은 가상 메모리 조각
  • 프레임 : (페이지 크기와 같은 )물리적 주기억장치 메모리의 조각
  • 단편화 : 기억장치의 빈 공간 OR 자료가 여러 조각으로 나뉘는 현상
  • 세그먼트 : 서로다른 크기를 가진 논리적 블록이 연속된 공간에 배치되는 것
  • 외부조각 : 프로그램 크기보다 분할의 크기가 작은 경우, 빈 공간이지만 프로그램 할당이 불가
  • 내부조각 : 프로그램 크기보다 분할의 크기가 큰 경우, 특정 프로그램 전용 공간이지만 사용되지 않는 공간

 

2-1) 연속 메모리 관리

(a) 정의

프로그램 전체가 하나의 큰 연속된 공간에 할당

  • 고정분할 기법 : 주기억장치가 고정된 파티션으로 분할
    > 방식
       - 물리적 메모리를 몇 개의 영구적 분할/파티션으로 나눠서 사용
       - 1개의 파티션 당 하나의 프로그램을 적재(프로세스)

    > 단점
       - 1개의 프로그램 관점에서는 내부조각 / 단편화 발생
       - 전체를 보면 외부조각 / 단편화 발생

  • 동적분할 기법 : 파티션들이 동적 생성되며, 자신의 크기와 같은 파티션에 적재
    > 방식
       - 프로그램 크기에 맞게 동적으로 크기를 맞춰 할당
       - 기술적으로 관리해야 함

    > 단점
       - 외부조각/단편화 발생

 

2-2) 불연속 메모리 관리

(a) 정의

프로그램의 일부가 서로 다른 주소 공간에 할당될 수 있는 기법
→ 페이징 & 세그먼트 사용
※ 연속할당의 고정 / 동적 분할 기법과 유사한 방식으로 나뉨

  • 고정 크기 : 페이징
  • 가변 크기 : 세그먼테이션

  • Paging 기법
    > 방식
       - 물리 메모리 Frame 과 가상 메모리 페이지를 대응하기 위한 Page mapping과정이 필요하고,
         이를 위한 Paging table을 만들어서 설정
       - 연속적이지 않은 공간도 활용할 수 있기에 외부 단편화 해결

    > 단점
       - 페이지 단위를 작게 하면 내부 단편화가 적어지지만, page mapping size 증가로 tradeoff 발생

  • Segementation 기법
    > 방식
       - 페이징은 고정 크기로 Frame, Page의 크기를 설정했으나,
         Segmentation은 서로 크기가 다른 논리단위인 Segement로 분할하고, 메모리를 할당
       - 각 Segment 들은 연속된 공간에 저장되어있음
       - Paging과 마찬가지로 Segment mapping / Segment table 존재
       - Segement의 크기가 다르기 때문에 Paging처럼 미리 분할을 하지 않고, 프로그램 메모리 적재 시
         크기에 맞게 빈공간을 찾아 할당
       - 크기에 맞게 할당되어서 내부단편화가 발생하지 않음

    > 단점
       - 서로다른 크기의 세그먼트를 연속된 공간에 배치하기 때문에 외부 단편화가 발생할 수 있음

(b) Paging / Segment 기법의 가상화

1) 가상 메모리 페이징

필요한 Paging이 생길 때 할당, 미리 로드하지 않음

복잡한 메모리 관리로 오버헤드 발생

 

2) 가상 메모리 세그먼테이션

필요하지 않은 세그먼트들은 로드되지 않고, 필요할 때 할당

복잡한 메모리 관리로 오버헤드 발생

 


참조

https://gyoogle.dev/blog/computer-science/operating-system/Paging%20and%20Segmentation.html

 

페이징과 세그먼테이션 | 👨🏻‍💻 Tech Interview

페이징과 세그먼테이션 기법을 쓰는 이유 다중 프로그래밍 시스템에 여러 프로세스를 수용하기 위해 주기억장치를 동적 분할하는 메모리 관리 작업이 필요하기 때문 메모리 관리 기법 연속 메

gyoogle.dev

https://3catpapa.tistory.com/108

 

프로세스와 메모리 분할, 고정 분할

학습목표 1. 프로세스와 메모리의 관계를 설명할 수 있다. 2. 기억장치 계층구조의 의미를 설명할 수 있다. 3. 다중 프로그래밍의 의미에 대하여 설명할 수 있다 4. 고정 분할과 동적 분할을 설명

3catpapa.tistory.com

https://developyo.tistory.com/211

 

[OS] 운영체제 9. Memory Management 2 : 메모리 할당(연속 할당, 불연속 할당)

Allocation of Physical Memory : 메모리 할당 메모리는 일반적으로 두 영역으로 나뉘어 사용 1) OS 상주 영역 : interrupt vector 와 함께 낮은 주소 영역 사용 2) 사용자 프로세스 영역 : 높은 주소 영역 사용..

developyo.tistory.com

https://sycho-lego.tistory.com/10

 

메모리 관리기법, 페이징과 세그멘테이션

메모리의 용량은 한정적이므로 여러 응용 프로그램의 사용을 위해 효율적인 메모리 관리 기법이 필요합니다. 메모리 관리기법을 효율적으로 사용하여 외부 및 내부 단편화를 해결할 수 있습니

sycho-lego.tistory.com

 

반응형