운영체제

명품 운영체제 연습문제 9장

5n0wman 2023. 12. 7. 00:57

안녕하세요 눈사람입니다. 운영체제를 학습하면서 풀어본 연습문제 답을 공유하고자, 포스트합니다.

해당 포스트는 직접 풀어보면서 작성한 글이므로 정답이 아닐 수 있습니다.

 


9장 연습문제(개념체크)

1. 다음은 페이징 메모리 관리에 대해 기술하는 문장이다. 보기에서 골라 빈칸을 채워라.

페이징은 프로세스의 주소 공간을 ( 페이지 )라는 ( 고정 ) 크기로 나누고 ( 물리 메모리 ) 역시 ( 페이지 ) 크기와 동일한 크기로 나누고 이를 ( 프레임 ) 이라고 부르며, 프로세스의 각 ( 페이지 ) 를 임의의 빈 ( 프레임 ) 에 할당하는 메모리 관리 기법이다.

 

2. 프로세스가 실행될 때 변수의 물리주소를 알아내기 위해 사용하는 것은?

1. 페이지 테이블

 

3. 32비트의 주소 체계에서 페이지의 크기가 4KB라면, 한 프로세스 당 페이지 테이블의 크기는 얼마인가?

2. 4MB

 -> 32비트 주소 체계 컴퓨터에서 프로세스 주소 공간의 크기는 2 ³²바이트=4GB이다.

      또한, 페이지의 크기가 4KB라면 한 프로세스 당 최대 테이블 개수는 4GB/4KB = 2²⁰개, 약 100만 개다.

      따라서, 페이지 테이블 항목에는 물리 프레임 번호가 저장되고 프레임 번호가 32비트로 구성되므로 프로세스 테이블의 크기는

      2²⁰개 x 4바이트(32비트) = 4MB이다.

 

4. 페이지 테이블에 들어 있는 항목으로 적당한 것은?

1. 페이지의 물리 주소

 

5. 페이지 테이블에 대한 설명으로 틀린 것은?

1. 스레드마다 고유한 페이지 테이블이 사용된다

 

6. 논리 주소를 물리 주소로 바꿀 때 사용되지 않는 것은?

4. PCB

 

7. 페이지 테이블에 대한 설명 중 틀린 것은?

4. 페이지 테이블은 시스템 전체에 하나 있으며 커널 공간에 저장된다.

 -> 페이지 테이블은 프로세스 당 여러 개 존재할 수 있으며 크기가 작지 않기 때문에 메모리에 저장된다.

 

8. 논리 주소를 물리 주소로 바꿀 때 사용되지 않는 것은?

2. PC 레지스터

 

9. 32비트 주소 체계에서 한 페이지의 크기가 4KB일 때, 논리 주소 0x98761234 번지는 몇 번째 페이지의 몇 번째 바이트에 대한 주소인가(정확한 답 사례 : 0x###페이지의 0x###바이트)

0x98761페이지의 0x234바이트

 

10. 페이징 기법과 세그먼테이션 기법을 비교한 것으로 틀린 것은?

3. 세그먼테이션은 단편화가 적기 때문에 메모리 활용 면에서 페이징보다 우수하다

 

11. 페이지 테이블은 어디에 존재하는가?

1. 메인 메모리

 

12. 페이징에서 프로세스의 논리 주소는?

2. [페이지 번호, 옵셋]

 

13. 32비트 주소 체계에서 한 페이지가 2KB일 때, 다음 32비트의 논리 주소는 몇 번째 페이지의 몇 번째 바이트에 대한 주소인가?

0000 0000 0000 0000 0001 1000 0000 1111

3 번째 페이지의 15 번째 바이트

 -> 페이지 크기가 2KB(=2 ¹¹)라면, 페이지 내 각 바이트 주소(옵셋 주소)를 11비트로 나타낼 수 있다.

      그러므로 논리 주소에서의 옵셋의 크기는 11비트이다.

      따라서, 상위 31비트가 페이지 번호, 하위 11비트가 페이지 내 옵셋 주소를 나타내기 때문에

      0000 0000 0000 0000 0001 1까지가 페이지 번호, 000 0000 1111이 바이트 주소이므로,

      이를 10진수로 변환하면 3 번째 페이지의 15 번째 바이트이다.

 

14. 32비트 주소 체계에서 한 페이지의 크기가 4KB일 때, 다음 32비트의 논리 주소에 해당하는 물리 주소는(그림에서의 논리 주소와 프레임 번호는 16진수임)?

0x00022008

 -> 페이지 크기가 4KB이므로 상위 20비트가 페이지 주소, 하위 12비트가 옵셋을 나타낸다. 따라서, 0x00006번째 페이지의 논리주소를 나타내고 있으며, 물리 주소에서는 6번째 페이지의 물리주소는 22 임을 확인할 수 있다. 그러므로 해당 논리 주소의 물리 주소는 0x00022008이다.

 

15. 페이징 메모리 관리 기법은 페이지 테이블로 인해 2가지 성능 이슈가 있다. 이 둘을 골라라?

1. 페이지 테이블의 낭비

3. CPU의 메모리 액세스 시 2번의 물리 메모리 액세스로 인한 실행 속도 저하

 

16. TLB는 어떤 문제점을 해결하기 위한 것인가?

3. 물리 메모리의 액세스 횟수

 

17. TLB는 일반적으로 어디에 존재하는가?

1. CPU 패키지의 MMU 장치 내에

 

18. TLB의 역할은 무엇인가?

3. 물리 메모리의 빠른 액세스

 

19. TLB는 고가의 장치이므로 TLB 크기는 페이지 테이블의 약 1/1000 수준이다. 이렇게 적은 크기로 논리 주소를 물리주소로 바꾸는데 효율적인 이유는 무엇인가?

프로그램 안에는 많은 반복문이 존재하므로 같은 페이지 내의 코드나 데이터를 엑세스하게 되고 이 때, TLB 히트가 계속되어 페이지 테이블을 엑세스 하는 횟수가 줄고 프로그램 실행 속도가 개선된다. 이렇게 프로그램이 실행되는 동안 짧은 시간 범위 내에 일정 구간의 메모리 영역을 반복 엑세스 하는 경향을 참조의 지역성이라고 부른다. 

 

20. 역 페이지 테이블과 멀티레벨 페이지 테이블 기법은 페이지 테이블의 어떤 문제를 개선하기 위한 것인가

2. 페이지 테이블의 낭비 개선

 

21. 역 페이지 테이블을 사용할 때 역 페이지 테이블의 항목은 어떻게 구성되는가?

3. [프로세스 번호, 페이지 번호]