프로세스 스케줄링

sz L·2023년 9월 13일
0

OS

목록 보기
1/5

참고한 블로그

스케줄링

단일 처리 시스템에서 실행 중인 프로세스가 입출력을 요청하면, 이 프로세스가 실행을 마칠 때 까지는 사용하던 자원을 대기해야 하므로 효율이 낮아진다.

다중 처리 시스템에서는 여러 프로세스를 동시에 메모리에 올려놓고 실행 중인 프로세스가 입출력을 요청하면, 운영체제가 실행중인 프로세서를 회수하여 다른 프로세스에게 할당한다.

따라서 다중 처리 시스템을 사용하면
1. 프로세서 이용률을 높일 수 있다.
2. 프로세서 처리율이 증가한다.

프로세스 스케줄링의 목적

  1. 자원 할당의 공정성
  2. 단위시간당 처리량 극대화
  3. 예측 가능성 보장
  4. 적절한 반환시간 보장
  5. 오버헤드 최소화
  6. 자원 사용의 균형 유지
  7. 실행 대기시간 방지
  8. 우선순위

와 같은 목적을 위해 운영체제는 프로세스 스케줄링을 한다.

스케줄링의 기준 요소

스케줄링의 목적을 실현하기 위해서는 프로세스의 동작을 고려해야 한다.
특히 프로세스의 실행 시간이 중요한 요소이다.

버스트 : 프로세스를 프로세서에서 실행할 때를 말함. 입출력 버스트는 프로세스가 추가로 실행하려고 입출력을 기다리고 있을 때이다.
프로세스는 입출력 버스트 후 다음 프로세서 버스트를 위해 준비 큐로 이동한다.

프로세서 버스트는 입출력 대기시간에 의해 사용량이 결정된다.

프로세서
하드웨어적은 측면에서 "컴퓨터 내에서 프로그램을 수행하는 하드웨어 유닛"
적어도 하나 이상의 ALU(Arithmetic Logic Unit)와 처리 레지스터(Register)를 내장하고 있어야 한다.

소프트웨어적인 측면에서 데이터 포맷을 변환하는 역할을 수행하는 데이터 프로세싱 시스템(데이터 처리 시스템)을 의미하며 출력 가능한 인쇄물을 생성하는 워드프로세서도 프로세서라 부른다. 워드프로세서와 컴파일러, 어셈블러 등이 여기에 속한다.

프로세스
메모리에 적재되어 프로세서에 의해 실행 중인 프로그램

스케줄링의 단계

  • 1단계(작업 선택)
    실제로 시스템 자원을 사용할 작업을 결정하는 스케줄링으로 작업 스케줄링에 따라 작업을 프로세스들로 나눠 생성한다.
  • 2단계(사용 권한 부여)
    프로세서를 사용할 권한을 부여할 프로세스를 결정하는 작업 승인과 프로세서 할당 스케줄링
  • 3단계(디스패칭)
    준비 상태의 프로세스에 프로세서 할당
    디스패처가 준비 상태에 있는 프로세스 중에서 프로세서를 할당할 프로세서를 결정하는 할당 스케줄링

※ 스케줄링 큐 : 준비 큐에서 프로세스를 하나 선택하여 입출력 장치 큐에 추가시키는 작업을 한다.

스케줄러의 종류와 역할

장기 스케줄러

작업 스케줄러라고 표현하기도 하며, 스케줄링에 따라 디스크에서 메모리로 작업을 가져와 처리할 순서를 결정한다.

단기 스케줄러

메모리에 적재된 프로세스 중 프로세서를 할당하여 실행 상태가 되도록 결정하는 프로세스 스케줄링을 한다.

장기 스케줄러 vs 단기 스케줄러

장기 스케줄러와 단기 스케줄러의 가장 큰 차이점은 실행할 프로세스의 작업 시간이다.
단기 스케줄러는 100만 분의 수초로 수시로 확인하고, 장기 스케줄러는 분 단위로 작업을 확인한다.

중기 스케줄러

가상 메모리 체제나 시분할 방법을 사용하는 시스템에서 사용되는 스케줄러
프로세스들이 서로 프로세서를 차지하려 할 때 프로세스를 따로 별도의 기억장소에서 뺴낼 수 있어서 다중 프로그래밍의 정도를 줄일 수 있다.

선점 스케줄링과 비선점 스케줄링

선점 스케줄링

현재 실행중인 프로세스를 인터럽트 할 수 있거나 준비 상태로 이동할 수 있는 스케줄링

프로세스 하나가 장시간 동안 프로세서를 독점하는 것을 방지하기 위해 모든 프로세스에 프로세서를 서비스 할 기회를 늘린다.

우선순위가 높은 프로세스들이 긴급 처리를 요청할 때 유리

비선점 스케줄링

프로세스가 자원은 선택 했을 때 다른 프로세스가 해당 자원을 빼앗아올 수 없는 스케줄링

실행시간이 짧은 프로세스가 작업 실행 시간이 긴 프로세스를 기다리는 대신 모든 프로세서를 공정하게 관리함

우선순위가 높은 프로세스를 중간에 입력해도 대기중인 프로세스는 영향을 받지 않으므로 응답 시간 예측이 용이

profile
가랑비는 맞는다 하지만 폭풍은 내 것이야

0개의 댓글