티스토리 뷰

CS/OS

페이징과 세그멘테이션

음대생개발자 2024. 1. 4. 12:36

페이징과 세그멘테이션을 쓰는 이유?

다중 프로그래밍 시스템에서 다수의 프로세스를 수용하기 위해

주기억장치를 동적으로 분할하는 메모리 관리작업 필요

 

메모리 관리: 연속적 메모리 할당 / 불연속적 메모리 할당

연속적 메모리 할당: 프로그램 전체가 메모리에 연속적으로 할당  
고정 분할 기법 주기억장치가 고정된 파티션으로 분할     현재사용X
(내부 단편화 발생 : 고정크기에 비해 작은 메모리 사용)
장점: 구현이 간단하고 운영체제에 오버헤드가 거의 없음
단점: 내부 단편화, 최대 활성 프로세스 수가 고정됨
동적 분할 기법 파티션들이 동적 생성되면서 자신의 크기와 같은 파티션에 적재
(외부 단편화 발생: 메모리할당 해제시 빈공간 발생)
장점: 내부 단편화 없고 주기억장치 효율적 사용 가능
단점: 외부 단편화, 처리기 효율이 나빠짐

https://aerocode.net/389#%ED%8E%98%EC%9D%B4%EC%A7%95

 

 

 

 


 

 

 

 

연속적 메모리 할당시 메모리 단편화 발생, 해결방법으로 페이징과 세그멘테이션

 

불연속적 메모리 할당 : 프로그램의 일부가 서로 다른 주소 공간에 할당 
페이징 하나의 프로세스가 고정된 사이즈의 여러 프레임에 불연속적 할당
세그멘테이션  하나의 프로세스를 서로 다른 크기의 논리적인 블록 단위인 세그먼트(Segment)로 분할하여 메모리에 할당  

 

 

About Paging

  • 페이지(page) : 작은 고정 사이즈의 프로세스 조각
  • 프레임(frame) : 페이지와 크기가 같은 주기억장치 메모리 조각
  • 페이지 테이블 : 프로세스의 각 페이지에 해당하는 프레임 위치 관리
장점: 외부 단편화 없음
단점: 적은 양의 내부 단편화 존재

 

https://github.com/gyoogle/tech-interview-for-developer/blob/master/Computer%20Science/Operating%20System/Paging%20and%20Segmentation.pdf

 

 

 

 

About Segmentation

  • 세그먼트(Segment) : 서로 다른 크기를 가지는 논리적인 블록(논리적 내용)이 연속적인 공간에 배치되어 있는 것
  • 논리적 주소 : 세그멘트 번호, 세그먼트 간격(offset)
  • 물리적 주소: Base + d(0 ~ limit 사이의 간격)
  • Base : 물리주소의 시작점
  • Limit : 세그먼트의 길이
장점: 내부 단편화 없음, 메모리 사용 효율 개선, 동적 분할에 비해 오버헤드가 적음
단점: 외부 단편화 존재

 

 

 

 

 

 


가상 메모리 사용시.. ?

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

* 참고 사이트

'CS > OS' 카테고리의 다른 글

뮤텍스(Mutex)와 세마포어(Semaphore)  (0) 2024.01.05
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함