protection을 위해서는
1. mmu (하드웨어에서 처리)
2. dual mode (안전을 위해 kernel 에 접근할 수 있는 모드와 아닌 모드를 나눈다.)
mmu 는 가상의 주소를 물리적 주소로 바꾸어 주는 역할을 한다.
이러한 작용으로 프로그래머들 에게 메모리를 독점하는 듯한 착각을 들게 한다.
이를 학습하기 전에,
우선 모든 메모리가 연속적이라고 가정한다.
virtual memory space 도 물리적 memory 보다 작다고 가정한다.
모든 process가 가지는 주소 공간이 같다고 가정한다.
가상주소를 물리적 주소로 바꿀 때에 있어서는 base 값을 더해준다.
그리고 그 값이 bound 를 넘는지를 체크한다.
따라서 mmu에서는 base 와 bound 를 가져야 한다. 그리고 이는 프로세스 별로 다르기 때문에 pcb에 저장한다.
그리고 위의 주소 변경을 위해서는
hardware requirements 와 os issue 가 있다.
hardware requirements
1. kernel mode : user 프로그램에서는 mmu 수정이 안된다. 모드를 아예 나눈다.
2. base, bound를 가지고 있어야 한다.
3. 값 계산, 비교가 가능해야한다
4. base/ bound 갱신을 해야 한다.
5. 예외 handler 명령
6. 예외 발생시키기 가능
os issue
1. memory 관리 - 새 프로세스에 남는
2. base, bound 를 잘 보존 해야하낟,
3. 예외처리
'운영체제' 카테고리의 다른 글
운체 궁금했던거 (0) | 2023.03.26 |
---|---|
운영체제 segmentation, free space (0) | 2023.03.15 |
운영체제 address space (0) | 2023.03.12 |
운영체제 scheduling proportional share (0) | 2023.03.12 |
운영체제 MLFQ (0) | 2023.03.11 |