[OS] 운영체제의 CPU 관리 - 스케줄링 알고리즘

2020. 12. 20. 12:40프로그래밍/운영체제

반응형

📚 CPU 스케줄링(CPU Scheduling) 

 매 시점 어떠한 프로세스에게 CPU를 할당해 작업을 처리할 것인지를 결정한다.

 

   * 프로세스: 메모리에 올려져서 실행중인 프로그램
   * 스케줄러: 어떤 프로세스에게 자원을 할당할지를 결정하는 OS 커널의 모듈(프로세스 실행 관리)

 

🔔 CPU 스케줄링의 목표

 CPU를 가장 효율적으로 사용하면서도 특정 프로세스가 불이익을 당하지 않도록 하는 것이다.

 

📖 대표적인 CPU스케줄링 기법

 선입선출(FIFO), 라운드 로빈(Round Robin), 우선순위 기법(Priority)

1.FIFO 스케

    - 먼저 CPU를 사용하기 위해 도착한 프로세스를 먼저 처리해주는 방식.

      ex. 일상 생활에서 줄서기를 하는 것과 유사

    - CPU 자체의 효율적인 사용 측면에서는 문제가 없지만 전체 시스템 입장에서는 비효율적인 결과를

      초래 할 가능성이 있다. 

      ➡ 단점을 보완하고자 고안된 기법이 라운드로빈 기법
    - 가장 간단한 스케줄러 (배치처리시스템)
    - FCFS(First Come First Served) 스케

 

2. Round Robin 스케

    - CPU를 한 번 할당받아 사용할 수 있는 시간을 일정한 고정된 시간으로 제한하여 정해진 시간이

      지나면 CPU를 내어놓고 CPU의 서비스를 기다리는 줄의 제일 뒤에 가서 기다려야 한다. 

      무작정 오래 기다려야 하는 상황을 막을 수 있다.

    - 1회 사용할 수 있는 할당시간은 수 밀리 세컨드(ms) 정도의 단위를 사용한다.

    - 시분할 시스템 기반

 

3.우선순위 기반 스케

    - Priority-Based 스케줄러 
       .정적 우선순위: 프로세스마다 우선순위를 미리지정 
       .동적 우선순위: 스케러가 상황에 따라 우선순위를 동적으로 변경

    - 수행 대기중인 프로세스들에게 우선순위를 부여하고 우선순위가 높은 프로세스에게 CPU를 먼저

      할당하게 된다. 

    - 상대적으로 더 중요한 프로세스에게 우선순위를 높게 부여하여 CPU를 먼저 획득할 수 있도록

      하는 것이 우선순위 스케줄링의 철학이라 할 수 있다.

 

4.최단작업우선(SJF) 스케줄러

    - 가장 프로세스 실행시간이 짧은 것부터 먼저 실행시키는 알고리즘

    - Shortest Job First 스케
    - 실제로 실행시간을 미리 파악하기는 힘들다!

 

※ 해당 포스팅은「운영체제와 정보기술의 원리(반효경 저)책 내용이 일부 참고 되었습니다.

 

 

반응형