Операционные системы - статьи

         

Процессы в системе


Рассказ о жизни процессов естественно начать с самого начала - с их появления на свет. Так вот, процессы размножаются... почкованием: системный вызов Linux, создающий новый процесс, называется clone, а дочерний процесс представляет собой почти точную копию родительского. Только далее он выполняет назначенную ему функцию, а исходный процесс - то, что написано в программе после вызова clone. Потом отличий может стать больше, так что пути-дороги процессов способны разойтись достаточно далеко. Но если нам нужно этому воспрепятствовать, вызов clone позволит задать флаги, указывающие, что порожденный процесс будет иметь со своим предком общие:

  • адресное пространство (CLONE_VM);
  • информацию о файловой системе (CLONE_FS): корневой и текущий каталоги, а также umask;
  • таблицу открытых файлов (CLONE_FILES);
  • таблицу обработчиков сигналов (CLONE_SIGHAND);
  • родителя (CLONE_PARENT) - конечно, в этом случае будет порожден не дочерний, а сестринский процесс.



Содержание раздела