본문 바로가기

컴퓨터와 보안/OS(운영체제)

william stallings OS(운영체제) Chapter 10 문제풀이

10.1 5 부류의 동기화 단위에 대해 간략하게 설명하시오.

Fine : 명령어 스트림 한 개 단위로 병렬성이 지원된다.

Medium : 한 응용프로그램 내에서 병렬 처리를 지원하거나 멀티 태스킹을 지원한다.

Coarse : 멀티 프로그래밍 환경에서 병행 프로세스들이 멀티프로세싱될 수 있도록 지원한다.

Very Coarse : 네트워크로 연결된 여러 기계들이 단일 컴퓨팅 환경처럼 보이게 해주는 분산 처리 시스템을 지원한다.

Independent : 관련 없는 여러 프로세스들이 독립적으로 실행된다.

 

10.2 멀티 프로그래밍을 지원하는 단일처리기 시스템상에서 발견되는 병렬성에 적합한 동기화 단위는 무엇인가?

Coarse, Very Coarse 이다.

 

10.3 갱 스케줄링은 어떤 종류의 응용프로그램들에 유용한가?

medium이나 fine 병렬성을 갖고 있는 응용프로그램을 위한 것으로서 한 응용프로그램 내의 모든 쓰레드가 동시에 실행 중이지 않으면 성능에 치명적인 문제가 발생하는 경우에 효과가 큰 스케줄링 방식이다.

 

10.4 경성 실시간 태스크와 연성 실시간 태스크의 차이점은 무엇인가?

경성 실시간 태스크란 데드라인을 반드시 만족시켜야 하는 태스크를 의미한다. 반면 연성 실시간 태스크란 설정되어 있는 데드라인이 의무적인 것은 아니다.

 

10.5 동적 스케줄링의 개념에 대해 설명하시오.

스케줄 가능성 분석을 동적으로 하는 스케줄링 기법이다.

 

10.6 실시간 운영체제가 갖추어야할 요구조건의 5가지 분야에 대해 간략하게 설명하시오.

1. 시간

  준비 완료 시간: 태스크가 실행을 시작할 준비가 완료되는 시점을 의미한다.

  처리 시간: 태스크가 실행을 시작한 후 종료할 때까지 소요되는 시간을 의미한다.

2.데드라인

  실행 시작 데드라인: 태스크는 최소한 이 시간이 오기 전에 실행을 반드시 시작해야 한다.

  실행 종료 데드라인: 태스크는 이 시간이 도래하기 전에 반드시 실행을 종료해야 한다.

3.자원 요구 사항: 응용프로그램 실행에 필요한 시스템 자원에 대한 요구 사항

4.우선순위: 태스크들 간의 상대적인 중요도를 나타낸다.

5.태스크 분리 기능 구조: 하나의 태스크는 의무적 서브태스크와 선택적 서브태스크로 분리될 수 있다.

 

10.7 실시간 스케줄링 알고리즘의 4가지 클래스에 대해서 간략하게 설명하시오.

Static table-driven approaches(정적 테이블-기반 방식): 주어진 실시간 태스크들의 시간제약 조건들을 만족시켜주면서 스케줄링할 수 있는지의 여부를 실제로 스케줄링하기 전에 정적으로 분석하는 방식이다.

Static priority-driven preemptive approaches(정적 우선순위-기반 선점 모드 방식): 역시 정적으로 실제 스케줄링 전에 스케줄링 가능 여부를 분석한다. 하지만 스케줄링 도표를 만들지는 않는다. 대신 분석 결과는 태스크들에게 부여할 우선순위를 결정하는 데에 활용된다.

Dynamic planning-based approaches(동적 계획-기반 방식): 주어진 실시간 태스크들의 스케줄링 가능성 분석이 실제 스케줄링 전에 오프라인 상태에서 이루어지는 것이 아니라 실행 시간에 동적으로 이루어진다.

Dynamic best effort approaches(동적 최선 방식): 어떤 스케줄링 가능성 분석도 하지않는다. 시스템은 모든 태스크들의 데드라인을 만족시켜주기 위해 최선의 노력을 다한다.

 

10.8 우선순위 역전은 무엇인가? 기약 없는 우선순위 역전은 무엇인가?

우선순위 역전이란 시스템이 의도하지는 않았지만 환경이 교모하게 꼬여 우선순위가 높은 태스크가 낮은 태스크 때문에 대기할 수 밖에 없는 상황을 의미한다.

기약 없는 우선순위 역전이란 우선순위 역전 현상이 기약 없이 계속되는 것을 의미한다.