-
[ 운영체제 ] 페이징과 세그멘테이션 (Paging & Segmentation)공부 !/Computer Science 2022. 6. 24. 16:23반응형
페이징과 세그멘테이션은 가상 메모리를 관리하는 기법으로 프로세스가 사용하는 메모리 공간을 작게 나누어 비연속적으로 실제 메모리에 할당하는 메모리 관리 기법이다
페이징
페이징은 프로세스의 주소 공간을 페이지란 단위의 고정된 사이즈로 나누어 물리적 메모리에 불연속적으로 저장하는 방식이다
이 방식으로 메모리를 할당하게 되면 실제 프로세스가 실행될때는 각 페이지들이 실제 메모리의 어디에 위치하고 있는지를 빠르게 알 수 있어야한다
프로세스 입장에서는 자신이 사용하고 있는 메모리 공간이 흩어져있는 페이지들이 아니라 하나의 연속된 메모리 공간으로 이해할 수 있어야지 프로그램 실행이 효율적이게 된다
페이징의 한계
페이징 방식으로는 외부 단편화 문제를 해결할 수잇지만 내부 단편화 문제는 해결하지 못한다
내부 단편화는 프로세스의 크기가 페이지 크기의 배수가 아닐 경우
마지막 페이지는 한 프레임을 다 채울 수 없어 발생하는데 메모리 낭비의 원인이 된다
세그멘테이션
세그멘테이션이란 물리적인 고정 크기로 분할하는 페이징과는 달리 프로그램의 논리적인 내용 단위로 프로세스의 메모리 공간을 분리하는 기법이다
논리적으로는 method, procedure, function, object, variables, stack 등 함수 단위로 나눌 수 있다
논리적 내용의 단위로 자르기 때문에 세그먼트들의 크기는 일반적으로 같지않다
세그멘테이션의 한계
세그멘테이션 방식은 가변적인 크기를 가지기 때문에 내부 단편화 문제는 해결하지만 외부 단편화 문제가 발생할 수 있다
페이징과 세그멘테이션을 이해하기 위한 좋은 예시로는 돼지를 잡아 보관한다는 예시가 있다
페이징 기법은 모두 같은 단위로 잘라 보관하는 것이고 세그먼테이션은 부위별로 다른 크리로 잘라 보관한다고 이해하면 이해가 쉽다 .. ( 징그럽긴하다 )
세그멘테이션은 보호와 공유 면에서 효과적이고 페이징은 외부 단편화 문제를 해결하는데 효과적이라는 특징을 갖고있다
참고 https://bellog.tistory.com/159
반응형'공부 ! > Computer Science' 카테고리의 다른 글
[ 운영체제 ] 페이지 부재 (page fault) (0) 2022.06.24 [ 운영체제 ] 페이지 교체 알고리즘 종류 (0) 2022.06.24 [ 운영체제 ] 캐시의 지역성 (0) 2022.06.16 [ 운영체제 ] synchronized (JAVA) (0) 2022.06.16 [ 운영체제 ] 동기화 객체의 종류와 특징 Synchronization Object (0) 2022.06.16