728x90
반응형
SMALL

결함 허용

결함허용에는 4가지 방식이 있다 
1. 결함탐지 - Fault Detection : 시스템은 시스템장애를 유발 할 수있는 결함을 탐지해야 함 
                                            -> 시스템상태가 일관성이 있는가를 검사
2. 손상측정 - Damage Assetment : 결함에 영향을 받은 시스템상태의 부분을 탐지
3. 결함복구 - Fault Recovery : 알려진 '안전' 상태로 복구 (일시적)
                            전방오류복구 - 손상된 상태를 수정
                            후방오류복구 - 안정 상태로 회복  
4. 결함수리 - Fault Repair - 수정을 통한 결함재발생방지
                                  , SW결함은 일시적 --> 시스템입력의 특별한 조합에 기인        


결함 내성 아키텍처

많은 시스템에서 소트프웨어적으로 검사와 복구기능을 포함시켜 결함내성을 구현할 수 있다.
이것을 Defensive programming(방어적 프로그래밍) 이라고 한다. 그러나 이 방법은 H/W와 S/W 의 상호작용으로 
생기는 결함에 대해서는 효과적이지 못하다. 따라서 가용성이 중요한 시스템에서는 결함내성을 지원하기 위한 
특별한 아키텍쳐가 필요하다.


1.결함내성을 위한 구현기술 

기술 설명
(1) Defensive Programming - 시스템의 코드에 에러가 있다고 가정하여 상태를 검사하는 코드를 삽입해둔다. 
- 만약 에러가 감지될 때 이를 처리할 수 있는 코드를 미리 삽입해둔다.
- 그러나 이것은 HJ/W와 S/W간의 상호작용으로 발생하는 에러를 처리하기는 어렵다. 
(2) Fault-tolerant 아키텍쳐 - 결함내성을 지원하는 하드웨서 또는 소프트웨어 아키텍쳐를 사용한다.
1) H/W결함내성 (Hardware Fault tolerance) 
     TMR (Tirple Moduler Redundancy) :
           3중모듈중복  (설계결함 < 개별부품장애) 

           :  동일한 입력을 받는 3개의 동일한 컴포넌트를 중복 사용하여 결과를
              비교한다.  

              만약 하나의 결과가 다르다면 그것은 무시되고 컴포넌트는 오류가 발생한
              것으로
간주한다. 
           : 설계상의 오류라기 보다는 컴포넌트 자체의 오류를 허용하기 위한
            것이며, 동시에
컴포넌트들이 오류를 발생을 일으킬 확률은 아주 낮다. 
           : 하드웨어 컴포넌트는 공통적인 설계 결함을 가지지 않는다. 
                  * 하드웨어의 경우에는 동일한 설계의 컴포넌트라 할지라도 서로
                    다른 결과를내는 경우가 발생하
지만 소프트웨어 경우에는 설계가
                    동일한 경우는 완전히 동일하다고 볼수 있기 때문에 TMR을  
                    동일한 소트프웨어로 실행시킨다는 것은 큰 의미가 없다.
              따라서 하드웨어적으로는 TMR이 의미
가 있고 소프트웨어적으로는
              다른 설계방법으로 구현된것을 가지고 비교하여야 한다

 2) S/W결함내성 (Software Fault tolerance)
     ① TMR은 기본적으로 다음을 가정하고 있다. 
         * 하드웨어 컴포넌트는 공통적인 설계 결함을 가지지 않는다.
         * 컴포넌트는 임의적으로 오동작하며. 모든 컴퓨터가 동시에 오동작할 확률은
           아주 낫다.
     ② 하지만 S/W는 이러한 가정이 성립되지 않는다.
          H/W의 경우에는 동일한 설계의 컴포넌트라 할지라도 서로 다른 결과를
          낼 수 있지만 S/W의 경우는 설계가 동일한 경우는 동일하 결과를 내게 
          되므로 TMR의 비교의미가 없다.
         대신 설계의 다양성이 요구된다.

    2-1) N버전 프로그래밍 (병행수행)
      ① 동일명세서에 대해 서로 다른 팀들에 의해 다양한 구현이 이루어진다 .
          각각의 버전들은 동시에 입력을 받아 계산을 하고 그 결과를 모아서 
          비교하게 된다.
      ② 별도컴퓨터에서 동시실행 시 출력 중 적어도 두 개 버전은 동일 출력값 산출
          (1개 버전 결함허용)
      ③ 구현은 다르지만 둘 이상의 개발팀이 명세서를 구현하기 위해 동일 알고리즘
          선택
      ④ 예) 철도신호시스템, 항공기, 원자로보호시스템
    2-2) 복구블록 (Recovery Block/순차수행)
      ① 동일한 명세에 대해 명시적으로 다른 버전을 만들어서 순차적으로 실행된다.
          각각의 프로그램 컴포넌트는 컴포넌트가 성공적으로 실행되었는지를
          점검하고 시험을 포함 장애발견시 시스템 백업 후 계산 반복하도록 
          대안코드 포함. 순차수행 (HW불필요)
      ② 각 블록마다 명시적으로 다른 알고리즘 사용 -> 동일오류 발생확률 감소 
           ** 위 두 방법은 설계와 구현의 다양성. 즉 같은 명세에 대해서는 다른 
              버전의 소트프웨어는 같은 결함을 가지지 않을 꺼라는 가정에 
              기초하고 있다


2. 결함내성제어기 

- SW가 결함내성제어기의 통제하에서 수행필요,  
  결함을 견디기위해 포함된 단게들이 소프트웨어 실행을 보장 
  출력을 조사 및 비교해서 출력상이시 복구활동 수행 


3. 설계와 구현의 다양성 (결함내성기본원리) 

 - 동일하기 위해 명세서 구현시 다양한 기법사용 시 SW의 상이한 버전이 똑 같은 결함을 포함하지 않아 공통적인 
    장애확률 최소화 
  1) 설계요구사항 : 상이한 설계기법 사용  
  2) 구현요구사항 : 3개버전 시스템을 ada, c++, Java 이용 
  3) 상이개발환경과 도구 요구 
  4) 상이한 알고리즘 개발 요구 
  5) 설계의 다양성  
 -> 시스템 전체의 확실성을 증가시킴

 

728x90
반응형
LIST

'CA' 카테고리의 다른 글

CPU 스케줄링 알고리즘  (0) 2019.10.15
728x90
반응형
SMALL

CPU 스케줄링의 정의

한정된 CPU의 작업 처리시간을 여러 프로세스 혹은 여러 쓰레드가 효율적으로 이용할 수 있도록
분배하는 정책이자 알고리즘

CPU 스케줄링 알고리즘 종류

종류 비선점 스케줄링 선점 스케줄링
개념 비선점 - 중간에 자리를 빼앗을수 없다

다른 프로세스가 CPU를 할당 받으면 그 프
로세스가 작업을 종료하고 반환할 때까지
다른 프로세스가 CPU 점유 불가
선점 - 중간에 자리를 빼앗아서 새치기 가능

우선순위가 높은 프로세스가 현재 프로세스
를 중지시키고 CPU점유 가능
특징 - 어떤 Rule에 의해서 차레차례대로 처리
  되기 때문에 응답시간 예상이 용이
- 모든 프로세스의 요구를 공평하게 처리
- 어떤 프로세스를 처리하다가도 우선순위
   가 높은 프로세스가 들어오면 기존 프로
   세스를 중지시키고 우선순위가 높은
   프로세스를 먼저 처리하기 때문에 응답
   속도가 비선점형에 비하면 빠르다. 
- 따라서 대화식 시분할 시스템에 적합
  (바로바로 응답이 필요한 시스템)
종류 FCFS, SJF, HRN Round Robin, SRT, MLQ, MLFQ



FCFS (First Come First Service)

선입선출법(FIFO) 과 같은 개념으로 준비된 Queue 에 도착한 순서대로 CPU를 할당한다.

FCFS

● 처리순서 : P1 , P2 , P3  P4, P5 순서로 처리됨.. 처리순서 고정불변
 장점 : 공평함.
 단점 : 콘보이효과 (Convoy Effect) - 처리시간이 아주 긴 프로세스가 계속 CPU를 독점
        하는 현상으로 인해 전체적인 처리율 및 응답시간이 지연됨.



SJF (Shortest Job First)

평균 대기 시간을 최소화하기 위해 CPU 점유 시간이 가장 짧은 프로세스에 CPU를 먼저 할당
하는 방식의 CPU 스케줄링 알고리즘.

SJF

● 처리순서 : P1 , P3 , P5, P2, P4 순서로 처리됨.. 
 장점 : 콘보이효과 (Convoy Effect) 를 완화.
           : 평균 대기 시간에 있어서 최적 알고리즘
           :  FCFS보다 평균 대기시간은 감소
 단점 : 프로세스의 완료시간을 예측하기가 어려움
            왜냐 짧은 프로세스가 중간중간 치고 들어오기 때문.. 따라서 작업시간이 긴
            프로세스는 계속 우선순위가 뒤로 밀릴 가능성이 있음 (기아상태/Starvation)
            -> 이를 해결하기 위해 우선순위가 뒤로 밀릴때마가 couting을 해서
                일정 counting 을 초과하면 더이상 뒤로 밀리지 않게 하는 Aging 기법
                으로 해결 가능
          
          
HRN (Highest Response Next)

대기시간이 긴 프로세스, 또는 실행시간이 짧은 프로세스의 우선순위를 높여 프로세스 간 자
원 점유 불평등을 보완하는 비선점 스케줄링 기법
즉, 대기프로세서 중 응답률이 가장 높은 것 선택

 장점 : 긴작업과 짧은 작업간의 불평등을 어느정보 보완 
           : 짧은 작업이나 대기시간이 긴 작업은 우선순위 상승 (SJF 약점보완)
           : 시분할 시스템에 활용 시 유용
 단점 : 준비상태 큐에 있는 각 프로세스의 서비스시간을 지속적으로 추적해야 하므로 Overhead증가



Round Robin 

들어오는 순서대로 같은 크기의 시간할당하는 방식
즉 준비큐에 있는 순서대로 각각 일정한 시간(타임 슬라이스)을 할당후 시간이 되면
하던 작업 중지하고 대기큐로 돌려보내고 준비큐에 있는 프로세스를 하나 꺼내와서
또 일정한 시간만큼 CPU를 할당하는 방식
따라서 시간할당 크기 즉 타임 슬라이스 크기가 크면 FCFS 랑 비슷해지고
, 작으면 문맥교환 빈번해짐
(주로 일괄처리시스템에 사용)

Round Robin

 장점 : 공평함.
 단점 : 타임 슬라이스의 크기에 따라 효율이 좌우됨.



SRT (Shortest Remaining Time)

Round Robin + SJF 를 합한 개념
즉 Round Robin 방식으로 일정한 타임 슬라이스 만큼 CPU를 할당해서 작업을 한 후
작업이 완료되지 않은 상태에서 시간이 완료되면 준비큐에 넣어놓고
다음 프로세스를 준비큐에서 가져올때 기준을  SJF 개념으로 작업시간이 가장 짧은
프로세스를 선택해서 일정한 타임 슬라이스 만큼 CPU를 할당한다는 개념

SRT

단점 : SJF 스케줄링 단점과 동일 
       : 프로세스의 완료시간을 예측하기가 어려움 
       : 작업시간이 긴 프로세스는 계속 뒤로 밀리는 아사(Starvation) 현상 발생 가능 
         (물론 Aging 기법으로 일정 부분 완화 가능)
|
 

MLQ(Multi Level Queue)

프로세스들에 대한 사전 실행 정보가 없는 경우 준비 상태의 큐를 여러 개 두어 스케줄링 
하는 선점형 스케줄링 기법.

MLQ (Multi Level Queue)

 특징: 다른 큐로 작업 이동 불가, 우선순위에 따른 선점
 큐를 구분하는 특성
① 전면작업(Foreground)와 후면작업(Background)
② 기억장치의 요구량
③ 프로세스 우선순위
④ 프로세스 유형


MLFQ(Multi Level Feedback Queue)

다단계 큐 스케줄링에서 한 단계 발전된 방식으로, 큐마다 서로 다른 CPU Time Slice
(Quantum)를 부여 가능한 선점형 스케줄링 기법

 특징:  다른 큐로 작업 이동 가능
 MLFQ를 결정하는 파라미터
① 큐의 개수
② 각 큐를 위한 스케줄링 알고리즘
③ 프로세스를 높은 우선순위 큐로 올려주는 시기를 결정하는 방법
④ 프로세스를 낮은 우선순위 큐로 내려주는 시기를 결정하는 방법
⑤ 프로세스가 들어갈 큐와 그 프로세스가 서비스를 받는 시기를 결정하는 방법

728x90
반응형
LIST

'CA' 카테고리의 다른 글

결함 내성 시스템  (0) 2019.12.06

+ Recent posts