Linux에서 "task_struct"에 해당하는 것은 무엇입니까?맥 OS의 경우?

Linux에서 "task_struct"에 해당하는 것은 무엇입니까?맥 OS의 경우?

Mac OS와 Linux의 프로세스 제어 블록을 이해하고 싶습니다. Lionux의 경우 이는 매우 쉽습니다. 여기에 같은 내용을 묻는 기사가 있었고 누군가 <linux/sched.h>의 "task_struct"를 살펴보라고 응답했습니다. 그러나 Mac OS에 해당하는 것을 찾는 것이 더 어렵다는 것을 알고 있습니다. Apple 개발자 포럼의 누군가가 비슷한 질문을 하고 proc_info.h 및 proc.h를 보라고 했지만 어떤 구조인지는 알 수 없습니다. With를 살펴봐야 합니다. Mac OS에 동등한 task_struct가 있습니까?

답변1

저는 Mac OS에 대해서는 전혀 모르지만 FreeBSD에 대해서는 약간 알고 있습니다. 그것이 일치하기를 바랍니다.

task_structLinux에서는 이것이 Linux에서 스케줄링의 기본 단위이기 때문에 정확합니다 .

FreeBSD에서 스케줄링의 기본 단위는 입니다 thread.

Linux는 task_struct구조를 통해 프로세스(및 스레드)를 나타냅니다.
Linux의 단일 스레드 프로세스에는 task_struct.

FreeBSD의 단일 스레드 프로세스에는 proc구조체, thread구조체 및 ksegrp구조체가 있습니다.
(이것은 ksegrp"커널 스케줄링 엔터티 그룹"입니다.)

궁극적으로 두 운영 체제 모두 스레드를 예약합니다. 여기서 스레드는 threadFreeBSD의 구조이고 task_struct스레드는 Linux의 구조입니다.

따라서 실제로 조언을 따르고 proc.h를 먼저 살펴보십시오.

관련 정보