[OS]운영체제론 연습문제 8장 - 문제 및 해설
02 다음 각 문제를 어떤 수준의 스케줄러에서 결정해야 하는가?
a. 프로세서를 사용할 수 있을 때, 준비 상태 프로세스 중 어떤 프로세스에 프로세서를 할당할 것인가?
-저수준 스케줄링
b. 디스크에 스풀되어 대기하는 일련의 배치 프로세스 중 어떤 것을 시작할 것인가?
-저수준 스케줄링
c. 프로세서에 대한 단기적인 부하를 줄이려면 어떤 프로세스를 일시 정지할 것인 것인가?
-중간 수준 스케줄링
d. 멀티프로그래밍의 균형을 유지하려면 입출력 중심이라고 알려진 일시 정지 프로세스 중 어떤 것을 활성화할 것인가?
-고수준 스케줄링
교수님 답
a. 디스패처(혹은 저수준 스케쥴러)
b. 고수준 스케쥴러
c. 중간수준 스케쥴러
d. 중간수준 스케쥴러
03 스케줄링 정책과 스케줄링 메커니즘의 차이를 설명하라.
스케줄링 정책은 시스템이 프로세스를 선택할 때, 어떤 기준-처리량을 최대화할 지, 자원 활용도를 최대화할 지, 공정성, 응답 시간, 우선순위 등-에 따라 선택을 할지를 결정하는 것이다. 스케줄링 정책에는 선점/비선점 스케줄링, 정적/동적 우선순위 스케줄링 등이 있다.
스케줄링 메커니즘은 스케줄링 정책들이 어떠한 메커니즘을 쓸 것인지-문맥 전환, 퀀텀 등-를 결정하는 것이다.
교수님 답
정책은 스케쥴러의 특정 수준에 의해 사용되어지는 규칙 혹은 전략의 집합이다. 매커니즘은 정책을 구현하는 실제 시스템 SW이다.
04 다음은 일반적인 스케줄링의 목표다. P391
a. 공평성 : 스케줄링 규칙이 유사한 프로세스들을 모두 동일하게 대우하고, 어떤 프로세스도 스케줄링 때문에 무기한 연기에 빠지지 않는다면 공평한 원칙이라고 할 수 있다. P393
b. 처리량 극대화 : 스케줄링 규칙은 단위 시간당 가능하면 많은 프로세스가 서비스를 받을 수 있도록 해야 한다.
c. 적정 시간 안에 반응을 얻는 대화식 사용자 수 극대화
d. 예측 가능성 : 유사한 시스템 부하 시에는 주어진 프로세스가 항상 비슷한 시간 동안 실행해야 한다.
e. 오버헤드 최소화
f. 자원 활용도의 균형 유지 : 스케줄링 메커니즘은 시스템 자원을 부지런히 사용하게 해야 한다.
g. 반응성과 자원 활용도 사이의 균형 유지
h. 무기한 연기 방지
i. 우선순위 준수
j. 핵심 자원을 보유한 프로세스에 우선권 부여
k. 오버헤드가 많은 프로세스에 낮은 수준의 서비스 제공
l. 시스템 부하가 커질 때도 점진적인 성능 저하 : 규모 확장성
위에서 열거한 목표 중 다음 각 사항에 직접 적용되는 것을 선택하라.
i. 특정 사용자가 특히 오랜 시간 동안 대기했다면, 해당 사용자에게 우선권을 준다.
-h. 무기한 연기 방지
ii. 직원 1,000명이 근무하는 회사에서 급여 계산을 수행하는 사용자가 있다. 이 사용자는 급여 계산 작업을 매주 일정한 시간 안에 수행하려고 한다.
-b. 처리량 극대화
iii. 시스템은 대부분의 장치를 바쁘게 활용할 수 있는 방향으로 프로세스를 적절하게 배분해야 한다.
-f. 자원 활용도의 균형 유지
iv. 시스템은 중요한 프로세스를 선호해야 한다.
-j. 핵심 자원을 보유한 프로세스에 우선권 부여.
v. 중요한 프로세스가 도착하더라도, 요구하는 자원을 중요하지 않은 다른 프로세스가 보유하고 있다고 해서 해당 프로세스를 앞지를 수는 없다.
-i. 우선순위 준수
vi. 시스템이 가장 바쁠 때 많은 프로세스를 관리하는 오버헤드 때문에 시스템이 다운되면 안 된다.
-k. 오버헤드가 많은 프로세스에 낮은 수준의 서비스 제공
vii. 시스템은 입출력 중심 프로세스를 선호해야 한다.
-i. 우선순위 준수
viii. 문맥 전환은 가능하면 빨리 수행해야 한다.
-e. 오버헤드 최소화
교수님 답
i. 무기한 연기 방지를 위해서는 h), 공평성을 위해서는 a), 예측 가능성을 위해서는 d)
ii. d)
iii. 자원활용도의 균형유지를 위해서는 f), 반응성과 자원활용도간 균형유지를 하기 위해서는 g)
iv. i)
v. j)
vi. l)
vii. c)
viii. e)
06 다음 사항이 올바른지 판단하고 답에 대한 이유를 설명하라.
a. 프로세서를 프로세스로부터 강제로 제거할 수 없다면, 해당 프로세스 스케줄링 규칙은 선점형이다.
올바르지 않다. 프로세스로부터 프로세서를 강제로 제거할 수 없는 스케줄링 규칙은 비선점형 스케줄링이다. 비선점형 스케줄링은 프로세스 수행이 완료될 때까지 대기하며 처리 시간을 예측할 수 있다는 장점이 있다.
b. 실시간 시스템은 대체로 선점형 프로세서 스케줄링을 사용한다.
올바르다. 선점형 프로세서 스케줄링은 우선순위가 높은 프로세스에 빨리 응답해야 하는 시스템에서 유용하다. 만일 실시간 시스템에서 인터럽트에 대해 제시간에 응답하지 않으면 큰 재앙을 초래할 수도 있다.
c. 시분할 시스템은 대체로 비선점형 프로세서 스케줄링을 사용한다.
올바르지 않다. 대화식 시분할 시스템에서는 선점형 스케줄링을 통해 각 사용자가 수용할 만한 반응 시간을 보장할 수 있다.
d. 처리 시간 예측은 비선점형 시스템보다는 선점형 시스템에서 더 용이하다.
올바르지 않다. 비선점형 스케줄링은 프로세스가 완료될 때까지 대기하므로 처리 시간을 예측할 수 있다.
e. 우선순위 구조의 한 가지 약점은 해당 시스템이 우선순위를 충실하게 지키지만 우선순위 자체가 무의미할 수도 있다는 점이다.
교수님 답
a. 거짓. 선점형은 프로세서가 강제적으로 프로세스로부터 제거할 수 있다는 것을 의미한다.
b. 참. 실시간 시스템의 성공의 요건은 프로세스의 데드라인을 만족시키는 능력이다. 이 능력은 서비스에 대해 응답을 재빨리 하는 것이다.
c. 거짓, 새로운 요구에 대하 빠른 응답을 보장하기 위해서는 선점형 스케쥴링을 사용한다.
d. 거짓. 비선점형 시스템에서 프로세스가 프로세서를 획득하면 완료할 때까지 동작한다. 즉,
다른 프로세스들에 의해 반복적으로 선점되는 가능성때문에 발생하는 예측의 불확실성도 없다.
e. 참. 시스템에서 우선순위 설정은 중요한 작업이다. 그러나 우선 순위를 지키는 시스템에 서는 우선 순위가 낮은 프로세스가 한 자원을 사용하고 있을 때, 높은 우선순위의 프로세스가 그 자원을 사용하기 위해 요구하는 경우를 생각해보자. 이 경우에는 우선순위가 거의 무의미해진다.
09 데드라인 스케줄링이 복잡한 이유를 설명하라. P409
사용자들은 정확한 자원 요구량을 미리 제시해 해당 프로세스가 데드라인까지 완료할 수 있게 보장해야 한다. 이러한 정보는 얻기 어렵다.
시스템은 데드라인에 맞춰 프로세스를 실행하되 다른 사용자들에 대한 서비스에 심각한 악영향을 미치면 안 된다.
시스템은 데드라인이 될 때까지 자원 요구량을 철저하게 계획해야 한다. 새로운 프로세스들이 도착해 예상치 못한 자원들을 요청할 수도 있으므로 매우 어려운 일이다.
여러 데드라인 프로세스들이 한꺼번에 활성화되는 경우 스케줄링이 아주 복잡해진다.
데드라인 스케줄링이 요구하는 강도 높은 자원 관리는 상당한 오버헤드를 가져올 수도 있다.
교수님 답
다음의 내용들을 모르기 때문에 데드라인 스케쥴링 계획을 설정하는데 있어서 불확실성 이 존재한다.
- 프로세스의 수행시간
- 필요한 자원의 종류와 수
또한 실제 동작하면서는 시스템내에서 동작하는 시스템 부하가 예측할 수 없이 변할 수 있다는 것이다.
이러한 원인들 때문에 데드라인 스케쥴링이 힘들다. 역으로 이러한 것들을 관리할 수 있다면 데드라인 스케쥴링이 가능하다.
10 대화식 사용자들에게 FIFO가 부적절한 프로세서 스케줄링이라는 점을 예를 들어 설명하라.
FIFO방식은 실행 시간이 긴 프로세스들 때문에 짧은 프로세스들이 오래 대기해야 하는 경우가 있다. 또한 중요하지 않은 프로세스 때문에 중요한 프로세스들이 오래 대기할 수 있다. 따라서 FIFO 방식은 사용자 입력에 대해 짧은 시간 안에 반응함을 보장할 수 없다. 그러므로 대화식 사용자들에게 FIFO는 부적절한 프로세서 스케줄링이다.
교수님 답
FIFO의 동작으로 한 프로세스가 시작하면 그 프로세스의 완료시까지 동작한다고 가정 한다. 즉, 비선점형 구조로써 동작한다. 이러한 구조는 시스템이 의미있는 대화식 응답시간을 보장하지 못하게 한다. 예로써 큰(혹은 수행시간이 긴) 프로세스가 하나의 프로세서를 가진 시스템에 들어간다고 가정하자. 그 프로세스가 수행되면 다른 프로세스들은 수행할 수가 없다. 웹 페이지를 보거나 SNS 메시지를 보내고자하는 사용자는 그 수행 시간이 긴 프로세스가 완료할 때까지 이러한 사용자 요구들에 대해 반응할 수 없다.
11 [연습문제 8-10]의 답을 바탕으로, 라운드로빈 방식이 대화식 사용자들에게 더 나은스케줄링인 이유를 설명하라.
라운드로빈 방식은 FIFO 순서대로 디스패치하지만 퀀텀 시간 안에서만 수행한다. 이 방식은 적절한 반응 시간을 보장해야 하는 대화식 환경에서 효과적이다. 시스템은 효율적인 문맥 전환 메커니즘을 사용하고, 대기 프로세스를 메인 메모리에 유지해 선점 때문에 발생하는 오버헤드를 최소화해야 한다.
교수님 답
라운드로빈 방식은 클럭에 의해 인터럽트되는 선점형 구조이다. 수행시간이 긴 프로세스들을 보다 짧은 프로세스들을 지연시킬 수 없다. 이는 짧은 프로세스들도 주기적으로 프로세서의 권리를 얻기 때문이다. 대화식 사용자들은 좋은 응답시간을 유지할 만큼 빈번 하게 프로세스들을 할당받는다.
14 다음 각 항목에서 잘못된 점을 지적하라.
a. SPF는 SRT보다 처리량을 늘릴 수 없다.
경우에 따라 SRT는 SPF보다 더 많은 오버헤드를 발생시킬 수 있다. 그러므로 SPF는 SRT보다 더 많은 양의 처리를 할 수 있다.
b. SPF는 공평하다.
공평하다는 것은 스케줄링 규칙이 유사한 프로세스들을 모두 동일하게 대우하고, 어떤 프로세스도 스케줄링 때문에 무기한 연기에 빠지지 않는다는 것을 의미한다. SPF방식은 완료 시까지 실행 시간이 가장 짧을 것으로 예상하는 프로세스를 선택한다. 만일 실행 시간이 상대적으로 짧은 프로세스가 계속하여 도착한다면 상대적으로 긴 프로세스는 무기한 연기에 빠질 수 있다. 따라서 공평하다고 할 수 없다.
c. 프로세스가 짧을수록, 시스템은 더 나은 서비스를 제공해야 한다.
우선순위가 낮은 프로세스가 우선순위가 높은 프로세스에 할당해야 할 핵심 자원을 보유하고 있어서 해당 프로세스를 빨리 반납할 수 있게 하기 위하여 우선순위가 낮은 프로세스에 평소보다 더 긴 실행 시간을 허용하는 ‘우선순위 역전’ 기술을 쓰는 경우가 아닌 한, 시스템은 짧은 프로세스에 굳이 더 나은 서비스를 제공해야 할 이유는 없다. 스케줄링 방법에 따라 짧은 프로세스가 더 높은 우선순위를 가질 수도 있지만, 그렇지 않은 경우도 있으므로 반드시 짧은 프로세스에게 더 나은 서비스를 제공해야 하는 것은 아니다.
d. SPF는 짧은 프로세스를 선호하므로 시분할 시스템에서 유용하다.
SPF는 프로세스의 예상 종료 시간을 예측할 수 없다. 적절한 반응 시간을 보장해야 하는 환경에서는 부적합하다.
교수님 답
a. SRT는 선점에 드는 오버헤드시간이 존재하기 때문에 프로세스들의 수행시간이 짧을수록 SPF가 처리량이 더 많을 수 있다.
b. 프로세스들이 동작 순서대로 서비스되지 않는다. 수행 시간이 긴 프로세스들은 짧은 프 로세스가 먼저 서비스되기 떄문에 기다려야 한다.
c. 이 정책은 대화식 시분할 시스템에서는 빠른 응답 시간을 보장하기 위해서는 효과적인다. 그러나 프로세스의 상대적인 중요성(우선 순위)와 같은 다른 사항들을 무시한 것이다. 동 작하는 대부분의 프로세스들은 높은 우선순위를 요구하지 않지만 어떤 프로세스들은 특병 하게 긴급하게 서비스될 수 있다. 한 예가 데드라인 스케쥴링인데, 여기에서는 데드라인에 가까이 다가왔지만 만족할 만한 진행을 하지 못한 프로세스는 더 높은 우선순위를 할당받 아 수행시간을 더 많이 소비해야 한다.
d. SPF는 비선점형 스켸쥴링 정책이므로 대화식 사용자가 단순한 요구를 할 때 긴 시간을 수행할 수 있다. 이는 SPF가 완료시까지 수행을 계속하게 만들기 때문이다.
22 스케줄링 정책의 두 가지 공통적인 목적은 반응 시간을 최소화하고 자원 활용도를 극대화하는 것이다.
a. 이 두 가지 목적이 어떻게 상충하는지 설명하라. P392
반응 시간을 최소화하려면 언제든지 사용할 수 있는 충분한 자원을 보유하면 된다. 그러나 이 전략을 사용하면 자원 활용도가 떨어진다.
b. 이 장에서 제시한 스케줄링 정책을 이 두 가지 관점에서 분석하라. 사용자의 반응 시간에 편중된 정책은 어떤 것인가? 자원 활용도를 극대화하는 방향으로 편중된 정책은 어떤 것인가?
사용자의 반응 시간을 최소화하기 위해선 선점형이어야 한다. 따라서 반응 시간에 편중된 정책은 라운드로빈 방식이다.
자원 활용도를 극대화하기 위해선 프로세서가 노는 시간 없이 동작하는 것을 말한다. 자원 활용도 극대화에 편중된 정책은 SPF이다.
c. 두 가지 상충하는 목적을 균형 있게 이룰 수 있는 시스템이 되도록 새로운 스케줄링 정책을 개발하라.
자원을 적절히 활용하면서도 사용자의 반응 시간을 최소화하려면 다중 큐를 이용한 이기적 라운드로빈 방식을 들 수 있다.
교수님 답
a. 수행시간이 짧은 프로세스가 주요 장치들을 사용하지 않는다면, 그 프로세스들이 빠른 응답시간을 제공하더라도 자원 활용도는 매우 낮을 것이다.
b. 선점형 구조는 빠른 반응시간을 보장하는데 더 좋고 I/O 프로세스들의 혼합시 좋은 자원 활용도를 제공한다. 짧은 서비스 시간을 요구하는 프로세스들이 모든 장치들에 대해 항상 공평하게 사용되지 않기 때문에 어떤 장치들은 매우 활용도가 낮을 수 있다.
공평 공유 스케줄러는 보다 나은 장치 활용률을 제공한다. 이는 프로세서 시간이 우선순위 혹은 프로세스의 수행시간 뿐만 아니라 다양한 장치들을 공유하는 공평 공유 그룹내에 멤버쉽에 기반하여 설정되기 때문이다.
c. 자원 활용도를 균형있게 하기 위해서 저활용되는 자원들을 사용하는 프로세서들에게 우선순위를 높여준다. 그러면 우선 순위 그룹내에서 짧은 요구를 원하는 프로세스에게 우선 순위를 주게 함으로써 먼저 수행하도록 한다.
27 EDF와 SPF를 비교, 대조하라.
EDF는 최단 데드라인 우선 스케줄링 정책으로써 데드라인이 가장 임박한 프로세스를 디스패치하는 선점형 스케줄링이다.
SPF는 최단 프로세스 우선 스케줄링 정책으로써 비선점형이다. 실행 시간이 가장 짧을 것으로 예상하는 프로세스를 선택하여 실행한다. FIFO보다는 평균 대기 시간이 감소하지만 종료 시간을 예측하기가 어렵다.
EDF는 선점형인데 반하여 SPF는 비선점형이다. EDF는 데드라인이 가장 이른 프로세스를 먼저 스케줄링하고, SPF는 실행 시간이 가장 짧을 것으로 예상되는 프로세스를 먼저 스케줄링한다. 두 정책 모두 프로세스 완료 시간을 예측하기가 어렵다는 공통점이 있다.
교수님 답
EDF와 SPF 모두 평균 대기 시간을 최소화하고 처리률을 최대화하도록 하는 선점형 스케쥴링 알고리즘이다. EDF에서는 처리율의 정의가 단위 시간당 데드라인을 만족하는 프로세스들의 수이고 SPF에서는 처리율의 정의는 단위시간당 완료되는 프로세스들의 수이다.
28 정적 실시간 스케줄링 알고리즘이 동적 실시간 스케줄링 알고리즘보다 적절한 때는 언제인가?
하드 실시간 시스템은 프로세스가 데드라인을 철저히 지키도록 보장해야 한다. 정적 스케줄링 알고리즘은 특정 시스템에 이러한 속성을 부여함은 물론 구현 오버헤드를 줄여준다.
교수님 답
정적 실시간 스케쥴링 알고리즘은 선점형 하드웨어를 제공하지 않는 시스템에 더 알맞다. 즉, 시스템이 그것의 모든 데드라인을 만족함을 증명해야 할 때 더 적절하다는 것을 의미한다. 즉, 자원을 공유하지 않고 새로운 프로세스가 만들어지지 않는 경우에 적절하다. 새로운 프로세스가 만들어지지 않는다는 의미는 실시간 스케쥴링을 수행할 시 실제 수행 시작시 알고 있었던 프로세스들을 제외하고 새로운 프로세스가 만들어져 수행하지 않는다는 것이다.
참고로 동적 실시간 스케쥴링 알고리즘은 시간에 따라 프로세스의 우선순위가 변할 때 더 적절하다.
29 썬에서 현재의 솔라리스 운영체제를 구현하기 전에 주로 워크스테이션으로 사용한썬 유닉스 시스템 70은 기본 우선순위를 할당하고, 우선순위를 조절함으로써 프로세스들을 스케줄링했다. 기본 우선순위는 최대 -20에서 최소 +20이었고, 중간 값은 0이었다. 우선순위 값은 시스템의 조건이 변함에 따라 조절되었다. 이 값들을 기본 우선순위 값에 더해 현재 우선순위 값을 계산했다. 그리고 현재 우선순위 값이 가장 높은 프로세스를 먼저 디스패치했다.
우선순위 조절은 최근 프로세서 시간을 비교적 적게 사용한 프로세스들을 선호하는 경향이 강했다. 스케줄링 알고리즘은 동작 방식이 변하는 프로세스들이 이점을 얻도록 프로세서 사용 형태를 재빨리 ‘잊는다’. 알고리즘은 최근 5Xn초 동안의 프로세서 사용 현황을 90% 잊는다. n은 마지막 1분 동안의 실행 가능 프로세스 수의 평균이다. 이러한 프로세스 스케줄링 알고리즘과 관련해 다음 각 질문에 답하라.
a. 시스템 부하가 클 때와 작을 때 중 언제 프로세서 중심 프로세스를 선호하는가?
시스템 부하가 클 때 프로세서 중심 프로세스를 선호한다.
b. 입출력 중심 프로세스는 입출력 완료 후에 어떻게 즉시 실행할 수 있는가?
입출력 중심 프로세스는 프로세서를 잠시 사용하고 반납한다. 따라서 프로세서 시간을 비교적 적게 사용하므로 우선순위가 높아진다.
c. 프로세서 중심 프로세스가 무기한 연기될 위험이 있는가?
우선순위가 낮은 프로세스는 프로세서 시간을 비교적 적게 사용했으므로 우선순위가 점점 높아진다. 따라서 무기한 연기될 위험이 크지 않다.
d. 시스템의 부하가 증가할 때 프로세서 중심 프로세스는 상호 작용 반응 시간에 어떤 영향을 미치는가?
부하가 증가하면 프로세서 중심 프로세스는 이따금씩 지연이 생길 수도 있다.
e. 이 알고리즘은 프로세스가 프로세서 중심에서 입출력 중심으로, 혹은 그 반대로 변할 때 어떻게 반응하는가?
교수님 답
a. 시스템 부하가 작을때
b. 최근의 프로세서 사용 부하가 작게 될 수 있다. 그래서 프로세서를 바로 사용할 수 있다.
c. 프로세스가 수행할 수 있을 만큼 높은 우선순위를 얻을 때까지 알고리즘은 최근의 프로세서 사용한 것을 기억하지 못하기 때문에 무기한 연기될 가능성은 없음.
d. 프로세서 중심 프로세스들은 대화식 프로세스들보다 낮은 우선순위를 가진다. 그래서 대 화식 프로세스들이 좋은 응답시간을 가지게 된다. 프로세서 중심 프로세스들은 가끔씩 사용시간인 퀀텀을 받아서 수행한다. 프로세서 중심 프로세스가 많을수록 더 많은 퀀텀이 사용된다. 이것은 대화식 사용자들에게는 응답시간이 길어지게 하는 원인이 된다. 물론 프로세서 중심 프로세스의 수가 커지면 포화 지점이 있게 된다. 즉 더 이상 프로세스 중심 프로세스를 더 받지 않게 된다. 받더라도 대화식 사용자의 응답시간을 지연시키지 않는다. 그러나 선 알고리즘에서는 합리적인 프로세서 중심 부하가 시스템상에서 동작할 때 대화식 사용자에게 좋은 응답시간을 주도록 동작하게 하였다.
e. 알고리즘은 “기억 상실” 떄문에 조정된다. 프로세서 중심에서 입출력 중심으로 변환은 시스템이 어떤 시간동안 프로세스 중심으로 고려하여야 하기때문에 약간 동작이 느리다. 입출력 중심에서 프로세서 중심으로 변환은 첫 몇 퀀텀동안 실제로 프로세스들에게 프로세서를 많이 할당하게 해준다.