인프런 커뮤니티 질문&답변

김예찬님의 프로필 이미지
김예찬

작성한 질문수

기출로 대비하는 개발자 전공면접 [CS 완전정복]

Q. segmentation에 대해서 설명해 주세요. (외 3문제)

paged segmentation에 관한 질문드립니다.

해결된 질문

작성

·

427

5

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

 

paged segmentation에서 segment 단위로 process 간의 공유나 process내의 접근 권한 보호가 이루어지도록 해서 paging 기법의 단점을 해결한다고 하신 부분이 잘 이해가 안되서 이 부분에 대해 부연설명 부탁드립니다!

답변 1

2

개발남노씨님의 프로필 이미지
개발남노씨
지식공유자

안녕하세요 예찬님

 

segment 단위로 process 간의 공유나 process내의 접근 권한 보호가 이루어지도록 한다

 

위의 말이 너무 설명이 부족한 글인 것 같습니다. 죄송합니다! 제가 간단하게 설명을 드리도록 하겠습니다!!

일단 page를 다시 한번 볼게요

image

보시면 process를 page로 나누게 되는데, 영역별로 나누는게 아니라 그냥 메모리 크기에 따라서 강제로 나누게 된 것을 보실 수 있어요.

process는 사실 보면 네 개의 영역으로 나뉘는 것을 알고 계시죠!? stack, heap, data, code 영역으로 나뉘는데, 이 영역의 크기는 일정하지 않습니다. 근데, page의 고정된 크기로 강제로 process를 나누다 보면 한 page안에 여러 영역이 섞여 있을 수 있습니다.

 

영역별로 나누게 된다면(segmentation) code영역은 접근하지 못하게 하고 data영역만 접근할 수 있게 제한하는 등의 과정이 어렵지 않습니다. 영역별로 메모리에 나뉘어져 있으니까요!

하지만 하나의 page에 code영역 일부가 있고, data 영역 일부가 있다면 한 page내에서도 다른 영역에 접근하기 쉽기 때문에 좀 더 복잡하고 어렵게 접근권한을 줘야합니다.

이와 비슷한 이유로 process간에 데이터를 공유한다고 봤을 때, 영역별로 나눠서 메모리에 저장을 한다면 data 영역에 대한 segment 주소만 알면 해당 영역만 참조하면 됩니다.

 

page에서는 강제로 고정된 크기에 따라 process를 나누기 때문에 생기는 문제들을 segment가 보완을 해줄 수 있습니다. 따라서 paged segmenation은 이런 page의 단점을 보완하는 것이죠!

 

조금 어려운 내용이고, 사실 이렇게 깊게 알 필요까진 없을 수 있습니다.

그래도 저 내용까지 냉철하게 살펴본 것 자체가 다른 내용들에 대해서도 주의깊게 보고있다는 뜻이니 잘하고 계신 것 같습니다.

 

혹시 질문에 대한 답은 됐을까요?

또 다른 질문이다 더 궁금하신점 있으시면 언제든 질문주세요:)

 

 

김예찬님의 프로필 이미지
김예찬
질문자

명쾌한 답변 감사드립니다~!!

김예찬님의 프로필 이미지
김예찬

작성한 질문수

질문하기