컴퓨터(Computer Science)/운영체제(Operation System)

Segmentation, 세그먼트, 불연속 메모리 할당 [운영체제]

게임이 더 좋아 2020. 6. 3. 13:46
반응형
728x170

 

[컴퓨터(Computer Science)/운영체제(Operation System)] - Paging, 페이징, 불연속 메모리 할당 [운영체제]

 

 

메모리 할당 방법에는 페이징 말고도 다른 방법이 있다.

세그먼트 방식인데 한 번 알아보자

약간 중요도는 페이징보다는 떨어진다.

 


 

페이징과 비슷해보인다.

페이징은 그냥 쪼갠다하면

segment는 의미단위로 쪼갠다.

 

 


 

역시 주소 구성방법도 페이징과 매우 비슷하다.

page number, page offset과 비슷해보인다.

 

 

 

** 각각 레지스터에 저장된 값과 비교하여 정상적인 작동을 돕고 아니면 trap을 건다.

 

 


 

직접 어떻게 구조가 이루어지나 본다면

 

 

CPU가 논리주소를 주게 되면 2부분으로 나누어

number에 맞는 장소를 찾기위해 segment table로 간다.

하지만 page table과는 조금 다르게 2가지 정보를 가진다.

base 뿐만 아니라 limit을 가진다.

이것은 페이지는 동일한 크기로 나누는데 반해 

세그먼트는 의미단위로 자르기 때문에 

세그먼트 각각의 크기가 균일하지 않기 때문이다.

 

**역시나 파편화는 생긴다.

 


 

 

 

거의 페이징과 비슷하고

segment의 가장 큰 장점은

의미단위로 쪼개기 때문에 공유와 보안측면에 있어서 효과적인 것이다.

 


역시 그림도 페이징과 그렇게 다르지는 않다.

 

하지만 페이징과 다르게 세그먼트의 크기가 균일하지 않기 때문에

앞서 배웠던 Hole이 생긴다.

또한 의미단위로 나누다 보면

Page table처럼 Entry의 개수가 무지막지 하게 많지가 않다.

table의 메모리는 Segment가 더 유리하다.

 

 

아래 그림을 보면

에디터를 공유하는 것을 볼 수 있다.

같은 코드에 대해 공유하는 것이다.

 

공유에 정말 유용한 것이라 볼 수 있겠다.

역시 테이블에 대해서는 같게 설정되어있는 것을 볼 수 있다.

 


 

마지막으로는 

세그먼트와 페이징의 혼합 기법이다.

 

Paged Segmentation이라고도 한다.

 

세그먼트를 페이징하는 기법이다.

어차피 배운 것을 또 반복하는 것이다.

혼자 화살표를 따라가면서 생각해보면 이해할 수 있을 것이다.

 

 

 

 

728x90
반응형
그리드형