В чем разница между не превентивным, превентивным и выборочным превентивным ядром?

В чем разница между «неуправляемым», «превентивным» и «выборочным превентивным» ядром?

Надеюсь, кто-то может пролить свет на это.

  • yum устанавливает kernel-devel, отличный от моей версии ядра
  • Как определить корневой раздел через UUID без initramfs / initrd
  • Не удается установить пакет: отсутствует ядро ​​Linux
  • как распаковать файл в linux red hat?
  • Как запросить подпись EFI
  • Поддержка ядра Linux для USB-геймпадов?
  • Когда происходит подкачка или как вычислять swap_tendency?
  • Ядро Linux: учебник для начинающих
  • 2 Solutions collect form web for “В чем разница между не превентивным, превентивным и выборочным превентивным ядром?”

    На упреждающем ядре процесс, работающий в режиме ядра, может быть заменен другим процессом, находящимся в середине функции ядра.

    Это относится только к процессам, работающим в режиме ядра, процессор, выполняющий процессы в пользовательском режиме, считается «незанятым». Если процесс пользовательского режима хочет запросить службу из ядра, он должен выдать исключение, которое может обрабатывать ядро.

    В качестве примера:

    Процесс A выполняет обработчик исключений, процесс B пробуждается запросом IRQ, ядро ​​заменяет процесс A на B (принудительный коммутатор процесса). Процесс A остается незавершенным. Планировщик решает впоследствии, если процесс A получает процессорное время или нет.

    На невосприимчивом ядре процесс A просто использовал бы все процессорное время, пока он не закончит или не решит добровольно разрешить другим процессам прервать его (плановый переход процесса).

    Сегодняшние Linux-операционные системы обычно не включают полностью упреждающее ядро, все еще существуют критические функции, которые должны выполняться без перерыва. Поэтому я думаю, вы могли бы назвать это «селективным упреждающим ядром».

    Кроме того, существуют подходы к тому, чтобы ядро ​​Linux (почти) было полностью упреждающим.

    • Викиреальность
    • Статья LWN

    преимуществом является -> Возможность операционной системы упредить или остановить запланированную задачу в настоящее время в пользу задачи с более высоким приоритетом. Планирование может быть одним из, но не только, планирования процесса или ввода-вывода и т. Д.

    В Linux программы пользовательского пространства всегда были превентивными: ядро ​​прерывает программы пользовательского пространства для переключения на другие потоки, используя обычный такт. Таким образом, ядро ​​не дожидается, когда программы пользовательского пространства будут явно освобождать процессор (что имеет место в совместной многозадачности). Это означает, что бесконечный цикл в программе пользовательского пространства не может блокировать систему.

    Однако до ядер 2.6 ядро ​​не было предопределено: как только один поток ввел ядро, его нельзя было бы вытеснить другим потоком. Однако это отсутствие предпосылки в ядре вызвало несколько проблем в отношении латентности и масштабируемости. Таким образом, предварительное использование ядра было введено в ядрах 2.6, и его можно включить или отключить, используя опцию CONFIG_PREEMPT. Если CONFIG_PREEMPT включен, код ядра можно вытеснить везде, за исключением случаев, когда код отключил локальные прерывания. Бесконечный цикл в коде больше не может блокировать всю систему. Если CONFIG_PREEMPT отключен, то поведение 2.4 будет восстановлено.

    ReQuoted и отформатирован: http://www.linuxquestions.org/questions/linux-general-1/pre-emptive-vs-non-pre-emptive-kernel-582437/

    Interesting Posts

    Возможность штампов времени в файле .xsession-errors?

    Извлечение координат совпадающего текста в PDF

    Как переформатировать имена каталогов?

    Обновлено Fedora 18 – нет звуковых устройств, только фиктивный вывод

    есть ли какие-то символические ссылки, которые поддерживают перемещение или переименование целевого файла?

    Захват слов в двойных кавычках

    Найдите каждую строку, соответствующую шаблону, но напечатайте только строку над ней

    Серверные серверные полосы для подключения к сети Solaris

    Использует ли POSIX трубы / сокеты для безопасности IPC?

    Лучший способ сравнить различные решения для шифрования в моей системе

    Какая разница между virsh, virt-install и virt-manager?

    Nginx на FreeBSD: запрещено разрешение fcgiwrap.sock

    Миксер Alsa для назначения определенных приложений на определенную звуковую карту?

    Systemd restart, если один из процессов в группе управления не работает

    Настройка разрешения всплеска Framebuffer при выходе из X

    Linux и Unix - лучшая ОС в мире.