면접 - 운영체제

개발자 면접 질문 - 스케쥴링 정의

snow-line 2020. 12. 4. 17:07
반응형

1. 스케줄링

 - 스케쥴링은 처리율과 CPU 이용률을 증가시키고, 오버헤드/응답시간/반환시간/대기시간을 최소화 시키는 기법

 - 프로세스 스케줄링 : CPU를 사용하려고 하는 프로세스들 사이에 우선 순위를 관리하는 것

 - 디스크 스케줄링 : 디스크를 사용하려고 하는 프로세스들 사이에 우선 순위를 관리하는 것

 

 

2. 스케줄링 방식

 1) 선점형 : (실행->대기), (실행->준비), (대기->준비), (수행->종료) 모든 상태 변화에서 적용된다.

   - 하나의 프로세스가 CPU를 할당 받아 실행하고 있을 때 우선 순위가 높은 다른 프로세스가 CPU를 강제로 빼앗아 사용할 수 있다.

    - 모든 프로세스에게 CPU 사용 시간을 동일하게 부여할 수 있어 빠른 응답을 요하는 대화식 시분할 시스템에 적합하다.

 

 2) 비선점형 : 프로세스가 (실행->대기), (실행->종료) 로 상태 전이가 있을 때 적용된다.

   - 이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없는 스케줄링 기법이다.

   - 일괄 처리 시스템에 적합하다.

   - 하나의 프로세스가 CPU 사용시간이 짧은 여러 프로세스를 오랫동안 대기시킬 수 있기 때문에 처리율이 떨어질 수 있다는 단점이 있다.

 

3. 스케쥴링 알고리즘

  1) 선점형

      - SRT(Shortest Remaing Time) : 잔여 시간이 짧은 프로세스를 우선으로 하는 방식

 

      - RR(Round Robin) : 프로세스 사이에 우선 순위를 두지 않고, 순서대로 시간 단위로 CPU를 할당하는 방식

     

      - MQ (Multi-level Queue) : 프로세스를 특정 그룹으로 분류해서 여러 작업 큐에 할당하는 방식

 

  2) 비선점형

    - SJF(Shortest Job First) : 버스트 시간이 짧은 프로세스부터 CPU를 할당한다.

 

    - FCFS(First Com First Served) : 먼저 CPU를 요청한 프로세스를 먼저 처리하는 방식

 

     - HRN(highest Response-ratio Next) : 우선순위 알고리즘으로 계산한 값이 큰 프로세스부터 실행하는 방식

 

     * 우선순위 = (실행시간 + 대기시간) / 대기시간

반응형