본문 바로가기

Study

Real-time System

  1. Real-time system: 논리적인 수행결과 뿐만 아니라 시간적 제약에 의해 시스템의 정확도가 결정되는 시스템
    예) 공장 자동화, 해저탐사, 프로세스 제어, 로봇, 군사 응용, 비젼시스템
  2. 일반 시스템과의 차이점: task들이 한계시간(deadline)이나 시작 가능시간(release time)과 같은 시간 제약을 가지고 있어 이를 만족시켜야 함.
  3. Real-time task / time critical task: 시간적으로 여러가지 제약을 갖는 task

    1. periodic task: 일정한 시간간격을 가지고 task 실행

    2. aperiodic task: task가 일어나는 시간간격이 일정하지 않은 task
  4. Slack time
    time_limit.JPG
  5. Real-time Scheduling

    1. Static scheduling

      1. 시스템에 의해 실행되는 task 집합이 미리 정의되어 있는 경우
      2. 주기적인 hard real-time task집합에 유용
      3. 스케줄링되는 task들의 특징과 수를 스케줄링 전에 알 수 있음
    2. Dynamic scheduling

      1. task의 발생 시간이나 특성을 예측할 수 없는 경우에 유용
      2. task의 발생이 가변적이어서 task의 수는 실행시간에 정해짐
        rtss.jpg
  6. EDF(Earliest-Deadline First) 알고리즘

    1. 임계시간(???)이 가장 근접한 task를 가장 먼저 실행
    2. 대표적인 동적 스케줄링 방식
    3. 다음을 가정

      1. 모든 task들은 선점될 수 있고 나중에 다시 선점된 곳으로부터 계속해서 수행될 수 있다.
      2. 모든 task들은 독립적이어서 다른 task의 시작가능시간(release time)이나 종료시간에 의존하지 않는다.
      3. task의 한계시간(deadline)은 주기와 같다
      4. task 집합의 모든 task는 반드시 주기적일 필요는 없다.

 

숙제 1: Preemptive가 일반적으로 nonpreemptive scheduling보다 좋은 이유

태스크 스케줄링 방법에는 각 태스크를 우선순위없이 일정 간격으로 번갈아 실행하는 Round-Robin 스케줄링 방법이 있고 우선순위 기준 스케줄링(Priority based scheduling) 방법이 있다.
우선순위 기준 스케줄링(Priority based scheduling) 방법에는 선점형 스케줄링(preemptive scheduling)과 비선점형 스케줄링(non preemptive scheduling) 방법으로 나눌 수 있는데
비선점형에서는 높은 우선순위의 태스크가 활성화되어도 낮은 우선순위의 태스크가 끝날 때까지 기다려야 하지만
선점형에서는 어느때든지 높은 우선순위의 태스크가 낮은 우선순위의 태스크 수행을 가로채고(interrupt or switching) 실행된다.
따라서 선점형 커널이 보다 태스크간의 관계를 조절하기가 용이하다.
이러한 점을 이용하면 스케줄링을 시스템의 특성에 따라 유연하게 조정가능하므로 비선점형 보다 더 좋다고 생각한다.

 

 

Non-Preemptive Multitasking (비선점형 멀티태스킹)

 키보드 입력을 허용할 준비가 되어 있을 때처럼 특정 시점에서만 CPU 제어를 다른 응용 프로그램으로 넘길 수 있는 멀티태스킹 환경.

이런 방법으로 많은 계산을 수행하는 한 프로그램에서 시스템을 제어하고 다른 응용 프로그램이 CPU에 대해 제한된 액세스를 가질 수 있게 할 수 있다.

비선점형 멀티태스킹을 "협업 멀티태스킹"이라고도 한다.

이 환경에서 프로그램이 효율적으로 작동할 수 있도록 하기 위해 서로 협력하도록 설계되어야한다.

비선점형 멀티태스킹 운영 체제는 백그라운드로 실행되는 통신 프로그램에 대한 서비스를 보증할 수 없다.

다른 응용 프로그램이 CPU를 불법으로 사용한 경우 CPU가 통신 프로그램에서 수신 데이터를 캡처할 수 있을 만큼 빠르게 인터럽트를 처리할 수 없으므로 데이터를 손실할 수 있다.

선점형 멀티태스킹과 대조적이다.

 

Preemptive Multitasking (선점형 멀티태스킹)

 실행 중인 모든 프로그램과 처리 시간을 공유하는 멀티태스킹 방법.

선점형 멀티태스킹은 실행 중인 프로그램이 CPU에서 되풀이 시간을 얻는 시간 공유 환경을 만든다.

운영 체제에 따라 시간 분할이 모든 프로그램에 대해 동일할 수 있거나 현재 프로그램과 사용자 혼합을 만족하도록 조정할 수 있다.

예를 들면, 포그라운드 로드가 아무리 많아도 백그라운드 프로그램에 더 많은 CPU 시간을 제공할 수 있고 그 반대도 마찬가지이다.

선점형 멀티태스킹은 메인프레임에서 중요하지만 데스크톱 운영 체제에서도 유용하다.

또한 백그라운드로 전송되는 경우 데이터가 손실되지 않는다.

모뎀이나 네트워크 프로그램이 수신 데이터 스트림을 계속 처리해야 하는 시스템 사이클을 OS가 제어할 수 있다.

비선점형 멀티태스킹과 대조적이다.

이 글은 스프링노트에서 작성되었습니다.

'Study' 카테고리의 다른 글

인공지능과 시뮬레이션  (0) 2012.08.25
Web Information System  (0) 2012.08.25
Sigmoid Function  (0) 2012.08.25
Reality Mining  (0) 2012.08.25
Ontology  (0) 2012.08.25