Многозадачность и многопроцессорность могут выполняться на компьютерах, которые не имеют блока управления памятью (MMU) для обеспечения виртуальной памяти. Существует много операционных систем, которые поддерживают многозадачность и / или многопроцессорность для процессоров, не имеющих MMU. Я не знаю, когда Unix использовал виртуальную память.
Помимо виртуальной памяти, существуют другие требования к оборудованию, которые необходимы Unix для реализации его многопроцессорных функций. Ключ - защищенный режим или режим супервизора ЦП, т. Е. Режим ядра или режим пользователя.
Существуют ли в настоящее время системы Unix, которые не используют виртуальную память?
Я предполагаю, что все современные версии Unix используют MMU.
uClinux - это версия Linux, которая не требует MMU и не использует виртуальную память. Но не ожидайте такой же уровень безопасности между процессами, как в реальном Linux. Это ОС для встроенных устройств для запуска доверенных прикладных программ.
Среда выполнения C даже поддерживает это?
Язык программирования C не привязан к Unix или Linux. И при этом это не требует виртуальной памяти. C может использоваться для программирования 8-битных микроконтроллеров. Библиотека времени выполнения зависит от версии операционной системы и компилятора. Существуют версии библиотеки времени выполнения C для uClinix для процессоров, которые не имеют MMU.