![작업 목록의 크기는 얼마입니까?](https://linux55.com/image/1390/%EC%9E%91%EC%97%85%20%EB%AA%A9%EB%A1%9D%EC%9D%98%20%ED%81%AC%EA%B8%B0%EB%8A%94%20%EC%96%BC%EB%A7%88%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
Robert Love의 "Linux Kernel Development"를 읽는 동안 나는 다음과 같은 내용을 발견했습니다.
커널은 작업 목록이라는 순환 이중 연결 목록에 프로세스 목록을 저장합니다.
이 작업 목록의 크기가 얼마나 되는지 알고 싶습니다.
답변1
작업 목록은 순환 이중 연결 목록에 저장됩니다.struct task_struct
. 목록 구조는 이 tasks
분야에 특화되어 있습니다. 메모리에는 목록을 나타내는 별도의 개체가 없습니다. 각 노드에는 이전 및 다음 노드( some_task->tasks.prev
및 some_task->tasks.next
)에 대한 포인터가 포함되어 있습니다.
이 데이터 구조에는 고유한 최대 크기가 없습니다. 작업 수 측면에서 제한 요소는 작업 구조의 사용 가능한 메모리와 작업에서 소비하는 기타 리소스 또는 기본적으로 15비트로 제한되는 프로세스(보다 정확하게는 작업 그룹) 식별자의 수입니다. .
5장을 읽어보세요리눅스 커널 개발, 또는제11장~의리눅스 장치 드라이버 , Linux 커널의 이 데이터 구조에 대해 자세히 알아보세요.