-
paging vs segmentationCS 지식/운영체제(OS) 2023. 5. 23. 23:24
page : process를 고정된 크기로 나눈 블록
frame : 메모리를 고정된 크기로 나눈 블록. page와 frame은 크기가 같음.
segment : 서로 다른 크기의 논리적 블록
가상 메모리(Virtual Memory)
https://cocoon1787.tistory.com/860 - 실제 메모리 크기와 관계없이 메모리를 사용할 수 있도록 가상 메모리 주소 사용
- 프로세스의 일부분만 메모리에 로드하고 나머지는 보조기억장치에 할당
- MMU(Memory Management Unit)를 통해 논리 주소를 물리주소(실제 메모리 주소)로 변환시킴. (Mapping 과정)
Paging(페이징)
https://cocoon1787.tistory.com/860 - 페이지와 프레임을 대응시키는 page mapping 과정(virtual page number를 physical frame number로 mapping)이 필요하여 page table을 생성해야 함.
=> 외부 단편화 문제는 해결되고 내부 단편화 문제 발생.(프로세스의 크기가 페이지 크기의 배수가 아닐 경우)
=> 페이지 단위를 작게 하면 내부 단편화 문제도 해결할 수 있겠지만 page mapping 과정이 많아지므로 효율이 떨어짐.
(내부단편화는 페이지의 크기가 클수록 커짐.)
Segmentation(세그멘테이션)
https://cocoon1787.tistory.com/860 - 각 세그먼트는 연속적인 공간에 저장
- 세그먼트들의 크기가 서로 다르기 때문에 프로세스가 메모리에 적재될 때 빈 공간을 찾아 할당함.
- 페이징과 마찬가지로 mapping을 위한 segment table 필요
=> 내부 단편화 문제(할당 된 메모리보다 사용하는 메모리가 적을 때 메모리 할당 후 사용되지 않고 남아있는 공간)는 발생하지 않지만 중간에 메모리를 해제하면 외부 단편화 문제 발생
Paged Segmentation (paging과 segmentation 장점 모두 얻기 위해 등장!!)
- 먼저 segmentation 수행하고 각 segment 별로 paging 수행.
차이점
- 기존 segment table에서 base address 대신 해당 segment의 page table위치를 저장
- 기존 segment table에서 bound 값 대신 해당 segment의 page 개수를 저장.
장단점
장점 : 기존 paging 기법만 사용했을 때보다 page 크기 줄일 수 있음.
단점 : 메모리 참조가 한번더 증가하여 증가되는 속도저하의 문제가 있음.
Further Topics
- TLB
Reference
'CS 지식 > 운영체제(OS)' 카테고리의 다른 글
Page 교체 알고리즘 (0) 2023.05.01 Process 동기화(semaphore vs mutex vs monitor) (0) 2023.04.26 IPC(Interprocess Communication) protocol (0) 2023.04.23 Process vs Thread (0) 2023.04.19