답변1
Linux 커널은 다중 스레드이며 많은 프로세스가 동시에 실행됩니다. 현재 프로세스의 PID를 받으면 더 이상 "현재" 프로세스가 아닐 수 있습니다.
비선점형 커널은 완료될 때까지 프로세스를 실행할 수 있지만 일반적으로 그렇지 않습니다. 각 프로세스의 양호 수준을 설정할 수 있습니다. 좋은 수준 -20(좋지 않음)은 전체 시스템이 완료될 때까지 지능적인 방식으로 프로세스에 참여합니다.
프로세스가 디스크 읽기를 수행해야 하고 시스템이 메모리를 직접 읽을 수 있는 경우 커널은 다른 프로세스가 수백만 CPU 주기를 사용하도록 허용할 수 있습니다.
그러나 데스크탑 시스템의 경우 -20이라는 좋은 수준으로 설정된 사용자 프로세스는 많지 않습니다. 범위는 -10에서 10까지입니다. 활성화하면 top
가장 중요한 프로세스를 볼 수 있으며 각 프로세스는 좋은 수준으로 표시됩니다.
Linux는 다중 스레드 커널을 사용하여 UNIX처럼 작동합니다. 각 스레드는 동일한 프로세스에 속할 수도 있고 다른 프로세스에 속할 수도 있습니다. 일반적으로 데스크톱 시스템은 사용자 상호 작용에 응답해야 하므로 선점형 코어와 빠른 타이머를 사용합니다.
코어가 비선점형이 아닌 이상 서버는 여러 번 심각한 성능 저하를 겪게 됩니다. 스레드, 선점 및 잠금의 개념은 매우 복잡합니다. 그러나 이는 몇 가지 개요를 제공합니다.