sw사관학교정글/OS 개념정리

[week09] KOCW 운영체제(반효경교수님) - Memory Management 4

D cron 2022. 1. 10. 22:17

Memory Management 4

Example of Segmentation

page는 개수가 굉장히 많지만, segment는 개수가 별로 없다. 따라서 memory 공간의 overhead 측면에서 segment방식이 유리하다.(page table보다 segment table의 크기가 훨씬 작다)

Sharing of Segments

Segmentation with Paging

paged segmentation 이라고도 한다.


주소변환을 두 단계를 거쳐서 해야한다.

  • segmentation 주소변환을 해주면 page-table의 시작위치가 나온다. (segment 당 page table이 존재)
  • page-table에서 physical address로 주소변환을 진행한다.

segment 하나가 여러개의 page로 구성된다.


장점:

allocation 문제가 발생하지 않는다. 왜냐하면 physical memory에는 page단위로 쪼개져서 올라가기 때문이다. (pure-segmentation 방식에서처럼 hole들이 생기는 경우는 없다)

segment-table entry가 segment의 base address를 가지고 있는 것이 아니라 segment를 구성하는 page table의 base address를 가지고 있다.

실제로 segmentation 기법을 사용하면 이 방식을 사용한다.


주소변환에 있어서 운영체제의 역할은?


없다...


어떤 프로세스가 CPU을 가지고 있으면서 memory access를 할 때 운영체제의 도움을 받을까?

운영체제의 도움을 전혀 받지 않는다. 주소변환을 할때마다 운영체제가 개입해야 한다고 하면 CPU가 운영체제, 사용자 프로세스를 계속 왔다갔다 해야하고 비효율적이다. 따라서 주소변환은 하드웨어가 처리한다.


메모리접근이 아니라 I/O 장치를 접근할 때는 사용자 프로세스가 직접 I/O접근을 못하니까 운영체제에게 대신 요청하므로 운영체제가 사용된다.