새로운 프로세스를 생성할 때 Linux 커널에서 우선순위는 어디에 할당됩니까?

새로운 프로세스를 생성할 때 Linux 커널에서 우선순위는 어디에 할당됩니까?

저는 리눅스 4.19.2를 사용하고 있습니다. https://elixir.bootlin.com/linux/v4.19.2/ident/

라는 구조를 알아냈습니다.작업 구조여기에는 프로세스 제어 블록의 모든 정보가 포함됩니다. 새로운 프로세스를 생성할 때,십자가()함수가 호출되고, 그 결과 유사한 함수가 호출됩니다._do_fork()그리고복사 프로세스()다음의 필드에 값을 제공하세요.작업 구조.

그런데 새로운 프로세스의 우선순위가 어디에 있는지 찾을 수 없습니다. task_struct 구조에서 우선순위에 사용되는 필드 이름은 다음과 같습니다.프리오. 프로세스가 시작되면 어디서 값을 가져오나요?

답변1

이 링크에서 알아보려고 했는데https://elixir.bootlin.com/linux/v4.19.2/ident/

이것은 내가 읽을 수 있는 Linux 커널 상호 참조를 제공합니다. 나는 새로운 프로세스를 포크하기 위해 다음 기능을 발견했습니다._do_fork()수신 전화복사 프로세스()이는 차례로 다음과 같은 함수를 호출합니다.sched_fork().

함수를 사용하여 프로세스 우선순위가 초기화되는 곳입니다.보통 우선순위().

관련 정보