해결된 질문
작성
·
427
답변 1
2
안녕하세요 예찬님
segment 단위로 process 간의 공유나 process내의 접근 권한 보호가 이루어지도록 한다
위의 말이 너무 설명이 부족한 글인 것 같습니다. 죄송합니다! 제가 간단하게 설명을 드리도록 하겠습니다!!
일단 page를 다시 한번 볼게요
보시면 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의 단점을 보완하는 것이죠!
조금 어려운 내용이고, 사실 이렇게 깊게 알 필요까진 없을 수 있습니다.
그래도 저 내용까지 냉철하게 살펴본 것 자체가 다른 내용들에 대해서도 주의깊게 보고있다는 뜻이니 잘하고 계신 것 같습니다.
혹시 질문에 대한 답은 됐을까요?
또 다른 질문이다 더 궁금하신점 있으시면 언제든 질문주세요:)
명쾌한 답변 감사드립니다~!!