반응형 일단 제가 준비한 건,261 운영체제 Allocation of Frames ( Global Allocation, Local Allocation, Fixed Allocation, Priority Allocation ) Allocation of Frames page fault가 발생했을 때 frame을 몇 개를 할당해야 할까에 대해 알아보자. 그전에 먼저 Global Allocation, Local Allocation의 차이점에 대해 알아야 한다. Global Frame Replacement는 우선순위가 높은 프로세스에 빈 frame이 없을 때 우선순위가 낮은 프로세스의 빈 frame을 뺏어서 사용 가능하다. 즉 시스템에 존재하는 모든 frame을 같이 사용하는 것과 같다. 하지만 이렇게 되면 낮은 우선순위의 프로세스가 뺏긴 부분의 frame을 다시 필요로 할 때 이미 정보가 바꿨기 때문에 page fault를 발생시킨다. 이에 시간이 많이 소요된다. 즉 이런 정책을 쓰는 시스템은 프로세스의 동작 시간이 매우 가변적이게.. 2022. 6. 8. 운영체제 COW ( Copy on Write, zero-fill-on-demand-page ) COW ( Copy On Write ) 부모 프로세스가 자식 프로세스를 생성할 때 ( fork() ) 생기는 메모리 이슈에 대한 해결책으로 나온 방법이다. 자식 프로세스를 생성하면 부모 프로세스가 가지고 있던 page table을 그대로 물려받는다. 조금 다르게 말하면 부모 프로세스의 메모리를 다 복사한다. 그렇게 되면 너무 많은 메모리 overhead가 발생한다. 그렇다고 메모리를 공유하면 독립적인 동작을 하지 못한다. 즉, 메모리는 적게 잡아먹어야 하고 독립적으로 움직여야 한다. 그렇게 해서 나온 게 COW다. 먼저 자식 프로세스를 생성하면, 부모 프로세스의 주소 공간을 공유하고, 운영체제는 자식 프로세스에게 독립적인 page table을 만들어 준다. 단, 이때 부모 page table의 read-.. 2022. 6. 8. 운영체제 Demand paging ( 요구 페이징, page fault란? ) Demand paging Demand paging은 간단히 말해서 필요한 page만 메모리에 올리겠다는 의미다. 그전에 swapping이라는 개념을 알고 있어야 하는데 아래 포스팅을 읽고 오면 더욱 이해가 쉬울 것이다. 2022.06.08 - [내가 하는 공부/운영체제 (OS)] - 운영체제 Swapping ( page in, page out ) 운영체제 Swapping ( page in, page out ) Swapping 여러 프로그램을 메모리상에서 돌리다 보면 메모리가 부족할 수밖에 없다. 이런 메모리 부족을 해결하기 위해서 나온 방법이 Swapping이다. 더 많은 프로세스가 메모리에 존재할 수 있도 wpaud16.tistory.com 시간이 없는 사람을 위해 간단히 설명하자면, Swpping이란.. 2022. 6. 8. 운영체제 Virtual Memory ( 필요한 이유 ) Virtual Memory 간단하게 말해서 프로세스의 논리 메모리와 물리 메모리를 분리하기 위해 생긴 개념이다. 왜 분리를 해야 하냐면, 물리 메모리의 한계를 극복하기 위해서이다. 무슨 말이냐면 여러 프로그램을 돌리면 메모리 부족의 문제가 생긴다. 이는 메모리 침범의 문제로 이어지기 때문에 이를 해결하고자 한 방법이다. 이런 이유 때문에 가상 메모리와 물리 메모리를 분리한다는 의미다. 논리 메모리가 가상 메모리다. 왜 가상 주소가 필요한지 예를 들어보자, 3개의 프로그램을 일정 시간에 따라 반복적(time에 따라)으로 돌리고 메인 메모리의 크기는 64KB라고 가정해보자. 그러면 먼저 taks1 (32KB), task2(16KB), task3(48KB)의 정보는 Hard disk에 다 들어있을 것이다. 그.. 2022. 6. 8. 운영체제 Swapping ( page in, page out ) Swapping 여러 프로그램을 메모리상에서 돌리다 보면 메모리가 부족할 수밖에 없다. 이런 메모리 부족을 해결하기 위해서 나온 방법이 Swapping이다. 더 많은 프로세스가 메모리에 존재할 수 있도록 하는 것이다. swapping을 사용하면 프로세스를 다시 실행할 때 처음부터 메모리에 올리는 것이 아니라 더 빨리 할 수 있기 때문이다. Swapped은 backing store를 만들어서 프로세스 단위로 swap in, swap out을 동작한다. ( backing store는 임시저장소로 하드디스크나 NVM처럼 여러 하드웨어가 될 수 있다. 즉 Secondary Storage다.) 프로그램이 실행되면 Bakcing store에 있는 필요한 page 정보를 메모리에 올린다. 이렇게 프로세스 단위로 왔다.. 2022. 6. 8. 이전 1 ··· 6 7 8 9 10 11 12 ··· 53 다음