[OS] Segmentation

2024. 3. 29. 23:15·OS

세그멘테이션

: 사용되지 않는 가상 주소 공간이 물리 메모리를 차지하는 것을 방지하는 메모리 관리 기법

  • 베이스 & 바운드 일반화
  • 세그먼트(segment): 특정 길이를 가지는 연속적인 주소 공간
    • MMU에 하나의 베이스와 바운드 값이 존재하는 것이 아닌 세그먼트마다 베이스와 바운드 값이 존재
    • 세그먼트는 $2^n$ 개로 나눌 수 있다.
  • Sparse Address Space: 드문드문 사용되는 주소 공간, 사용하지 않는 영역이 많은 대형 주소 공간

 

세그먼트의 종류

Offset

세그먼트에서 떨어진 정도
  • 주소 공간이 N비트고 세그먼트가 M비트라면 offset으로 N-M비트를 가진다.
  • 역방향 offset = offset - 세그먼트의 물리적 최대 값(bound) ← 스택의 경우

 

대단위 세그멘테이션 VS 소단위 세그멘테이션

대단위 세그멘테이션

  • 주소 공간을 소수의 세그먼트(코드, 스택, 힙)로 큰 크기의 공간으로 분할

 

소단위 세그멘테이션

  • 주소 공간을 작은 크기의 공간으로 잘게 분할

 

운영체제의 지원

1. 문맥 교환

  • 세그먼트 레지스터의 저장과 복원을 올바르게 수행

2. 세그멘트 크기의 변경

  • 예를 들어, 힙 공간에 할당할 때 빈 공간이 없다면 힙 세그먼트의 크기를 증가시켜야 한다. → 시스템 콜 호출(sbrk())

3. 미사용 중인 물리 메모리 공간의 관리

  • 외부 단편화 문제 발생
    • 세그먼트 할당이나 확장에 쓸모가 없는 작은 빈 공간들
    • 총 메모리 공간이 요청한 메모리 공간보다 크지만, 남아있는 공간이 연속적이지 않아 발생하는 현상
    • 남은 메모리의 합이 Process의 크기보다 크지만, 연속된 메모리가 아니어서 할당이 불가능한 상태
    → 기존의 세그먼트를 정리하여 물리 메모리를 압축(compact)하는 방법으로 해결

 


※ 국민대학교 소프트웨어학부 황선태 교수님의 운영체제 교과목을 공부하며 정리한 내용입니다.

728x90
반응형

'OS' 카테고리의 다른 글

[OS] Paging  (0) 2024.03.30
[OS] Free-Space Management  (1) 2024.03.29
[OS] Address Space & Address Translation  (2) 2024.03.29
[OS] Scheduling  (5) 2024.03.28
[OS] Process  (0) 2024.03.28
'OS' 카테고리의 다른 글
  • [OS] Paging
  • [OS] Free-Space Management
  • [OS] Address Space & Address Translation
  • [OS] Scheduling
nueos
nueos
  • nueos
    nueos 공부 기록
    nueos
  • 전체
    오늘
    어제
    • 분류 전체보기 (191)
      • 해커톤 (1)
      • 네이버 BoostCamp (6)
      • LG 유플러스 유레카 SW (3)
        • React (21)
        • TypeScript (2)
        • JavaScript (2)
        • HTML+CSS (5)
        • Spring (7)
        • Java (6)
        • SQL (2)
        • Algorithm (8)
        • CX (6)
        • Git (2)
        • 프로젝트 (2)
        • 스터디 (9)
        • 과제 (8)
        • 특강 (1)
      • React (3)
      • Next (0)
      • Javascript (2)
      • HTML (2)
      • CSS (9)
      • Algorithm (6)
      • Database (0)
      • OS (13)
      • C++ (24)
      • Python (1)
      • jQuery (1)
      • Django (1)
      • Git (1)
      • 개발 지식 (3)
      • 정보 보안 (22)
      • 포렌식 (1)
      • 암호 (2)
      • 기타 (4)
      • 패스트캠퍼스 FE 프로젝트십 (5)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    스택
    디지랩챌린지
    Stack
    exhaustive search
    큐
    힙
    제주해커톤
    제주지역혁신플랫폼지능형서비스사업단
    완전 탐색
    Queue
    heap
    디지털혁신
    기술로바꾸는세상
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
nueos
[OS] Segmentation
상단으로

티스토리툴바