Paging

    [전공생이 설명하는 OS] 메모리 관리 - (2) Virtual Memory

    [전공생이 설명하는 OS] 메모리 관리 - (2) Virtual Memory

    1. 가상메모리란? 각 프로세스에게 큰 전용 메모리를 제공하는 기술. 2. 부분적재 에러코드, 자주 접근되지 않는 코드들까지 한번에 적재할 필요가 있나? Locality, Knuth's estimation : 10%의 코드가 90% 실행시간을 갖는다. 가상메모리도 일종의 캐시. 디스크와 메모리 사이의 캐시 (fetch policy) 그러면 필요한 부분을 언제 올릴건데? (resident set policy) 메모리에 올라와 있는 각 프로세스의 조각들을 어떻게 효율적으로 관리할 것인가? (replacement policy) 메모리가 부족해서 다른 조각들을 쫓아내야할때 어떤 조각들을 쫓아낼것인가? 매핑테이블을 어떻게 관리할 것인가? 보통 paging 과 segmentation 기법을 사용 - 프로세스를 조각..

    [전공생이 설명하는 OS] 메모리 관리 - (1) Partition/Page/Segment

    [전공생이 설명하는 OS] 메모리 관리 - (1) Partition/Page/Segment

    1. Memory Management 란? 메모리는 (1) OS(resident monitor, kernel) (2) user 두 부분으로 나뉜다. Uni-programming 환경에서는 user part 에 1개의 프로그램만 적재되고, multi-programming 환경에서는 다수의 프로그램이 적재될 수 있다. Memory management 라는 말은 OS 가 user 가 사용하는 메모리를, 프로세스의 요청에 맞게 분할 및 분배하는 것을 포함한다. 메모리를 할당하는 방식은 프로세스 실행 시점에 따라 크게 두 가지로 분류할 수 있다. static allocation : 프로그램 실행 이전에 미리 메모리를 할당하는 방식 (예, global 변수나 상수 등) dynamic allocation : runt..