Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Запуск процесса из программы



Читайте также:
  1. AvrStudio в режиме отладки программы
  2. E. Отождествление с растениями и ботаническими процессами.
  3. II. НОРМАТИВНОЕ ПРАВОВОЕ ОБЕСПЕЧЕНИЕ деятельности учреждений образования, реализующих образовательные программы общего среднего образования
  4. II. Требования к результатам освоения основной образовательной программы начального общего образования
  5. II. ТРЕБОВАНИЯ К СТРУКТУРЕ ОСНОВНОЙ ОБРАЗОВАТЕЛЬНОЙ ПРОГРАММЫ ДОШКОЛЬНОГО ОБРАЗОВАНИЯ И ЕЕ ОБЪЕМУ
  6. III. Методический раздел программы
  7. III. Требования к структуре основной образовательной программы начального общего образования

 

Нас обычно не заботит тот факт, что командный интерпретатор создает процессы — это просто подразумевается. В некоторых прикладных задачах можно положиться на сценарии командного интерпретатора (пакеты команд, записанные в файл), которые сделают эту работу за вас, но в ряде других случаев вы пожелаете создавать процессы самостоятельно.

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

Рассмотрим некоторые из функций, которые обеспечивает для запуска других процессов (или подмены одного процесса другим):

· system();

· семейство функций ехес();

· семейство функций spawn();

· fork();

· vfork().

 

Какую из этих функций применять, зависит от двух требований: переносимости и функциональности. Как обычно, между этими двумя требованиями возможен компромисс.

Обычно при всех запросах на создание нового процесса происходит следующее. Поток в первоначальном процессе вызывает одну из вышеприведенных функций. В конечном итоге функция заставит администратор процессов создать адресное пространство для нового процесса. Затем ядро выполнит запуск потока в новом процессе. Этот поток выполнит несколько инструкций и вызовет функцию main().

 


Дата добавления: 2015-07-11; просмотров: 113 | Нарушение авторских прав






mybiblioteka.su - 2015-2024 год. (0.006 сек.)