03. 운영체제 - 스케쥴링

김민식·2023년 10월 26일
0

운영체제

목록 보기
3/3
post-thumbnail

🗓️ 스케줄링 (Scheduling)


0. 스케줄링이란 무엇인가?

  • 처리 해야 할 일(프로세스)들 사이에 순서를 정해서 CPU(중앙처리장치)를 사용할 수 있는 시간을 정해주는 것.
  • 즉, 여러 프로세스 중 어느 것을 먼저 실행할지 결정하는 방법론
프로세스의 상태

1. 왜 운영체제에서 스케줄링이 중요한가?

  • 다중 프로그래밍 환경에서는 여러 프로세스가 동시에 메모리에 있기 때문에, 효과적인 CPU 사용을 위해 어떤 프로세스를 언제 실행할지 결정하는 기능이 필요
  • 스케줄링은 시스템 성능, 공정성, CPU 사용률, 응답 시간 등 다양한 요소를 최적화하는데 큰 역할

2. 스케줄링의 목적

  • 시스템의 성능 향상 (오버헤드 ↓ / 사용률 ↑ / 기아 현상 ↓)
    - 성능 지표
    1. 자원 활용도 (resource utilization) : 주어진 시간동안 자원이 활용된 시간
    2. 작업처리량 (throughput) : 단위 시간 동안 완료된 작업의 수
    3. 응답시간 (respoinse time) : 작업 요청으로부터 응답을 받을때 까지의 시간

3. 스케줄링 알고리즘 소개

  • 비선점(nonpreemeptive) : CPU 제어권을 뻇을 수 없음

    • FCFS (First Come, First Served)

      • 가장 먼저 온 프로세스를 먼저 처리 (= Queue)
      • 장점: 구현이 간단
      • 단점: 짧은 작업이 긴 작업 뒤에 대기할 경우, 평균 대기 시간이 증가 (Convoy effect)
    • SJF (Shortest Job First)

      • 원리: 실행 시간이 가장 짧은 프로세스부터 실행
      • 장점: 평균 대기 시간이 가장 짧음
        • 실제로는 알 수 없기 떄문에 과거의 실행했던 시간을 토대로 추측
      • 단점: 실행 시간 예측이 어려움, Starvation 문제 발생 가능
    • 우선순위 (Priority)

      • 원리: 각 프로세스에 우선순위를 부여하고 높은 우선순위를 가진 프로세스부터 실행
      • 장점: 중요한 작업을 먼저 처리 가능
      • 단점: 낮은 우선순위의 프로세스가 무한정 대기하는 Starvation 문제 발생 가능
  • 선점(preemeptive) : CPU 제어권을 뻇을 수 있음 (현대 운영체제가 쓰는 방식)

    • 라운드 로빈 (Round Robin)

      • 원리: 각 프로세스에 동일한 시간 할당 (Time Quantum) 후 순환
      • 장점: 공정하게 모든 프로세스에 CPU 시간 할당
      • 단점: Time Quantum 설정에 따라 성능이 크게 달라짐
    • SRF (Shortest Remaining Time First)

      • 원리 : 실행 중인 프로세스의 남은 실행 시간과 새로 도착한 프로세스의 실행시간을 비교하여 짧은 것 부터 실행
      • 장점 : 응답 시간 최적화, 대기 시간 최소화, Starvation 현상 감소
      • 단점 : 잦은 Context Switching, 예측 가능성 감소, Starvation 여전히 발생 가능
    • 다단계 큐(Multilevel Queue)

      • 원리: 여러 개의 큐를 사용하고 각 큐마다 다른 스케줄링 전략 적용, 큐 끼리는 우선순위와 라운드 로빈 방식 적용
      • 장점: 다양한 종류의 프로세스들을 효율적으로 관리 가능
      • 단점: 큐 설정과 스케줄링 전략 결정이 복잡

4. 스케줄링과 현대 운영체제

  • 현대 운영체제에서의 스케줄링 방식
    • 현대의 운영체제, 특히 서버 환경에서는 여러 사용자와 태스크동시에 처리해야 하므로, 스케줄링의 중요성이 더욱 강조
  • 클라우드 컴퓨팅, 가상화 기술과 스케줄링
    • 클라우드 환경에서는 여러 클라이언트의 요청을 동시에 처리해야 하며, 가상화 기술을 사용하여 물리적 자원을 최대한 효율적으로 활용해야 함. 이러한 환경에서 스케줄링은 리소스 할당과 가상 머신간의 작업 분배에 큰 역할을 함
용어 정리 

기아 현상(Starvation) : 특정 프로세스가 자원을 얻지 못하고 무한히 대기하는 상태
시간 할당량(Time Quantum) : 각 프로세스에 할당되는 고정된 시간 단위, 프로세스는 이시간동안만 CPU사용
문맥 교환(Context Switching) : CPU를 사용하는 프로세스의 전환이 발생할 떄 하는 작업
profile
BE Developer

0개의 댓글