Что такое функционирование в «Реальном масштабе времени»


Запуск процесса из командной строки


Download 1.86 Mb.
Pdf ko'rish
bet56/72
Sana19.04.2023
Hajmi1.86 Mb.
#1362511
TuriУчебное пособие
1   ...   52   53   54   55   56   57   58   59   ...   72
Bog'liq
Луканов А.С. Системы реального времени 2020

 
Запуск процесса из командной строки 
Например, при запуске процесса из командного 
интерпретатора вы можете ввести командную строку: 
$ program1 
Это указание предписывает командному интерпретатору 
запустить программу program1 и ждать завершения ее работы. Или 
вы могли набрать: 
$ program2 & 


120 
Это указание предписывает командному интерпретатору 
запустить программу program2 без ожидания ее завершения. В 
таком случае говорят, что программа program2 работает в фоновом 
режиме. 
Если вы пожелаете скорректировать приоритет программы до 
ее запуска, вы можете применить команду nice – точно так же, как в 
Unix: 
$ nice program3 
Запуск процесса из программы 
Нас обычно не заботит тот факт, что командный 
интерпретатор создает процессы – это просто подразумевается. В 
некоторых прикладных задачах можно положиться на сценарии 
командного интерпретатора (пакеты команд, записанные в файл), 
которые сделают эту работу за вас, но в ряде других случаев вы 
пожелаете создавать процессы самостоятельно. 
Например, в большой мультипроцессорной системе вы 
можете пожелать, чтобы одна главная программа выполнила запуск 
всех других процессов вашего приложения на основании 
некоторого конфигурационного файла. Другим примером может 
служить необходимость запуска процессов по некоторому событию. 
Рассмотрим некоторые из функций, которые обеспечивает 
запуск других процессов (или подмены одного процесса другим): 
· system(); 
· 
семейство функций ехес(); 
· 
семейство функций spawn(); 
· fork(); 
· vfork(). 
Какую из этих функций применять, зависит от двух 
требований: переносимости и функциональности. Как обычно, 
между этими двумя требованиями возможен компромисс. 
Обычно при всех запросах на создание нового процесса 
происходит следующее. Поток в первоначальном процессе 
вызывает одну из вышеприведенных функций. В конечном итоге 


121 
функция заставит администратор процессов создать адресное 
пространство для нового процесса. Затем ядро выполнит запуск 
потока в новом процессе. Этот поток выполнит несколько 
инструкций и вызовет функцию main(). 

Download 1.86 Mb.

Do'stlaringiz bilan baham:
1   ...   52   53   54   55   56   57   58   59   ...   72




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling