CPU 스케줄링의 기본 단위는 스레드입니다. 스레드는 운영 체제가 작업 스케줄링을 수행할 수 있는 가장 작은 단위입니다.
스레드는 프로세스 내 단일 순차 제어 흐름을 의미하며, 하나의 프로세스에서 여러 스레드를 동시에 사용할 수 있습니다. 다른 작업을 동시에 수행합니다. Unix System V 및 SunOS에서는 경량 프로세스라고도 하지만 경량 프로세스는 커널 스레드를 더 많이 참조하고 사용자 스레드는 스레드라고 합니다. (추천 학습: 웹 프론트엔드 동영상 튜토리얼)
CPU 스케줄러
CPU가 유휴 상태일 때마다 , 작업은 실행할 준비 큐에서 프로세스를 선택해야 합니다. 프로세스 선택은 단기 스케줄러 또는 CPU 스케줄러에 의해 수행됩니다. 스케줄러는 커널에서 실행할 수 있는 프로세스를 선택하고 여기에 CPU를 할당합니다.
준비 대기열은 선입선출(FIFO) 대기열일 필요는 없습니다. 준비 대기열은 FIFO 대기열, 우선 순위 대기열, 트리 또는 단순하고 순서가 지정되지 않은 연결 목록으로 구현될 수 있습니다. 그러나 개념적으로는 준비 대기열의 모든 프로세스가 CPU에서 실행되기를 기다리기 위해 대기열에 추가됩니다. 대기열의 레코드는 일반적으로 프로세스 제어 블록(PCB)입니다.
선점형 스케줄링
CPU 스케줄링 결정은 다음 4가지 환경에서 발생할 수 있습니다.
# 🎜🎜#프로세스가 실행 상태에서 대기 상태로 전환되는 경우(예: I/O 요청 또는 하위 프로세스 종료를 기다리기 위해 대기 호출) 프로세스가 실행 중 상태에서 준비 상태로 전환될 때(예: 인터럽트가 발생한 경우) 프로세스가 대기 상태에서 준비 상태로 전환될 때( 예를 들어 I/O 완료)프로세스가 종료될 때
1, 4번의 경우 스케줄링 외에는 방법이 없습니다. . 실행을 위해 새 프로세스(프로세스가 이미 준비 대기열에 있는 경우)를 선택해야 합니다. 그러나 2번과 3번의 경우에는 선택이 가능합니다. 스케줄링이 1번째와 4번째 상황에서만 발생할 수 있는 경우 스케줄링 계획은 비선점형 또는 협력형이라고 하며, 그렇지 않은 경우 스케줄링 계획은 선점형(선점형)이라고 합니다. 비선점형 스케줄링을 사용하면 CPU가 프로세스에 할당되면 프로세스는 프로세스가 종료되거나 대기 상태로 전환될 때까지 항상 CPU를 사용합니다.위 내용은 프로세서 스케줄링의 가장 작은 단위의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!