본문 바로가기
Computer Science

페이징 & 세그먼테이션

by 융식 2022. 7. 28.

페이징

- 프로세스의 내용을 크기가 동일한 페이지로 나누어 처리 (2^K  단위)

- 물리적 메모리도 같은 크기의 페이지 프레임으로 나누어 놓음

- 프로그램을 페이지 단위로 페이지 프레임을 올리고, 이 관계를 페이지 테이블에 기록

 

페이징 시스템을 이용한 비연속 메모리 할당

페이징의 특징

- 빈 프레임에 어떤 페이지든 적재할 수 있어 메모리 효율적 사용

- 프레임 간에 외부 단편화도 발생하지 않음

한 프로세스의 페이지를 메인 메모리의 여러 위치에 분산 적재하여 운영체제의 페이지 관리 부담 큼

프레임 단위로 적재하므로 어떤 프로세스에 필요한 공간이 페이지 크기보다 작으면, 마지막 페이지에 할당된 프레임이 완전히 차지 않아 내부 단편화가 발생 가능 (하지만 메모리 낭비는 최소화 )

페에지 테이블과 페이징 모델

세그먼테이션

프로세스 관점을 지원하여 메모리를 크기가 변할 수 있는 세그먼트로 나누는 것

- 프로그램을 구성하는 서브루틴, 프로시저, 함수나 모듈 등으로 세그먼트 구성

- 보통 컴파일러가 원시 프로그램을 실행 프로그램으로 자동 변환하면서 서브루틴과 프로시저, 함수, 모듈 등 각기 크기가 다른 세그먼트로 구성

- 하드웨어 보호 등 관리에 필요한 사항은 페이징과 비슷하거나 동일

- 프로세스에 따라 세그먼트 크기가 달라 메모리를 크기가 일정한 페이지 프레임으로 나누지 않고 동적 분할(가변 분할) 방법으로 할당  

 

세그먼테이션

페이징과 세그먼테이션 비교

- 프로그램을 나눈 모든 세그먼트에서 물리적 메모리의 빈 공간을 찾아 할당하는 것 페이징과 비슷

- 페이징과 달리 프로그램을 나누는 크기가 일정하지 않음

- 가변 크기 분할 방법처럼 세그먼테이션도 보통 최적 적합 알고리즘이나 최초 적합 알고리즘으로 해결하는 동적 메모리 할당 방법 이용

- 페이징은 물리적 메모리가 적어도 큰 가상 주소 공간이 가능하게 하려고 등장

- 세그먼테이션은 프로그램과 데이터를 논리적으로 독립된 주소 공간으로 나누고 쉽게 공유·보호할 수 있게 하려고 등장

 

오늘날 대부분의 운영체제는 세그먼테이션을 사용하면서도 페이징을 적용하여 효율적이고 안정적인 메모리를 활용하고 있음.

'Computer Science' 카테고리의 다른 글

네트워크 프로토콜  (0) 2022.08.31
OSI 7계층과 TCP/IP 프로토콜  (0) 2022.08.10
파일 시스템이란?  (0) 2022.07.28
경쟁상태란 무엇일까  (0) 2022.07.06
시스템 콜(System Call)  (0) 2022.07.06