Я беру курс операционной системы. В настоящее время я изучаю главу об управлении процессом.Что такое родительский процесс, когда мы выполняем системный вызов fork()?
Допустим, я пишу код, например:
void main(){
int pid = fork();
// Some code goes here
}
Этот код в основном создает дочерний процесс, который является дубликатом родительского процесса. Все одинаково между процессами, кроме PID. Что такое родительский процесс? Выполняется ли программа C (выполняется файл a.out)?
Родительский процесс - это процесс, в котором 'fork' возвращает значение больше нуля. Или родительский процесс - это процесс, в котором 'getpid' и' getppid' возвращают те же значения, что и до 'fork'. Или это процесс, который может использовать 'wait' для восстановления статуса выхода дочернего элемента. Для первого порядка нет других различий между родителем и ребенком. Если вы действительно задаете вопрос «что такое процесс?» то пожалуйста уточните. – zwol
Нет. Я знаю, что такое процесс. Меня смущает следующее: есть ли процесс, сама программа C в выполнении родительского процесса? И тогда, когда я делаю fork(), теперь есть два процесса, связанных с этим кодом при выполнении. – Ralph
Прошу прощения, я не могу понять, «это процесс, сама программа C в выполнении родительского процесса?». Каждый процесс имеет ровно одну программу, которую он выполняет (если только это не зомби), но процесс и программа являются двумя отдельными и несравнимыми вещами. (И, поскольку я подозреваю, что это ключ к вашей путанице, * любое число * процессов может одновременно выполнять одну и ту же программу.) – zwol