Каков размер Ready Queue в Linux? - PullRequest
       16

Каков размер Ready Queue в Linux?

1 голос
/ 21 августа 2011

Вчера я понял в своем классе Advanced Operating Systems, что будет ограничение на число процессов, которые могут быть помещены в очередь Ready. Я хотел бы знать это число для разных операционных систем. происходит, когда это число превышено? Значение: что, если будет создано больше этого числа процессов?

Я пытался увидеть, что происходит, запустив небольшую программу, которая

int main()
{
     while(1)
     system(fork());
     return 0;
}

Система сразу зависла. Кто-нибудь может объяснить, почему моя система зависла?

1 Ответ

1 голос
/ 21 августа 2011

Некоторые системы не устанавливают ограничений и просто продолжают добавлять в рабочую очередь по мере необходимости. Существуют варианты ограничения максимального количества процессов, которые может использовать система, но по умолчанию ограничения отсутствуют (в некоторых системах). В Linux вы можете изменить ulimit, который обрабатывает пользователь, и если вы установите его примерно на 500 или меньше, вы увидите, что эта программа не будет зависать в системе и просто будет запускать и использовать циклы ЦП от выполнения постоянных переключений контекста.

Кстати, то, что вы там делаете, называется Fork Bomb, и это небольшой эксплойт, использующийся для отказа в обслуживании, который не ограничивает количество процессов на пользователя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...