В системе UNIX / Linux дочерний процесс продолжает выполнять ту же программу, что и его родительский процесс.
В основном верно из-за способа работы fork()
(часто ребенок звонит exec()
чуть позже, но это происходит только позже). Хотя это не всегда верно (например, вы можете запустить процесс, используя вместо этого posix_spawn()
или просто старый system()
в C).
Переключение контекста дороже, чем переключение режима.
Слишком мало информации, чтобы определить, правда это или нет. Например, «переключение контекста» может означать переключение из пространства пользователя в пространство ядра или из «контекста ядра» в «контекст IRQ», или ... Точно так же «переключение режима» может быть чем угодно (переключение режима видео? Привилегия изменение уровня?). Я могу только сказать, что некоторые вещи, которые называются переключателями контекста, стоят дороже, чем некоторые вещи, называемые переключателями режима, а некоторые дешевле.
Процесс может напрямую обращаться к данным на жестком диске. без участия ядра.
Преимущественно ложно. Единственный случай, когда это может быть потенциально возможно, это если вы расширите определение «жесткий диск», чтобы включить NVRAM в качестве постоянного хранилища; но даже в этом случае я не уверен, поддерживает ли Linux прямое отображение NVRAM в пользовательское пространство (пока).
Любые два процесса могут взаимодействовать, используя обычный (безымянный) канал
Нет. Если вы случайным образом выбираете любые 2 процесса и ожидаете, что они будут общаться через. в таком случае, очень вероятно, что это никому не понадобится (например, представьте, что отправляете оцифрованный звук из одного процесса демону CRON, который этого не ожидает). Процессы должны быть спроектированы так, чтобы координировать создание конечных точек канала и согласовывать их роли (отправитель, получатель) и согласовывать протокол, используемый для данных, передаваемых по каналу (просто отправка / получение необработанных байтов). это не общение, точно так же, как слух - это не то же самое, что слушание / понимание).