>  기사  >  운영 및 유지보수  >  리눅스의 작업 스케줄링 메커니즘은 무엇입니까

리눅스의 작업 스케줄링 메커니즘은 무엇입니까

WBOY
WBOY원래의
2022-07-12 11:17:212680검색

Linux의 작업 예약 메커니즘은 특정 이벤트에서 시스템이 실행하는 특정 명령이나 프로그램을 의미하며, 각 CPU에는 작업을 "TASK_RUNNING" 상태로 저장하는 대기열이 있으며 작업 예약은 가장 높은 우선 순위를 취하는 것입니다. 이 대기열의 작업 작업은 실행을 위해 CPU에 배치되는 다음 작업으로 배치됩니다.

리눅스의 작업 스케줄링 메커니즘은 무엇입니까

이 튜토리얼의 운영 환경: linux7.3 시스템, Dell G3 컴퓨터.

Linux의 작업 스케줄링 메커니즘은 무엇인가요

특정 시간에 시스템이 실행하는 특정 명령이나 프로그램을 말합니다

Linux에서 각 CPU에는 TASK_RUNNING 상태의 작업을 저장하는 대기열이 있습니다. 실행을 위해 CPU에 넣을 다음 작업으로 이러한 대기열에서 우선 순위가 가장 높은 작업을 취하는 것입니다.

작업 스케줄링에는 두 가지 프로세스가 필요합니다: 컨텍스트 전환 및 선택 알고리즘

컨텍스트 전환

한 프로세스의 컨텍스트에서 다른 프로세스의 컨텍스트로 전환하는 것은 매우 자주 발생하므로 일반적으로 스케줄러의 핵심입니다. 능률. switch_to 매크로는

schedule() 함수에서 호출됩니다. 이 매크로는 프로세스 간 실제 전환을 구현하며 해당 코드는 include/i386/system.h에 저장됩니다.

switch_to 매크로는 임베디드 어셈블리로 작성되어 이해하기 어렵습니다.

switch_to() 함수는 정상적으로 반환됩니다. 스택의 반환 주소는 새 프로세스의 task_struct::thread::eip이며, 이는 새 프로세스가 마지막으로 일시 중지되었을 때 설정된 계속 위치입니다(마지막으로 switch_to()). 실행됨) 라벨 "1:" 위치).

이제 실행할 새 프로세스의 컨텍스트로 전송됩니다. 여기에는 wakeup, sleepon 및 프로세스를 잠자기 및 깨우기 위한 기타 기능이 포함됩니다.

선택 알고리즘

Linux의 Schedule() 함수는 준비 대기열의 모든 프로세스를 순회하고 goodness() 함수를 호출하여 각 프로세스의 가중치를 계산한 후 실행할 가중치가 가장 큰 프로세스를 선택합니다. 리눅스 스케줄러는 주로 Schedule() 함수에서 구현됩니다.

스케줄링 단계:

스케줄 기능 워크플로는 다음과 같습니다.

(1) 현재 실행 중인 프로세스 정리
(2) 실행할 다음 프로세스 선택(pick_next_task)
(3) 실행 환경 설정 새로운 프로세스
(4) 프로세스 컨텍스트 전환

Linux 스케줄러는 프로세스를 세 가지 범주로 나눕니다.

프로세스 스케줄링은 운영 체제의 핵심 기능입니다.

스케줄러는 예약 프로세스의 일부일 뿐입니다. 프로세스 예약은 완료하기 위해 여러 시스템이 함께 작동해야 하는 매우 복잡한 프로세스입니다.

이 기사에서는 스케줄러에만 초점을 맞췄습니다. 주요 작업은 모든 RUNNING 프로세스 중에서 가장 적합한 것을 선택하는 것입니다.

일반적인 운영 체제로서 Linux 스케줄러는 프로세스를 세 가지 범주로 나눕니다.

대화형 프로세스

이러한 유형의 프로세스는 인간과 컴퓨터의 상호 작용이 많기 때문에 프로세스는 끊임없이 휴면 상태에 있으며 사용자 입력을 기다립니다. 일반적인 응용 프로그램은 편집기 vi입니다. 이러한 유형의 프로세스는 시스템 응답 시간에 대한 요구 사항이 상대적으로 높습니다. 그렇지 않으면 사용자는 시스템 응답 속도가 느리다고 느낄 것입니다.

일괄 프로세스

이러한 유형의 프로세스는 인간과 컴퓨터의 상호 작용이 필요하지 않고 백그라운드에서 실행되며 많은 시스템 리소스를 차지합니다. 하지만 응답 지연을 견딜 수 있습니다. 컴파일러와 같은.

실시간 프로세스

실시간은 예약 지연에 대한 요구 사항이 가장 높습니다. 이러한 프로세스는 종종 매우 중요한 작업을 수행하며 즉각적인 응답과 실행이 필요합니다. 예를 들어, 비디오 재생 소프트웨어 또는 항공기 비행 제어 시스템은 적어도 영화 상영 효과에 영향을 미칠 것이며 최악의 경우 항공기가 파괴될 수 있다는 것이 분명합니다.

Linux 비디오. 튜토리얼

위 내용은 리눅스의 작업 스케줄링 메커니즘은 무엇입니까의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.