[ 페이지 교체 (Page Replacement) ] 페이지를 쫓아내는 걸 Page Replacement라고 하며 OS가 하는 일이다. 이때 사용하는 알고리즘은 Replacement Algorithm이다. 비어있는 페이지가 없는 경우에는 어떤 페이지를 쫓아낸 후, 해당 메모리에 페이지를 올려야 한다. 가능하면 Page Fault가 일어나지 않고 되도록이면 메모리에서 직접 처리할 수 있도록 되어있다. 왜냐하면 페이지를 쫓아내고 난 후, 시간이 얼마 지나지 않아 그 페이지가 다시 참조가 되면 해당 페이지를 Swap area에서 메모리로 다시 올려야 한다. 이 과정은 시간이 매우 오래 걸린다. 어떤 페이지를 메모리에서 쫓아내고 그 자리에 어떤 페이지를 올려놓을 것인가를 결정해야 한다. 가능한 Page F..
[ Demand Paging ] 물리적 메모리 주소 변환은 운영체제가 관여하지 않는다. 하지만 Virtual Memory 기법은 전적으로 운영체제가 관여를 하고 있다. Demand Paging이라는 것은 Page 요청이 있으면 그 페이지를 메모리에 올리겠다는 것이다. 프로그램이 실행될 때, 그 프로세스를 구성하는 주소 공간을 한꺼번에 물리적 메모리에 올리는 게 아니라 요청이 있을 때 메모리에 올려놓는다. 이렇게 되면 I/O 양이 상당히 줄어들고 그만큼 물리적 메모리를 사용하는 양이 감소된다. 좋은 소프트웨어일수록 방어적으로 코드를 짜기 때문에 이상한 사용자가 이상한 짓을 하더라도 문제가 생기지 않도록 하는 것이 좋다. 즉 프로그램을 구성하는 주소 공간에서 빈번히 사용되는 부분은 제한적이므로 사용이 되..
불연속 할당은 Paging 기법과 Segmantation 기법 두 가지로 나뉘며, 이번 포스팅에서는 Segmentation 기법을 다룰 것이다. ↓ Paging 기법 ↓ 2023.02.10 - [Operating System] - [운영체제] Memory Management 4 (불연속할당/Paging 기법) [운영체제] Memory Management 4 (불연속할당/Paging 기법) 연속 할당 : 프로그램이 메모리에 올라갈 때 통째로 메모리에 올라가는 방식 불연속 할당 : 프로그램을 구성하는 주소 공간을 같은 크기의 페이지 단위로 잘게 쪼개서 페이지 단위로 메모리에 rannnneey.tistory.com 2023.02.12 - [Operating System] - [운영체제] Memory Manag..
[ 다단계 페이지 테이블 (Multi-Level Paging) ] 페이지 테이블은 다단계로도 사용할 수 있다. 4단계 페이지 테이블을 사용한다고 했을 때 메모리에 한 번 접근하려면 네 번의 주소변환과 한 번의 실제 데이터 접근을 해야 한다. (총 다섯 번 접근) 메모리에 접근하는 시간이 100ns 일 때 4단계 페이지 테이블을 사용하면 500ns가 걸린다. 하지만 주소 변환을 전담해 주는 일종의 캐시 메모리(TLB)를 통해 이루어지기 때문에 다단계 페이지 테이블을 사용하더라도 시간이 오래 걸리지 않는다. TLB Hit Ratio가 98%이라고 할 때.. 98%는 120ns(메모리 접근 100ns + TLB 접근 20ns)가 걸리고 2%는 520ns(메모리 접근 500ns + TLB 접근 20ns)가 걸리..
이전 발행글 2023.02.10 - [Operating System] - [운영체제] Memory Management 4 (불연속할당/Paging 기법) [운영체제] Memory Management 4 (불연속할당/Paging 기법) 연속 할당 : 프로그램이 메모리에 올라갈 때 통째로 메모리에 올라가는 방식 불연속 할당 : 프로그램을 구성하는 주소 공간을 같은 크기의 페이지 단위로 잘게 쪼개서 페이지 단위로 메모리에 rannnneey.tistory.com [ Two-Level Page Table (2단계 페이지 테이블) ] 두 단계 페이지 테이블은 공간을 줄이기 위해서 사용한다. 2단계 페이지 테이블은 페이지 테이블이 안쪽 페이지 테이블과 바깥쪽 페이지 테이블 두 개가 존재한다. CPU가 논리적 주소를 ..
연속 할당 : 프로그램이 메모리에 올라갈 때 통째로 메모리에 올라가는 방식 불연속 할당 : 프로그램을 구성하는 주소 공간을 같은 크기의 페이지 단위로 잘게 쪼개서 페이지 단위로 메모리에 올리는 방식 [ 불연속 할당 (Noncontiguous Allocation) ] ● Paging 기법 프로그램을 구성하는 주소 공간을 같은 크기의 페이지로 자르는 방법으로 페이지 단위로 물리적인 단위에 올려놓거나 Backing Store에 내려놓거나 한다. 물리적인 메모리에 사용자 프로그램이 들어갈 수 있는 공간들을 똑같은 크기로 잘라 놓는다. 물리적 메모리 공간 하나하나를 Page Frame이라고 하는데 Page Frame에는 Page가 올라갈 수 있다. Paging 기법을 쓰면 Hole의 크기가 일정하지 않아서 어떤 ..
물리적 메모리는 낮은 주소 부분에 운영체제 커널이 항상 상주하고 있고, 높은 주소 영역에는 사용자 프로그램들이 올라가 있다. 사용자 프로그램이 올라간 영역을 관리하는 방법은 크게 두 가지로 나누어 볼 수 있다. 프로그램이 메모리에 올라갈 때 통째로 메모리에 올라가는 방식인 연속 할당과 프로그램을 구성하는 주소 공간을 같은 크기의 페이지 단위로 잘게 쪼개서 페이지 단위로 메모리에 올리는 방법인 불연속 할당이 있다. ● 연속 할당 (Contiguous Allocation) ✓ 고정 분할 (Fixed Partition) 방식 물리적 메모리를 몇 개의 영구적 분할 (Partition)로 나눔 분할의 크기가 모두 동일한 방식과 서로 다른 방식이 존재 분할 당 하나의 프로그램 적재 융통성이 없음 : 동시에 메모리에..