페이징
- 프로세스의 내용을 크기가 동일한 페이지로 나누어 처리 (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 |