대학 수강과목/운영체제

[OS]운영체제론 연습문제 10장 - 문제 및 해설

흐이애 2017. 11. 23. 20:43

운영체제론                                         10장 연습문제                

01 프로세스의 가상 메모리 공간을 물리 메모리 공간으로부터 분리하면 좋은 이유를 몇 가지 나열하라.

가상 메모리 공간을 이용함으로써 실제 메모리 주소가 연속적이지 않아도 된다는 장점이 있다. 또한 메모리를 원래 있는 것보다 더 많이 존재하는 것처럼 보이게 해서 프로그램이 여유 메모리보다 큰 경우에도 실행할 수 있게 한다. 마찬가지로 멀티프로그래밍 정도를 높인다.

교수님 답

2 공간이 다면 가상 간을 가질 없다. 하면 자는 물리 메모보다 로그에게 할당할 . 중첩과 같은 정 할 필요도 없고 가상 메모리 템의 좋은 징인 사용자 보호 하기 때문에 분한다.


03 페이징을 이용해 가상 주소와 물리 주소를 맵핑하는 다양한 기술에 관해 설명하라.

 페이징 시스템에서 가상 주소는 순서 쌍 (p,d)로 표현하며, p는 참조하는 항목이 있는 가상 메모리의 페이지, d는 페이지 p 안에서 참조하는 항목이 위치한 변위를 나타낸다.

페이지 번호 p

변위 d

 가상 주소 v=(p,d)

페이지 맵 테이블을 통해 페이지 p를 찾고, 페이지 p가 페이지 프레임 p’에 있는지 판단하여 해당 메모리 주소에서 변위 d를 더해 참조되는 주소를 얻어낼 수 있다. 즉 실제 메모리 주소 r(p’Xps)+d이다. (ps는 페이지의 고정 크기이다.)

페이지화된 가상 메모리 시스템을 사용함으로써 나타나는 장점 중 하나는 프로세스에 속한 모든 페이지를 동시에 메인 메모리로 로드하지 않아도 됨으로써 메인 메모리에 더 많은 프로세스를 동시에 담을 수 있게 된다는 것이다. 이 때, 페이지 테이블은 대응하는 페이지가 현재 메인 메모리에 있는지 여부를 표시해야 한다. 만약 없다면 페이지 폴트를 발생시킴으로써 2차 저장소에서 메인 메모리로 해당 페이지를 로드하게 된다.

이 외에도 직접 맵핑, 연관 맵핑, 직접/연관 맵핑 등이 있다.


05 세그먼테이션에서 가상 주소와 물리 주소의 맵핑에 관해 설명하라.

세그먼트는 일정한 크기가 없다. 가상 메모리 세그먼테이션 시스템에서는 프로그램이 특정 시간 실행에 필요한 세그먼트만 메인 메모리에 유지해도 된다.

가상 메모리 세그먼테이션의 주소는 순서 쌍 v=(s,d)로 나타내며, s는 참조하는 항목이 존재하는 가상 메모리에서 세그먼트 번호, d는 세그먼트 s에서 참조하는 항목이 있는 곳까지의 변위를 나타낸다.

세그먼트 번호 p

변위 d

 가상 주소 v=(s,d)

직접 맵핑 사용 : 시스템은 세그먼트 번호 s를 세그먼트 맵 테이블 시작점 레지스터에 있는 세그먼트 맵 테이블의 기준 주소 값 b에 더한다. 덧셈 결과로 얻은 b+s는 세그먼트의 테이블 맵 엔트리의 위치를 가리킨다. 세그먼트가 현재 메인 메모리에 있을 경우 엔트리는 세그먼트의 메인 메모리 시작 주소 s’를 포함한다. 실제 메모리 주소 rs’+d이다.


06 32비트(각각 메모리의 한 바이트를 명시한다) 주소를 사용하는 순수 페이징 시스템이 있다고 가정하자. 메인 메모리의 크기가 128MB, 페이지 크기가 8KB.

a.   이 시스템은 페이지 프레임을 몇 개 지니는가?

b.   이 시스템은 변위 d를 유지하는 데 몇 비트를 사용하는가?

c.   이 시스템은 페이지 번호 p를 유지하는 데 몇 비트를 사용하는가?

교수님 답

10 다음 각 유형의 가상 메모리 시스템에서 단편화가 어떻게 나타나는지 논의하라.

a.   세그먼테이션

-       서로 다른 크기의 세그먼트들에 대해 필요시에 메모리에 올리고 필요 없을 경우 내리는 작업을 반복하다 보면 외부 단편화가 생기는 문제점이 있다.

b.   페이징

-       일정 크기의 페이지에 프로세스 할당 시, 프로세스의 크기가 페이지보다 작을 경우 내부 단편화가 발생한다.

c.   세그먼테이션/페이징 조합


교수님 답

a. 세그먼테이션

순수 세그먼테이션의 문제는 9장에서 논의한 가변 파티션 멀티프로그래밍 문제와 유사하다. 세그먼트가 임의 크기이기 때문에 메모리는 다양한 크기의 메모리 홀로 파편화되어 그들 중 일부는 너무 작아서 사용할 수 없다. 압축과 결합 방법이 단편화를 줄이기 위해 사용된다. 테이블 단편화도 일어난다; 즉 세그먼트-매핑 테이블에 의해 취해진 공간이 사용자에게 할당되어 사용할 수 없게 된다.


b. 페이징

프로그램과 데이터 구조가 페이지를 채우지 못하기 때문에 내부적 단편화가 일어난다. 테이블 단편화도 일어난다.


c. 세그먼테이션/페이징 조합

순수 페이징에서 발생하는 단편화 문제와 세그먼트 테이블과 페이지 테이블의 사용 때문에 만들어진 추가적인 테이블 단편화가 발생한다.


12 세그먼테이션/페이징 조합 시스템에서 가상 주소를 물리 주소로 맵핑하는 과정을 설명하라.(10.6.1절 참고)


이 시스템에서는 세그먼트들이 페이지 하나 이상을 차지한다. 이 구조에서 가상 메모리 주소는 세 순서 쌍 v=(s, p, d)로 구현한다. (s : 세그먼트 번호, p : 해당 세그먼트 안에 있는 페이지 번호, d : 원하는 항목이 위치한 페이지 안에서의 변위.)


동적 주소 변환 메커니즘에 의해 연관 검색을 수행하며, TLB가 (s,p)를 포함하면 검색 결과로 페이지 p가 있는 페이지 프레임 p’이 반환된다. 만약 TLB가 (s,p)에 해당하는 엔트리를 포함하지 않으면, 프로세서는 세그먼트 맵 테이블 기준 주소 b를 세그먼트 번호 s에 더해 주소 b+s를 얻는다. 이 주소는 세그먼트 맵 테이블에 있는 세그먼트 엔트리의 물리 메모리 주소에 대응한다. 세그먼트 맵 테이블 엔트리는 세그먼트 s에 해당하는 페이지 테이블(메인 메모리에 존재)의 기준 주소 s’을 나타낸다. 프로세서는 페이지 번호 p를 기준 주소 s’에 더해 세그먼트 s의 페이지 p에 해당하는 페이지 테이블 엔트리의 주소를 얻는다.


14 실제 메모리 시스템보다 가상 메모리 시스템에서 코드와 데이터 공유가 훨씬 자연스러운 이유는 무엇인가?


가상 메모리에서 공유를 할 경우 시스템이 각 프로세스에 공통인 페이지들을 공유함으로써 메모리 낭비를 줄일 수 있다. 세그먼테이션에서는 직접 맵핑의 순수 페이징 시스템보다 오버헤드를 적게 발생한다.


교수님 답

주소 변환 방법과 연관된 테이블 구조가 테이블들을 공유하게 함으로써 모든 페이지와 세그먼트를 유지시켜 주기 때문이다.


15 페이징과 세그먼테이션의 유사점과 차이점을 기술하라.


두 가지 모두 블록 맵핑의 방법들이다. 가장 큰 차이점은 페이징은 블록이 고정 크기인 것이고 세그먼테이션은 블록이 가변 크기라는 것이다. 페이징은 맵핑 시 고정 크기이므로 실제 메로리 주소를 참조할 때 r=(p’Xps)+d로 참조하는 위치가 정해져있지만, 세그먼테이션은 가변 크기이므로 여러 가정이 성립되는 상황에서만 공식이 적용되며 더 복잡한 참조방식을 갖고 있다.


교수님 답

2 방법 모두 가상 메모리를 구현하기 위해 많이 사용되는 구조이다. 2 방법 모두 가상 주소 공간을 분리된 공간(블록, 페이지 혹은 세그먼트)으로 나누게 하고 불연속 메모리 할당을 한다. 페이징은 물리적 공간을 처리하고 세그먼테이션은 논리적 공간을 처리한다. 페이징은 블록의 크기가 일정하여 메모리 배치 결정을 단순하게 하지만 세그먼테이션은 블록의 크기가 가변적이어서 가변 파티션 멀티프로그래밍의 방법과 같이 복잡한 메모리 배치 결정을 한다.


 

반응형