본문 바로가기

운영체제/가상화6

직접그린 논리주소 -> 물리주소 변환 그림 2026. 3. 18.
단편화 프로세스들이 메모리에 적재되고 제거되는 일이 반복되다 보면 어떤 가용공간은 너무 작은 조각이 된다.이처럼 곳곳에 못쓰는 작은 조각이 있지만 다 합치면 프로세스를 적재할 만한 공간이 되는 것을 외부 단편화라고 한다.최초 적합을 쓸 것인지 최적 적합을 쓸 것인지는 단편화의 크기에 영향을 받는다. 어느 알고리즘을 사용하더라도 외부 단편화는 문제다.압축은 외부단편화를 해결하는 방법이다 메모리 모든 내용을 한군데로 몰고 모든 가용공간을 다른 한군데로 몰아서 블록을 만드는 것그러나 압축은 프로세스들의 재배치가 실행 시간에 동적으로 이루어지는 경우에만 가능하다. 재배치 작업은 프로그램과 데이터를 새로운 위치로 옮기고 새 위치를 반영하기 위하여 기준 레지스터만 변경하면 된다.외부 단편화를 해결할 수 있는 다른 방법은 .. 2025. 7. 24.
페이징, 세그먼테이션 물리 메모리는 프레임이라 불리는 같은 크기 블록으로 나누어짐논리 메모리는 페이지라 불리는 같은 크기 블록으로 나누어짐 프로세스가 실행되면 프로세스의 페이지는 메인 메모리 프레임으로 적재됨논리 주소 공간은 2^64바이트 보다 적게 장착 된 시스템에서도 프로세스는 64비트의 논리 주소 공간을 사용가능하다CPU의 모든 주소는 페이지 번호와 페이지 오프셋으로 이루어진다.페이지 번호는 페이지 테이블을 액세스할 때 사용 됨페이지 테이블은 물리 메모리의 각 프레임의 시작 주소를 저장하며 오프셋은 참조되는 프레임 안에서의 위치다 두 개를 결합하여 물리 메모리 주소다 MMU의 동작순서페이지 번호를 추출하여 페이지 테이블 인덱스로 사용페이지 테이블에서 해당 프레임 번호 추출논리 주소의 페이지 번호를 프레임 번호로 바꾼다프.. 2025. 7. 24.
스와핑 프로세스가 실행되기 위해서는 프로세스의 명령어와 명령어가 접근하는 데이터가 메모리에 있어야 한다.그러나 프로세스 또는 프로세스의 일부분은 실행 중에 임시로 백업 저장장치로 내보내어 졌다가 실행을 계속하기 위해 다시 메모리로 되돌아 온다모든 프로세스의 물리 주소 공간 크기의 총합이 시스템의 실제 물리 메모리 크기보다 큰 경우에도 스와핑을 이용하면 동시에 실행하는 것이 가능하여 다중 프로그래밍의 정도를 증가시킨다. 표준 스와핑메인 메모리와 백업 저장장치 간에 전체 프로세스를 이동한다. 백업 저장장치는 일반적으로 빠른 보조저장장치다대부분의 시간을 유휴 상태로 보내는 프로세스가 스와핑에 적합한 후보다 페이징 스와핑표준 스와핑은 기존 UNIX에서 사용됐지만 프로세스 전체를 이동하는데 시간이 엄청나서 최신 운영체제.. 2025. 7. 24.
가상메모리 메모리는 컴퓨터마다 다르다 1기가일수도 2기가일수도32비트 주소체계는 42억개의 주소를 가질 수 있다. 주소1개는 1바이트이기 때문에 최대 4기가 정도임64비트 주소체계는 어마어마한 숫자다 32비트의 경우로 예를 들어보면 4기가 전체를 못쓴다 실제로는 1.7기가 정도만 씀 커널이 주소공간 일부를 점유하기 때문이기 때문프로세스는 가상 메모리를 가지고 있다. 프로세스마다의 가상 메모리의 0번은 물리메모리의 주소와 다름커널의 메모리매니저가 매핑테이블을 가지고 있다.매핑테이블은 프로세스 A의 0번주소는 물리메모리에 어디에 있다고 가르쳐주는거 (페이징이면 페이지 세그먼테이션이면 세그먼트에 있다고 갈쳐줌) 배열로 구현되어있음 가상 메모리는 프로세스 전체가 메모리 내에 올라오지 않더라도 실행이 가능하도록 하는 기법사.. 2025. 7. 24.
요구 페이징 요구 페이징은 필요한 페이지만 메모리에 적재하는 것 스와핑 페이징과 유사하다페이지테이블에 유효-무효 비트 기법을 써서 디스크에 있는지 메모리에 있는지 구분한다메모리에 없는 페이지에 접근하려하면 페이지 폴트 트랩 발생한다그럼 해당 페이지를 메모리에 올리고 페이지테이블의 유효-무효 비트를 바꾼다 순수 요구 페이징은 어떤 페이지가 필요해지기 전에는 그 페이지를 메모리로 적재하는 않는다극단적인 경우 페이지가 하나도 없음에도 프로세스를 실행가능하다페이지 폴트가 연쇄 발생하며 필요한 모든 페이지가 적재되고 나면 폴트가 더 발생하지는 않는다 한 명령어에도 여러 개의 페이지 폴트를 일으킬 수도 있다 (명령문 한 페이지, 데이터 한 페이지 이런 방식) 이렇게 되면 심각한 시스템 저하가 일어난다.그러나 이런일은 거의 일어.. 2025. 7. 24.