cs/운영체제
8강-4. Memory Management 4
Tomato_Coffee
2023. 11. 11. 12:14
Segmentation
- segment table의 최대 entry개수는 프로그램이 사용하는 세그먼트 개수이다.
- 페이징 기법은 페이지의 개수가 백만개(굉장히 많다)
- 테이블을 위한 공간 낭비가 심하다.
- 장점
- allocation
- 단점
- protection
- sharing
- 세그먼트
- 실제 시스템을 운용해보면 개수가 작다.
- 테이블 메모리 낭비가 작다.
- 장점
- protection
- sharing
- 단점
- allocation
- 실제 시스템을 운용해보면 개수가 작다.



Segment와 page를 혼합해보자

- 세그먼트 하나가 여러개의 페이지로 구성이 됨.
- 먼저 세그먼트에 대한 주소변환을 한다.
- STBR : 여기 레지스터에 세그먼트에 대한 시작위치가 저장되어 있다.
- 메모리에 올라갈 때는 page 단위로 쪼개져서 올라간다.
- 이렇게 하면 allocation 문제가 안생긴다!
- hole이 안생긴다!
- 세그먼트는 page 개수의 배수로 구성이 된다.
- 의미 단위에서는 segment table 에서 해준다.
- 현실적으로 오리지널 segmentation 메모리 시스템은 없다.
- 따라서 내부에 페이지 기법을 써야지 관리가 편하다.
- 세그먼트당 페이지 테이블이 존재한다(세그먼트 하나가 여러개의 페이지로 구성됨).
- 세그먼트 테이블의 해당 entry에 가게 되면, 해당 세그먼트를 구성하는 페이지 테이블의 시작위치가 나온다.
- 그러면 몇개의 entry가 구성되는가?
- segment length를 보면, 해당 세그먼트가 page table에 몇개의 entry가 있는지 알 수 있다.
- 길이를 벗어나는 요청에 대해서는 trap 발생
- segment length >= d
- segment length를 보면, 해당 세그먼트가 page table에 몇개의 entry가 있는지 알 수 있다.
- 다단계 page table처럼 d를 짜른다.
- 앞부분은 p (페이지 번호) | d' (오프셋 : 페이지 안에서 얼마나 떨어져 있는지)
Memory Management 정리
- 이번 챕터에서 주소변환에 있어서 운영체제 역할은?
- 주소변환에 있어서 운영체제의 역할은 없다!
- 하드웨어가 처리함.!!! (MMU ..)
- 왜 하드웨어가 처리하나?
- 어떤 프로세스가 cpu를 가지고 있으면서 메모리 접근을 하는것은 운영체제의 도움을 받지 않는다.
- 왜냐하면 주소변환을 할 때, 운영체제의 도움을 받게되면 cpu가 운영체제로 넘어가야 한다.
- 따라서 주소변환은 하드웨어로 이루어진다.
- 어떤 프로세스가 cpu를 가지고 있으면서 메모리 접근을 하는것은 운영체제의 도움을 받지 않는다.
- 운영체제가 접근하는건 i/o device에 접근할 때이다.
- 주소변환에 있어서 운영체제의 역할은 없다!