Интернет магазин китайских планшетных компьютеров |
|
Компьютеры - Fork-бомба - Примеры fork-бомб на разных языках программирования23 января 2011Криогенные насосы www.vac-industry.ru. Оглавление: 1. Fork-бомба 2. Описание 3. Примеры fork-бомб на разных языках программирования 4. Предотвращение хасис лев аронович биография Bash: :{ :|:& };: Perl: fork while fork Python: import os while: os.fork Ruby: fork while fork Второй вариант: loop { fork } Пакетный файл Microsoft Windows: :s start %0 goto :s Более элегантный вариант: %0|%0 Псевдокод: алг ПрограммаX пока истина нц вызов ПрограммаX кц кон алг ПрограммаX Трудность ликвидацииВ случае успешного срабатывания fork бомбы становится трудным или практически невозможным восстановить нормальную работу ЭВМ без перезагрузки, так как единственный способ прекратить работу fork бомбы это одновременное прекращение работы всех работающих копий fork бомбы. В большинстве реализаций операционных систем вызов команды для прекращения работы процесса требует запуска нового процесса, что в условиях успешно работающей fork бомбы невозможно. Однако, на практике некоторые fork бомбы не требуют таких радикальных мер и могут быть уничтожены без необходимости перезагрузки. Рассмотрим, например, случай бомбы из примера выше: :{ :|:& };: Особенность этого кода в том, что он не зацикливается после неуспешного порождения своих копий, а завершает работу. В результате список процессов постоянно находится на грани заполнения: одна из копий fork бомбы завершается, и освобождающееся место тут же занимается новосозданным процессом из другой копии fork бомбы. Становится возможным конкурировать с fork бомбой за захват места в списке процессов. Тогда возможно рано или поздно запустить команду для одновременного уничтожения всех копий fork бомбы или запустить безопасную программу, которая будет постепенно «отвоёвывать» место в списке процессов до завершения работы последнего процесса fork бомбы. Пример такой безопасной программы на zsh: while do; done Просмотров: 4191 Торты для собак торт для собаки на день рождения.
|