배경

페이징 기법과 반대로 논리 메모리와 물리 메모리를 같은 크기의 블록이 아닌, 서로 다른 크기의 논리적 단위인 세그먼트로 분할

예시

예를 들면 우리가 돼지를 잡아서 보관을 한다고 생각해보자. 페이징의 방법을 사용하면 돼지를 모두 같은 단위로 잘라서 보관을 하는 것이다. 반면에 세그먼테이션은 부위별로 다른 크기로 잘라서 보관하는 것이다.

개념

  1. Segment Table

세그먼트 테이블에는 각 세그먼트 번호와, 세그먼트의 기준(세그먼트의 시작 물리 주소 : base)과 한계(세그먼트의 길이 : limit)를 저장하여 엔트리로 갖는다..

page size가 동일하지 않기 때문에, frame 번호로 논리 주소와 물리 주소를 연결할 수 없다. 그래서 대신 table이 bound를 가지고 있어야 한다. 페이징과 마찬가지로 논리 주소의 규약을 가지며, 이번에는 p가 아니고 s로 표기한다.

Untitled

한 가지 주의할 점은 세그먼트의 크기는 일정하지 않기 때문에, 테이블에 limit 정보가 주어진다. 그리고 CPU에서 해당 세그먼트의 크기를 넘어서는 주소가 들어오면 인터럽트가 발생해서 해당 프로세스를 강제로 종료시킨다.

Untitled

문제점