본문 바로가기

운영체제

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

생능출판사 명품 운영체제

 

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

 

[개념체크]

 

1. 다음 빈 칸에 적절한 단어를 삽입하라.

프로그램의 실행 과정은 두 가지 상황이 번갈아 진행되는데, 그것은 한동안 CPU 연산이 계속되는 ( CPU burst ) 상황과, I/O 작업이 이루어지는 ( I/O burst ) 상황이다. CPU 연산이 주를 이룰 때 ( CPU 집중 ) 프로세스라고 부르고 I/O 작업이 주를 이룰 때 ( I/O 집중 ) 프로세스라고 한다. CPU 스케줄링은 CPU의 ( idle ) 시간을 줄이기 위해 도입되었다.

 

2. CPU 스케줄링 알고리즘을 평가하는 기준과 거리가 먼 것은?

동시성(cocurrency)

 

3. CPU 스케줄링의 평가 기준 사이의 관계를 잘못 설명한 것은?

시스템 정책 우선으로 스케줄링하면 CPU 활용률은 높아진다

 

4. CPU 스케줄링이 행해지는 상황들을 나열하였다. 비어 있는 상황을 적어라.

첫째, 스레드에게 할당된 CPU 타임 슬라이스가 소진되었을 때

둘째, 스레드가 자발적으로 CPU를 반환하는 경우

셋째, 현재 실행중인 스레드보다 더 높은 순위의 스레드로부터 내려진 입출력이 완료되어 I/O 인터럽트가 발생한 경우

넷째, 스레드가 I/O를 요청하는 시스템호출을 실행하여 블록 상태가 되거나, 자원을 기다리는 상태가 될때, 다른 스레드에게 CPU를 할당하는 경우

 

5. 타임 슬라이스에 대한 설명으로 틀린 것은?

④ 타임 슬라이스가 클수록 컨텍스트 스위칭의 횟수가 증가한다

 

6. 선점과 비선점 중 선택하여 빈 칸을 채워라

스레드가 CPU를 할당받아 일단 실행을 시작하면 완료되거나 CPU를 더 이상 사용할 수 없는 상황이 될 때까지 스레드를 강제로 중단시키지 않는 방식을 ( 비선점 ) 스케줄링이라고 하며, 커널이 현재 실행 중인 스레드를 강제로 중단시켜 준비 리스트로 이동시키고, 스케줄링을 통해 다른 스레드에게 CPU를 넘겨주는 방식을 ( 선점 ) 스케줄링 이라고 한다. ( 비선점 ) 스케줄링의 경우, 스레드가 더 이상 CPU를 사용할 수 없는 상황에야 비로소 스케줄링이 이루어 진다. PC와 같은 범용 시스템에서 ( 비선점 ) 스케줄링은 현재는 거의 사용되고 있지 않다.

 

7. 다음 스케줄링이 선점 스케줄링인지 비선점 스케줄링인지 표기하라.

(1) 선입 선처리 (FCFS) - 비선점

(2) 최단 작업 우선 스케줄링 (SJF) - 비선점

(3) 최소 잔여 시간 우선 스케줄링 (SRTF) - 선점

(4) 라운드 로빈 스케줄링 (RR) - 선점

 

8. 다음 그림은 3개의 프로세스 p1, p2, p3이 실행되는 과정을 보여준다. 선점 스케줄링과 비선점 스케줄링 중 어떤 것이 사용되었는지 판단하고 그 이유를 설명하라.

비선점 스케줄링이다. T1이 시작하면 종료하기 전 까지 스케줄링이 이루어지지 않으며, T1이 종료될때 스케줄링이 이루어져 T2가 실행된다. T2의 실행 중 I/O가 발생하면 T2를 중단시키고 스케줄링을 실행하여 T3를 선택한다. T3이 실행 중 yield()를 호출하면 준비상태인 T2를 스케줄링하고 실행시킨다. T2가 끝날때 다시 스케줄링이 이루어져 T3이 실행된다

 

9. 다음은 무엇에 대한 설명인가?

스케줄링 과정에서 선택되지 못한 채 오랫동안 준비 리스트에 있는 상황

기아

 

10. 다음은 무엇에 대한 설명인가?

스레드가 준비 리스트에 머무르는 시간에 비례하여 우선수위를 높여주는 기법

에이징(aging)

 

11. 다음은 무엇에 대한 설명인가?

프로세스나 스레드가 특정 CPU에서 실행되도록 제한하는스케줄러의 특징

CPU 친화성 ( CPU affinity )

 

12. 에이징(aging) 기법은 CPU 스케줄링의 어떤 단점을 극복하기 위한 정책인가?

기아발생

 

13. RR(Round Robin) 스케줄링을 사용할 때 오늘날 합리적인 타임 슬라이스로 적합한 것은?

50 밀리초(20~120밀리초가 적당)

 

14. 스레드가 종료할 때 비로소 새 스레드를 스케줄한다면 이 운영체제는 선점 스케줄링을 하는가 아니면 비선점 스케줄링을 하는가?

비선점 스케줄링

 

15. 다음은 에이징을 설명하는 문장이다. 빈 칸에 적절한 단어는 무엇인가?

스레드가 준비 리스트에 머무르는 시간에 비례하여 스레드의 (           )을/를 높이는 기법이다.

우선순위

 

16. 다음 CPU 스케줄링 알고리즘 중에서 실현성이 없는 것은?

SJF (실행시간 예측 불가능)

 

17. 다음 중 모든 스레드에게 CPU를 가장 공평하게 나누어 주는 스케줄링 기법은?

① RR

 

18. 다음 중 기아 발생 가능성이 가장 큰 CPU 스케줄링은?

SJF

 

19. 다음 중 기아가 전혀 발생하지 않는 CPU 스케줄링은?

RR

 

20. 어떤 연구소에서 컴퓨터 시스템 사용자들을 책임연구원, 연구원, 연구 보조원의 3 그룹으로 나누어 놓고 각 사용자들이 생성된 프로세스나 스레드의 우선순위를 다르게 매기려고 한다. 가장 적절한 CPU 스케줄링은 무엇인가?

MLQ

 

21. RR(Round Robin) 스케줄링에서 스레드에게 할당하는 타임 슬라이스의 크기에 관한 설명 중 틀린 것은?

타임 슬레이스가 클수록 더 균등한 알고리즘이 된다

 

22. MLFQ(Multi-Level Feedback Queue) 스케줄링에 대한 설명으로 옳은 것은?

스레드의 기아를 막기 위해 큐에 대기하는 시간이 오래되면 위 레벨의 큐로 이동시킨다

 

23. 단일 코어 CPU와 달리 멀티 코어 CPU에서 스케줄링할 때 특별히 고려할 사항과 거리가 가장 먼 것은?

타임 슬라이스

 

24. 코어 친화성 혹은 CPU 친화성과 관계가 깊은 것은?

캐시

 

25. 멀티 코어 CPU를 가진 시스템에서 CPU 스케줄링 알고리즘은 스레드를 어떤 코어에서 실행시킬 것인지에 따라 컨텍스트 스위칭 후 오버헤드가 달라진다고 한자.

(1) 구체적으로 어떤 오버헤드가 문제인가? 일반적으로 코어는 내부의 CPU 캐시를 가지고 있다. 캐시에는 현재 실행중이거나 이전에 실행되었던 스레드 코드와 데이터가 적재되어 있다. 만일 스레드가 한 코어에서 실행되다가 중단된 후 동일한 코어에서 다시 실행된다면 코어 내부의 캐시에 스레드 코드와 데이터가 그대로 남아있을 가능성이 높기 때문에 메모리로부터 스레드 코드와 데이터를 적재할 가능성이 상대적으로 낮다. 하지만, 만일 스케줄된 스레드가 다른 코어에서 실행되도록 스케줄 되었다면 메모리로부터 스레드 코드와 데이터가 스케줄된 코어 내부의 캐시로 적재되어야 한다. 스레드를 어떤 코어에 할당하느냐에 따라 컨텍스트 스위칭의 오버헤드가 달라진다.

(2) 이 오버헤드를 줄일 수 있는 해결책은 무엇인가? 스레드가 특정 코어에서만 실행되도록 스케줄링을 제한하도록 하면 된다. 이것은 CPU 친화성 혹은 코어 친화성이라고 한다.

 

26. 멀티 코어 CPU를 가진 시스템에서 스케줄링이 잘못되면 한 코어에만 스레드가 몰리고 다른 코어는 놀게 되는 현상이 나타난다. 이러한 현상을 무엇이라고 부르고 그 해결책은 무엇인가?

코어 부하 불균형 현상. 해결책 : 푸시 마이그레이션 기법, 폴 마이그레이션 기법