운영 체제-프로세스 스케줄링
정의
프로세스 스케줄링은 CPU에서 실행중인 프로세스를 제거하고 특정 전략에 따라 다른 프로세스를 선택하는 프로세스 관리자의 활동입니다.
프로세스 스케줄링은 멀티 프로그래밍 운영 체제의 필수적인 부분입니다. 이러한 운영 체제를 사용하면 한 번에 둘 이상의 프로세스를 실행 가능 메모리로로드 할 수 있으며로드 된 프로세스는 시간 다중화를 사용하여 CPU를 공유합니다.
프로세스 예약 대기열
OS는 프로세스 스케줄링 대기열에있는 모든 PCB를 유지합니다. OS는 각 프로세스 상태에 대해 별도의 대기열을 유지하며 동일한 실행 상태에있는 모든 프로세스의 PCB는 동일한 대기열에 배치됩니다. 프로세스의 상태가 변경되면 PCB는 현재 큐에서 링크 해제되고 새 상태 큐로 이동됩니다.
운영 체제는 다음과 같은 중요한 프로세스 스케줄링 대기열을 유지합니다.
Job queue −이 대기열은 시스템의 모든 프로세스를 유지합니다.
Ready queue−이 큐는 메인 메모리에 상주하는 모든 프로세스를 준비하고 실행 대기 상태로 유지합니다. 새 프로세스는 항상이 대기열에 배치됩니다.
Device queues − I / O 장치를 사용할 수 없어 차단 된 프로세스가이 대기열을 구성합니다.
OS는 서로 다른 정책을 사용하여 각 대기열 (FIFO, 라운드 로빈, 우선 순위 등)을 관리 할 수 있습니다. OS 스케줄러는 시스템의 프로세서 코어 당 하나의 항목 만 가질 수있는 준비 및 실행 대기열간에 프로세스를 이동하는 방법을 결정합니다. 위 다이어그램에서는 CPU와 병합되었습니다.
2- 상태 프로세스 모델
2- 상태 프로세스 모델은 아래에 설명 된 실행 및 비 실행 상태를 나타냅니다.
SN | 상태 및 설명 |
---|---|
1 | Running 새 프로세스가 생성되면 실행 중 상태로 시스템에 들어갑니다. |
2 | Not Running 실행되지 않는 프로세스는 차례가 실행될 때까지 대기하면서 대기열에 보관됩니다. 대기열의 각 항목은 특정 프로세스에 대한 포인터입니다. 큐는 연결 목록을 사용하여 구현됩니다. 발송자의 이용은 다음과 같습니다. 프로세스가 중단되면 해당 프로세스는 대기 대기열로 전송됩니다. 프로세스가 완료되거나 중단되면 프로세스가 삭제됩니다. 두 경우 모두 디스패처는 대기열에서 실행할 프로세스를 선택합니다. |
스케줄러
스케줄러는 다양한 방식으로 프로세스 스케줄링을 처리하는 특수 시스템 소프트웨어입니다. 주요 임무는 시스템에 제출할 작업을 선택하고 실행할 프로세스를 결정하는 것입니다. 스케줄러는 세 가지 유형입니다-
- 장기 스케줄러
- 단기 스케줄러
- 중기 스케줄러
장기 스케줄러
그것은 또한 job scheduler. 장기 스케줄러는 처리를 위해 시스템에 허용되는 프로그램을 결정합니다. 큐에서 프로세스를 선택하고 실행을 위해 메모리에로드합니다. CPU 스케줄링을 위해 프로세스가 메모리에로드됩니다.
작업 스케줄러의 주요 목표는 I / O 바인딩 및 프로세서 바인딩과 같은 균형 잡힌 작업 조합을 제공하는 것입니다. 또한 다중 프로그래밍의 정도를 제어합니다. 다중 프로그래밍의 정도가 안정적인 경우 평균 프로세스 생성 속도는 시스템을 떠나는 프로세스의 평균 출발 속도와 같아야합니다.
일부 시스템에서는 장기 스케줄러를 사용할 수 없거나 최소화 할 수 있습니다. 시간 공유 운영 체제에는 장기 스케줄러가 없습니다. 프로세스가 상태를 신규에서 준비로 변경하면 장기 스케줄러가 사용됩니다.
단기 스케줄러
그것은 또한 CPU scheduler. 주요 목표는 선택한 기준 세트에 따라 시스템 성능을 높이는 것입니다. 프로세스의 준비 상태에서 실행 상태로 변경됩니다. CPU 스케줄러는 실행할 준비가 된 프로세스 중에서 프로세스를 선택하고 그 중 하나에 CPU를 할당합니다.
디스패처라고도하는 단기 스케줄러는 다음에 실행할 프로세스를 결정합니다. 단기 스케줄러는 장기 스케줄러보다 빠릅니다.
중기 스케줄러
중기 일정은 다음의 일부입니다. swapping. 메모리에서 프로세스를 제거합니다. 다중 프로그래밍의 정도를 줄입니다. 중기 스케줄러는 교체 된 아웃 프로세스를 처리합니다.
I / O 요청을하면 실행중인 프로세스가 일시 중단 될 수 있습니다. 일시 중단 된 프로세스는 완료를 향해 진행할 수 없습니다. 이 상태에서 프로세스를 메모리에서 제거하고 다른 프로세스를위한 공간을 확보하기 위해 일시 중단 된 프로세스를 보조 저장소로 이동합니다. 이 과정을swapping, 프로세스가 스왑 아웃 또는 롤아웃되었다고합니다. 공정 혼합을 개선하기 위해 스와핑이 필요할 수 있습니다.
스케줄러 비교
SN | 장기 스케줄러 | 단기 스케줄러 | 중기 스케줄러 |
---|---|---|---|
1 | 작업 스케줄러입니다 | CPU 스케줄러입니다 | 프로세스 스와핑 스케줄러입니다. |
2 | 속도는 단기 스케줄러보다 느립니다. | 속도는 다른 두 가지 중에서 가장 빠릅니다 | 속도는 단기 및 장기 스케줄러 사이에 있습니다. |
삼 | 다중 프로그래밍의 정도를 제어합니다. | 다중 프로그래밍 정도에 대한 제어가 적습니다. | 다중 프로그래밍의 정도를 줄입니다. |
4 | 시간 공유 시스템에서 거의 없거나 최소화됩니다. | 시간 공유 시스템에서도 최소화 | 시간 공유 시스템의 일부입니다. |
5 | 풀에서 프로세스를 선택하고 실행을 위해 메모리에로드합니다. | 실행할 준비가 된 프로세스를 선택합니다. | 프로세스를 메모리에 다시 도입하고 실행을 계속할 수 있습니다. |
컨텍스트 전환
컨텍스트 스위치는 프로세스 실행이 나중에 같은 지점에서 재개 될 수 있도록 프로세스 제어 블록에 CPU의 상태 또는 컨텍스트를 저장하고 복원하는 메커니즘입니다. 이 기술을 사용하면 컨텍스트 전환기를 통해 여러 프로세스가 단일 CPU를 공유 할 수 있습니다. 컨텍스트 전환은 멀티 태스킹 운영 체제 기능의 필수 부분입니다.
스케줄러가 CPU를 한 프로세스 실행에서 다른 프로세스 실행으로 전환하면 현재 실행중인 프로세스의 상태가 프로세스 제어 블록에 저장됩니다. 그 후 프로세스가 다음에 실행될 상태는 자체 PCB에서로드되어 PC, 레지스터 등을 설정하는 데 사용됩니다.이 시점에서 두 번째 프로세스가 실행을 시작할 수 있습니다.
컨텍스트 스위치는 레지스터와 메모리 상태를 저장하고 복원해야하므로 계산 집약적입니다. 컨텍스트 전환 시간을 피하기 위해 일부 하드웨어 시스템은 두 개 이상의 프로세서 레지스터 세트를 사용합니다. 프로세스가 전환되면 나중에 사용할 수 있도록 다음 정보가 저장됩니다.
- 프로그램 카운터
- 일정 정보
- 기본 및 제한 레지스터 값
- 현재 사용되는 레지스터
- 변경된 상태
- I / O 상태 정보
- 회계 정보