본문 바로가기

운영체제

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

생능출판사 명품 운영체제

 

본 연습문제들은 작성자 본인이 푼것이라 틀릴 수 도 있습니다.

 

[개념체크]

 

1. 물리 메모리의 크기 한계를 극복하기 위한 메모리 관리 기술은?

가상 메모리

 

2. 가상 메모리의 핵심 내용과 관계가 먼 것은?

메모리 사용량이 적은 프로세스의 우선 스케줄링

 

3. 스래싱에 대한 해결책이 아닌 것은?

TLB의 항목수 늘리기

 

4. 스왑 영역으로 적합하지 않는 것은?

 

 

5. 가상 메모리 기법이 도입된 이유는?

물리 메모리보다 큰 프로세스를 실행시키기 위해

 

6. 가상 메모리 기법이 도입된 이유는?

물리 메모리의 크기 한계 극복

 

7. 요구 페이징에 대한 설명으로 틀린 것은?

프로세스의 페이지를 가능한 많이 적재하도록 프레임을 할당하는 기법

 

8. 요구 페이징(demand paging)에서 요구(demand)의 의미는 무엇인가?

페이지가 필요할 때까지 물리 메모리에 적재하지 않고 두었다가, 페이지가 필요할때 물리 메모리를 할당받고 디스크에서 읽어 적재시킨다는 의미

 

9. 요구 페이징에서 요구의 의미에 가장 근접한 것은 무엇인가?

페이지 폴트가발생할 때

 

10. 페이지 테이블 항목에 valid 비트의 역할은 무엇인가?

1이면 페이지가 메모리 프레임에 존재. presence 비트라고도 함, 

 

11. 페이지 테이블의 항목을 구성하는 다음 필드의 용도를 기술하라.

(1) valid bit : 1이면 페이지가 메모리 프레임에 존재. presence 비트 라고도 함

(2) modified bit : 1이면 페이지가 적재된 후 수정되었음. dirty 비트 라고도 함

(3) reference bit : 1이면 페이지가 최근에 참조되었음

(4) protection bit : 'R'이면 읽기 전용 페이지, 'RW'이면 읽기 쓰기 모두 가능한 페이지

 

12. 페이지가 스왑-아웃될 때 페이지 테이블의 필드에서 일어나는 변화는?

valid bit : 1 -> 0, modified bit : 1 -> 0

 

13. 요구 페이징에서 페이지 폴트가 급격히 자주 발생하는 상황을 무엇이라고 부르는가?

스래싱

 

14. 다음은 시간 지역성과 공간 지역성 중 무엇에 대한 설명인가?

(1) 배열은 보통 순차적으로 액세스되므로, 현재 액세스하고 있는 배열의 다음 원소들이 가까운 미래에 액세스될 가능성이 매우 높다. 공간 지역성

(2) 프로그램 코드 역시 위에서 아래로 순차적으로 실행되므로, 현재 100 번지의 명령이 실행되고 있다면 곧 104 번지의 명령을 실행할 가능성이 매우 높다. 공간 지역성

(3) 프로그램 내에 지금 액세스되는 주소 영역(혹은 페이지)이 가까운 미래에 다시 액세스될 가능성이 크다. 시간 지역성

(4) 반복문의 실행 동안 코드나 데이터가 아주 짧은 시간 내에 다시 액세스될 가능성이 매우 높다. 시간 지역성

 

15. 다음 중 공간 지역성을 설명하는 것이 아닌 것은?

반복문의 실행 동안 코드나 데이터가 아주 짧은 시간 내에 다시 액세스될 가능성이 매우 높다

 

16. 다음 중 참조의 지역성을 훼손할 수 있는 것은?

1MB 크기의 큰 배열 사용

 

17. 다음 중 참조의 지역성을 기반으로 하는 컴퓨터 시스템의 정책이 아닌 것은?

페이징 기법

 

18. 시스템을 관찰한 결과, 한 동안 잠잠하다가 일정 시간 페이지 폴트가 연이어 발생한 후 페이지 폴트가 다시 줄어든다. 여기서 페이지 폴트가 연이어 발생하는 상황을 가장 가깝게 설명한 것은?

작업 집합에 포함되는 페이지가 적재되고 있다

 

19. 시스템을 관찰한 결과, 한 동안 잠잠하다가 일정 시간 페이지 폴트가 연이어 발생한 후 페이지 폴트가 다시 줄어든다. 여기서 페이지 폴트가 연이어 발생하는 상황으로 예상할 수 없는 것은?

스래싱이 발생하고 있다

 

20. 시스템 운영자가 스래싱이 발생하고 있음을 탐지하기 위해 필요한 정보는?

CPU 활용률과 입출력 비율의 변화

 

21. DOM이 동시에 실행되는 프로세스의 개수라고 할 때, 스래싱이 발생하는 것이라고 판단할 수 있는 상황은?

DOM 증가에 따른 CPU 활용률의 갑작스런 감소

 

22. 스래싱이 발생하는 원인은 무엇인가?

① 메모리에 적재한 프로세스의 개수가 과다함

 

23. 다음 그래프는 무엇을 보여주고 있는지 간단히 설명하라.

동시에 실행되는 프로세스의 수에 따라 스래싱이 발생하는 상황을 보여준다. 동시에 실행되는 프로세스의 수가 증가할 때 CPU 활용률이 높아지는 것이 컴퓨터 시스템의 정상적인 모습이지만, 프로세스의 수가 더 증가하면 프로세스당 메모리량이 줄어들어 페이지 폴트가 급격히 증가하고 이로 인해 입출력 작업이 증가하며, CPU는 입출력 작업의 완료를 기다리느라 정상적인 프로그램을 실행하지 못하여 오히려 CPU 활용률이 떨어진다. 이러한 현상을 스래싱이라고 한다. M 시점부터 스래싱이 발생하기 시작한다.

 

24. 다음 그림에 대한 설명으로 옳은 것을 모두 골라라?

A 영역은 매우 정상적인 시스템의 모습이다

B 영역에서 스래싱이 발생하고 있다

동시에 실행되는 프로세스의 수가 M보다 커지면 과도한 디스크 입출력이 발생한다

이 그래프에서 B의 현상이 발생하는 원인은 프로세스 당 메모리가 부족하기 때문이다

이 그래프의 B 부분에는 페이지 폴트가 심각하게 발생한다

 

25. 가상 메모리 기법에서는 프로세스의 모든 페이지를 메모리 프레임에 적재해두지 않는다. 그러면 프로세스 당 몇 개의 페이지를 메모리 프레임이 할당하는 것이 적당한가?

작업 집합을 포함할 만큼의 페이지

 

26. 페이지 교체 알고리즘의 목표는 무엇인가?

현재 작업 집합에 포함되지 않거나 가까운 미래에 참조되지 않을 페이지를 희생 페이지로 선택하여 페이지 폴트의 횟수를 줄이는 것이다

 

27. 교체되기로 선택된 페이지를 무엇이라고 부르는가?

희생 페이지

 

28. 다음 중 가장 비현실적인 페이지 교체 알고리즘은?

최적 교체 알고리즘

 

29. 다음 중 참조의 지역성이 전혀 반영되지 않는 페이지 교체 알고리즘은?

FIFO

 

30. 페이지 교체 알고리즘을 평가하는 잣대로 가장 적합한 것은?

페이지 폴트 횟수

 

31. Clock 페이지 교체 알고리즘을 설명한 것 중 틀린 것은?

페이지가 액세스될 때 마다 해당 메모리 프레임에 만들어둔 참조 비트를 0로 만든다

 

32. 희생 페이지를 찾기 위해 현재 적재된 페이지들을 검색하는 시간이 가장 빠른 것은?

최적 교체 알고리즘

 

33. 응용프로그램은 컴파일 과정에서 코드와 데이터로 분리되어 실핼 파일이 구성된다. 아래는 응용프로그램을 구성하는 여러 페이지 중에서 일부이다.

(1) main() 함수의 for문이 실행되는 동안 형성되는 작업 집합을 페이지 순서대로 나열하라.

페이지 0 → 페이지 7(변수 i 액세스) → 페이지 3(함수 f() 코드 실행) → 페이지 9(변수 j 액세스) → 페이지 6(배열 n[] 액세스)

(2) 페이지 0만 적재된 상태에서 응용프로그램이 실행을 시작한다. 다른 페이지들일 적재되지 않았지만 일단 적재되면 실행이 끝날 때 까지 스왑-아웃되지 않는다고 가정하자. 이 프로그램이 실행되는 동안 페이지 폴트가 발생하지 않는 경우는?

함수 f()의 for 문에서 sum += n[j]의 실행 시 sum 변수 액세스

sum 변수는 페이지 7에 존재하는데, 함수 f()가 실행될 때 변수 i를 액세스하기 위해 페이지 7이 적재되어 있으므로 sum 변수를 액세스할 때 페이지 폴트가 발생하지 않는다