[기술 면접] 스케줄링

ayboori·2023년 8월 24일
0

CS Study

목록 보기
9/22
post-thumbnail
post-custom-banner

프로세스

  • 연산이나 데이터를 처리하기 위해 현재 진행되는 작업이나 프로그램
  • 프로그램을 실행하는 주체
  • CPU의 효율성을 높이기 위해서는 프로세스에게 CPU 자원 배정을 적절히 하여 시스템의 성능을 끌어올릴 수 있다.

프로세서

  • 컴퓨터 내부의 처리장치
  • 컴퓨터 내부에 포함된 하나의 모듈, CPU 칩 혹은 컴퓨터 자체
    - 하드웨어 관점에서는 대개 CPU
    • 소프트웨어 관점에서는 대개 번역 (인코딩) 프로그램

CPU의 효율성을 높이는 방법

프로세스의 배정을 적절히 하자!

  • 공통 배정조건 : 오버헤드 ↓ / 사용률 ↑ / 기아 현상 ↓
    • 오버헤드 : 프로세스가 필요한 자원보다 더 많이 사치부리며 사용하지 않도록(=투머치🤑)
    • 사용률 : 프로세스가 최대한 자원을 많이받고 빨리 처리하도록 (=알잘딱깔쎈🤓)
    • 기아 현상 : 프로세스가 자원할당을 못받아서 배고픈상태로 대기하지 않도록(=지못미🤕)
  • 목표에 따른 배정조건 :
    1. 배치 시스템 : 가능하면 많은 일을 수행. 시간(time) 보단 처리량(throughout)이 중요
    2. 대화형 시스템 : 빠른 응답 시간. 적은 대기 시간이 중요
    3. 실시간 시스템 : 실시간(time) 즉, 최소 응답시간(dead line) 이 중요!

스케줄링

시스템의 여러 자원을 해당 프로세스에게 할당하는 작업

비선점 스케줄링

프로세스가 종료되거나, I/O 등 이벤트가 있을 때까지 실행을 보장한다.

이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없는 스케줄링 기법
일괄 처리 방식에 적합
종류 : SJF, 우선순위, 기한부 등

  • FCFS=FIFO
    준비상태 큐에 도착한 순서에 따라 차례로 CPU를 할당
    프로세스 1의 실행 시간 A, 2 - B, 3 - B라 할 때
    평균 대기 시간 : (0 +A + A+B)/3
    평균 실행 시간 : (A+B+C)/3
    평균 반환 시간 : (A+ A+B + A+B+C) /3
  • 대기 시간 : 앞 프로세스들 실행 시간 - 도착 시간
  • 반환 시간 : 대기 시간 + 실행 시간
  • SJF (Shortest Job First)
    - 준비상태 큐의 프로세스들 중 실행시간이 가장 짧은 것에 먼저 할당
    - 가장 적은 평균 대기 시간을 제공하는 최적 알고리즘
    - 동시간에 들어오면 가장 시간 짧은 것부터임
  • HRN (Highst Response Next)
    대기 시간, 서비스(실행) 시간을 이용하는 기법
    우선순위 계산에 따라 가장 높은 것 ~ 낮은 것 순으로 부여
    우선순위 계산식 = (대기 시간 + 서비스 시간) / 서비스 시간

선점 스케줄링

OS가 CPU의 사용권을 선점할 수 있는 경우, 강제 회수하는 경우 (처리 시간 예측 어려움)

우선순위가 높은 다른 프로세스가 CPU를 강제로 빼앗아 사용 가능
대화식 시분할 시스템에 주로 이용됨

  • 종류 : 라운드 로빈, SRT, 선점 우선순위, 다단계 큐, 다단계 피드백 큐 (MLFQ)
profile
프로 개발자가 되기 위해 뚜벅뚜벅.. 뚜벅초
post-custom-banner

0개의 댓글