운영체제/가상 메모리
-
커널 메모리의 할당운영체제/가상 메모리 2018. 2. 4. 20:50
커널 메모리는 별도의 메모리 풀 에서 할당 받는다. 메모리 풀을 사용하는 이유커널은 다양한 크기의 자료구조를 위한 메모리를 요청하고 페이지 보다 작은 크기의 자료 구조를 사용할 수 있다.일부 커널 메모리는 물리적으로 연속된 메모리를 요청할 수 있다. 버디 시스템버디 시스템이란 물리적으로 연속된 페이지들로 구성된 고정된 크기의 세그먼트로부터 메모리를 할당하는 방식이다.메모리는 2의 거듭제곱 단위로 할당된다.2의 거듭제곱 크기가 아닌 메모리 요구는 크기보다 큰 가장 가까운 2의 거듭제곱 크기로 할당한다.내부 단편화의 가능성이 있다.
-
메모리 사상 파일운영체제/가상 메모리 2018. 2. 4. 20:49
디스크에 있는 파일을 순차적으로 읽는다면 파일이 매 번 액세스 될 때마다 시스템 호출을 해야 하고 디스크를 접근해야 한다. 이 대신 디스크 입출력을 메모리 참조 방식으로 대신할 수 있다. 메모리 사상 이라고 불리는 이 접근 방식은 프로세스의 가상 주소 공간 중 일부를 관련된 파일에 할애하는 것을 말한다. 기본 기법 메모리 사상은 프로세스의 페이지 중 일부를 디스크에 있는 파일의 블록에 사상함으로써 이루어진다. 첫 번째 접근은 일반적인 요구 페이징 과정에 따라 페이지 부재를 발생시킨다. 이 때 그 파일 내용 중 페이지 크기 만큼의 해당 부분이 메모리 페이지로 읽혀 들어온다. 그 이후의 파일 read/write는 일반적인 메모리 액세스와 같이 처리된다.
-
스레싱운영체제/가상 메모리 2018. 2. 4. 20:47
충분한 프레임을 할당받지 못한 프로세스는 페이지 교체가 빈번하게 발생되어 낮은 CPU 이용률을 보이게 된다. 스레싱 : 교체된 페이지가 얼마 지나지 않아 다시 사용되는 반복적인 페이지 부재가 발생하는 상황 스레싱의 원인 운영체제는 CPU의 이용률을 검사해 CPU이용률이 너무 낮을 경우 새로운 프로세스를 시스템에 더 추가해서 다중 프로그래밍의 정도를 높인다. 이때 페이지 교체가 필요하다면 이미 활발하게 사용되는 페이지들 로만 이루어져 있으므로 어떤 페이지가 교체되든지 바로 다시 페이지 교체가 필요하게 될 것이다. 이런 현상이 일어날 경우 다중 프로그래밍 정도를 낮춰 스레싱을 해결할 수 있다. 스레싱은 지역 교환 알고리즘 이나 우선순위 교환 알고리즘을 사용해 제한 할 수 있다. 지역 교환 알고리즘이 적용된 ..
-
프레임의 할당운영체제/가상 메모리 2018. 2. 4. 20:42
각 프로세스가 몇 개의 프레임을 할당 받아야 하는지 결정하는 작업이다. 최소로 할당해야 할 프레임의 수 페이지 부재를 줄이기 위해서 프로세스에게 최소한의 프레임을 할당 해 줘야 한다. 할당 알고리즘 균등 할당 : 모든 프로세스에게 똑같이 페이지를 할당 해 주는 것 비례 할당 : 각 프로세스의 크기 비율에 맞추어 할당하는 방법 전역 대 지역 할당 전역 교체 : 교체 할 프레임을 다른 프로세스가 속한 프레임을 포함한 모든 프레임을 대상으로 하는 방식 지역 교체 : 각 프로세스가 자기에게 할당 된 프레임들 중에서만 교체할 프레임을 선택 비 균등 메모리 접근 다중 CPU를 갖는 시스템에서 CPU는 같은 보드의 메모리를 다른 모드의 메모리 보다 더 빠르게 접근할 수 있다. 메모리 접근 시간이 차이 나는 시스템을 ..
-
페이지 교체운영체제/가상 메모리 2018. 2. 4. 20:42
모든 메모리가 사용 중이어서 빈 프레임이 없는 경우 페이지 교체가 필요하다. 기본적인 페이지 교체 만약 빈 프레임이 없다면 현재 사용되고 있지 않은 프레임을 찾아 그것을 비워버린다. 그리고 페이지 테이블을 변화시킴으로써 프레임을 비어 있게 한다. 이 때 페이징 시스템은 두 가지 중요한 문제를 해결해야 한다. 그것은 프레임 할당 알고리즘과 페이지 교체 알고리즘이다. 즉 여러 프로세스가 존재하는 경우 얼마나 많은 프레임을 할당해야 할 지, 어떤 페이지를 교체해야 할 지를 결정해야 한다. 일반적으로 페이지 부재율이 가장 낮은 페이지 교체 알고리즘을 선정한다. 페이지 교체 알고리즘의 성능은 특정 메모리 참조 나열에 대해 알고리즘을 적용하여 페이지 부재 발생 횟수를 계산하여 평가한다. 이 때 메모리 주소의 나열을..
-
쓰기 시 복사운영체제/가상 메모리 2018. 2. 4. 20:35
가상 메모리는 프로세스 생성시 페이지를 공유하여 생성 시간을 줄일 수 있다.과거에 자식 프로세스가 생성될 때에는 부모 프로세스의 페이지를 자식프로세스에 복사해 주는 방식으로 자식 프로세스의 주소 공간을 구성해 주었다.하지만 대부분의 상황에서 자식 프로세스는 만들어지자마자 곧 exec 시스템 호출을 사용해 메모리 공간을 다른 프로그램으로 교체한다.그러면 부모로부터 복사해 온 페이지들은 다 쓸모 없게 된다. 그래서 부모의 페이지를 다 복사해오는 대신 쓰기 시 복사 방식이 사용된다. 쓰기 시 복사 방식은 자식 프로세스가 시작할 때 부모의 페이지를 당분간 함께 공유하여 사용하고 둘 중 한 프로세스가 공유중인 페이지에 쓸 때 페이지의 복사본이 생성된다. 이 방식을 사용할 경우 수정되는 페이지만 복사본을 만들어 효..
-
요구 페이징운영체제/가상 메모리 2018. 2. 4. 20:33
필요한 페이지만을 물리 메모리에 적재하는 것을 요구 페이징 이라고 한다.프로세스를 실행할 때 메모리에 전체 프로세스를 읽어오지 않고 필요한 페이지만 적재하는 게으른 스왑퍼를 사용한다. 기본 개념스왑 인시 페이저는 실제로 사용될 페이지들이 어떤 것인지 추측하고 실제 사용 될 페이지만 메모리로 가져온다.이로써 시간 낭비와 메모리 공간 낭비를 줄일 수 있다. 이를 위해서는 어느 페이지가 메모리에 올라와 있는지를 구별할 수 있어야 한다.따라서 약간의 하드웨어 지원을 필요로 한다. 유효 무효 비트 기법이 여기에 사용될 수 있는데 비트가 유효하다고 설정되면 해당 페이지가 메모리에 있다는 의미이고 무효하다고 설정되면 해당 페이지가 유효하지 않거나 디스크에만 존재한다는 것을 의미한다. 만약 프로세스가 메모리에 올라와 ..
-
배경운영체제/가상 메모리 2018. 2. 4. 20:01
프로세스를 실행할 때 동적 적재 방법을 사용하면 전체 프로세스를 메모리에 올려야 한다는 제약을 완화시키는데 도움이 된다. 프로그램을 일부분만 메모리에 올려놓고 실행 할 수 있을 때의 장점 프로그램은 물리 메모리 크기에 의해 더 이상 제약 받지 않게 된다. 더 많은 프로그램을 동시에 수행할 수 있게 된다. swap에 필요한 입 출력 횟수가 줄어들기 때문에 프로그램이 보다 빨리 실행된다. 가상 메모리는 실제의 물리 메모리 개념과 사용자의 논리 메모리 개념을 분리시켜 프로그램의 일부분만 메모리에 올려놓고 실행 가능하다. 프로세스의 가상 주소 공간은 그 프로세스가 메모리에 저장되는 논리적인 모습을 말한다. 가상 주소 공간은 특정 논리주소에서 시작되어 연속된 공간을 차지한다. 힙과 스택 사이 비어 있는 가상 주소..