반응형
Notice
Recent Posts
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Today
Total
관리 메뉴

오식랜드

[운영체제] CPU 스케줄링 본문

dev-log/cs

[운영체제] CPU 스케줄링

개발하는 오식이 2023. 9. 27. 14:36
반응형

*CPU 1개로 가정

CPU 스케줄링

  • 운영체제의 일부
  • 여러 프로세스 상황을 고려하여 CPU에 자원을 배정

스케줄링 종류

  • 저수준 스케줄링
    • FIFO : Fisrt In First Out 형식
    • 어떤 프로세스에 CPU를 할당할지, 어떤 프로세스를 대기상태로 보낼지 결정
    • ready → running
  • 중간수준 스케줄링
    • 중지(Suspend)와 활성화(active)로 전체 시스템 중 활성화 된 프로세스 수를 조절
    • → 활성상태, 보류상태
    • 일부 프로세스를 중지상태로 옮김
    • 저수준 스케줄링이 완만히 진행되도록 하는 역할
  • 고수준 스케줄링
    • 시스템 전체 작업 수 조정
    • 어떤 작업을 받아들일지 여부를 결정
    • 장기스케줄링 이라고 함
    • 그림 전체

 

스케줄링의 목적

  • 공평성
    • 모든 프로세스가 자원을 공평하게 배정받아야 함
    • 특정 프로세스가 무한 대기에 빠지면 안됨
  • 효율성
    • 시스템 자원에 유휴시간이 없도록 활용
    • 유휴 자원을 사용할 프로세스가 있다면 우선권을 줌
  • 안정성
    • 시스템 자원을 점유하거나 파괴하려는 프로세스로부터 자원을 보호
    • 우선순위에 따라 중요한 프로세스가 먼저 작동되도록
  • 확장성
    • 프로세스가 증가해도 안정적으로 작동하도옥
    • 프로세스 수, 자원의 수와 관계 없도록 잘 배정해야 함
  • 반응 시간 보장
    • 사용자에게 적절한 시간 안에 반응해줘야 함
  • 무한 연기 방지
    • 특정 프로세스가 무한 대기에 빠지면 안됨

 

선점형 스케줄링

  • 선점을 허용 → 프로세스가 CPU를 서로 차지하려고 함
  • 현재 대부분 이걸로 사용
  • 운영체제의 판단으로 진행중이던걸 중지시키고 새로운 프로세스를 시작할 수 있음
  • 하나의 프로세스가 CPU를 독점할 수 없음
  • 대화형 시스템이나 시분할 시스템에 적합
  • 문맥교환이 많아 오버헤드가 많다
  • 중요도가 높은 프로그램을 만들 때 주로 사용

비선점형 스케줄링

  • 선점을 비허용
  • CPU가 작업중인 프로세스가 종료 또는 대기가 될 때 까지 계속 실행
  • 문맥 교환에 의한 낭비가 적음
  • 하나가 끝날 때 까지 다른 작업을 못하여 시스템 처리율이 떨어짐
  • → 작업시간이 긴 프로세스가 작업중이면 기다려야 함
  • 일괄 작업 시스템에서 사용
반응형

'dev-log > cs' 카테고리의 다른 글

[운영체제] 인터럽트 (interupt)  (0) 2023.09.27
[운영체제] 스케줄링 알고리즘  (0) 2023.09.27
[운영체제] 우선순위  (0) 2023.09.27
[운영체제] 스레드 (thread)  (0) 2023.09.27
[운영체제] 프로세스 (process)  (0) 2023.09.27
Comments