Computer Science/운영체제

운영체제 9강 :: 가상메모리, 블록사상시스템, 블록구성방식

HJPlumtree 2023. 4. 26. 21:14

운영체제에서 기억하고 싶은 내용

 

 

가상 메모리

가상 메모리를 이용하면 메모리 크기보다 더 큰 기억공간이 필요한 프로세스도 실행할 수 있다

현재 필요한 부분만 실제 메모리에 적재해서 사용할 때 가상 메모리를 이용할 수 있다

 

사상(Mapping)

가상주소를 실주소로 변환하는 과정

 

동적 주소변환(DAT): 프로세스가 실행되는 동안 사상되는 것

 

인위의 연속성이란 말은

가상 주소 공간에서 연속적인 주소가 실주소 공간에서 연속일 필요가 없다는 의미

 

주소변환 사상표

가상 메모리에서 실제 메모리 주소 변환을 위해 정보가 담긴 표를 주소변환 사상표라고 한다

바이트나 워드 단위로 주소를 변환하게 되면 정보량이 너무 많아서 비효율적이다

그럼 이것들을 조금 묶어서 사상을 하는 것이 '블록 사상 시스템'이다

 

 

블록 사상 시스템

말 그대로 블록 단위로 사상(주소 변환)을 하는 것

가상 메모리의 각 블록이 실제 메모리의 어디에 위치하는지 관리한다

 

그럼 묶인 데이터는 어떻게 찾을까?

가상 메모리 블록에서 찾고 싶은 데이터까지 거리는,

실제 메모리 블록에서 찾고 싶은 데이터까지 거리와 같으니 찾을 수 있다

 

블록의 크기가 커지면 어떨까?

큰 블록을 관리하니 사상표 크기는 감소하겠지,

하지만, 블록이 커진만큼 전송시간은 증가하고, 실제 메모리에 적재할 프로세스 수는 적어진다

 

그렇다면 작아지면 어떨까?

블록이 작아지니 전송시간은 감소하고, 동시에 적재할 수 있는 프로세스 수는 증가하겠지

하지만 사상표를 보기에 복잡하고 커질 수 있을 듯 

 

 

블록의 구성 방식은?

블록의 구성 방식은 2가지로 분류하는 듯

 

페이지(page)

블록의 크기를 동일하게 나눈 방식

 

세그먼트(segment)

블록의 크기가 다를 수 있다

 

 

페이지 단위로 나누는 페이징 기법

가상 메모리도, 실제 메모리도 동일한 페이지 크기로 나누는 기법이다

가상 메모리 부분을 페이지, 실제 메모리 부분을 페이지 프레임이라고 한다나

 

페이지 사상표는 가상 주소를 실주소로 변환할 수 있게 해주고,

페이지 번호에 대해 페이지 프레임 번호를 저장한다

 

사상 방법으로 직접 사상과 연관 사상 있지만 놓침..

 

연관-직접 사상 방법

일반적으로 이 방법으로 동적 주소 변환을 한다네

연관 사상표에는 가장 최근에 참조된 페이지만 보관하고,

연관 사상표에 없으면 직접 사상을 이용하는 방법이다

 

 

이번엔 세그먼테이션 기법

가상 메모리를 재각기 다른 세그먼트 단위로 관리하는 기법이다

 

세그먼트로 나누는 이유는 뭘까?

논리적 의미에 부합하도록 다양한 크기의 블록으로 나눈다

역시 세그먼트 사상표로 동적 주소를 변환한다

 

 

합체! 페이징-세그먼테이션 혼용 기법

위의 두 기법의 장점을 합친 기법이다

세그먼테이션 기법의 장점인 논리적 의미로 나누기,

그리고 페이징 기법의 메모리 관리 측면을 합쳤다고 한다

 

관리는

우선 가상 메모리르 세그먼트 단위로 나누고,

각 세그먼트를 다시 페이지 단위로 분할해서 관리한다

세그먼트 사상표와 연관 사상표를 활용해서 페이지 사상표에서 페이지 프레임을 찾는다

 

 

메모리 호출 기법이란

어느 시점에 페이지 또는 세그먼트를 메모리에 적재할까 하는거다

 

요구 페이지 호출 기법

페이지 요구가 있을 때 => 요구된 페이지를 메모리에 적재

 

예상 페이지 호출 기법

예상해서 페이지를 적재 한다는 건가?