크기에 따라 프로세스 수가 어떻게 제한될 수 있는지 이해하는 데 어려움을 겪고 있습니다.task_vector
나는 이 페이지를 읽고 있는데,https://www.tldp.org/LDP/tlk/kernel/processes.html
각 프로세스는 task_struct 데이터 구조로 표시됩니다(작업과 프로세스는 Linux에서 같은 의미로 사용되는 용어입니다). 작업 벡터는 시스템의 각 task_struct 데이터 구조에 대한 포인터 배열입니다.
즉, 시스템의 최대 프로세스 수는 기본적으로 512개의 항목을 갖는 작업 벡터의 크기에 따라 제한됩니다. 프로세스가 생성되면 새로운 task_struct가 시스템 메모리에서 할당되고 작업 벡터에 추가됩니다. 쉽게 찾을 수 있도록 현재 포인터는 현재 실행 중인 프로세스를 가리킵니다.
위에서 프로세스의 데이터 구조인 task_struct의 개념을 이해했고, task_Vector는 각 task_struct에 대한 포인터의 배열입니다. 그런데 아래 사진에서는 가 무엇인지 이해가 되지 않습니다 task_vector
. 또한 이것은 최대 프로세스 it has 512 entries
만 있을 수 있다는 것을 의미합니까 ?512
답변1
문서의 날짜는 1999년경인 것으로 보입니다. 사실 표지에는 이렇게 나와 있습니다.이 책은 현재 안정적인 2.0.33 소스 코드를 기반으로 작성되었습니다.. 따라서 해당 개념의 대부분은 여전히 유효할 수 있지만 512 작업(프로세스) 제한과 같은 수치 제한은 거의 확실히 유효하지 않습니다.
task_vector
차트에 표시되지 않습니다. 시작점은 a task_struct
이고 단면은 왼쪽에 표시됩니다.